1 use super::sample_sequence_location::*;
2 
3 #[test]
4 fn test_sample_sequence_location_compare() {
5     let s1 = SampleSequenceLocation { head: 32, tail: 42 };
6     assert_eq!(Comparison::Before, s1.compare(16));
7     assert_eq!(Comparison::Inside, s1.compare(32));
8     assert_eq!(Comparison::Inside, s1.compare(38));
9     assert_eq!(Comparison::Inside, s1.compare(41));
10     assert_eq!(Comparison::After, s1.compare(42));
11     assert_eq!(Comparison::After, s1.compare(0x57));
12 
13     let s2 = SampleSequenceLocation {
14         head: 0xffa0,
15         tail: 32,
16     };
17     assert_eq!(Comparison::Before, s2.compare(0xff00));
18     assert_eq!(Comparison::Inside, s2.compare(0xffa0));
19     assert_eq!(Comparison::Inside, s2.compare(0xffff));
20     assert_eq!(Comparison::Inside, s2.compare(0));
21     assert_eq!(Comparison::Inside, s2.compare(31));
22     assert_eq!(Comparison::After, s2.compare(32));
23     assert_eq!(Comparison::After, s2.compare(128));
24 }
25 
26 #[test]
27 fn test_sample_sequence_location_range() {
28     let mut data: Vec<Option<u16>> = vec![None; u16::MAX as usize + 1];
29 
30     data[65533] = Some(65533);
31     data[65535] = Some(65535);
32     data[0] = Some(0);
33     data[2] = Some(2);
34 
35     let s = SampleSequenceLocation {
36         head: 65533,
37         tail: 3,
38     };
39     let reconstructed: Vec<_> = s.range(&data).map(|x| x.cloned()).collect();
40 
41     assert_eq!(
42         reconstructed,
43         [Some(65533), None, Some(65535), Some(0), None, Some(2)]
44     );
45 }
46