Пример #1
0
 def test_double_hash_singularity(self):
     singular_ngrams = ["635", "1402"]
     non_singular_ngrams = ["666", "1401"]
     for ngram in singular_ngrams:
         bf = double_hash_encode_ngrams([ngram], (b'secret1', b'secret2'),
                                        20, 1024, 'ascii')
         self.assertEqual(bf.count(), 1)
         bf_ns = double_hash_encode_ngrams_non_singular(
             [ngram], (b'secret1', b'secret2'), 20, 1024, 'ascii')
         self.assertGreater(bf_ns.count(), 1)
         self.assertNotEqual(bf, bf_ns)
     for ngram in non_singular_ngrams:
         bf = double_hash_encode_ngrams([ngram], (b'secret1', b'secret2'),
                                        20, 1024, 'ascii')
         self.assertGreater(bf.count(), 1)
         bf_ns = double_hash_encode_ngrams_non_singular(
             [ngram], (b'secret1', b'secret2'), 20, 1024, 'ascii')
         self.assertGreater(bf_ns.count(), 1)
         self.assertEqual(bf, bf_ns)
Пример #2
0
 def test_order_of_ngrams(self):
     self._test_order_of_ngrams(
         lambda ngrams: blake_encode_ngrams(ngrams, (self.key_sha1, ), self.
                                            ks, 1024, 'ascii'),
         copy(self.ngrams))
     self._test_order_of_ngrams(
         lambda ngrams: double_hash_encode_ngrams(ngrams, (
             self.key_sha1, self.key_md5), self.ks, 1024, 'ascii'),
         copy(self.ngrams))
     self._test_order_of_ngrams(
         lambda ngrams: double_hash_encode_ngrams_non_singular(
             ngrams, (self.key_sha1, self.key_md5), self.ks, 1024, 'ascii'),
         copy(self.ngrams))
Пример #3
0
 def test_double_hash_encoding_non_singular(self):
     bf = double_hash_encode_ngrams_non_singular(
         self.ngrams, (self.key_sha1, self.key_md5), self.ks, 1024, 'ascii')
     self._test_bit_range(bf.count(), self.k, len(self.ngrams))