mirror of
https://github.com/monero-project/research-lab.git
synced 2024-12-22 11:39:32 +00:00
46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
import unittest, random, time
|
|
|
|
def newIdent(params):
|
|
nonce = params
|
|
# Generate new random identity.
|
|
return hash(str(nonce) + str(random.random()))
|
|
#### #### #### #### #### #### #### #### #### #### #### #### #### #### #### ####
|
|
class Block(object):
|
|
'''
|
|
Each block has: an identity, a timestamp of discovery (possibly false),
|
|
has a timestamp of arrival at the local node (possibly unnecessary), a
|
|
parent block's identity, and a difficulty score.
|
|
'''
|
|
def __init__(self, params={}):
|
|
self.ident = None
|
|
self.discoTimestamp = None
|
|
self.arrivTimestamp = None
|
|
self.parent = None
|
|
self.diff = None
|
|
try:
|
|
assert len(params)==5
|
|
except AssertionError:
|
|
print("Error in Block(): Tried to add a malformed block. We received params = " + str(params) + ", but should have had something of the form {\"ident\":ident, \"disco\":disco, \"arriv\":arriv, \"parent\":parent, \"diff\":diff}.")
|
|
self.ident = params["ident"]
|
|
self.discoTimestamp = params["disco"]
|
|
self.arrivTimestamp = params["arriv"]
|
|
self.parent = params["parent"]
|
|
self.diff = params["diff"]
|
|
|
|
class Test_Block(unittest.TestCase):
|
|
def test_b(self):
|
|
#bill = Block()
|
|
name = newIdent(0)
|
|
t = time.time()
|
|
s = t+1
|
|
diff = 1.0
|
|
params = {"ident":name, "disco":t, "arriv":s, "parent":None, "diff":diff}
|
|
bill = Block(params)
|
|
self.assertEqual(bill.ident,name)
|
|
self.assertEqual(bill.discoTimestamp,t)
|
|
self.assertEqual(bill.arrivTimestamp,t+1)
|
|
self.assertTrue(bill.parent is None)
|
|
self.assertEqual(bill.diff,diff)
|
|
|
|
suite = unittest.TestLoader().loadTestsFromTestCase(Test_Block)
|
|
unittest.TextTestRunner(verbosity=1).run(suite)
|