Skip to content

Commit 7358777

Browse files
authored
Add let-else tests. (#7857)
1 parent 50e7039 commit 7358777

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

corelib/src/test.cairo

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ mod hash_test;
1717
mod integer_test;
1818
mod iter_test;
1919
mod keccak_test;
20+
mod let_else_test;
2021
mod math_test;
2122
mod nullable_test;
2223
mod num_test;
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#[test]
2+
fn test_let_else_panic_return() {
3+
let Some(x) = @Some(3) else {
4+
panic!("Did not match expected variant.")
5+
};
6+
assert_eq!(*x, 3);
7+
let Some(_) = @None::<felt252> else {
8+
return;
9+
};
10+
panic!("Unexpectedly matches variant.");
11+
}
12+
13+
#[test]
14+
fn test_let_else_continue() {
15+
let v = array![Some(3), None, Some(5), Some(2), None];
16+
17+
let mut s: felt252 = 0;
18+
19+
for x in v {
20+
let Some(y) = x else {
21+
s += 100;
22+
continue;
23+
};
24+
s += y;
25+
}
26+
27+
assert_eq!(s, 210);
28+
}
29+
30+
#[test]
31+
fn test_let_else_break() {
32+
let v = array![Some(6), Some(3), None, Some(5)];
33+
34+
let mut s: felt252 = 0;
35+
36+
for x in v {
37+
let Some(y) = x else {
38+
s += 100;
39+
break;
40+
};
41+
s += y;
42+
}
43+
44+
assert_eq!(s, 109);
45+
}

0 commit comments

Comments
 (0)