1 use super::*;
2
3 use crate::Flags;
4
5 #[test]
cases()6 fn cases() {
7 case(false, TestFlags::empty(), TestFlags::contains_unknown_bits);
8 case(false, TestFlags::A, TestFlags::contains_unknown_bits);
9
10 case(
11 true,
12 TestFlags::ABC | TestFlags::from_bits_retain(1 << 3),
13 TestFlags::contains_unknown_bits,
14 );
15
16 case(
17 true,
18 TestFlags::empty() | TestFlags::from_bits_retain(1 << 3),
19 TestFlags::contains_unknown_bits,
20 );
21
22 case(false, TestFlags::all(), TestFlags::contains_unknown_bits);
23
24 case(false, TestZero::empty(), TestZero::contains_unknown_bits);
25 }
26 #[track_caller]
case<T: Flags + std::fmt::Debug>(expected: bool, value: T, inherent: impl FnOnce(&T) -> bool)27 fn case<T: Flags + std::fmt::Debug>(expected: bool, value: T, inherent: impl FnOnce(&T) -> bool) {
28 assert_eq!(
29 expected,
30 inherent(&value),
31 "{:?}.contains_unknown_bits()",
32 value
33 );
34 assert_eq!(
35 expected,
36 Flags::contains_unknown_bits(&value),
37 "Flags::contains_unknown_bits({:?})",
38 value
39 );
40 }
41