use devela_macros::enumint;
enumint![pub UEnum, u8, 2, 5];
enumint!(pub(crate) IEnum, i16, -2, 3);
fn main() {
assert_eq![UEnum::MIN, 2];
assert_eq![UEnum::MAX, 5];
assert_eq![UEnum::VALID_VALUES, 4];
assert_eq![UEnum::NICHE_VALUES, 252];
assert_eq![UEnum::P2.get(), 2];
assert_eq![UEnum::P2 as u8, 2];
assert_eq![UEnum::new(3), Some(UEnum::P3)];
assert_eq![UEnum::new(1), None];
assert_eq![UEnum::new(6), None];
assert_eq![UEnum::new_saturated(1), UEnum::P2];
assert_eq![UEnum::new_saturated(6), UEnum::P5];
assert_eq![UEnum::new_wrapped(1), UEnum::P5];
assert_eq![UEnum::new_wrapped(6), UEnum::P2];
assert_eq![IEnum::MIN, -2];
assert_eq![IEnum::MAX, 3];
assert_eq![IEnum::VALID_VALUES, 6];
assert_eq![IEnum::NICHE_VALUES, 65_530];
assert_eq![IEnum::N1.get(), -1];
assert_eq![IEnum::N1 as i8, -1];
assert_eq![IEnum::new(3), Some(IEnum::P3)];
assert_eq![IEnum::new(-3), None];
assert_eq![IEnum::new(4), None];
assert_eq![IEnum::new_saturated(-3), IEnum::N2];
assert_eq![IEnum::new_saturated(4), IEnum::P3];
assert_eq![IEnum::new_wrapped(-3), IEnum::P3];
assert_eq![IEnum::new_wrapped(4), IEnum::N2];
}