def test_delete_key_shares_prefix_with_other_strings(self):
     """
     A string is deleted from the trie without removing strings that contain
     the same prefix.
     """
     # Make the tree
     input = ['ABC', 'ABD', 'A', 'XYZ', "WAFFLE TIME"]
     tree = PrefixTree(input)
     # Remove a string who shares letters with other strings
     tree.delete('A')
     # test the length of trie is adjusted correctly
     assert tree.size == len(input) - 1
     # test all the other strings with common nodes can still be found
     assert tree.contains('ABC') is True
     assert tree.contains('ABD') is True
     # test that the deleted string cannot be found
     assert tree.contains('A') is False
 def test_contains(self):
     strings = ['ABC', 'ABD', 'A', 'XYZ']
     tree = PrefixTree(strings)
     # Verify contains for all substrings
     assert tree.contains('ABC') is True
     assert tree.contains('ABD') is True
     assert tree.contains('AB') is False
     assert tree.contains('BC') is False
     assert tree.contains('BD') is False
     assert tree.contains('A') is True
     assert tree.contains('B') is False
     assert tree.contains('C') is False
     assert tree.contains('D') is False
     assert tree.contains('XYZ') is True
     assert tree.contains('XY') is False
     assert tree.contains('YZ') is False
     assert tree.contains('X') is False
     assert tree.contains('Y') is False
     assert tree.contains('Z') is False
Exemple #3
0
 def test_contains(self):
     strings = ['abc', 'abd', 'a', 'xyz']
     tree = PrefixTree(strings)
     # Verify contains for all substrings
     assert tree.contains('abc') is True
     assert tree.contains('abd') is True
     assert tree.contains('ab') is False
     assert tree.contains('bc') is False
     assert tree.contains('bd') is False
     assert tree.contains('a') is True
     assert tree.contains('b') is False
     assert tree.contains('b') is False
     assert tree.contains('d') is False
     assert tree.contains('xyz') is True
     assert tree.contains('xy') is False
     assert tree.contains('yz') is False
     assert tree.contains('x') is False
     assert tree.contains('y') is False
     assert tree.contains('z') is False