コード例 #1
0
ファイル: minhash_test.py プロジェクト: xsongx/datasketch
 def test_jaccard(self):
     m1 = minhash.MinHash(4, 1)
     m2 = minhash.MinHash(4, 1)
     self.assertTrue(minhash.jaccard([m1, m2]) == 1.0)
     m2.digest(sha1(bytes(12)))
     self.assertTrue(minhash.jaccard([m1, m2]) == 0.0)
     m1.digest(sha1(bytes(13)))
     self.assertTrue(minhash.jaccard([m1, m2]) < 1.0)
コード例 #2
0
 def test_jaccard(self):
     m1 = minhash.MinHash(4, 1, hashobj=FakeHash)
     m2 = minhash.MinHash(4, 1, hashobj=FakeHash)
     self.assertTrue(m1.jaccard(m2) == 1.0)
     m2.update(12)
     self.assertTrue(m1.jaccard(m2) == 0.0)
     m1.update(13)
     self.assertTrue(m1.jaccard(m2) < 1.0)
コード例 #3
0
ファイル: test_minhash.py プロジェクト: yyht/datasketch
 def test_jaccard(self):
     m1 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m2 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     self.assertTrue(m1.jaccard(m2) == 1.0)
     m2.update(12)
     self.assertTrue(m1.jaccard(m2) == 0.0)
     m1.update(13)
     self.assertTrue(m1.jaccard(m2) < 1.0)
コード例 #4
0
ファイル: test_minhash.py プロジェクト: xkubov/datasketch
    def test_update_batch(self):
        m1 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
        m2 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
        m1.update_batch([12, 24])
        for i in range(4):
            self.assertTrue(m1.hashvalues[i] < m2.hashvalues[i])

        m1 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
        m1.update(12)
        m1.update(24)
        m2 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
        m2.update_batch([12, 24])
        self.assertTrue(all(m1.hashvalues == m2.hashvalues))
コード例 #5
0
    def test_jaccard(self):
        m1 = minhash.MinHash(4, 1, hashobj=FakeHash)
        m2 = minhash.MinHash(4, 1, hashobj=FakeHash)
        bm1 = bBitMinHash(m1)
        bm2 = bBitMinHash(m2)
        self.assertTrue(bm1.jaccard(bm2) == 1.0)

        m2.update(12)
        bm2 = bBitMinHash(m2)
        self.assertTrue(bm1.jaccard(bm2) < 1.0)

        m1.update(13)
        bm1 = bBitMinHash(m1)
        self.assertTrue(bm1.jaccard(bm2) < 1.0)
コード例 #6
0
ファイル: test_minhash.py プロジェクト: yyht/datasketch
 def test_byte_tokens(self):
     m = minhash.MinHash(4, 1)
     m.update(b'Hello')
     self.assertListEqual(
         m.hashvalues.tolist(),
         [734825475, 960773806, 359816889, 342714745],
     )
コード例 #7
0
ファイル: minhash_test.py プロジェクト: xsongx/datasketch
 def test_pickle(self):
     m = minhash.MinHash(4, 1)
     m.digest(sha1(bytes(123)))
     m.digest(sha1(bytes(45)))
     p = pickle.loads(pickle.dumps(m))
     self.assertEqual(p.seed, m.seed)
     self.assertEqual(p.hashvalues, m.hashvalues)
     self.assertEqual(p.permutations, m.permutations)
コード例 #8
0
ファイル: test_minhash.py プロジェクト: xkubov/datasketch
 def test_bulk(self):
     kwargs = dict(num_perm=4, seed=1, hashfunc=fake_hash_func)
     b = [[n*4 for n in range(4)]]*2
     m1 = minhash.MinHash(**kwargs)
     m1.update_batch(b[0])
     m2, m3 = minhash.MinHash.bulk(b, **kwargs)
     self.assertTrue(np.array_equal(m1.hashvalues, m2.hashvalues))
     self.assertTrue(np.array_equal(m1.hashvalues, m3.hashvalues))
コード例 #9
0
 def setUp(self):
     self.m = minhash.MinHash(hashobj=FakeHash)
     self.m.update(11)
     self.m.update(123)
     self.m.update(92)
     self.m.update(98)
     self.m.update(123218)
     self.m.update(32)
コード例 #10
0
 def test_pickle(self):
     m = minhash.MinHash(4, 1, hashobj=FakeHash)
     m.update(123)
     m.update(45)
     p = pickle.loads(pickle.dumps(m))
     self.assertEqual(p.seed, m.seed)
     self.assertTrue(np.array_equal(p.hashvalues, m.hashvalues))
     self.assertTrue(np.array_equal(p.permutations, m.permutations))
コード例 #11
0
ファイル: test_minhash.py プロジェクト: yyht/datasketch
 def setUp(self):
     self.m = minhash.MinHash(hashfunc=fake_hash_func)
     self.m.update(11)
     self.m.update(123)
     self.m.update(92)
     self.m.update(98)
     self.m.update(123218)
     self.m.update(32)
コード例 #12
0
 def test_count(self):
     m = minhash.MinHash(hashobj=FakeHash)
     m.update(11)
     m.update(123)
     m.update(92)
     m.update(98)
     m.update(123218)
     m.update(32)
     c = m.count()
     self.assertGreaterEqual(c, 0)
コード例 #13
0
ファイル: test_minhash.py プロジェクト: yyht/datasketch
 def test_count(self):
     m = minhash.MinHash(hashfunc=fake_hash_func)
     m.update(11)
     m.update(123)
     m.update(92)
     m.update(98)
     m.update(123218)
     m.update(32)
     c = m.count()
     self.assertGreaterEqual(c, 0)
コード例 #14
0
    def test_eq(self):
        m1 = minhash.MinHash(4, 1, hashobj=FakeHash)
        m2 = minhash.MinHash(4, 1, hashobj=FakeHash)
        m3 = minhash.MinHash(4, 2, hashobj=FakeHash)
        m4 = minhash.MinHash(8, 1, hashobj=FakeHash)
        m5 = minhash.MinHash(4, 1, hashobj=FakeHash)
        m1.update(11)
        m2.update(12)
        m3.update(11)
        m4.update(11)
        m5.update(11)
        self.assertNotEqual(m1, m2)
        self.assertNotEqual(m1, m3)
        self.assertNotEqual(m1, m4)
        self.assertEqual(m1, m5)

        m1.update(12)
        m2.update(11)
        self.assertEqual(m1, m2)
コード例 #15
0
ファイル: test_minhash.py プロジェクト: yyht/datasketch
 def test_eq(self):
     m1 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m2 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m3 = minhash.MinHash(4, 2, hashfunc=fake_hash_func)
     m4 = minhash.MinHash(8, 1, hashfunc=fake_hash_func)
     m5 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m1.update(11)
     m2.update(12)
     m3.update(11)
     m4.update(11)
     m5.update(11)
     m1 = bBitMinHash(m1)
     m2 = bBitMinHash(m2)
     m3 = bBitMinHash(m3)
     m4 = bBitMinHash(m4)
     m5 = bBitMinHash(m5)
     self.assertNotEqual(m1, m2)
     self.assertNotEqual(m1, m3)
     self.assertNotEqual(m1, m4)
     self.assertEqual(m1, m5)
コード例 #16
0
 def test_pickle(self):
     for num_perm in [1 << i for i in range(4, 10)]:
         m = minhash.MinHash(num_perm=num_perm, hashobj=FakeHash)
         m.update(11)
         m.update(123)
         m.update(92)
         m.update(98)
         m.update(123218)
         m.update(32)
         for b in [1, 2, 3, 9, 27, 32]:
             bm = bBitMinHash(m, b)
             bm2 = pickle.loads(pickle.dumps(bm))
             self.assertEqual(bm, bm2)
コード例 #17
0
ファイル: minhash_test.py プロジェクト: xsongx/datasketch
    def test_deserialize(self):
        m1 = minhash.MinHash(10, 1)
        m1.digest(sha1(bytes(123)))
        buf = bytearray(m1.bytesize())
        m1.serialize(buf)

        # Test if we get back the exact same MinHash objects after
        # deserializing from bytes
        m1d = minhash.MinHash.deserialize(buf)
        self.assertEqual(m1d.seed, m1.seed)
        self.assertEqual(len(m1d.hashvalues), len(m1.hashvalues))
        self.assertTrue(
            all(hvd == hv for hv, hvd in zip(m1.hashvalues, m1d.hashvalues)))

        # Test if the permutation functions are the same
        m1.digest(sha1(bytes(34)))
        m1d.digest(sha1(bytes(34)))
        self.assertTrue(
            all(hvd == hv for hv, hvd in zip(m1.hashvalues, m1d.hashvalues)))
コード例 #18
0
 def test_union(self):
     m1 = minhash.MinHash(4, 1, hashobj=FakeHash)
     m2 = minhash.MinHash(4, 1, hashobj=FakeHash)
     m2.update(12)
     u = minhash.MinHash.union(m1, m2)
     self.assertTrue(u.jaccard(m2) == 1.0)
コード例 #19
0
 def test_merge(self):
     m1 = minhash.MinHash(4, 1, hashobj=FakeHash)
     m2 = minhash.MinHash(4, 1, hashobj=FakeHash)
     m2.update(12)
     m1.merge(m2)
     self.assertTrue(m1.jaccard(m2) == 1.0)
コード例 #20
0
ファイル: minhash_test.py プロジェクト: xsongx/datasketch
 def test_digest(self):
     m1 = minhash.MinHash(4, 1)
     m2 = minhash.MinHash(4, 1)
     m1.digest(sha1(bytes(12)))
     for i in range(4):
         self.assertTrue(m1.hashvalues[i] < m2.hashvalues[i])
コード例 #21
0
 def test_update(self):
     m1 = minhash.MinHash(4, 1, hashobj=FakeHash)
     m2 = minhash.MinHash(4, 1, hashobj=FakeHash)
     m1.update(12)
     for i in range(4):
         self.assertTrue(m1.hashvalues[i] < m2.hashvalues[i])
コード例 #22
0
 def test_is_empty(self):
     m = minhash.MinHash()
     self.assertTrue(m.is_empty())
コード例 #23
0
 def test_init(self):
     m1 = minhash.MinHash(4, 1, hashobj=FakeHash)
     m2 = minhash.MinHash(4, 1, hashobj=FakeHash)
     self.assertTrue(np.array_equal(m1.hashvalues, m2.hashvalues))
     self.assertTrue(np.array_equal(m1.permutations, m2.permutations))
コード例 #24
0
ファイル: test_minhash.py プロジェクト: yyht/datasketch
 def test_update(self):
     m1 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m2 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m1.update(12)
     for i in range(4):
         self.assertTrue(m1.hashvalues[i] < m2.hashvalues[i])
コード例 #25
0
 def test_serialize(self):
     m1 = minhash.MinHash(2, 1, hashobj=FakeHash)
     buf = bytearray(m1.bytesize())
     # Only test for syntax
     m1.serialize(buf)
コード例 #26
0
 def test_bytesize(self):
     m1 = minhash.MinHash(4, 1, hashobj=FakeHash)
     self.assertTrue(m1.bytesize() == (4 * 4) + 4 + 8)
コード例 #27
0
ファイル: test_minhash.py プロジェクト: yyht/datasketch
 def test_union(self):
     m1 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m2 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m2.update(12)
     u = minhash.MinHash.union(m1, m2)
     self.assertTrue(u.jaccard(m2) == 1.0)
コード例 #28
0
ファイル: minhash_test.py プロジェクト: xsongx/datasketch
 def test_init(self):
     m1 = minhash.MinHash(4, 1)
     m2 = minhash.MinHash(4, 1)
     for i in range(4):
         self.assertEqual(m1.hashvalues[i], m2.hashvalues[i])
         self.assertEqual((m1.permutations[i]), (m2.permutations[i]))
コード例 #29
0
ファイル: minhash_test.py プロジェクト: xsongx/datasketch
 def test_merge(self):
     m1 = minhash.MinHash(4, 1)
     m2 = minhash.MinHash(4, 1)
     m2.digest(sha1(bytes(12)))
     m1.merge(m2)
     self.assertTrue(minhash.jaccard([m1, m2]) == 1.0)
コード例 #30
0
ファイル: test_minhash.py プロジェクト: yyht/datasketch
 def test_init(self):
     m1 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     m2 = minhash.MinHash(4, 1, hashfunc=fake_hash_func)
     self.assertTrue(np.array_equal(m1.hashvalues, m2.hashvalues))
     self.assertTrue(np.array_equal(m1.permutations, m2.permutations))