|
1 | 1 | use std::{array, iter, sync::Arc};
|
2 | 2 |
|
3 | 3 | use openvm_stark_backend::{
|
4 |
| - p3_field::FieldAlgebra, p3_matrix::dense::RowMajorMatrix, p3_maybe_rayon::prelude::*, AirRef, |
| 4 | + p3_field::FieldAlgebra, p3_matrix::dense::RowMajorMatrix, p3_maybe_rayon::prelude::*, |
| 5 | + utils::disable_debug_builder, verifier::VerificationError, AirRef, |
5 | 6 | };
|
6 | 7 | use openvm_stark_sdk::{
|
7 |
| - config::baby_bear_blake3::BabyBearBlake3Engine, |
| 8 | + any_rap_arc_vec, config::baby_bear_blake3::BabyBearBlake3Engine, |
8 | 9 | dummy_airs::interaction::dummy_interaction_air::DummyInteractionAir, engine::StarkFriEngine,
|
9 | 10 | p3_baby_bear::BabyBear, utils::create_seeded_rng,
|
10 | 11 | };
|
@@ -78,41 +79,41 @@ fn test_range_tuple_chip() {
|
78 | 79 | .expect("Verification failed");
|
79 | 80 | }
|
80 | 81 |
|
81 |
| -// #[test] |
82 |
| -// fn negative_test_range_tuple_chip() { |
83 |
| -// let bus_index = 0; |
84 |
| -// let sizes = [2, 2, 8]; |
85 |
| - |
86 |
| -// let bus = RangeTupleCheckerBus::new(bus_index, sizes); |
87 |
| -// let range_checker = RangeTupleCheckerChip::new(bus); |
88 |
| - |
89 |
| -// let height = sizes.iter().product(); |
90 |
| -// let range_trace = RowMajorMatrix::new( |
91 |
| -// (1..=height) |
92 |
| -// .flat_map(|idx| { |
93 |
| -// let mut idx = idx; |
94 |
| -// let mut v = vec![]; |
95 |
| -// for size in sizes.iter().rev() { |
96 |
| -// let val = idx % size; |
97 |
| -// idx /= size; |
98 |
| -// v.push(val); |
99 |
| -// } |
100 |
| -// v.reverse(); |
101 |
| -// v.into_iter().chain(iter::once(0)) |
102 |
| -// }) |
103 |
| -// .map(FieldAlgebra::from_wrapped_u32) |
104 |
| -// .collect(), |
105 |
| -// sizes.len() + 1, |
106 |
| -// ); |
107 |
| - |
108 |
| -// disable_debug_builder(); |
109 |
| -// assert_eq!( |
110 |
| -// BabyBearBlake3Engine::run_simple_test_no_pis_fast( |
111 |
| -// any_rap_arc_vec![range_checker.air], |
112 |
| -// vec![range_trace] |
113 |
| -// ) |
114 |
| -// .err(), |
115 |
| -// Some(VerificationError::ChallengePhaseError), |
116 |
| -// "Expected constraint to fail" |
117 |
| -// ); |
118 |
| -// } |
| 82 | +#[test] |
| 83 | +fn negative_test_range_tuple_chip() { |
| 84 | + let bus_index = 0; |
| 85 | + let sizes = [2, 2, 8]; |
| 86 | + |
| 87 | + let bus = RangeTupleCheckerBus::new(bus_index, sizes); |
| 88 | + let range_checker = RangeTupleCheckerChip::new(bus); |
| 89 | + |
| 90 | + let height = sizes.iter().product(); |
| 91 | + let range_trace = RowMajorMatrix::new( |
| 92 | + (1..=height) |
| 93 | + .flat_map(|idx| { |
| 94 | + let mut idx = idx; |
| 95 | + let mut v = vec![]; |
| 96 | + for size in sizes.iter().rev() { |
| 97 | + let val = idx % size; |
| 98 | + idx /= size; |
| 99 | + v.push(val); |
| 100 | + } |
| 101 | + v.reverse(); |
| 102 | + v.into_iter().chain(iter::once(0)) |
| 103 | + }) |
| 104 | + .map(FieldAlgebra::from_wrapped_u32) |
| 105 | + .collect(), |
| 106 | + sizes.len() + 1, |
| 107 | + ); |
| 108 | + |
| 109 | + disable_debug_builder(); |
| 110 | + assert_eq!( |
| 111 | + BabyBearBlake3Engine::run_simple_test_no_pis_fast( |
| 112 | + any_rap_arc_vec![range_checker.air], |
| 113 | + vec![range_trace] |
| 114 | + ) |
| 115 | + .err(), |
| 116 | + Some(VerificationError::ChallengePhaseError), |
| 117 | + "Expected constraint to fail" |
| 118 | + ); |
| 119 | +} |
0 commit comments