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