Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 2bc4ada

Browse files
committed
add new test (test_irange_change_lossiness)
1 parent 0ea9467 commit 2bc4ada

File tree

1 file changed

+70
-2
lines changed

1 file changed

+70
-2
lines changed

tests/cmocka/rangeset_tests.c

Lines changed: 70 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
*/
1717

1818
static void test_irange_basic(void **state);
19+
static void test_irange_change_lossiness(void **state);
1920

2021
static void test_irange_list_union_merge(void **state);
2122
static void test_irange_list_union_lossy_cov(void **state);
@@ -33,6 +34,7 @@ main(void)
3334
const struct CMUnitTest tests[] =
3435
{
3536
cmocka_unit_test(test_irange_basic),
37+
cmocka_unit_test(test_irange_change_lossiness),
3638
cmocka_unit_test(test_irange_list_union_merge),
3739
cmocka_unit_test(test_irange_list_union_lossy_cov),
3840
cmocka_unit_test(test_irange_list_union_complete_cov),
@@ -75,10 +77,76 @@ test_irange_basic(void **state)
7577
assert_true(is_irange_valid(irange));
7678

7779
/* test allocation */
78-
irange_list = NIL;
79-
irange_list = lappend_irange(irange_list, irange);
80+
irange = make_irange(100, 200, IR_LOSSY);
81+
irange_list = lappend_irange(NIL, irange);
8082
assert_memory_equal(&irange, &linitial_irange(irange_list), sizeof(IndexRange));
8183
assert_memory_equal(&irange, &llast_irange(irange_list), sizeof(IndexRange));
84+
85+
/* test length */
86+
irange_list = NIL;
87+
assert_int_equal(irange_list_length(irange_list), 0);
88+
irange_list = lappend_irange(irange_list, make_irange(10, 20, IR_LOSSY));
89+
assert_int_equal(irange_list_length(irange_list), 11);
90+
irange_list = lappend_irange(irange_list, make_irange(21, 30, IR_LOSSY));
91+
assert_int_equal(irange_list_length(irange_list), 21);
92+
}
93+
94+
95+
/* Test lossiness switcher */
96+
static void
97+
test_irange_change_lossiness(void **state)
98+
{
99+
List *irange_list;
100+
101+
/* test lossiness change (NIL) */
102+
irange_list = irange_list_set_lossiness(NIL, IR_LOSSY);
103+
assert_ptr_equal(irange_list, NIL);
104+
irange_list = irange_list_set_lossiness(NIL, IR_COMPLETE);
105+
assert_ptr_equal(irange_list, NIL);
106+
107+
/* test lossiness change (no-op) #1 */
108+
irange_list = list_make1_irange(make_irange(10, 20, IR_LOSSY));
109+
irange_list = irange_list_set_lossiness(irange_list, IR_LOSSY);
110+
assert_string_equal(rangeset_print(irange_list), "[10-20]L");
111+
112+
/* test lossiness change (no-op) #2 */
113+
irange_list = list_make1_irange(make_irange(30, 40, IR_COMPLETE));
114+
irange_list = irange_list_set_lossiness(irange_list, IR_COMPLETE);
115+
assert_string_equal(rangeset_print(irange_list), "[30-40]C");
116+
117+
/* test lossiness change (single element) #1 */
118+
irange_list = list_make1_irange(make_irange(10, 20, IR_LOSSY));
119+
irange_list = irange_list_set_lossiness(irange_list, IR_COMPLETE);
120+
assert_string_equal(rangeset_print(irange_list), "[10-20]C");
121+
122+
/* test lossiness change (single element) #2 */
123+
irange_list = list_make1_irange(make_irange(30, 40, IR_COMPLETE));
124+
irange_list = irange_list_set_lossiness(irange_list, IR_LOSSY);
125+
assert_string_equal(rangeset_print(irange_list), "[30-40]L");
126+
127+
/* test lossiness change (multiple elements, adjacent) #1 */
128+
irange_list = list_make1_irange(make_irange(10, 20, IR_LOSSY));
129+
irange_list = lappend_irange(irange_list, make_irange(21, 40, IR_COMPLETE));
130+
irange_list = irange_list_set_lossiness(irange_list, IR_COMPLETE);
131+
assert_string_equal(rangeset_print(irange_list), "[10-40]C");
132+
133+
/* test lossiness change (multiple elements, adjacent) #2 */
134+
irange_list = list_make1_irange(make_irange(10, 20, IR_COMPLETE));
135+
irange_list = lappend_irange(irange_list, make_irange(21, 40, IR_LOSSY));
136+
irange_list = irange_list_set_lossiness(irange_list, IR_LOSSY);
137+
assert_string_equal(rangeset_print(irange_list), "[10-40]L");
138+
139+
/* test lossiness change (multiple elements, non-adjacent) #1 */
140+
irange_list = list_make1_irange(make_irange(10, 15, IR_COMPLETE));
141+
irange_list = lappend_irange(irange_list, make_irange(21, 40, IR_LOSSY));
142+
irange_list = irange_list_set_lossiness(irange_list, IR_COMPLETE);
143+
assert_string_equal(rangeset_print(irange_list), "[10-15]C, [21-40]C");
144+
145+
/* test lossiness change (multiple elements, non-adjacent) #2 */
146+
irange_list = list_make1_irange(make_irange(10, 15, IR_LOSSY));
147+
irange_list = lappend_irange(irange_list, make_irange(21, 40, IR_COMPLETE));
148+
irange_list = irange_list_set_lossiness(irange_list, IR_LOSSY);
149+
assert_string_equal(rangeset_print(irange_list), "[10-15]L, [21-40]L");
82150
}
83151

84152

0 commit comments

Comments
 (0)