aboutsummaryrefslogtreecommitdiff
path: root/src/tests/flags.rs
blob: 7a625b312c1ef0d75366cdf5b65d71ac4e18474e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use super::*;

use crate::Flags;

#[test]
fn cases() {
    let flags = TestFlags::FLAGS
        .iter()
        .map(|flag| (flag.name(), flag.value().bits()))
        .collect::<Vec<_>>();

    assert_eq!(
        vec![
            ("A", 1u8),
            ("B", 1 << 1),
            ("C", 1 << 2),
            ("ABC", 1 | 1 << 1 | 1 << 2),
        ],
        flags,
    );

    assert_eq!(0, TestEmpty::FLAGS.iter().count());
}

mod external {
    use super::*;

    #[test]
    fn cases() {
        let flags = TestExternal::FLAGS
            .iter()
            .map(|flag| (flag.name(), flag.value().bits()))
            .collect::<Vec<_>>();

        assert_eq!(
            vec![
                ("A", 1u8),
                ("B", 1 << 1),
                ("C", 1 << 2),
                ("ABC", 1 | 1 << 1 | 1 << 2),
                ("", !0),
            ],
            flags,
        );
    }
}