1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
"""
FNV hash test suite.
Derived from http://isthe.com/chongo/src/fnv/test_fnv.c
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import unicode_literals
import fnvhash
from fnvhash.test import vector
from unittest import TestCase
class FNVTest(TestCase):
"""
FNV hash test suite.
"""
def test_fnv0_32(self):
"""
Tests the 32 bit FNV-0 hash implementation.
"""
for string, expected_hval in vector.fnv0_32_vector.items():
result = fnvhash.fnv0_32(string)
self.assertEqual(result, expected_hval)
def test_fnv1_32(self):
"""
Tests the 32 bit FNV-1 hash implementation.
"""
for string, expected_hval in vector.fnv1_32_vector.items():
result = fnvhash.fnv1_32(string)
self.assertEqual(result, expected_hval)
def test_fnv1a_32(self):
"""
Tests the 32 bit FNV-1a hash implementation.
"""
for string, expected_hval in vector.fnv1a_32_vector.items():
result = fnvhash.fnv1a_32(string)
self.assertEqual(result, expected_hval)
def test_fnv0_64(self):
"""
Tests the 64 bit FNV-0 hash implementation.
"""
for string, expected_hval in vector.fnv0_64_vector.items():
result = fnvhash.fnv0_64(string)
self.assertEqual(result, expected_hval)
def test_fnv1_64(self):
"""
Tests the 64 bit FNV-1 hash implementation.
"""
for string, expected_hval in vector.fnv1_64_vector.items():
result = fnvhash.fnv1_64(string)
self.assertEqual(result, expected_hval)
def test_fnv1a_64(self):
"""
Tests the 64 bit FNV-1a hash implementation.
"""
for string, expected_hval in vector.fnv1a_64_vector.items():
result = fnvhash.fnv1a_64(string)
self.assertEqual(result, expected_hval)
|