Tests
This commit is contained in:
@@ -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();
|
||||
}
|
||||
Reference in New Issue
Block a user