1 use super::*;
2
3 #[test]
test_fixed_big_int_set_bit()4 fn test_fixed_big_int_set_bit() {
5 let mut bi = FixedBigInt::new(224);
6
7 bi.set_bit(0);
8 assert_eq!(
9 bi.to_string(),
10 "0000000000000000000000000000000000000000000000000000000000000001"
11 );
12
13 bi.lsh(1);
14 assert_eq!(
15 bi.to_string(),
16 "0000000000000000000000000000000000000000000000000000000000000002"
17 );
18
19 bi.lsh(0);
20 assert_eq!(
21 bi.to_string(),
22 "0000000000000000000000000000000000000000000000000000000000000002"
23 );
24
25 bi.set_bit(10);
26 assert_eq!(
27 bi.to_string(),
28 "0000000000000000000000000000000000000000000000000000000000000402"
29 );
30 bi.lsh(20);
31 assert_eq!(
32 bi.to_string(),
33 "0000000000000000000000000000000000000000000000000000000040200000"
34 );
35
36 bi.set_bit(80);
37 assert_eq!(
38 bi.to_string(),
39 "0000000000000000000000000000000000000000000100000000000040200000"
40 );
41 bi.lsh(4);
42 assert_eq!(
43 bi.to_string(),
44 "0000000000000000000000000000000000000000001000000000000402000000"
45 );
46
47 bi.set_bit(130);
48 assert_eq!(
49 bi.to_string(),
50 "0000000000000000000000000000000400000000001000000000000402000000"
51 );
52 bi.lsh(64);
53 assert_eq!(
54 bi.to_string(),
55 "0000000000000004000000000010000000000004020000000000000000000000"
56 );
57
58 bi.set_bit(7);
59 assert_eq!(
60 bi.to_string(),
61 "0000000000000004000000000010000000000004020000000000000000000080"
62 );
63
64 bi.lsh(129);
65 assert_eq!(
66 bi.to_string(),
67 "0000000004000000000000000000010000000000000000000000000000000000"
68 );
69
70 for _ in 0..256 {
71 bi.lsh(1);
72 bi.set_bit(0);
73 }
74 assert_eq!(
75 bi.to_string(),
76 "00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
77 );
78 }
79