Skip to content

Commit 07bf75f

Browse files
committed
add more tests for rangeset.c, remove 'rangeset_tests' from repo
1 parent f552d2b commit 07bf75f

File tree

3 files changed

+96
-2
lines changed

3 files changed

+96
-2
lines changed

tests/cmocka/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rangeset_tests

tests/cmocka/rangeset_tests

-185 KB
Binary file not shown.

tests/cmocka/rangeset_tests.c

Lines changed: 95 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
static void test_irange_list_union_merge(void **state);
1919
static void test_irange_list_union_lossy_cov(void **state);
2020
static void test_irange_list_union_complete_cov(void **state);
21+
static void test_irange_list_union_intersection(void **state);
2122

2223

2324
/* Entrypoint */
@@ -30,6 +31,7 @@ main(void)
3031
cmocka_unit_test(test_irange_list_union_merge),
3132
cmocka_unit_test(test_irange_list_union_lossy_cov),
3233
cmocka_unit_test(test_irange_list_union_complete_cov),
34+
cmocka_unit_test(test_irange_list_union_intersection),
3335
};
3436

3537
/* Run series of tests */
@@ -46,14 +48,13 @@ main(void)
4648
static void
4749
test_irange_list_union_merge(void **state)
4850
{
49-
IndexRange a;
51+
IndexRange a, b;
5052
List *unmerged,
5153
*union_result;
5254

5355

5456
/* Subtest #0 */
5557
a = make_irange(0, 8, IR_COMPLETE);
56-
5758
unmerged = NIL;
5859
unmerged = lappend_irange(unmerged, make_irange(9, 10, IR_COMPLETE));
5960
unmerged = lappend_irange(unmerged, make_irange(11, 11, IR_LOSSY));
@@ -66,6 +67,31 @@ test_irange_list_union_merge(void **state)
6667

6768
assert_string_equal(rangeset_print(union_result),
6869
"[0-10]C, 11L, [12-24]C");
70+
71+
union_result = irange_list_union(unmerged, unmerged);
72+
73+
assert_string_equal(rangeset_print(union_result),
74+
"[9-10]C, 11L, [12-24]C");
75+
76+
77+
/* Subtest #1 */
78+
a = make_irange(0, 10, IR_COMPLETE);
79+
b = make_irange(12, 20, IR_COMPLETE);
80+
union_result = irange_list_union(list_make1_irange(a),
81+
list_make1_irange(b));
82+
83+
assert_string_equal(rangeset_print(union_result),
84+
"[0-10]C, [12-20]C");
85+
86+
/* Subtest #2 */
87+
a = make_irange(0, 10, IR_LOSSY);
88+
b = make_irange(11, 20, IR_LOSSY);
89+
union_result = irange_list_union(list_make1_irange(a),
90+
list_make1_irange(b));
91+
92+
assert_string_equal(rangeset_print(union_result),
93+
"[0-20]L");
94+
6995
}
7096

7197
/* Lossy IndexRange covers complete IndexRange */
@@ -184,3 +210,70 @@ test_irange_list_union_complete_cov(void **state)
184210
assert_string_equal(rangeset_print(union_result),
185211
"[0-100]C");
186212
}
213+
214+
static void
215+
test_irange_list_union_intersection(void **state)
216+
{
217+
IndexRange a, b;
218+
List *unmerged,
219+
*union_result;
220+
221+
222+
/* Subtest #0 */
223+
a = make_irange(0, 55, IR_COMPLETE);
224+
b = make_irange(55, 100, IR_COMPLETE);
225+
union_result = irange_list_union(list_make1_irange(a),
226+
list_make1_irange(b));
227+
228+
assert_string_equal(rangeset_print(union_result),
229+
"[0-100]C");
230+
231+
/* Subtest #1 */
232+
a = make_irange(0, 55, IR_COMPLETE);
233+
b = make_irange(55, 100, IR_LOSSY);
234+
union_result = irange_list_union(list_make1_irange(a),
235+
list_make1_irange(b));
236+
237+
assert_string_equal(rangeset_print(union_result),
238+
"[0-55]C, [56-100]L");
239+
240+
/* Subtest #2 */
241+
unmerged = NIL;
242+
unmerged = lappend_irange(unmerged, make_irange(0, 45, IR_LOSSY));
243+
unmerged = lappend_irange(unmerged, make_irange(100, 100, IR_LOSSY));
244+
b = make_irange(40, 65, IR_COMPLETE);
245+
union_result = irange_list_union(unmerged, list_make1_irange(b));
246+
247+
assert_string_equal(rangeset_print(union_result),
248+
"[0-39]L, [40-65]C, 100L");
249+
250+
/* Subtest #3 */
251+
unmerged = NIL;
252+
unmerged = lappend_irange(unmerged, make_irange(0, 45, IR_LOSSY));
253+
unmerged = lappend_irange(unmerged, make_irange(64, 100, IR_LOSSY));
254+
b = make_irange(40, 65, IR_COMPLETE);
255+
union_result = irange_list_union(unmerged, list_make1_irange(b));
256+
257+
assert_string_equal(rangeset_print(union_result),
258+
"[0-39]L, [40-65]C, [66-100]L");
259+
260+
/* Subtest #4 */
261+
unmerged = NIL;
262+
unmerged = lappend_irange(unmerged, make_irange(0, 45, IR_COMPLETE));
263+
unmerged = lappend_irange(unmerged, make_irange(64, 100, IR_COMPLETE));
264+
b = make_irange(40, 65, IR_COMPLETE);
265+
union_result = irange_list_union(unmerged, list_make1_irange(b));
266+
267+
assert_string_equal(rangeset_print(union_result),
268+
"[0-100]C");
269+
270+
/* Subtest #5 */
271+
unmerged = NIL;
272+
unmerged = lappend_irange(unmerged, make_irange(0, 45, IR_COMPLETE));
273+
unmerged = lappend_irange(unmerged, make_irange(64, 100, IR_COMPLETE));
274+
b = make_irange(40, 65, IR_LOSSY);
275+
union_result = irange_list_union(unmerged, list_make1_irange(b));
276+
277+
assert_string_equal(rangeset_print(union_result),
278+
"[0-45]C, [46-63]L, [64-100]C");
279+
}

0 commit comments

Comments
 (0)