9
9
#include "debug_print.c"
10
10
11
11
12
- /* declarations of tests */
13
- static void test_1 (void * * state );
12
+ /*
13
+ * -----------------------
14
+ * Declarations of tests
15
+ * -----------------------
16
+ */
17
+
18
+ static void test_irange_list_union (void * * state );
14
19
15
20
16
21
/* Entrypoint */
17
22
int
18
23
main (void )
19
24
{
25
+ /* Array of test functions */
20
26
const struct CMUnitTest tests [] =
21
27
{
22
- cmocka_unit_test (test_1 ),
28
+ cmocka_unit_test (test_irange_list_union ),
23
29
};
24
30
31
+ /* Run series of tests */
25
32
return cmocka_run_group_tests (tests , NULL , NULL );
26
33
}
27
34
@@ -32,17 +39,72 @@ main(void)
32
39
*/
33
40
34
41
static void
35
- test_1 (void * * state )
42
+ test_irange_list_union (void * * state )
36
43
{
37
- IndexRange a = make_irange (0 , 100 , true),
38
- b = make_irange (20 , 50 , false);
39
-
44
+ IndexRange a , b ;
40
45
List * union_result ;
41
46
47
+
48
+ /* Subtest #0 */
49
+ a = make_irange (0 , 100 , true);
50
+ b = make_irange (0 , 100 , true);
51
+ union_result = irange_list_union (list_make1_irange (a ),
52
+ list_make1_irange (b ));
53
+
54
+ assert_string_equal (rangeset_print (union_result ),
55
+ "[0-100]L" );
56
+
57
+ /* Subtest #1 */
58
+ a = make_irange (0 , 100 , true);
59
+ b = make_irange (0 , 100 , false);
60
+ union_result = irange_list_union (list_make1_irange (a ),
61
+ list_make1_irange (b ));
62
+
63
+ assert_string_equal (rangeset_print (union_result ),
64
+ "[0-100]C" );
65
+
66
+ /* Subtest #2 */
67
+ a = make_irange (0 , 100 , true);
68
+ b = make_irange (0 , 50 , false);
69
+ union_result = irange_list_union (list_make1_irange (a ),
70
+ list_make1_irange (b ));
71
+
72
+ assert_string_equal (rangeset_print (union_result ),
73
+ "[0-50]C, [51-100]L" );
74
+
75
+ /* Subtest #3 */
76
+ a = make_irange (0 , 100 , true);
77
+ b = make_irange (50 , 100 , false);
78
+ union_result = irange_list_union (list_make1_irange (a ),
79
+ list_make1_irange (b ));
80
+
81
+ assert_string_equal (rangeset_print (union_result ),
82
+ "[0-49]L, [50-100]C" );
83
+
84
+ /* Subtest #4 */
85
+ a = make_irange (0 , 100 , true);
86
+ b = make_irange (50 , 99 , false);
87
+ union_result = irange_list_union (list_make1_irange (a ),
88
+ list_make1_irange (b ));
89
+
90
+ assert_string_equal (rangeset_print (union_result ),
91
+ "[0-49]L, [50-99]C, 100L" );
92
+
93
+ /* Subtest #5 */
94
+ a = make_irange (0 , 100 , true);
95
+ b = make_irange (1 , 100 , false);
96
+ union_result = irange_list_union (list_make1_irange (a ),
97
+ list_make1_irange (b ));
98
+
99
+ assert_string_equal (rangeset_print (union_result ),
100
+ "0L, [1-100]C" );
101
+
102
+ /* Subtest #6 */
103
+ a = make_irange (0 , 100 , true);
104
+ b = make_irange (20 , 50 , false);
42
105
union_result = irange_list_union (list_make1_irange (a ),
43
106
list_make1_irange (b ));
44
107
45
108
assert_string_equal (rangeset_print (union_result ),
46
109
"[0-19]L, [20-50]C, [51-100]L" );
47
110
}
48
-
0 commit comments