Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
bytecodealliance
GitHub Repository: bytecodealliance/wasmtime
Path: blob/main/cranelift/bitset/tests/bitset.rs
1691 views
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
80