Skip to content

Commit

Permalink
fix: move the test programs to own dir and update Makefile
Browse files Browse the repository at this point in the history
  • Loading branch information
whichqua committed Nov 21, 2024
1 parent 8ad71a3 commit 20a0e46
Show file tree
Hide file tree
Showing 10 changed files with 132 additions and 114 deletions.
22 changes: 20 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,10 @@ MOD_BUILTIN_TEST_PROOF_DIR=cairo_programs/mod_builtin_feature/proof
MOD_BUILTIN_TEST_PROOF_FILES:=$(wildcard $(MOD_BUILTIN_TEST_PROOF_DIR)/*.cairo)
COMPILED_MOD_BUILTIN_PROOF_TESTS:=$(patsubst $(MOD_BUILTIN_TEST_PROOF_DIR)/%.cairo, $(MOD_BUILTIN_TEST_PROOF_DIR)/%.json, $(MOD_BUILTIN_TEST_PROOF_FILES))

SECP_CAIRO0_HINTS_TEST_PROOF_DIR=cairo_programs/cairo-0-secp-hints-feature/proof
SECP_CAIRO0_HINTS_TEST_PROOF_FILES:=$(wildcard $(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/*.cairo)
SECP_CAIRO0_HINTS_PROOF_TESTS:=$(patsubst $(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.cairo, $(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.json, $(SECP_CAIRO0_HINTS_TEST_PROOF_FILES))

$(TEST_PROOF_DIR)/%.json: $(TEST_PROOF_DIR)/%.cairo
cairo-compile --cairo_path="$(TEST_PROOF_DIR):$(PROOF_BENCH_DIR)" $< --output $@ --proof_mode

Expand All @@ -68,6 +72,12 @@ $(PROOF_BENCH_DIR)/%.json: $(PROOF_BENCH_DIR)/%.cairo
$(MOD_BUILTIN_TEST_PROOF_DIR)/%.json: $(MOD_BUILTIN_TEST_PROOF_DIR)/%.cairo
cairo-compile --cairo_path="$(MOD_BUILTIN_TEST_PROOF_DIR):$(MOD_BUILTIN_TEST_PROOF_DIR)" $< --output $@ --proof_mode

$(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.json: $(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.cairo
cairo-compile --cairo_path="$(SECP_CAIRO0_HINTS_TEST_PROOF_DIR):$(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)" $< --output $@ --proof_mode

$(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.trace $(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.memory $(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.air_public_input $(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.air_private_input: $(SECP_CAIRO0_HINTS_TEST_PROOF_DIR)/%.json
cairo-run --layout starknet_with_keccak --proof_mode --program $< --trace_file $(@D)/$(*F).trace --air_public_input $(@D)/$(*F).air_public_input --memory_file $(@D)/$(*F).memory --air_private_input $(@D)/$(*F).air_private_input

# ======================
# Run without proof mode
# ======================
Expand All @@ -90,6 +100,10 @@ BAD_TEST_DIR=cairo_programs/bad_programs
BAD_TEST_FILES:=$(wildcard $(BAD_TEST_DIR)/*.cairo)
COMPILED_BAD_TESTS:=$(patsubst $(BAD_TEST_DIR)/%.cairo, $(BAD_TEST_DIR)/%.json, $(BAD_TEST_FILES))

SECP_CAIRO0_HINTS_DIR=cairo_programs/cairo-0-secp-hints-feature
SECP_CAIRO0_HINTS_FILES:=$(wildcard $(SECP_CAIRO0_HINTS_DIR)/*.cairo)
COMPILED_SECP_CAIRO0_HINTS:=$(patsubst $(SECP_CAIRO0_HINTS_DIR)/%.cairo, $(SECP_CAIRO0_HINTS_DIR)/%.json, $(SECP_CAIRO0_HINTS_FILES))

PRINT_TEST_DIR=cairo_programs/print_feature
PRINT_TEST_FILES:=$(wildcard $(PRINT_TEST_DIR)/*.cairo)
COMPILED_PRINT_TESTS:=$(patsubst $(PRINT_TEST_DIR)/%.cairo, $(PRINT_TEST_DIR)/%.json, $(PRINT_TEST_FILES))
Expand Down Expand Up @@ -120,6 +134,9 @@ $(NORETROCOMPAT_DIR)/%.json: $(NORETROCOMPAT_DIR)/%.cairo
$(BAD_TEST_DIR)/%.json: $(BAD_TEST_DIR)/%.cairo
cairo-compile $< --output $@

$(SECP_CAIRO0_HINTS_DIR)/%.json: $(SECP_CAIRO0_HINTS_DIR)/%.cairo
cairo-compile $< --output $@

$(PRINT_TEST_DIR)/%.json: $(PRINT_TEST_DIR)/%.cairo
cairo-compile $< --output $@

Expand Down Expand Up @@ -239,8 +256,8 @@ run:
check:
cargo check

cairo_test_programs: $(COMPILED_TESTS) $(COMPILED_BAD_TESTS) $(COMPILED_NORETROCOMPAT_TESTS) $(COMPILED_PRINT_TESTS) $(COMPILED_MOD_BUILTIN_TESTS)
cairo_proof_programs: $(COMPILED_PROOF_TESTS) $(COMPILED_MOD_BUILTIN_PROOF_TESTS)
cairo_test_programs: $(COMPILED_TESTS) $(COMPILED_BAD_TESTS) $(COMPILED_NORETROCOMPAT_TESTS) $(COMPILED_PRINT_TESTS) $(COMPILED_MOD_BUILTIN_TESTS) $(COMPILED_SECP_CAIRO0_HINTS)
cairo_proof_programs: $(COMPILED_PROOF_TESTS) $(COMPILED_MOD_BUILTIN_PROOF_TESTS) $(SECP_CAIRO0_HINTS_PROOF_TESTS)
cairo_bench_programs: $(COMPILED_BENCHES)
cairo_1_test_contracts: $(CAIRO_1_COMPILED_CASM_CONTRACTS)
cairo_2_test_contracts: $(CAIRO_2_COMPILED_CASM_CONTRACTS)
Expand Down Expand Up @@ -344,6 +361,7 @@ clean:
rm -f $(TEST_DIR)/*.pie
rm -f $(BENCH_DIR)/*.json
rm -f $(BAD_TEST_DIR)/*.json
rm -f $(SECP_CAIRO0_HINTS_DIR)/*.json
rm -f $(PRINT_TEST_DIR)/*.json
rm -f $(CAIRO_1_CONTRACTS_TEST_DIR)/*.sierra
rm -f $(CAIRO_1_CONTRACTS_TEST_DIR)/*.casm
Expand Down
105 changes: 105 additions & 0 deletions cairo_programs/cairo-0-secp-hints-feature/secp_cairo0_ec.cairo
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
%builtins range_check

// Tests:
// - cairo0_hints::COMPUTE_Q_MOD_PRIME
// - cairo0_hints::COMPUTE_IDS_HIGH_LOW
// - cairo0_hints::SECP_DOUBLE_ASSIGN_NEW_X
// - cairo0_hints::FAST_SECP_ADD_ASSIGN_NEW_Y

from starkware.cairo.common.secp256r1.ec import (
EcPoint,
compute_doubling_slope,
compute_slope,
ec_double,
fast_ec_add,
ec_mul_inner,
)
from starkware.cairo.common.cairo_secp.bigint3 import BigInt3

func main{range_check_ptr: felt}() {
let x = BigInt3(1, 5, 10);
let y = BigInt3(2, 4, 20);


let point_a = EcPoint(x, y);

let point_b = EcPoint(
BigInt3(-1, 5, 10),
BigInt3(77371252455336262886226989, 77371252455336267181195259, 19342813113834066795298795),
);

// let (point_c) = ec_negate(EcPoint(BigInt3(156, 6545, 100010), BigInt3(1123, -1325, 910)));
let point_c = EcPoint(
BigInt3(156, 6545, 100010),
BigInt3(77371252455336262886225868, 1324, 19342813113834066795297906),
);

// compute_doubling_slope
let (slope_a) = compute_doubling_slope(point_b);
// assert slope_a = BigInt3(
// 64839545681970757313529612, 5953360968438044038987377, 13253714962539897079325475
// );

// let (slope_b) = compute_doubling_slope(
// EcPoint(BigInt3(1231, 51235643, 100000), BigInt3(77371252455, 7737125245, 19342813113))
// );
// assert slope_b = BigInt3(
// 61129622008745017597879703, 29315582959606925875642332, 13600923539144215962821694
// );

// // compute_slope
// let (slope_c) = compute_slope(point_a, point_c);
// assert slope_c = BigInt3(
// 69736698275759322439409874, 45955733659898858347886847, 18034242868575077772302310
// );

// let (slope_d) = compute_slope(point_c, point_b);
// assert slope_d = BigInt3(
// 66872739393348882319301304, 44057296979296181456999622, 6628179500048909995474229
// );

// // ec_double
// let (point_d) = ec_double(point_a);
// assert point_d = EcPoint(
// BigInt3(62951442591564288805558802, 32562108923955565608466346, 18605500881547971871596634),
// BigInt3(32147810383256899543807670, 5175857156528420748725791, 6618806236944685895112117),
// );

// let (point_e) = ec_double(
// EcPoint(BigInt3(156, 6545, 100010), BigInt3(5336262886225868, 1324, 113834066795297906))
// );
// assert point_e = EcPoint(
// BigInt3(47503316700827173496989353, 17218105161352860131668522, 527908748911931938599018),
// BigInt3(50964737623371959432443726, 60451660835701602854498663, 5043009036652075489876599),
// );

// // fast_ec_add
// let (point_f) = fast_ec_add(point_a, point_e);
// assert point_f = EcPoint(
// BigInt3(29666922781464823323928071, 37719311829566792810003084, 9541551049028573381125035),
// BigInt3(12938160206947174373897851, 22954464827120147659997987, 2690642098017756659925259),
// );

// let (point_g) = fast_ec_add(
// EcPoint(BigInt3(89712, 56, 7348489324), BigInt3(980126, 10, 8793)),
// EcPoint(BigInt3(16451, 5967, 2171381), BigInt3(12364564, 123654, 193)),
// );
// assert point_g = EcPoint(
// BigInt3(14771767859485410664249539, 62406103981610765545970487, 8912032684309792565082157),
// BigInt3(25591125893919304137822981, 54543895003572926651874352, 18968003584818937876851951),
// );

// // ec_mul_inner
// let (pow2, res) = ec_mul_inner(
// EcPoint(
// BigInt3(65162296, 359657, 04862662171381), BigInt3(5166641367474701, 63029418, 793)
// ),
// 123,
// 298,
// );
// assert pow2 = EcPoint(
// BigInt3(73356165220405599685396595, 44054642183803477920871071, 5138516367480965019117743),
// BigInt3(40256732918865941543909206, 68107624737772931608959283, 1842118797516663063623771),
// );
return ();
}
File renamed without changes.
105 changes: 0 additions & 105 deletions cairo_programs/secp_cairo0_ec.cairo

This file was deleted.

14 changes: 7 additions & 7 deletions vm/src/tests/cairo_run_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1245,31 +1245,31 @@ fn cairo_run_apply_poly_proof() {
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
#[cfg(feature = "cairo-0-secp-hints")]
fn cairo_run_secp_cairo0_reduce_value() {
let program_data = include_bytes!("../../../cairo_programs/secp_cairo0_reduce_value.json");
let program_data = include_bytes!("../../../cairo_programs/cairo-0-secp-hints-feature/secp_cairo0_reduce_value.json");
run_program_simple(program_data.as_slice());
}

#[test]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
#[cfg(feature = "cairo-0-secp-hints")]
fn cairo_run_secp_cairo0_ec() {
let program_data = include_bytes!("../../../cairo_programs/secp_cairo0_ec.json");
let program_data = include_bytes!("../../../cairo_programs/cairo-0-secp-hints-feature/secp_cairo0_ec.json");
run_program_simple(program_data.as_slice());
}

#[test]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
#[cfg(feature = "cairo-0-secp-hints")]
fn cairo_run_secp_cairo0_reduce_x() {
let program_data = include_bytes!("../../../cairo_programs/secp_cairo0_reduce_x.json");
let program_data = include_bytes!("../../../cairo_programs/cairo-0-secp-hints-feature/secp_cairo0_reduce_x.json");
run_program_simple(program_data.as_slice());
}

#[test]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
#[cfg(feature = "cairo-0-secp-hints")]
fn cairo_run_secp_cairo0_get_point_from_x() {
let program_data = include_bytes!("../../../cairo_programs/secp_cairo0_get_point_from_x.json");
let program_data = include_bytes!("../../../cairo_programs/cairo-0-secp-hints-feature/secp_cairo0_get_point_from_x.json");
run_program_simple(program_data.as_slice());
}

Expand All @@ -1278,7 +1278,7 @@ fn cairo_run_secp_cairo0_get_point_from_x() {
#[cfg(feature = "cairo-0-secp-hints")]
fn cairo_run_secp_cairo0_compute_q_mod_prime() {
let program_data =
include_bytes!("../../../cairo_programs/secp_cairo0_compute_q_mod_prime.json");
include_bytes!("../../../cairo_programs/cairo-0-secp-hints-feature/secp_cairo0_compute_q_mod_prime.json");
run_program_simple(program_data.as_slice());
}

Expand All @@ -1287,14 +1287,14 @@ fn cairo_run_secp_cairo0_compute_q_mod_prime() {
#[cfg(feature = "cairo-0-secp-hints")]
fn cairo_run_secp_cairo0_ec_double_assign_new_x() {
let program_data =
include_bytes!("../../../cairo_programs/secp_cairo0_ec_double_assign_new_x.json");
include_bytes!("../../../cairo_programs/cairo-0-secp-hints-feature/secp_cairo0_ec_double_assign_new_x.json");
run_program_simple(program_data.as_slice());
}

#[test]
#[cfg_attr(target_arch = "wasm32", wasm_bindgen_test)]
#[cfg(feature = "cairo-0-secp-hints")]
fn cairo_run_secp_cairo0_ec_mul_by_uint256() {
let program_data = include_bytes!("../../../cairo_programs/secp_cairo0_ec_mul_by_uint256.json");
let program_data = include_bytes!("../../../cairo_programs/cairo-0-secp-hints-feature/secp_cairo0_ec_mul_by_uint256.json");
run_program_simple(program_data.as_slice());
}

0 comments on commit 20a0e46

Please sign in to comment.