def test_size_with_repeated_insert(self): tree = PrefixTree() # Verify size after initializing tree assert tree.size == 0 assert tree.is_empty() is True # Verify size after first insert tree.insert('A') assert tree.size == 1 assert tree.is_empty() is False # Verify size after repeating first insert tree.insert('A') assert tree.size == 1 # Verify size after second insert tree.insert('ABC') assert tree.size == 2 # Verify size after repeating second insert tree.insert('ABC') assert tree.size == 2 # Verify size after third insert tree.insert('ABD') assert tree.size == 3 # Verify size after repeating third insert tree.insert('ABD') assert tree.size == 3 # Verify size after fourth insert tree.insert('XYZ') assert tree.size == 4 # Verify size after repeating fourth insert tree.insert('XYZ') assert tree.size == 4
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_size_and_is_empty(self): tree = PrefixTree() # Verify size after initializing tree assert tree.size == 0 assert tree.is_empty() is True # Verify size after first insert tree.insert('A') assert tree.size == 1 assert tree.is_empty() is False # Verify size after second insert tree.insert('ABC') assert tree.size == 2 assert tree.is_empty() is False # Verify size after third insert tree.insert('ABD') assert tree.size == 3 assert tree.is_empty() is False # Verify size after fourth insert tree.insert('XYZ') assert tree.size == 4 assert tree.is_empty() is False