mimcvdf/tests/test_vdf.py

50 lines
1.5 KiB
Python

import sys
import os
sys.path.append('..')
import unittest
from time import time
from hashlib import sha3_256
import mimcvdf
class TestVDF(unittest.TestCase):
def test_both(self):
h = mimcvdf.vdf_create(b"test")
self.assertTrue(mimcvdf.vdf_verify(b"test", h))
def test_invalid_both(self):
h = mimcvdf.vdf_create(b"test")
self.assertFalse(mimcvdf.vdf_verify(b"invalid", h))
def test_above_zero_rounds(self):
self.assertRaises(AssertionError, mimcvdf.vdf_create, b"test", 0)
self.assertRaises(AssertionError, mimcvdf.vdf_create, b"test", -1)
self.assertRaises(AssertionError, mimcvdf.vdf_create, b"test", 1)
self.assertRaises(AssertionError, mimcvdf.vdf_create, b"test", -10000)
def test_dec_false(self):
for i in range(3):
h = mimcvdf.vdf_create(os.urandom(i), 2, dec=False)
self.assertTrue(h.isalnum())
self.assertTrue(len(h) == 63 or len(h) == 64)
self.assertIs(type(h), str)
def test_dec_true(self):
for i in range(3):
h = mimcvdf.vdf_create(os.urandom(i), 2, dec=True)
self.assertIs(type(h), int)
def test_dec_true_verify(self):
h = mimcvdf.vdf_create(b"test", dec=True)
self.assertTrue(mimcvdf.vdf_verify(b"test", h))
def test_hash_starting_with_zero(self):
s = b"test vector 1097"
self.assertEqual(0, sha3_256(s).digest()[0])
h = mimcvdf.vdf_create(s)
self.assertTrue(mimcvdf.vdf_verify(s, h))
unittest.main()