Skip to content

Commit 639812b

Browse files
starknet_os: parametrize test_reduced_mul_parameterized (#11079)
1 parent fce02f2 commit 639812b

File tree

1 file changed

+14
-13
lines changed
  • crates/starknet_os/src/hints/hint_implementation/bls_field

1 file changed

+14
-13
lines changed

crates/starknet_os/src/hints/hint_implementation/bls_field/tests.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
use std::array;
22
use std::collections::HashMap;
3+
use std::sync::LazyLock;
34

45
use apollo_starknet_os_program::OS_PROGRAM_BYTES;
56
use cairo_vm::types::builtin_name::BuiltinName;
@@ -29,6 +30,8 @@ use crate::test_utils::utils::{
2930
};
3031

3132
const REDUCED_MUL_LIMB_BOUND: i128 = 2_i128.pow(104);
33+
static MAX_VALUE: LazyLock<Felt> = LazyLock::new(|| Felt::from(REDUCED_MUL_LIMB_BOUND - 1));
34+
static MIN_VALUE: LazyLock<Felt> = LazyLock::new(|| Felt::from(-REDUCED_MUL_LIMB_BOUND + 1));
3235

3336
fn run_reduced_mul_test(a_split: &[Felt], b_split: &[Felt]) {
3437
let explicit_args = [
@@ -229,19 +232,17 @@ fn test_reduced_mul_random() {
229232
run_reduced_mul_test(&a_split, &b_split)
230233
}
231234

232-
#[test]
233-
fn test_reduced_mul_parameterized() {
234-
let max_value = Felt::from(REDUCED_MUL_LIMB_BOUND - 1);
235-
let min_value = Felt::from(-REDUCED_MUL_LIMB_BOUND + 1);
236-
let values: [([Felt; 3], [Felt; 3]); 4] = [
237-
(array::from_fn(|_| max_value), array::from_fn(|_| max_value)),
238-
(array::from_fn(|_| min_value), array::from_fn(|_| min_value)),
239-
([-Felt::ONE, Felt::ZERO, Felt::ZERO], [Felt::ONE, Felt::ZERO, Felt::ZERO]),
240-
([Felt::ONE, Felt::from(2), Felt::from(3)], [Felt::ZERO, Felt::ZERO, Felt::ZERO]),
241-
];
242-
for (a_split, b_split) in values {
243-
run_reduced_mul_test(&a_split, &b_split);
244-
}
235+
#[rstest]
236+
#[case::max(array::from_fn(|_| *MAX_VALUE), array::from_fn(|_| *MAX_VALUE))]
237+
#[case::min(array::from_fn(|_| *MIN_VALUE), array::from_fn(|_| *MIN_VALUE))]
238+
#[case::negative_and_positive(
239+
[-Felt::ONE, Felt::ZERO, Felt::ZERO], [Felt::ONE, Felt::ZERO, Felt::ZERO]
240+
)]
241+
#[case::sequence_and_zero(
242+
[Felt::ONE, Felt::from(2), Felt::from(3)], [Felt::ZERO, Felt::ZERO, Felt::ZERO]
243+
)]
244+
fn test_reduced_mul_parameterized(#[case] a_split: [Felt; 3], #[case] b_split: [Felt; 3]) {
245+
run_reduced_mul_test(&a_split, &b_split);
245246
}
246247

247248
#[test]

0 commit comments

Comments
 (0)