1 use super::sample_sequence_location::*;
2
3 #[test]
test_sample_sequence_location_compare()4 fn test_sample_sequence_location_compare() {
5 let s1 = SampleSequenceLocation { head: 32, tail: 42 };
6 assert_eq!(s1.compare(16), Comparison::Before);
7 assert_eq!(s1.compare(32), Comparison::Inside);
8 assert_eq!(s1.compare(38), Comparison::Inside);
9 assert_eq!(s1.compare(41), Comparison::Inside);
10 assert_eq!(s1.compare(42), Comparison::After);
11 assert_eq!(s1.compare(0x57), Comparison::After);
12
13 let s2 = SampleSequenceLocation {
14 head: 0xffa0,
15 tail: 32,
16 };
17 assert_eq!(s2.compare(0xff00), Comparison::Before);
18 assert_eq!(s2.compare(0xffa0), Comparison::Inside);
19 assert_eq!(s2.compare(0xffff), Comparison::Inside);
20 assert_eq!(s2.compare(0), Comparison::Inside);
21 assert_eq!(s2.compare(31), Comparison::Inside);
22 assert_eq!(s2.compare(32), Comparison::After);
23 assert_eq!(s2.compare(128), Comparison::After);
24 }
25
26 #[test]
test_sample_sequence_location_range()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