1 #include <stic.h>
2 
3 #include <stdlib.h> /* free() */
4 
5 #include "../../src/engine/parsing.h"
6 #include "../../src/engine/var.h"
7 
8 #include "asserts.h"
9 
TEST(sum_of_two_elements)10 TEST(sum_of_two_elements)
11 {
12 	ASSERT_INT_OK("1 + 1", 2);
13 
14 	ASSERT_INT_OK("-1 + 4", 3);
15 	ASSERT_INT_OK("- 1 + 4", 3);
16 
17 	ASSERT_INT_OK("1 + -2", -1);
18 	ASSERT_INT_OK("1 +- 2", -1);
19 	ASSERT_INT_OK("1 + - 2", -1);
20 }
21 
TEST(difference_of_two_elements)22 TEST(difference_of_two_elements)
23 {
24 	ASSERT_INT_OK("1 - 1", 0);
25 
26 	ASSERT_INT_OK("-1 - 4", -5);
27 	ASSERT_INT_OK("- 1 - 4", -5);
28 
29 	ASSERT_INT_OK("1 - -2", 3);
30 	ASSERT_INT_OK("1 -- 2", 3);
31 	ASSERT_INT_OK("1 - - 2", 3);
32 }
33 
TEST(more_than_two_elements)34 TEST(more_than_two_elements)
35 {
36 	ASSERT_INT_OK("1 + 1 + 1", 3);
37 	ASSERT_INT_OK("1 + 2 + 3 + 4", 10);
38 
39 	ASSERT_INT_OK("1 - 1 - 1", -1);
40 	ASSERT_INT_OK("1 - 2 - 3 - 4", -8);
41 }
42 
TEST(incomplete_expressions)43 TEST(incomplete_expressions)
44 {
45 	ASSERT_FAIL("1 +", PE_INVALID_EXPRESSION);
46 	ASSERT_FAIL("1+", PE_INVALID_EXPRESSION);
47 	ASSERT_FAIL("0 -", PE_INVALID_EXPRESSION);
48 	ASSERT_FAIL("0-", PE_INVALID_EXPRESSION);
49 }
50 
51 /* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */
52 /* vim: set cinoptions+=t0 filetype=c : */
53