snarkvm_console_types_address/
to_bits.rs1use super::*;
17
18impl<E: Environment> ToBits for Address<E> {
19 fn write_bits_le(&self, vec: &mut Vec<bool>) {
21 self.address.to_x_coordinate().write_bits_le(vec);
22 }
23
24 fn write_bits_be(&self, vec: &mut Vec<bool>) {
26 self.address.to_x_coordinate().write_bits_be(vec);
27 }
28}
29
30#[cfg(test)]
31mod tests {
32 use super::*;
33 use snarkvm_console_network_environment::Console;
34
35 type CurrentEnvironment = Console;
36
37 const ITERATIONS: u64 = 10_000;
38
39 #[test]
40 fn test_to_bits_le() {
41 let mut rng = TestRng::default();
42
43 for _ in 0..ITERATIONS {
44 let address = Address::<CurrentEnvironment>::rand(&mut rng);
46
47 let candidate = address.to_bits_le();
48 assert_eq!(Address::<CurrentEnvironment>::size_in_bits(), candidate.len());
49
50 for (expected, candidate) in (*address).to_x_coordinate().to_bits_le().iter().zip_eq(&candidate) {
51 assert_eq!(expected, candidate);
52 }
53 }
54 }
55
56 #[test]
57 fn test_to_bits_be() {
58 let mut rng = TestRng::default();
59
60 for _ in 0..ITERATIONS {
61 let address = Address::<CurrentEnvironment>::rand(&mut rng);
63
64 let candidate = address.to_bits_be();
65 assert_eq!(Address::<CurrentEnvironment>::size_in_bits(), candidate.len());
66
67 for (expected, candidate) in (*address).to_x_coordinate().to_bits_be().iter().zip_eq(&candidate) {
68 assert_eq!(expected, candidate);
69 }
70 }
71 }
72}