mod helper;
use helper::{
TestEnum,
TestEnum::{Int, OtherUnit, Tuple, Unit},
};
#[test]
fn single_value_tuple() {
assert_eq!(Int(123).and_int(Int(456)).unwrap_int(), 456);
assert_eq!(Int(123).and_int(Unit).unwrap_int(), 123);
assert!(Unit.and_int(Int(123)).is_unit());
assert!(Unit.and_int(OtherUnit).is_unit());
}
fn tuple(num: u128) -> TestEnum {
Tuple(num.to_string(), num)
}
#[test]
fn multi_value_tuple() {
assert_eq!(
tuple(123).and_tuple(tuple(456)).unwrap_tuple(),
("456".into(), 456)
);
assert_eq!(
tuple(123).and_tuple(Unit).unwrap_tuple(),
("123".into(), 123)
);
assert!(Unit.and_tuple(tuple(123)).is_unit());
assert!(Unit.and_tuple(Unit).is_unit());
}