コード例 #1
0
ファイル: test_trie.py プロジェクト: LuckyNicky/pycrawler
 def test_reuse_id(self):
     trie = Trie()
     ids = {w: trie.insert(w) for w in [u"abc", u"abd", u"abe"]}
     trie.remove(u"abc")
     trie.remove(u"abe")
     v = trie.insert(u"abf")
     self.assertEqual(v, ids[u"abe"])
     v = trie.insert(u"abg")
     self.assertEqual(v, ids[u"abc"])
     v = trie.insert(u"abh")
     self.assertEqual(v, 3)
     v = trie.insert(u"abi")
     self.assertEqual(v, 4)
コード例 #2
0
ファイル: test_trie.py プロジェクト: LuckyNicky/pycrawler
 def test_init(self):
     trie = Trie()
     ids = [trie.insert(w) for w in [u'Ruby', u'ruby', u'rb']]
     self.assertEqual(ids, [0, 1, 2])
     self.assertEqual(u"ruby" in trie, True)
     self.assertEqual(u"rubyx" in trie, False)
     self.assertEqual(trie.remove(u"ruby"), 1)
     self.assertEqual(trie.remove(u"ruby"), -1)
コード例 #3
0
ファイル: test_trie.py プロジェクト: LuckyNicky/pycrawler
 def test_remove_words(self):
     dir_ = os.path.dirname(__file__)
     trie = Trie()
     for i in range(3):
         ids = []
         words = []
         with open(os.path.join(dir_, "../bench/words.txt")) as fi:
             for l in fi:
                 l = l.strip()
                 if isinstance(l, bytes):
                     l = l.decode("utf8")
                 if len(l) > 0:
                     words.append(l)
                     ids.append(trie.insert(l))
         for id_, w in zip(ids, words):
             self.assertEqual(id_, trie.remove(w))
コード例 #4
0
ファイル: test_trie.py プロジェクト: LuckyNicky/pycrawler
 def test_ignore_case(self):
     trie = Trie(ignore_case=True)
     ids = [trie.insert(w) for w in [u'Ruby', u'ruby', u'rb']]
     self.assertEqual(ids, [0, 0, 1])
     self.assertEqual(trie.remove(u"ruby"), 0)
     self.assertEqual(trie.remove(u"Ruby"), -1)