Skip to content

Commit adb3bbf

Browse files
Add more test cases for Trie implementation
1 parent b31d551 commit adb3bbf

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

trie/test_trie.py

+24
Original file line numberDiff line numberDiff line change
@@ -146,5 +146,29 @@ def test_empty_trie(self):
146146
self.assertFalse(self.trie.search("any"))
147147
self.assertFalse(self.trie.delete("any"))
148148

149+
def test_large_dataset(self):
150+
words = [f"word{i}" for i in range(10000)]
151+
for word in words:
152+
self.trie.insert(word)
153+
for word in words:
154+
self.assertTrue(self.trie.search(word))
155+
self.assertFalse(self.trie.search("nonexistent"))
156+
157+
def test_prefix_matching(self):
158+
words = ["prefix", "preface", "prepare", "prevent"]
159+
for word in words:
160+
self.trie.insert(word)
161+
self.assertTrue(all(self.trie.search(word[:i]) for word in words for i in range(3, len(word) + 1)))
162+
self.assertFalse(self.trie.search("pre"))
163+
164+
def test_edge_cases(self):
165+
self.trie.insert("a")
166+
self.assertTrue(self.trie.search("a"))
167+
self.trie.delete("a")
168+
self.assertFalse(self.trie.search("a"))
169+
self.trie.insert("ab")
170+
self.assertTrue(self.trie.search("ab"))
171+
self.assertFalse(self.trie.search("a"))
172+
149173
if __name__ == "__main__":
150174
unittest.main()

0 commit comments

Comments
 (0)