Skip to content

Commit cb8e3b6

Browse files
committed
Add List tests
1 parent 2a913f8 commit cb8e3b6

File tree

2 files changed

+154
-0
lines changed

2 files changed

+154
-0
lines changed

test/scratch_classes/CMakeLists.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# blockprototype_test
12
add_executable(
23
blockprototype_test
34
blockprototype_test.cpp
@@ -10,3 +11,17 @@ target_link_libraries(
1011
)
1112

1213
gtest_discover_tests(blockprototype_test)
14+
15+
# list_test
16+
add_executable(
17+
list_test
18+
list_test.cpp
19+
)
20+
21+
target_link_libraries(
22+
list_test
23+
GTest::gtest_main
24+
scratchcpp
25+
)
26+
27+
gtest_discover_tests(list_test)

test/scratch_classes/list_test.cpp

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
#include "scratch/list.h"
2+
#include "../common.h"
3+
4+
using namespace libscratchcpp;
5+
6+
TEST(ListTest, ToString)
7+
{
8+
List list("", "test list");
9+
ASSERT_EQ(list.toString(), "");
10+
11+
list.push_back("");
12+
ASSERT_EQ(list.toString(), "");
13+
14+
list.push_back("");
15+
list.push_back("");
16+
ASSERT_EQ(list.toString(), " ");
17+
18+
list.clear();
19+
list.push_back("item1");
20+
list.push_back("i t e m 2");
21+
list.push_back("item 3");
22+
ASSERT_EQ(list.toString(), "item1 i t e m 2 item 3");
23+
24+
list.clear();
25+
list.push_back(" ");
26+
list.push_back("a ");
27+
list.push_back(" b");
28+
list.push_back(" c ");
29+
ASSERT_EQ(list.toString(), " a b c ");
30+
31+
list.clear();
32+
list.push_back("áä");
33+
list.push_back("ľ š");
34+
ASSERT_EQ(list.toString(), "áä ľ š");
35+
}
36+
37+
TEST(ListTest, IndexOf)
38+
{
39+
List list("", "test list");
40+
list.push_back("Lorem");
41+
list.push_back("ipsum");
42+
list.push_back("dolor");
43+
list.push_back("sit");
44+
list.push_back("amet");
45+
list.push_back("é čľíá");
46+
47+
ASSERT_EQ(list.indexOf(""), -1);
48+
ASSERT_EQ(list.indexOf("test"), -1);
49+
ASSERT_EQ(list.indexOf("Lorem"), 0);
50+
ASSERT_EQ(list.indexOf("ipsum"), 1);
51+
ASSERT_EQ(list.indexOf("iPsum"), 1);
52+
ASSERT_EQ(list.indexOf("dolor"), 2);
53+
ASSERT_EQ(list.indexOf("sit"), 3);
54+
ASSERT_EQ(list.indexOf("amet"), 4);
55+
ASSERT_EQ(list.indexOf("é čľíá"), 5);
56+
57+
list.clear();
58+
list.push_back("");
59+
ASSERT_EQ(list.indexOf(""), 0);
60+
}
61+
62+
TEST(ListTest, Contains)
63+
{
64+
List list("", "test list");
65+
list.push_back("Lorem");
66+
list.push_back("ipsum");
67+
list.push_back("dolor");
68+
list.push_back("sit");
69+
list.push_back("amet");
70+
list.push_back("é čľíá");
71+
72+
ASSERT_FALSE(list.contains(""));
73+
ASSERT_FALSE(list.contains("test"));
74+
ASSERT_TRUE(list.contains("Lorem"));
75+
ASSERT_TRUE(list.contains("ipsum"));
76+
ASSERT_TRUE(list.contains("iPsum"));
77+
ASSERT_TRUE(list.contains("dolor"));
78+
ASSERT_TRUE(list.contains("sit"));
79+
ASSERT_TRUE(list.contains("amet"));
80+
ASSERT_TRUE(list.contains("é čľíá"));
81+
82+
list.clear();
83+
list.push_back("");
84+
ASSERT_TRUE(list.contains(""));
85+
}
86+
87+
TEST(ListTest, RemoveAt)
88+
{
89+
List list("", "test list");
90+
list.push_back("Lorem");
91+
list.push_back("ipsum");
92+
list.push_back("dolor");
93+
list.push_back("sit");
94+
list.push_back("amet");
95+
list.removeAt(1);
96+
ASSERT_EQ(list.toString(), "Lorem dolor sit amet");
97+
list.removeAt(3);
98+
ASSERT_EQ(list.toString(), "Lorem dolor sit");
99+
list.removeAt(0);
100+
ASSERT_EQ(list.toString(), "dolor sit");
101+
list.removeAt(3);
102+
ASSERT_EQ(list.toString(), "dolor");
103+
list.removeAt(0);
104+
ASSERT_TRUE(list.empty());
105+
}
106+
107+
TEST(ListTest, Insert)
108+
{
109+
List list("", "test list");
110+
list.insert(0, "Lorem");
111+
list.insert(0, "ipsum");
112+
list.insert(0, "dolor");
113+
ASSERT_EQ(list.toString(), "dolor ipsum Lorem");
114+
list.insert(1, "sit");
115+
ASSERT_EQ(list.toString(), "dolor sit ipsum Lorem");
116+
list.insert(2, "amet");
117+
ASSERT_EQ(list.toString(), "dolor sit amet ipsum Lorem");
118+
list.insert(5, "consectetur");
119+
ASSERT_EQ(list.toString(), "dolor sit amet ipsum Lorem consectetur");
120+
list.insert(0, "adipiscing");
121+
ASSERT_EQ(list.toString(), "adipiscing dolor sit amet ipsum Lorem consectetur");
122+
}
123+
124+
TEST(ListTest, Replace)
125+
{
126+
List list("", "test list");
127+
list.push_back("Lorem");
128+
list.push_back("ipsum");
129+
list.push_back("dolor");
130+
list.push_back("sit");
131+
list.push_back("amet");
132+
ASSERT_EQ(list.toString(), "Lorem ipsum dolor sit amet");
133+
list.replace(0, "test1");
134+
ASSERT_EQ(list.toString(), "test1 ipsum dolor sit amet");
135+
list.replace(4, "test2");
136+
ASSERT_EQ(list.toString(), "test1 ipsum dolor sit test2");
137+
list.replace(2, "test3");
138+
ASSERT_EQ(list.toString(), "test1 ipsum test3 sit test2");
139+
}

0 commit comments

Comments
 (0)