This commit is contained in:
2026-06-05 12:32:12 +02:00
parent 0955bca5bc
commit d5501ef25e
14 changed files with 821 additions and 11 deletions
+60
View File
@@ -0,0 +1,60 @@
enum OptionInt {
None,
Some(Int),
}
pub void test_enum_named() {
let x = OptionInt::None;
match (x) {
OptionInt::None => { assert_eq!(1, 1); }
OptionInt::Some[_] => { assert_eq!(0, 1); }
}
}
pub void test_enum_tuple() {
let x = OptionInt::Some(42);
match (x) {
OptionInt::None => { assert_eq!(0, 1); }
OptionInt::Some[v] => { assert_eq!(v, 42); }
}
}
enum Shape {
Circle { Int radius },
Rect { Int w, Int h },
}
pub void test_enum_struct() {
let c = Shape::Circle { radius: 5 };
match (c) {
Shape::Circle { radius } => { assert_eq!(radius, 5); }
Shape::Rect { .. } => { assert_eq!(0, 1); }
}
let r = Shape::Rect { w: 3, h: 4 };
match (r) {
Shape::Circle { .. } => { assert_eq!(0, 1); }
Shape::Rect { w, h } => { assert_eq!(w * h, 12); }
}
}
enum Color {
Red,
Green,
Blue,
}
pub void test_enum_eq() {
let c = Color::Red;
match (c) {
Color::Red => { assert_eq!(1, 1); }
_ => { assert_eq!(0, 1); }
}
}
pub void run_tests() {
test_enum_named();
test_enum_tuple();
test_enum_struct();
test_enum_eq();
}