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