示例#1
0
 def test_search(self):
     trie = Trie(['test', 'testing', 'testing methodology'], [1, 3, 2])
     self.assertEqual(trie.search('tes', 3),
                      ['testing', 'testing methodology', 'test'])
     self.assertEqual(trie.search('tes', 2),
                      ['testing', 'testing methodology'])
     self.assertEqual(trie.search('testi', 3),
                      ['testing', 'testing methodology'])
示例#2
0
class Autocompleter:
    def __init__(self, capacity: int, phrases: List[str],
                 frequencies: List[int]):
        assert capacity >= len(
            phrases), "Cannot insert more phrases than capacity"
        self.trie = Trie(phrases, frequencies)
        self.cache = LRUCache(capacity, phrases)

    def search(self, phrase: str, results_size: int) -> List[str]:
        return self.trie.search(phrase, results_size)

    def commit(self, phrase: str, freq: int = 1):
        assert phrase != "", "Should not insert an empty string"

        self.trie.insert(phrase, freq)
        removed = self.cache.put(phrase)
        if removed:
            self.trie.delete(removed)
        return removed
示例#3
0
def test_trie_get_words(words):
    trie = Trie(words)
    assert trie.get_words('me') == set(['mean', 'meat'])
示例#4
0
def test_trie_supports_membership(words):
    trie = Trie(words)
    assert 'table' in trie
    assert 'al' in trie
    assert 'sup' not in trie
示例#5
0
def test_trie(words):
    trie = Trie(words)

    print(trie)
示例#6
0
 def __init__(self, words=None):
     self.trie = Trie(words or WORDS)
示例#7
0
class Autocomplete:
    def __init__(self, words=None):
        self.trie = Trie(words or WORDS)

    def get(self, prefix):
        return self.trie.get_words(prefix)
示例#8
0
 def __init__(self, capacity: int, phrases: List[str],
              frequencies: List[int]):
     assert capacity >= len(
         phrases), "Cannot insert more phrases than capacity"
     self.trie = Trie(phrases, frequencies)
     self.cache = LRUCache(capacity, phrases)
示例#9
0
    def test_constructor(self):
        self.assertRaises(AssertionError, Trie, ['test'], [1, 2])

        trie = Trie(['test'], [1])
        self.assertTrue(trie.exists('test'))
示例#10
0
 def test_deletion(self):
     trie = Trie(['test', 'testing', 'testing methodology'], [1, 3, 2])
     trie.delete('testing')
     self.assertFalse(trie.exists('testing'))
     self.assertTrue(trie.exists('test'))
     self.assertTrue(trie.exists('testing methodology'))
示例#11
0
 def test_no_existance(self):
     trie = Trie(['test'], [1])
     self.assertFalse(trie.exists('testing'))
示例#12
0
 def test_insertion_and_existance(self):
     trie = Trie(['test'], [1])
     trie.insert('testing')
     self.assertTrue(trie.exists('testing'))