Skip to content

Commit 8fc53e7

Browse files
starknet_os: add aliases test from non empty storage
1 parent d2492d4 commit 8fc53e7

File tree

1 file changed

+99
-0
lines changed

1 file changed

+99
-0
lines changed

crates/starknet_os/src/tests/aliases.rs

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,105 @@ fn allocate_and_replace_keys_from_empty_storage(
124124
assert_eq!(actual_alias_per_key, expected_alias_per_key);
125125
}
126126

127+
#[rstest]
128+
#[case(
129+
vec![],
130+
vec![],
131+
HashMap::from([(0.into(), 128.into())]),
132+
HashMap::from([(0, 128)])
133+
)]
134+
#[case(
135+
vec![2000.into()],
136+
vec![128],
137+
HashMap::from([
138+
(0.into(), 131.into()),
139+
(2000.into(), 128.into())
140+
]),
141+
HashMap::from([
142+
(0, 131),
143+
(2000, 128),
144+
(1999999999, 129),
145+
(3000, 130)
146+
])
147+
)]
148+
#[case(
149+
vec![2001.into()],
150+
vec![131],
151+
HashMap::from([
152+
(0.into(), 132.into()),
153+
(2001.into(), 131.into())
154+
]),
155+
HashMap::from([
156+
(0, 131),
157+
(2000, 128),
158+
(1999999999, 129),
159+
(3000, 130)
160+
])
161+
)]
162+
#[case(
163+
vec![2001.into(), 2000.into(), 2005.into()],
164+
vec![131, 128, 132],
165+
HashMap::from([
166+
(0.into(), 133.into()),
167+
(2000.into(), 128.into()),
168+
(2001.into(), 131.into()),
169+
(2005.into(), 132.into())
170+
]),
171+
HashMap::from([
172+
(0, 131),
173+
(2000, 128),
174+
(1999999999, 129),
175+
(3000, 130)
176+
])
177+
)]
178+
#[case(
179+
vec![
180+
13.into(),
181+
500.into(),
182+
11.into(),
183+
2000.into(),
184+
89999.into(),
185+
13.into(),
186+
501.into(),
187+
98.into(),
188+
222.into(),
189+
501.into()
190+
],
191+
vec![13, 128, 11, 129, 131, 13, 132, 98, 133, 132],
192+
HashMap::from([
193+
(0.into(), 134.into()),
194+
(222.into(), 133.into()),
195+
(500.into(), 128.into()),
196+
(501.into(), 132.into()),
197+
(2000.into(), 129.into()),
198+
(89999.into(), 131.into())
199+
]),
200+
HashMap::from([
201+
(0, 131),
202+
(500, 128),
203+
(2000, 129),
204+
(2001, 130)
205+
])
206+
)]
207+
fn allocate_and_replace_keys_from_non_empty_storage(
208+
#[case] keys: Vec<Felt>,
209+
#[case] expected_alias_per_key: Vec<u128>,
210+
#[case] expected_alias_storage: HashMap<Felt, Felt>,
211+
#[case] initial_storage: HashMap<u128, u128>,
212+
) {
213+
let initial_storage = initial_storage
214+
.into_iter()
215+
.map(|(key, value)| (StorageKey::from(key), Felt::from(value)))
216+
.collect::<HashMap<_, _>>();
217+
let expected_alias_per_key: Vec<_> =
218+
expected_alias_per_key.into_iter().map(Felt::from).collect();
219+
let (actual_alias_storage, actual_alias_per_key) =
220+
allocate_aliases_for_keys_and_replace(keys, initial_storage);
221+
222+
assert_eq!(actual_alias_storage, expected_alias_storage);
223+
assert_eq!(actual_alias_per_key, expected_alias_per_key);
224+
}
225+
127226
fn allocate_aliases_for_keys_and_replace(
128227
keys: Vec<Felt>,
129228
initial_storage: HashMap<StorageKey, Felt>,

0 commit comments

Comments
 (0)