onionrblocks/tests/test_anonvdf.py
2020-12-25 21:06:26 +00:00

35 lines
1.2 KiB
Python

import unittest
from onionrblocks.generators import anonvdf
import kasten
import mimcvdf
from time import time
from math import floor
class TestAnonVDF(unittest.TestCase):
def test_vdf_create(self):
test_data = kasten.generator.pack.pack(b"test", "tst", 0)
test_vdf = mimcvdf.vdf_create(test_data, 1000, dec=True)
generated = anonvdf.AnonVDFGenerator.generate(test_data, rounds=1000)
self.assertEqual(
generated.get_packed(),
test_data
)
self.assertEqual(generated.id, int(test_vdf).to_bytes(64, byteorder="big"))
def test_vdf_block_validate_ok_time(self):
rds = 8000
test_data = kasten.generator.pack.pack(b"test", "tst", 0)
test_id = mimcvdf.vdf_create(test_data, rds)
anonvdf.AnonVDFGenerator.validate_id(test_id, test_data, rounds=rds)
def test_vdf_block_validate_not_enough(self):
rds = 8000
t = floor(time()) - 60
test_data = kasten.generator.pack.pack(b"test", "tst", 0, timestamp=t)
test_id = mimcvdf.vdf_create(test_data, rds)
self.assertRaises(ValueError, anonvdf.AnonVDFGenerator.validate_id, test_id, test_data, rounds=rds)
unittest.main()