Skip to content

Commit 346bf9d

Browse files
committed
adds new expression evaluation unit tests for strings
1 parent 14ea9f0 commit 346bf9d

File tree

1 file changed

+113
-5
lines changed

1 file changed

+113
-5
lines changed

tests/expression_tree_leaf_node.cpp

Lines changed: 113 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -148,13 +148,121 @@ void test_string_evaluation() {
148148

149149
// test non-const string
150150
{
151-
fixture.some_string = "hello world!";
151+
// test equals
152+
{
153+
auto expr = make_expr(&test_fixture::some_string, &op::equals, std::string("hello world!"));
154+
155+
fixture.some_string = "hello world!";
156+
assert(expr->evaluate(fixture));
157+
158+
fixture.some_string = "hey, world!";
159+
assert(!expr->evaluate(fixture));
160+
161+
fixture.some_string = "1234";
162+
assert(!expr->evaluate(fixture));
163+
164+
fixture.some_string = "-----";
165+
assert(!expr->evaluate(fixture));
166+
167+
fixture.some_string = "";
168+
assert(!expr->evaluate(fixture));
169+
170+
fixture.some_string = " ";
171+
assert(!expr->evaluate(fixture));
172+
}
173+
174+
// test not_equals
175+
{
176+
auto expr = make_expr(&test_fixture::some_string, &op::not_equals, std::string("hello world!"));
177+
178+
fixture.some_string = "hello world!";
179+
assert(!expr->evaluate(fixture));
180+
181+
fixture.some_string = "hey, world!";
182+
assert(expr->evaluate(fixture));
183+
184+
fixture.some_string = "1234";
185+
assert(expr->evaluate(fixture));
186+
187+
fixture.some_string = "-----";
188+
assert(expr->evaluate(fixture));
189+
190+
fixture.some_string = "";
191+
assert(expr->evaluate(fixture));
192+
193+
fixture.some_string = " ";
194+
assert(expr->evaluate(fixture));
195+
}
196+
197+
// test less_than
198+
{
199+
auto expr = make_expr(&test_fixture::some_string, &op::less_than, std::string("this IS 4 T3s7 $tRing "));
200+
201+
fixture.some_string = "u";
202+
assert(!expr->evaluate(fixture));
152203

153-
auto node = make_expr(&test_fixture::some_string, &op::equals, std::string("hello world!"));
154-
assert(node->evaluate(fixture));
204+
fixture.some_string = "z";
205+
assert(!expr->evaluate(fixture));
155206

156-
fixture.some_string = "hey, world!";
157-
assert(!node->evaluate(fixture));
207+
fixture.some_string = "this IS 4 T3s7 $tRing ";
208+
assert(!expr->evaluate(fixture));
209+
210+
fixture.some_string = "";
211+
assert(expr->evaluate(fixture));
212+
213+
fixture.some_string = "1234567890";
214+
assert(expr->evaluate(fixture));
215+
216+
fixture.some_string = "A";
217+
assert(expr->evaluate(fixture));
218+
219+
fixture.some_string = "this ";
220+
assert(expr->evaluate(fixture));
221+
222+
fixture.some_string = "stuff";
223+
assert(expr->evaluate(fixture));
224+
225+
fixture.some_string = "abcdefghijklmnopqrstuvwxyz";
226+
assert(expr->evaluate(fixture));
227+
228+
fixture.some_string = "this IS 4 T3s7 $tRing ";
229+
assert(!expr->evaluate(fixture));
230+
}
231+
232+
// test greater_than
233+
{
234+
auto expr = make_expr(&test_fixture::some_string, &op::greater_than, std::string("this IS 4 T3s7 $tRing "));
235+
236+
fixture.some_string = "u";
237+
assert(expr->evaluate(fixture));
238+
239+
fixture.some_string = "z";
240+
assert(expr->evaluate(fixture));
241+
242+
fixture.some_string = "this IS 4 T3s7 $tRing ";
243+
assert(expr->evaluate(fixture));
244+
245+
fixture.some_string = "";
246+
assert(!expr->evaluate(fixture));
247+
248+
fixture.some_string = "1234567890";
249+
assert(!expr->evaluate(fixture));
250+
251+
fixture.some_string = "A";
252+
assert(!expr->evaluate(fixture));
253+
254+
fixture.some_string = "this ";
255+
assert(!expr->evaluate(fixture));
256+
257+
fixture.some_string = "stuff";
258+
assert(!expr->evaluate(fixture));
259+
260+
fixture.some_string = "abcdefghijklmnopqrstuvwxyz";
261+
assert(!expr->evaluate(fixture));
262+
263+
fixture.some_string = "this IS 4 T3s7 $tRing ";
264+
assert(!expr->evaluate(fixture));
265+
}
158266
}
159267
}
160268

0 commit comments

Comments
 (0)