Skip to content

Commit f473cd3

Browse files
committed
test(Flattener): add more test cases for stable sorting
1 parent c131403 commit f473cd3

File tree

3 files changed

+54
-49
lines changed

3 files changed

+54
-49
lines changed

test/IntTag.ml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
type t = int
2-
let equal = Int.equal
3-
let priority i = -i
4-
let dump = Format.pp_print_int
1+
type t = int * string
2+
let equal = (=)
3+
let priority (i, _) = -i
4+
let dump fmt (i, s) = Format.fprintf fmt {|(%d, "%s")|} i (String.escaped s)

test/TestExplicator.ml

Lines changed: 25 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,20 @@ let test_explication = Alcotest.of_pp (Explication.dump IntTag.dump)
77
let single_line mode eol () =
88
let source = `String {Range.title = None; content = "aaabbbcccdddeee" ^ eol} in
99
let begin_of_line1 : Range.position = {source; offset = 0; start_of_line = 0; line_num = 1} in
10-
let range1 = 1, Range.make ({begin_of_line1 with offset = 3}, {begin_of_line1 with offset = 9}) in
11-
let range2 = 2, Range.make ({begin_of_line1 with offset = 6}, {begin_of_line1 with offset = 12}) in
10+
let range1 = (1, "1"), Range.make ({begin_of_line1 with offset = 3}, {begin_of_line1 with offset = 9}) in
11+
let range2 = (2, "2"), Range.make ({begin_of_line1 with offset = 6}, {begin_of_line1 with offset = 12}) in
1212
let expected : _ Explication.t =
1313
[{source;
1414
blocks =
1515
[{begin_line_num = 1;
1616
end_line_num = 1;
1717
lines =
18-
[{tags = [1; 2];
18+
[{tags = [(1, "1"); (2, "2")];
1919
segments =
2020
[(None, "aaa");
21-
(Some 1, "bbb");
22-
(Some 2, "ccc");
23-
(Some 2, "ddd");
21+
(Some (1, "1"), "bbb");
22+
(Some (2, "2"), "ccc");
23+
(Some (2, "2"), "ddd");
2424
(None, "eee");
2525
]}]}
2626
]}
@@ -32,7 +32,7 @@ let multi_lines_with_ls () =
3232
let source = `String {Range.title = None; content = "aabbbbb\u{2028}bbbbccc"} in
3333
let begin_of_line1 : Range.position = {source; offset = 0; start_of_line = 0; line_num = 1} in
3434
let begin_of_line2 : Range.position = {source; offset = 10; start_of_line = 10; line_num = 2} in
35-
let range = 1, Range.make ({begin_of_line1 with offset = 2}, {begin_of_line2 with offset = 14}) in
35+
let range = (1, "1"), Range.make ({begin_of_line1 with offset = 2}, {begin_of_line2 with offset = 14}) in
3636
let expected : _ Explication.t =
3737
[{source;
3838
blocks =
@@ -42,11 +42,11 @@ let multi_lines_with_ls () =
4242
[{tags=[];
4343
segments=
4444
[(None, "aa");
45-
(Some 1, "bbbbb");
45+
(Some (1, "1"), "bbbbb");
4646
]};
47-
{tags=[1];
47+
{tags=[(1, "1")];
4848
segments=
49-
[(Some 1, "bbbb");
49+
[(Some (1, "1"), "bbbb");
5050
(None, "ccc");
5151
]}]}
5252
]}
@@ -83,11 +83,11 @@ ggggghh
8383
let begin_of_line15 : Range.position = {source; offset = 51; start_of_line = 51; line_num = 15} in
8484
let ranges =
8585
[
86-
2, Range.make ({begin_of_line4 with offset = 17+1}, {begin_of_line4 with offset = 17+4});
87-
1, Range.make ({begin_of_line2 with offset = 1+2}, {begin_of_line4 with offset = 17+4});
88-
4, Range.make ({begin_of_line9 with offset = 33+2}, {begin_of_line9 with offset = 33+7});
89-
8, Range.make ({begin_of_line9 with offset = 33+4}, {begin_of_line9 with offset = 33+7});
90-
16, Range.make (begin_of_line15, {begin_of_line15 with offset = 51+5});
86+
(2, "1"), Range.make ({begin_of_line4 with offset = 17+1}, {begin_of_line4 with offset = 17+4});
87+
(1, "2"), Range.make ({begin_of_line2 with offset = 1+2}, {begin_of_line4 with offset = 17+4});
88+
(4, "3"), Range.make ({begin_of_line9 with offset = 33+2}, {begin_of_line9 with offset = 33+7});
89+
(8, "4"), Range.make ({begin_of_line9 with offset = 33+4}, {begin_of_line9 with offset = 33+7});
90+
(16, "5"), Range.make (begin_of_line15, {begin_of_line15 with offset = 51+5});
9191
]
9292
in
9393
let expected : _ Explication.t =
@@ -99,14 +99,14 @@ ggggghh
9999
[{tags=[];
100100
segments=
101101
[(None, "aa");
102-
(Some 1, "bbbbb")]};
102+
(Some (1, "2"), "bbbbb")]};
103103
{tags=[];
104104
segments=
105-
[(Some 1, "bbbbbbb")]};
106-
{tags=[1;2];
105+
[(Some (1, "2"), "bbbbbbb")]};
106+
{tags=[(1, "2"); (2, "1")];
107107
segments=
108-
[(Some 1, "b");
109-
(Some 2, "*cc");
108+
[(Some (1, "2"), "b");
109+
(Some (2, "1"), "*cc");
110110
(None, "ddd")]};
111111
{tags=[];
112112
segments=
@@ -120,17 +120,17 @@ ggggghh
120120
{tags=[];
121121
segments=
122122
[(None, "4")]};
123-
{tags=[4; 8];
123+
{tags=[(4, "3"); (8, "4")];
124124
segments=
125125
[(None, "ee");
126-
(Some 4, "++");
127-
(Some 8, "fff")]}]};
126+
(Some (4, "3"), "++");
127+
(Some (8, "4"), "fff")]}]};
128128
{begin_line_num=15;
129129
end_line_num=15;
130130
lines=
131-
[{tags=[16];
131+
[{tags=[(16, "5")];
132132
segments=
133-
[(Some 16, "ggggg");
133+
[(Some (16, "5"), "ggggg");
134134
(None, "hh")]}]}]}]
135135
in
136136
let actual = E.explicate ~line_breaks:`Traditional ~block_splitting_threshold:5 ranges in

test/TestFlattener.ml

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,21 @@ let single_line_flatten () =
1414
{begin_of_line1 with offset = 9},
1515
{begin_of_line1 with offset = 12}
1616
in
17-
let range1 = 1, Range.make (pt1, pt3) in
18-
let range2 = 2, Range.make (pt2, pt4) in
17+
let ranges =
18+
[ (1, "1"), Range.make (pt1, pt3)
19+
; (2, "2"), Range.make (pt1, pt3)
20+
; (1, "3"), Range.make (pt1, pt3)
21+
; (3, "4"), Range.make (pt2, pt4)
22+
]
23+
in
1924
let expected : _ Flattener.t =
2025
[(source,
2126
[{begin_line_num=1;
2227
end_line_num=1;
23-
tagged_positions=[(Some 1, pt1);(Some 2, pt2);(Some 2, pt3);(None, pt4)];
24-
tagged_lines=[(1,1);(2,1)]}])]
28+
tagged_positions=[(Some (2, "2"), pt1);(Some (3, "4"), pt2);(Some (3, "4"), pt3);(None, pt4)];
29+
tagged_lines=[((2, "2"), 1); ((1, "1"), 1); ((1, "3"), 1); ((3, "4"), 1)]}])]
2530
in
26-
let actual = F.flatten ~block_splitting_threshold:5 ~blend:(Explicator.default_blend ~priority:IntTag.priority) [range1; range2] in
31+
let actual = F.flatten ~block_splitting_threshold:5 ~blend:(Explicator.default_blend ~priority:IntTag.priority) ranges in
2732
Alcotest.(check test_flattened) "Flattener is correct" expected actual
2833

2934
let multi_lines () =
@@ -59,36 +64,36 @@ ggggghh
5964
in
6065
let ranges =
6166
[
62-
2, Range.make (pt18, pt21);
63-
1, Range.make (pt3, pt21);
64-
4, Range.make (pt35, pt40);
65-
8, Range.make (pt37, pt40);
66-
16, Range.make (begin_of_line15, pt56);
67+
(2, "1"), Range.make (pt18, pt21);
68+
(1, "2"), Range.make (pt3, pt21);
69+
(4, "3"), Range.make (pt35, pt40);
70+
(8, "4"), Range.make (pt37, pt40);
71+
(16, "5"), Range.make (begin_of_line15, pt56);
6772
]
6873
in
6974
let expected : _ Flattener.t =
7075
[(source,
7176
[{begin_line_num=2;
7277
end_line_num=9;
7378
tagged_positions=
74-
[(Some 1, pt3);
75-
(Some 2, pt18);
79+
[(Some (1, "2"), pt3);
80+
(Some (2, "1"), pt18);
7681
(None, pt21);
77-
(Some 4, pt35);
78-
(Some 8, pt37);
82+
(Some (4, "3"), pt35);
83+
(Some (8, "4"), pt37);
7984
(None, pt40)];
8085
tagged_lines=
81-
[(1, 4);
82-
(2, 4);
83-
(4, 9);
84-
(8, 9)]};
86+
[((1, "2"), 4);
87+
((2, "1"), 4);
88+
((4, "3"), 9);
89+
((8, "4"), 9)]};
8590
{begin_line_num=15;
8691
end_line_num=15;
8792
tagged_positions=
88-
[(Some 16, begin_of_line15);
93+
[(Some (16, "5"), begin_of_line15);
8994
(None, pt56)];
9095
tagged_lines=
91-
[(16, 15)]}])]
96+
[((16, "5"), 15)]}])]
9297
in
9398
let actual = F.flatten ~block_splitting_threshold:5 ~blend:(Explicator.default_blend ~priority:IntTag.priority) ranges in
9499
Alcotest.(check test_flattened) "Flattener is correct" expected actual

0 commit comments

Comments
 (0)