1 use cranelift_bitset::*; 2 3 #[test] 4 fn contains() { 5 let s = ScalarBitSet::<u8>(255); 6 for i in 0..7 { 7 assert!(s.contains(i)); 8 } 9 10 let s1 = ScalarBitSet::<u8>(0); 11 for i in 0..7 { 12 assert!(!s1.contains(i)); 13 } 14 15 let s2 = ScalarBitSet::<u8>(127); 16 for i in 0..6 { 17 assert!(s2.contains(i)); 18 } 19 assert!(!s2.contains(7)); 20 21 let s3 = ScalarBitSet::<u8>(2 | 4 | 64); 22 assert!(!s3.contains(0) && !s3.contains(3) && !s3.contains(4)); 23 assert!(!s3.contains(5) && !s3.contains(7)); 24 assert!(s3.contains(1) && s3.contains(2) && s3.contains(6)); 25 26 let s4 = ScalarBitSet::<u16>(4 | 8 | 256 | 1024); 27 assert!( 28 !s4.contains(0) 29 && !s4.contains(1) 30 && !s4.contains(4) 31 && !s4.contains(5) 32 && !s4.contains(6) 33 && !s4.contains(7) 34 && !s4.contains(9) 35 && !s4.contains(11) 36 ); 37 assert!(s4.contains(2) && s4.contains(3) && s4.contains(8) && s4.contains(10)); 38 } 39 40 #[test] 41 fn minmax() { 42 let s = ScalarBitSet::<u8>(255); 43 assert_eq!(s.min(), Some(0)); 44 assert_eq!(s.max(), Some(7)); 45 assert!(s.min() == Some(0) && s.max() == Some(7)); 46 let s1 = ScalarBitSet::<u8>(0); 47 assert!(s1.min() == None && s1.max() == None); 48 let s2 = ScalarBitSet::<u8>(127); 49 assert!(s2.min() == Some(0) && s2.max() == Some(6)); 50 let s3 = ScalarBitSet::<u8>(2 | 4 | 64); 51 assert!(s3.min() == Some(1) && s3.max() == Some(6)); 52 let s4 = ScalarBitSet::<u16>(4 | 8 | 256 | 1024); 53 assert!(s4.min() == Some(2) && s4.max() == Some(10)); 54 } 55 56 #[test] 57 fn from_range() { 58 let s = ScalarBitSet::<u8>::from_range(5, 5); 59 assert!(s.0 == 0); 60 61 let s = ScalarBitSet::<u8>::from_range(0, 8); 62 assert!(s.0 == 255); 63 64 let s = ScalarBitSet::<u16>::from_range(0, 8); 65 assert!(s.0 == 255u16); 66 67 let s = ScalarBitSet::<u16>::from_range(0, 16); 68 assert!(s.0 == 65535u16); 69 70 let s = ScalarBitSet::<u8>::from_range(5, 6); 71 assert!(s.0 == 32u8); 72 73 let s = ScalarBitSet::<u8>::from_range(3, 7); 74 assert!(s.0 == 8 | 16 | 32 | 64); 75 76 let s = ScalarBitSet::<u16>::from_range(5, 11); 77 assert!(s.0 == 32 | 64 | 128 | 256 | 512 | 1024); 78 } 79