Skip to content

Commit 1626d9d

Browse files
starknet_os: add aliases test from non empty storage
1 parent 5f88e8b commit 1626d9d

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
@@ -125,6 +125,105 @@ fn allocate_and_replace_keys_from_empty_storage(
125125
assert_eq!(actual_alias_per_key, expected_alias_per_key);
126126
}
127127

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

0 commit comments

Comments
 (0)