Pi66

pind
Simple Rust hotkey daemon.
git clone https://git.pi66.xyz/pind

libs/evdev/src/tests/attribute_set.rs

 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
use crate::{AttributeSet, KeyCode};

#[test]
pub fn test_iteration_keys() -> std::io::Result<()> {
    let mut keys: AttributeSet<KeyCode> = AttributeSet::new();

    for code in 1..59 {
        keys.insert(KeyCode::new(code));
    }

    assert_eq!(58, keys.iter().count());

    let mut expected: i16 = 58;

    for typ in keys.iter() {
        expected -= 1;

        assert_eq!(
            expected as usize,
            keys.slice_iter(KeyCode(typ.0 + 1)).count()
        );
    }

    Ok(())
}

#[test]
pub fn test_first_element_in_slice_iter() -> std::io::Result<()> {
    let mut keys: AttributeSet<KeyCode> = AttributeSet::new();
    keys.insert(KeyCode(0));
    keys.insert(KeyCode(1));

    assert_eq!(KeyCode(0), keys.slice_iter(KeyCode(0)).nth(0).unwrap());
    assert_eq!(KeyCode(1), keys.slice_iter(KeyCode(1)).nth(0).unwrap());

    Ok(())
}