Skip to content

Commit b601f88

Browse files
committed
Add tests for Sort/compare ability
We had a single test before, but it was failing due to a typo. This fixes the test, plus adds some more for the new sortable types we've added since.
1 parent f8a7d1b commit b601f88

File tree

1 file changed

+216
-3
lines changed

1 file changed

+216
-3
lines changed

crates/compiler/test_gen/src/gen_compare.rs

+216-3
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,238 @@ use crate::helpers::wasm::assert_evals_to;
99

1010
use indoc::indoc;
1111

12+
#[test]
13+
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
14+
fn compare_u64() {
15+
assert_evals_to!(
16+
indoc!(
17+
r#"
18+
i : U64
19+
i = 1
20+
21+
j : U64
22+
j = 2
23+
24+
when List.compare i j is
25+
Equal -> 0
26+
GreaterThan -> 1
27+
LessThan -> 2
28+
"#
29+
),
30+
2,
31+
u8
32+
);
33+
assert_evals_to!(
34+
indoc!(
35+
r#"
36+
i : U64
37+
i = 2
38+
39+
j : U64
40+
j = 1
41+
42+
when List.compare i j is
43+
Equal -> 0
44+
GreaterThan -> 1
45+
LessThan -> 2
46+
"#
47+
),
48+
1,
49+
u8
50+
);
51+
assert_evals_to!(
52+
indoc!(
53+
r#"
54+
i : U64
55+
i = 1
56+
57+
j : U64
58+
j = 1
59+
60+
when List.compare i j is
61+
Equal -> 0
62+
GreaterThan -> 1
63+
LessThan -> 2
64+
"#
65+
),
66+
0,
67+
u8
68+
);
69+
}
70+
1271
#[test]
1372
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
1473
fn compare_i64() {
74+
assert_evals_to!(
75+
indoc!(
76+
r#"
77+
i : I64
78+
i = -1
79+
80+
j : I64
81+
j = 1
82+
83+
when List.compare i j is
84+
Equal -> 0
85+
GreaterThan -> 1
86+
LessThan -> 2
87+
"#
88+
),
89+
2,
90+
u8
91+
);
1592
assert_evals_to!(
1693
indoc!(
1794
r#"
1895
i : I64
1996
i = 1
2097
2198
j : I64
22-
j = 2
99+
j = -1
100+
101+
when List.compare i j is
102+
Equal -> 0
103+
GreaterThan -> 1
104+
LessThan -> 2
105+
"#
106+
),
107+
1,
108+
u8
109+
);
110+
assert_evals_to!(
111+
indoc!(
112+
r#"
113+
i : I64
114+
i = -1
115+
116+
j : I64
117+
j = -1
118+
119+
when List.compare i j is
120+
Equal -> 0
121+
GreaterThan -> 1
122+
LessThan -> 2
123+
"#
124+
),
125+
0,
126+
u8
127+
);
128+
}
129+
130+
#[test]
131+
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
132+
fn compare_f64() {
133+
assert_evals_to!(
134+
indoc!(
135+
r#"
136+
i : F64
137+
i = 1.2
138+
139+
j : F64
140+
j = 1.3
141+
142+
when List.compare i j is
143+
Equal -> 0
144+
GreaterThan -> 1
145+
LessThan -> 2
146+
"#
147+
),
148+
2,
149+
u8
150+
);
151+
assert_evals_to!(
152+
indoc!(
153+
r#"
154+
i : F64
155+
i = 1.3
156+
157+
j : F64
158+
j = 1.2
159+
160+
when List.compare i j is
161+
Equal -> 0
162+
GreaterThan -> 1
163+
LessThan -> 2
164+
"#
165+
),
166+
1,
167+
u8
168+
);
169+
assert_evals_to!(
170+
indoc!(
171+
r#"
172+
i : F64
173+
i = 1.2
174+
175+
j : F64
176+
j = 1.2
177+
178+
when List.compare i j is
179+
Equal -> 0
180+
GreaterThan -> 1
181+
LessThan -> 2
182+
"#
183+
),
184+
0,
185+
u8
186+
);
187+
}
188+
189+
#[test]
190+
#[cfg(any(feature = "gen-llvm", feature = "gen-dev", feature = "gen-wasm"))]
191+
fn compare_bool() {
192+
assert_evals_to!(
193+
indoc!(
194+
r#"
195+
i : Bool
196+
i = Bool.false
197+
198+
j : Bool
199+
j = Bool.true
23200
24201
when List.compare i j is
25-
Equals -> 0
202+
Equal -> 0
26203
GreaterThan -> 1
27204
LessThan -> 2
28205
"#
29206
),
30207
2,
31-
i64
208+
u8
209+
);
210+
assert_evals_to!(
211+
indoc!(
212+
r#"
213+
i : Bool
214+
i = Bool.true
215+
216+
j : Bool
217+
j = Bool.false
218+
219+
when List.compare i j is
220+
Equal -> 0
221+
GreaterThan -> 1
222+
LessThan -> 2
223+
"#
224+
),
225+
1,
226+
u8
227+
);
228+
assert_evals_to!(
229+
indoc!(
230+
r#"
231+
i : Bool
232+
i = Bool.false
233+
234+
j : Bool
235+
j = Bool.false
236+
237+
when List.compare i j is
238+
Equal -> 0
239+
GreaterThan -> 1
240+
LessThan -> 2
241+
"#
242+
),
243+
0,
244+
u8
32245
);
33246
}

0 commit comments

Comments
 (0)