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!(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] 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