MCPcopy Create free account
hub / github.com/base/triedb / test_pointer_to_bytes

Function test_pointer_to_bytes

src/pointer.rs:144–181  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

142
143 #[test]
144 fn test_pointer_to_bytes() {
145 let rlp_hash = RlpNode::word_rlp(&EMPTY_ROOT_HASH);
146 let pointer = Pointer::new(Location::for_cell(1), rlp_hash);
147 let bytes = pointer.serialize().unwrap();
148 let mut expected = vec![0, 0, 0, 1, 1];
149 expected.extend(EMPTY_ROOT_HASH);
150 assert_eq!(bytes, expected);
151
152 let short_rlp = RlpNode::from_rlp(&encode(42u64));
153 let pointer = Pointer::new(Location::for_cell(1), short_rlp);
154 let bytes = pointer.serialize().unwrap();
155 let mut expected = vec![0, 0, 0, 1, 0, 42];
156 expected.extend([0; 31]);
157 assert_eq!(bytes, expected);
158
159 let zero_rlp = RlpNode::from_rlp(&encode(0u64));
160 let pointer = Pointer::new(Location::for_cell(1), zero_rlp);
161 let bytes = pointer.serialize().unwrap();
162 let mut expected = vec![0, 0, 0, 1, 0, 128];
163 expected.extend([0; 31]);
164 assert_eq!(bytes, expected);
165
166 let short_string_rlp = RlpNode::from_rlp(&encode("hello world"));
167 let pointer = Pointer::new(Location::for_cell(1), short_string_rlp);
168 let bytes = pointer.serialize().unwrap();
169 let mut expected = vec![0, 0, 0, 1, 0, 139];
170 expected.extend(b"hello world");
171 expected.extend([0; 20]);
172 assert_eq!(bytes, expected);
173
174 // Hex encoding of ["abc", 12345]
175 let short_leaf_rlp = RlpNode::from_rlp(&hex!("c783616263823039"));
176 let pointer = Pointer::new(Location::for_cell(1), short_leaf_rlp);
177 let bytes = pointer.serialize().unwrap();
178 let mut expected = vec![0, 0, 0, 1, 0, 0xc7, 0x83, 0x61, 0x62, 0x63, 0x82, 0x30, 0x39];
179 expected.extend([0; 24]);
180 assert_eq!(bytes, expected);
181 }
182
183 #[test]
184 fn test_pointer_from_bytes() {

Callers

nothing calls this directly

Calls 2

serializeMethod · 0.80
extendMethod · 0.80

Tested by

no test coverage detected