def test_strhash(self): s = "".join(random.choice(string.printable) for _ in range(1024)) us = "文字テキスト텍스트كتابة" a = ctools.strhash(s) for i in range(1024): self.assertEqual(ctools.strhash(s), a) for meth in ("fnv1a", "fnv1", "djb2", "murmur"): a = ctools.strhash(s, meth) b = ctools.strhash(us, meth) self.assertEqual(a, ctools.strhash(s, meth)) self.assertEqual(b, ctools.strhash(us, meth)) self.assertEqual(ctools.strhash(s), ctools.strhash(s, "fnv1a")) self.assertEqual(ctools.strhash(us), ctools.strhash(us, "fnv1a")) self.assertNotEqual(ctools.strhash(s), ctools.strhash(s, "fnv1")) self.assertNotEqual(ctools.strhash(s), ctools.strhash(s, "fnv1")) with self.assertRaises(TypeError): ctools.strhash(s, method="fnv1a")
def benchmark_strhash_default_method(string): ctools.strhash(string)
def benchmark_strhash_djb2(string): ctools.strhash(string, "djb2")
def benchmark_strhash_murmur(string): ctools.strhash(string, "murmur")
def benchmark_strhash_fnv1(string): ctools.strhash(string, "fnv1")