diff options
| author | Fabian Jahr <[email protected]> | 2020-05-31 20:31:17 +0200 |
|---|---|---|
| committer | Fabian Jahr <[email protected]> | 2020-07-16 18:10:48 +0200 |
| commit | 0e2b400fea890e769b75da5b55fa1902fd9f9851 (patch) | |
| tree | ee06bec6183254a1bb0452d4abe15105b219bae0 | |
| parent | test: Add Python MuHash3072 implementation to test framework (diff) | |
| download | discoin-0e2b400fea890e769b75da5b55fa1902fd9f9851.tar.xz discoin-0e2b400fea890e769b75da5b55fa1902fd9f9851.zip | |
test: Add basic Python/C++ Muhash implementation parity unit test
| -rw-r--r-- | test/functional/test_framework/muhash.py | 11 | ||||
| -rwxr-xr-x | test/functional/test_runner.py | 1 |
2 files changed, 12 insertions, 0 deletions
diff --git a/test/functional/test_framework/muhash.py b/test/functional/test_framework/muhash.py index 7dfce1b75..70a3cc53a 100644 --- a/test/functional/test_framework/muhash.py +++ b/test/functional/test_framework/muhash.py @@ -4,6 +4,7 @@ """Native Python MuHash3072 implementation.""" import hashlib +import unittest from .util import modinv @@ -88,3 +89,13 @@ class MuHash3072: val = (self.numerator * modinv(self.denominator, self.MODULUS)) % self.MODULUS bytes384 = val.to_bytes(384, 'little') return hashlib.sha256(bytes384).digest() + +class TestFrameworkMuhash(unittest.TestCase): + def test_muhash(self): + muhash = MuHash3072() + muhash.insert([0]*32) + muhash.insert([1] + [0]*31) + muhash.remove([2] + [0]*31) + finalized = muhash.digest() + # This mirrors the result in the C++ MuHash3072 unit test + self.assertEqual(finalized[::-1].hex(), "a44e16d5e34d259b349af21c06e65d653915d2e208e4e03f389af750dc0bfdc3") diff --git a/test/functional/test_runner.py b/test/functional/test_runner.py index c948833c4..d7ec9b8b8 100755 --- a/test/functional/test_runner.py +++ b/test/functional/test_runner.py @@ -69,6 +69,7 @@ TEST_EXIT_SKIPPED = 77 TEST_FRAMEWORK_MODULES = [ "address", "blocktools", + "muhash", "script", "util", ] |