1
-
2
1
#include < TrieTree.h>
3
2
#include < algorithm>
4
3
#include < gtest/gtest.h>
@@ -9,6 +8,7 @@ namespace {
9
8
{
10
9
protected:
11
10
my::Trie trie;
11
+ my::Trie trie_init_list = { " hello" , " world" , " trie" , " tree" , " test" };
12
12
13
13
void SetUp () override
14
14
{
@@ -19,29 +19,33 @@ namespace {
19
19
}
20
20
};
21
21
22
+ // Test for inserting and searching words
22
23
TEST_F (TrieTest, InsertAndSearch)
23
24
{
24
25
EXPECT_TRUE (trie.search (" hello" ));
25
26
EXPECT_TRUE (trie.search (" world" ));
26
- EXPECT_FALSE (trie.search (" hell" )); // Partial match
27
- EXPECT_FALSE (trie.search (" hero" )); // Non-existing word
27
+ EXPECT_FALSE (trie.search (" hell" ));
28
+ EXPECT_FALSE (trie.search (" hero" ));
28
29
}
29
30
31
+ // Test for checking words that start with a specific prefix
30
32
TEST_F (TrieTest, StartsWith)
31
33
{
32
34
EXPECT_TRUE (trie.starts_with (" hel" ));
33
35
EXPECT_TRUE (trie.starts_with (" wor" ));
34
- EXPECT_FALSE (trie.starts_with (" her" )); // Non-existing prefix
36
+ EXPECT_FALSE (trie.starts_with (" her" ));
35
37
}
36
38
39
+ // Test for removing a word from the trie
37
40
TEST_F (TrieTest, RemoveWord)
38
41
{
39
42
EXPECT_TRUE (trie.search (" hello" ));
40
43
trie.remove (" hello" );
41
44
EXPECT_FALSE (trie.search (" hello" ));
42
- EXPECT_TRUE (trie.search (" help" )); // Ensure other words are unaffected
45
+ EXPECT_TRUE (trie.search (" help" ));
43
46
}
44
47
48
+ // Test for retrieving all words from the trie
45
49
TEST_F (TrieTest, GetAllWords)
46
50
{
47
51
std::vector<std::string> words = trie.get_all_words ();
@@ -51,6 +55,53 @@ namespace {
51
55
EXPECT_NE (std::find (words.begin (), words.end (), " helium" ), words.end ());
52
56
}
53
57
58
+ // Test for initializing Trie with an initializer list
59
+ TEST_F (TrieTest, InsertAndSearch_init_list)
60
+ {
61
+ my::Trie trie = { " hello" , " world" , " trie" , " tree" , " test" };
62
+
63
+ EXPECT_TRUE (trie_init_list.search (" hello" ));
64
+ EXPECT_TRUE (trie_init_list.search (" world" ));
65
+ EXPECT_TRUE (trie_init_list.search (" trie" ));
66
+ EXPECT_TRUE (trie_init_list.search (" tree" ));
67
+ EXPECT_TRUE (trie_init_list.search (" test" ));
68
+ EXPECT_FALSE (trie_init_list.search (" nonexistent" ));
69
+ }
70
+
71
+ // Test for checking words that start with a prefix using initializer list
72
+ TEST_F (TrieTest, StartsWith_init_list)
73
+ {
74
+ my::Trie trie = { " hello" , " world" , " trie" , " tree" , " test" };
75
+
76
+ EXPECT_TRUE (trie_init_list.starts_with (" he" ));
77
+ EXPECT_TRUE (trie_init_list.starts_with (" wo" ));
78
+ EXPECT_TRUE (trie_init_list.starts_with (" tri" ));
79
+ EXPECT_TRUE (trie_init_list.starts_with (" tre" ));
80
+ EXPECT_TRUE (trie_init_list.starts_with (" te" ));
81
+ EXPECT_FALSE (trie_init_list.starts_with (" non" ));
82
+ }
83
+
84
+ // Test for removing a word with an initializer list
85
+ TEST_F (TrieTest, RemoveWord_init_list)
86
+ {
87
+ my::Trie trie_init_list = { " hello" , " world" , " trie" , " tree" , " test" };
88
+
89
+ EXPECT_TRUE (trie_init_list.search (" test" ));
90
+ trie_init_list.remove (" test" );
91
+ EXPECT_FALSE (trie_init_list.search (" test" ));
92
+ }
93
+
94
+ // Test for retrieving all words from a Trie initialized with an initializer list
95
+ TEST_F (TrieTest, GetAllWords_init_list)
96
+ {
97
+ std::vector<std::string> words = trie_init_list.get_all_words ();
98
+ EXPECT_NE (std::find (words.begin (), words.end (), " hello" ), words.end ());
99
+ EXPECT_NE (std::find (words.begin (), words.end (), " world" ), words.end ());
100
+ EXPECT_NE (std::find (words.begin (), words.end (), " trie" ), words.end ());
101
+ EXPECT_NE (std::find (words.begin (), words.end (), " tree" ), words.end ());
102
+ EXPECT_NE (std::find (words.begin (), words.end (), " test" ), words.end ());
103
+ }
104
+
54
105
} // namespace
55
106
56
107
int main (int argc, char ** argv)
0 commit comments