From 1045dd8c5ec73154a7e45dc6082c6ddf93fe7d17 Mon Sep 17 00:00:00 2001 From: Federica Date: Thu, 9 Mar 2023 18:17:01 -0300 Subject: [PATCH] Add integration test --- cairo_programs/ec_op.cairo | 16 ++++++++++++++++ .../builtin_hint_processor_definition.rs | 5 +++++ tests/cairo_run_test.rs | 16 ++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 cairo_programs/ec_op.cairo diff --git a/cairo_programs/ec_op.cairo b/cairo_programs/ec_op.cairo new file mode 100644 index 0000000000..2f3908e6ec --- /dev/null +++ b/cairo_programs/ec_op.cairo @@ -0,0 +1,16 @@ +%builtins ec_op + +from starkware.cairo.common.cairo_builtins import EcOpBuiltin +from starkware.cairo.common.ec_point import EcPoint +from starkware.cairo.common.ec import ec_op + + +func main{ec_op_ptr: EcOpBuiltin*}() { + let p = EcPoint(3,0); + let m = 34; + let q = EcPoint(4,0); + let (r) = ec_op(p, m, q); + assert r.x = 3; + assert r.y = 0; + return (); +} diff --git a/src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs b/src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs index 6f94342a24..e83cdaef1d 100644 --- a/src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs +++ b/src/hint_processor/builtin_hint_processor/builtin_hint_processor_definition.rs @@ -66,6 +66,8 @@ use felt::Felt; #[cfg(feature = "skip_next_instruction_hint")] use crate::hint_processor::builtin_hint_processor::skip_next_instruction::skip_next_instruction; +use super::ec_utils::random_ec_point_hint; + pub struct HintProcessorData { pub code: String, pub ap_tracking: ApTracking, @@ -438,6 +440,9 @@ impl HintProcessor for BuiltinHintProcessor { hint_code::VERIFY_ECDSA_SIGNATURE => { verify_ecdsa_signature(vm, &hint_data.ids_data, &hint_data.ap_tracking) } + hint_code::RANDOM_EC_POINT => { + random_ec_point_hint(vm, &hint_data.ids_data, &hint_data.ap_tracking) + } #[cfg(feature = "skip_next_instruction_hint")] hint_code::SKIP_NEXT_INSTRUCTION => skip_next_instruction(vm), code => Err(HintError::UnknownHint(code.to_string())), diff --git a/tests/cairo_run_test.rs b/tests/cairo_run_test.rs index c1bbb9f0a7..9efe1f3b8b 100644 --- a/tests/cairo_run_test.rs +++ b/tests/cairo_run_test.rs @@ -1408,3 +1408,19 @@ fn cairo_run_verify_signature_hint() { ) .expect("Couldn't run program"); } + +#[test] +#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)] +fn cairo_run_ec_op() { + let mut hint_executor = BuiltinHintProcessor::new_empty(); + let cairo_run_config = cairo_run::CairoRunConfig { + layout: "all", + ..cairo_vm::cairo_run::CairoRunConfig::default() + }; + cairo_run::cairo_run( + include_bytes!("../cairo_programs/ec_op.json"), + &cairo_run_config, + &mut hint_executor, + ) + .expect("Couldn't run program"); +}