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
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