@@ -46,7 +46,7 @@ using namespace nil;
46
46
47
47
template <typename BlueprintFieldType, typename NonNativeCurveType>
48
48
void test_bool_scalar_multiplication (std::vector<typename BlueprintFieldType::value_type> public_input,
49
- std::vector<typename BlueprintFieldType::value_type> expected_res, bool must_pass = true ){
49
+ std::vector<typename BlueprintFieldType::value_type> expected_res, bool expected_to_pass ){
50
50
51
51
constexpr std::size_t WitnessColumns = 9 ;
52
52
constexpr std::size_t PublicInputColumns = 1 ;
@@ -74,7 +74,7 @@ void test_bool_scalar_multiplication(std::vector<typename BlueprintFieldType::va
74
74
75
75
typename component_type::input_type instance_input = {{T_x, T_y}, var (0 , 8 , false , var::column_type::public_input)};
76
76
77
- auto result_check = [&expected_res, public_input, must_pass ](AssignmentType &assignment,
77
+ auto result_check = [&expected_res, public_input, expected_to_pass ](AssignmentType &assignment,
78
78
typename component_type::result_type &real_res) {
79
79
80
80
#ifdef BLUEPRINT_PLONK_PROFILING_ENABLED
@@ -117,7 +117,7 @@ void test_bool_scalar_multiplication(std::vector<typename BlueprintFieldType::va
117
117
// std::cout << "(" << glue_non_native<BlueprintFieldType, NonNativeFieldType>(real_y).data << ")" << std::endl;
118
118
#endif
119
119
120
- if (must_pass ) {
120
+ if (expected_to_pass ) {
121
121
for (std::size_t i = 0 ; i < 4 ; i++) {
122
122
assert (expected_res[i] == var_value (assignment, real_res.output .x [i]));
123
123
assert (expected_res[i+4 ] == var_value (assignment, real_res.output .y [i]));
@@ -127,14 +127,18 @@ void test_bool_scalar_multiplication(std::vector<typename BlueprintFieldType::va
127
127
128
128
component_type component_instance ({0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 },{},{});
129
129
130
- crypto3::test_component<component_type, BlueprintFieldType, ArithmetizationParams, hash_type, Lambda>(
131
- component_instance, public_input, result_check, instance_input, must_pass);
130
+ if (expected_to_pass) {
131
+ crypto3::test_component<component_type, BlueprintFieldType, ArithmetizationParams, hash_type, Lambda>(
132
+ component_instance, public_input, result_check, instance_input);
133
+ } else {
134
+ crypto3::test_component_to_fail<component_type, BlueprintFieldType, ArithmetizationParams, hash_type, Lambda>(
135
+ component_instance, public_input, result_check, instance_input);
136
+ }
132
137
}
133
138
134
139
template <typename FieldType, typename NonNativeCurveType>
135
140
void test_bool_scalar_multiplication_usable (typename NonNativeCurveType::template g1_type<crypto3::algebra::curves::coordinates::affine>::value_type point,
136
- typename FieldType::value_type scalar_bool,
137
- bool must_pass = true ) {
141
+ typename FieldType::value_type scalar_bool, bool expected_to_pass) {
138
142
139
143
std::vector<typename FieldType::value_type> public_input = create_public_input<FieldType, typename NonNativeCurveType::base_field_type>(
140
144
chop_non_native<FieldType, typename NonNativeCurveType::base_field_type>(point.X ),
@@ -148,7 +152,7 @@ void test_bool_scalar_multiplication_usable (typename NonNativeCurveType::templa
148
152
}
149
153
public_input.push_back (scalar_bool);
150
154
151
- test_bool_scalar_multiplication<FieldType, NonNativeCurveType>(public_input, expected_res, must_pass );
155
+ test_bool_scalar_multiplication<FieldType, NonNativeCurveType>(public_input, expected_res, expected_to_pass );
152
156
}
153
157
154
158
constexpr static const std::size_t random_tests_amount = 3 ;
@@ -164,12 +168,12 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_bool_scalar_mul_test1) {
164
168
boost::random::mt19937 seed_seq;
165
169
rand.seed (seed_seq);
166
170
167
- test_bool_scalar_multiplication_usable<field_type, non_native_curve_type>({0 ,1 }, 1 );
168
- test_bool_scalar_multiplication_usable<field_type, non_native_curve_type>({0 ,1 }, 0 );
171
+ test_bool_scalar_multiplication_usable<field_type, non_native_curve_type>({0 ,1 }, 1 , true );
172
+ test_bool_scalar_multiplication_usable<field_type, non_native_curve_type>({0 ,1 }, 0 , true );
169
173
170
174
for (std::size_t i = 0 ; i < random_tests_amount; i++) {
171
- test_bool_scalar_multiplication_usable<field_type, non_native_curve_type>(rand (), 1 );
172
- test_bool_scalar_multiplication_usable<field_type, non_native_curve_type>(rand (), 0 );
175
+ test_bool_scalar_multiplication_usable<field_type, non_native_curve_type>(rand (), 1 , true );
176
+ test_bool_scalar_multiplication_usable<field_type, non_native_curve_type>(rand (), 0 , true );
173
177
}
174
178
}
175
179
0 commit comments