From 2e885a1223fb5a3af8675670c1b0b9a80146b0fe Mon Sep 17 00:00:00 2001 From: Dmitri Bogomolov <4glitch@gmail.com> Date: Wed, 28 Jul 2021 16:38:45 +0300 Subject: [PATCH] Add a test with data and enable python3 --- src/tests/test_proofofwork.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/tests/test_proofofwork.py b/src/tests/test_proofofwork.py index 567c201d..e85174f0 100644 --- a/src/tests/test_proofofwork.py +++ b/src/tests/test_proofofwork.py @@ -1,11 +1,11 @@ """ Tests for proofofwork module """ + +import hashlib import unittest - -from .common import skip_python3 - -skip_python3() # noqa:E402 +from binascii import unhexlify +from struct import pack, unpack from pybitmessage import proofofwork @@ -21,3 +21,16 @@ class TestProofofwork(unittest.TestCase): """just reproducing the empty test from proofofwork.init()""" self.assertEqual( proofofwork._doCPoW(2**63, ""), [6485065370652060397, 4]) + + def test_with_target(self): + """Do PoW with parameters from test_openclpow and check the result""" + target = 54227212183 + initialHash = unhexlify( + '3758f55b5a8d902fd3597e4ce6a2d3f23daff735f65d9698c270987f4e67ad590' + 'b93f3ffeba0ef2fd08a8dc2f87b68ae5a0dc819ab57f22ad2c4c9c8618a43b3' + ) + nonce = proofofwork._doCPoW(target, initialHash)[0] + trialValue, = unpack( + '>Q', hashlib.sha512(hashlib.sha512( + pack('>Q', nonce) + initialHash).digest()).digest()[0:8]) + self.assertLess((nonce - trialValue), target)