Logo

index : blog

---

  • summary
  • about
  • tree
  • log
  • branches
<< path: root/public/blog.git/html/modules/uniform/tests/010_char_class/add_range.spec.jai blob: a2b745082c574e331223582addfe48dda86e3bcf [raw] [clear marker]

        
0inserts_the_new_range_at_the_right_position_1 :: () {
1 char_class: CharClass;
2 defer uninit(*char_class);
3 add_range(*char_class, 0, 1);
4 add_range(*char_class, 6, 10);
5 add_range(*char_class, 3, 4);
6 assert_that(char_class.ranges, contains_items(
7 make_range(0, 1),
8 make_range(3, 4),
9 make_range(6, 10),
10 is_equal = equal_range));
11} @Test
12
13merges_ranges_correctly :: () {
14 char_class: CharClass;
15 defer uninit(*char_class);
16 add_range(*char_class, 0, 1);
17 add_range(*char_class, 6, 10);
18 add_range(*char_class, 3, 4);
19
20 add_range(*char_class, 2, 2);
21
22 assert_that(char_class.ranges, contains_items(
23 make_range(0, 4),
24 make_range(6, 10),
25 is_equal = equal_range));
26} @Test
27
28merges_ranges_correctly_2 :: () {
29 char_class: CharClass;
30 defer uninit(*char_class);
31 add_range(*char_class, 0, 1);
32 add_range(*char_class, 6, 10);
33 add_range(*char_class, 3, 4);
34
35 add_range(*char_class, 2, 4);
36
37 assert_that(char_class.ranges, contains_items(
38 make_range(0, 4),
39 make_range(6, 10),
40 is_equal = equal_range));
41} @Test
42
43merges_ranges_correctly_3 :: () {
44 char_class: CharClass;
45 defer uninit(*char_class);
46 add_range(*char_class, 0, 1);
47 add_range(*char_class, 6, 10);
48 add_range(*char_class, 3, 4);
49
50 add_range(*char_class, 2, 5);
51
52 assert_that(char_class.ranges, contains_items(
53 make_range(0, 10),
54 is_equal = equal_range));
55} @Test
56
57merges_ranges_correctly_4 :: () {
58 char_class: CharClass;
59 defer uninit(*char_class);
60 add_range(*char_class, 6, 10);
61 add_range(*char_class, 3, 4);
62 add_range(*char_class, 0, 1);
63
64 add_range(*char_class, 2, 20);
65
66 assert_that(char_class.ranges, contains_items(
67 make_range(0, 20),
68 is_equal = equal_range));
69} @Test
70
71merges_ranges_correctly_5 :: () {
72 char_class: CharClass;
73 defer uninit(*char_class);
74 add_range(*char_class, 6, 10);
75 add_range(*char_class, 3, 4);
76 add_range(*char_class, 0, 1);
77
78 add_range(*char_class, 3, 20);
79
80 assert_that(char_class.ranges, contains_items(
81 make_range(0, 1),
82 make_range(3, 20),
83 is_equal = equal_range));
84} @Test
85
86#scope_file
87
88equal_range :: (a: RuneRange, b: RuneRange) -> bool {
89 return a.lo == b.lo && a.hi == b.hi;
90}
91
Copyright 2026  E766CB298A6D1E64 | Git-Thing heavily inspired by cgit