Skip to main content

maolan_engine/
kind.rs

1#[derive(Debug, Clone, PartialEq, Eq, Hash, Copy)]
2pub enum Kind {
3    Audio,
4    MIDI,
5}
6
7#[cfg(test)]
8mod tests {
9    use super::*;
10
11    #[test]
12    fn kind_audio_equality() {
13        assert_eq!(Kind::Audio, Kind::Audio);
14        assert_ne!(Kind::Audio, Kind::MIDI);
15    }
16
17    #[test]
18    fn kind_midi_equality() {
19        assert_eq!(Kind::MIDI, Kind::MIDI);
20        assert_ne!(Kind::MIDI, Kind::Audio);
21    }
22
23    #[test]
24    fn kind_clone() {
25        let audio = Kind::Audio;
26        let cloned = audio;
27        assert_eq!(audio, cloned);
28    }
29
30    #[test]
31    fn kind_copy() {
32        let audio = Kind::Audio;
33        let copied = audio;
34        assert_eq!(audio, copied);
35    }
36
37    #[test]
38    fn kind_debug_format() {
39        let audio = Kind::Audio;
40        let midi = Kind::MIDI;
41        assert!(format!("{:?}", audio).contains("Audio"));
42        assert!(format!("{:?}", midi).contains("MIDI"));
43    }
44
45    #[test]
46    fn kind_hash_consistency() {
47        use std::collections::HashSet;
48
49        let mut set = HashSet::new();
50        set.insert(Kind::Audio);
51        set.insert(Kind::MIDI);
52        set.insert(Kind::Audio); // Duplicate
53
54        assert_eq!(set.len(), 2);
55    }
56}