@@ -6,109 +6,157 @@ open LeanTest
66def flattenArrayTests : TestSuite :=
77 (TestSuite.empty "FlattenArray" )
88 |>.addTest "empty" (do
9- return assertEqual #[] (FlattenArray.flatten (FlattenArray.Box.many #[
10- ])))
9+ return assertEqual #[] (FlattenArray.flatten (FlattenArray.Box.many #[])))
1110 |>.addTest "no nesting" (do
12- return assertEqual #[0 , 1 , 2 ] (FlattenArray.flatten (FlattenArray.Box.many #[
13- (FlattenArray.Box.one 0 ),
14- (FlattenArray.Box.one 1 ),
15- (FlattenArray.Box.one 2 )])))
11+ return assertEqual #[
12+ 0 , 1 , 2
13+ ] (FlattenArray.flatten (FlattenArray.Box.many #[
14+ (FlattenArray.Box.one 0 ),
15+ (FlattenArray.Box.one 1 ),
16+ (FlattenArray.Box.one 2 )
17+ ])))
1618 |>.addTest "flattens a nested array" (do
1719 return assertEqual #[] (FlattenArray.flatten (FlattenArray.Box.many #[
18- (FlattenArray.Box.many #[
19- (FlattenArray.Box.many #[
20- ])])])))
20+ (FlattenArray.Box.many #[
21+ (FlattenArray.Box.many #[])
22+ ])
23+ ])))
2124 |>.addTest "flattens array with just integers present" (do
22- return assertEqual #[1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] (FlattenArray.flatten (FlattenArray.Box.many #[
23- (FlattenArray.Box.one 1 ),
24- (FlattenArray.Box.many #[
25- (FlattenArray.Box.one 2 ),
26- (FlattenArray.Box.one 3 ),
27- (FlattenArray.Box.one 4 ),
28- (FlattenArray.Box.one 5 ),
29- (FlattenArray.Box.one 6 ),
30- (FlattenArray.Box.one 7 )]),
31- (FlattenArray.Box.one 8 )])))
25+ return assertEqual #[
26+ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8
27+ ] (FlattenArray.flatten (FlattenArray.Box.many #[
28+ (FlattenArray.Box.one 1 ),
29+ (FlattenArray.Box.many #[
30+ (FlattenArray.Box.one 2 ),
31+ (FlattenArray.Box.one 3 ),
32+ (FlattenArray.Box.one 4 ),
33+ (FlattenArray.Box.one 5 ),
34+ (FlattenArray.Box.one 6 ),
35+ (FlattenArray.Box.one 7 )
36+ ]),
37+ (FlattenArray.Box.one 8 )
38+ ])))
3239 |>.addTest "5 level nesting" (do
33- return assertEqual #[0 , 2 , 2 , 3 , 8 , 100 , 4 , 50 , (-2 )] (FlattenArray.flatten (FlattenArray.Box.many #[
34- (FlattenArray.Box.one 0 ),
35- (FlattenArray.Box.one 2 ),
36- (FlattenArray.Box.many #[
37- (FlattenArray.Box.many #[
38- (FlattenArray.Box.one 2 ),
39- (FlattenArray.Box.one 3 )]),
40- (FlattenArray.Box.one 8 ),
41- (FlattenArray.Box.one 100 ),
42- (FlattenArray.Box.one 4 ),
43- (FlattenArray.Box.many #[
44- (FlattenArray.Box.many #[
45- (FlattenArray.Box.many #[
46- (FlattenArray.Box.one 50 )])])])]),
47- (FlattenArray.Box.one (-2 ))])))
40+ return assertEqual #[
41+ 0 , 2 , 2 , 3 , 8 , 100 , 4 , 50 , (-2 )
42+ ] (FlattenArray.flatten (FlattenArray.Box.many #[
43+ (FlattenArray.Box.one 0 ),
44+ (FlattenArray.Box.one 2 ),
45+ (FlattenArray.Box.many #[
46+ (FlattenArray.Box.many #[
47+ (FlattenArray.Box.one 2 ),
48+ (FlattenArray.Box.one 3 )
49+ ]),
50+ (FlattenArray.Box.one 8 ),
51+ (FlattenArray.Box.one 100 ),
52+ (FlattenArray.Box.one 4 ),
53+ (FlattenArray.Box.many #[
54+ (FlattenArray.Box.many #[
55+ (FlattenArray.Box.many #[
56+ (FlattenArray.Box.one 50 )
57+ ])
58+ ])
59+ ])
60+ ]),
61+ (FlattenArray.Box.one (-2 ))
62+ ])))
4863 |>.addTest "6 level nesting" (do
49- return assertEqual #[1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ] (FlattenArray.flatten (FlattenArray.Box.many #[
50- (FlattenArray.Box.one 1 ),
51- (FlattenArray.Box.many #[
52- (FlattenArray.Box.one 2 ),
53- (FlattenArray.Box.many #[
54- (FlattenArray.Box.many #[
55- (FlattenArray.Box.one 3 )])]),
56- (FlattenArray.Box.many #[
57- (FlattenArray.Box.one 4 ),
58- (FlattenArray.Box.many #[
59- (FlattenArray.Box.many #[
60- (FlattenArray.Box.one 5 )])])]),
61- (FlattenArray.Box.one 6 ),
62- (FlattenArray.Box.one 7 )]),
63- (FlattenArray.Box.one 8 )])))
64+ return assertEqual #[
65+ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8
66+ ] (FlattenArray.flatten (FlattenArray.Box.many #[
67+ (FlattenArray.Box.one 1 ),
68+ (FlattenArray.Box.many #[
69+ (FlattenArray.Box.one 2 ),
70+ (FlattenArray.Box.many #[
71+ (FlattenArray.Box.many #[
72+ (FlattenArray.Box.one 3 )
73+ ])
74+ ]),
75+ (FlattenArray.Box.many #[
76+ (FlattenArray.Box.one 4 ),
77+ (FlattenArray.Box.many #[
78+ (FlattenArray.Box.many #[
79+ (FlattenArray.Box.one 5 )
80+ ])
81+ ])
82+ ]),
83+ (FlattenArray.Box.one 6 ),
84+ (FlattenArray.Box.one 7 )
85+ ]),
86+ (FlattenArray.Box.one 8 )
87+ ])))
6488 |>.addTest "null values are omitted from the final result" (do
65- return assertEqual #[1 , 2 ] (FlattenArray.flatten (FlattenArray.Box.many #[
66- (FlattenArray.Box.one 1 ),
67- (FlattenArray.Box.one 2 ),
68- FlattenArray.Box.zero])))
89+ return assertEqual #[
90+ 1 , 2
91+ ] (FlattenArray.flatten (FlattenArray.Box.many #[
92+ (FlattenArray.Box.one 1 ),
93+ (FlattenArray.Box.one 2 ),
94+ FlattenArray.Box.zero
95+ ])))
6996 |>.addTest "consecutive null values at the front of the array are omitted from the final result" (do
70- return assertEqual #[3 ] (FlattenArray.flatten (FlattenArray.Box.many #[
71- FlattenArray.Box.zero,
72- FlattenArray.Box.zero,
73- (FlattenArray.Box.one 3 )])))
97+ return assertEqual #[
98+ 3
99+ ] (FlattenArray.flatten (FlattenArray.Box.many #[
100+ FlattenArray.Box.zero,
101+ FlattenArray.Box.zero,
102+ (FlattenArray.Box.one 3 )
103+ ])))
74104 |>.addTest "consecutive null values in the middle of the array are omitted from the final result" (do
75- return assertEqual #[1 , 4 ] (FlattenArray.flatten (FlattenArray.Box.many #[
76- (FlattenArray.Box.one 1 ),
77- FlattenArray.Box.zero,
78- FlattenArray.Box.zero,
79- (FlattenArray.Box.one 4 )])))
105+ return assertEqual #[
106+ 1 , 4
107+ ] (FlattenArray.flatten (FlattenArray.Box.many #[
108+ (FlattenArray.Box.one 1 ),
109+ FlattenArray.Box.zero,
110+ FlattenArray.Box.zero,
111+ (FlattenArray.Box.one 4 )
112+ ])))
80113 |>.addTest "6 level nested array with null values" (do
81- return assertEqual #[0 , 2 , 2 , 3 , 8 , 100 , (-2 )] (FlattenArray.flatten (FlattenArray.Box.many #[
82- (FlattenArray.Box.one 0 ),
83- (FlattenArray.Box.one 2 ),
84- (FlattenArray.Box.many #[
85- (FlattenArray.Box.many #[
86- (FlattenArray.Box.one 2 ),
87- (FlattenArray.Box.one 3 )]),
88- (FlattenArray.Box.one 8 ),
89- (FlattenArray.Box.many #[
90- (FlattenArray.Box.many #[
91- (FlattenArray.Box.one 100 )])]),
92- FlattenArray.Box.zero,
93- (FlattenArray.Box.many #[
94- (FlattenArray.Box.many #[
95- FlattenArray.Box.zero])])]),
96- (FlattenArray.Box.one (-2 ))])))
114+ return assertEqual #[
115+ 0 , 2 , 2 , 3 , 8 , 100 , (-2 )
116+ ] (FlattenArray.flatten (FlattenArray.Box.many #[
117+ (FlattenArray.Box.one 0 ),
118+ (FlattenArray.Box.one 2 ),
119+ (FlattenArray.Box.many #[
120+ (FlattenArray.Box.many #[
121+ (FlattenArray.Box.one 2 ),
122+ (FlattenArray.Box.one 3 )
123+ ]),
124+ (FlattenArray.Box.one 8 ),
125+ (FlattenArray.Box.many #[
126+ (FlattenArray.Box.many #[
127+ (FlattenArray.Box.one 100 )
128+ ])
129+ ]),
130+ FlattenArray.Box.zero,
131+ (FlattenArray.Box.many #[
132+ (FlattenArray.Box.many #[
133+ FlattenArray.Box.zero
134+ ])
135+ ])
136+ ]),
137+ (FlattenArray.Box.one (-2 ))
138+ ])))
97139 |>.addTest "all values in nested array are null" (do
98140 return assertEqual #[] (FlattenArray.flatten (FlattenArray.Box.many #[
99- FlattenArray.Box.zero,
100- (FlattenArray.Box.many #[
101- (FlattenArray.Box.many #[
102- (FlattenArray.Box.many #[
103- FlattenArray.Box.zero])])]),
104- FlattenArray.Box.zero,
105- FlattenArray.Box.zero,
106- (FlattenArray.Box.many #[
107- (FlattenArray.Box.many #[
108- FlattenArray.Box.zero,
109- FlattenArray.Box.zero]),
110- FlattenArray.Box.zero]),
111- FlattenArray.Box.zero])))
141+ FlattenArray.Box.zero,
142+ (FlattenArray.Box.many #[
143+ (FlattenArray.Box.many #[
144+ (FlattenArray.Box.many #[
145+ FlattenArray.Box.zero
146+ ])
147+ ])
148+ ]),
149+ FlattenArray.Box.zero,
150+ FlattenArray.Box.zero,
151+ (FlattenArray.Box.many #[
152+ (FlattenArray.Box.many #[
153+ FlattenArray.Box.zero,
154+ FlattenArray.Box.zero
155+ ]),
156+ FlattenArray.Box.zero
157+ ]),
158+ FlattenArray.Box.zero
159+ ])))
112160
113161def main : IO UInt32 := do
114162 runTestSuitesWithExitCode [flattenArrayTests]
0 commit comments