@@ -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