@@ -49,7 +49,7 @@ using namespace nil;
4949template <typename CurveType>
5050void test_unified_addition (std::vector<typename CurveType::base_field_type::value_type> public_input,
5151 typename CurveType::template g1_type<crypto3::algebra::curves::coordinates::affine>::value_type expected_res){
52-
52+
5353 using curve_type = CurveType;
5454 using BlueprintFieldType = typename curve_type::base_field_type;
5555
@@ -72,15 +72,16 @@ void test_unified_addition(std::vector<typename CurveType::base_field_type::valu
7272 {var (0 , 0 , false , var::column_type::public_input), var (0 , 1 , false , var::column_type::public_input)},
7373 {var (0 , 2 , false , var::column_type::public_input), var (0 , 3 , false , var::column_type::public_input)}};
7474
75- auto result_check = [&expected_res, public_input](AssignmentType &assignment,
75+ auto result_check = [&expected_res, public_input](AssignmentType &assignment,
7676 typename component_type::result_type &real_res) {
77- #ifdef BLUEPRINT_PLONK_PROFILING_ENABLED
78- std::cout << " unified_addition test: " << " \n " ;
79- std::cout << " input : " << public_input[0 ].data << " " << public_input[1 ].data << " \n " ;
80- std::cout << " input : " << public_input[2 ].data << " " << public_input[3 ].data << " \n " ;
81- std::cout << " expected: " << expected_res.X .data << " " << expected_res.Y .data << " \n " ;
82- std::cout << " real : " << var_value (assignment, real_res.X ).data << " " << var_value (assignment, real_res.Y ).data << " \n\n " ;
83- #endif
77+
78+ if ((expected_res.X != var_value (assignment, real_res.X )) || (expected_res.Y != var_value (assignment, real_res.Y ))) {
79+ std::cout << " unified_addition failed, expected result differs form circuit output: " << " \n " ;
80+ std::cout << " input : " << public_input[0 ].data << " " << public_input[1 ].data << " \n " ;
81+ std::cout << " input : " << public_input[2 ].data << " " << public_input[3 ].data << " \n " ;
82+ std::cout << " expected: " << expected_res.X .data << " " << expected_res.Y .data << " \n " ;
83+ std::cout << " real : " << var_value (assignment, real_res.X ).data << " " << var_value (assignment, real_res.Y ).data << " \n\n " ;
84+ }
8485 assert (expected_res.X == var_value (assignment, real_res.X ));
8586 assert (expected_res.Y == var_value (assignment, real_res.Y ));
8687 };
@@ -97,8 +98,7 @@ void test_unified_addition_with_zeroes() {
9798 boost::random::mt19937 seed_seq;
9899 generate_random_point.seed (seed_seq);
99100
100- typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type zero_algebraic = {0 , 1 };
101- typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type zero_circuits = {0 , 0 };
101+ typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type zero_circuits = {0 , 1 };
102102 typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type P = generate_random_point ();
103103 typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type Q = -P;
104104
@@ -146,28 +146,14 @@ void test_unified_addition_random_data() {
146146
147147 typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type P = generate_random_point ();
148148 typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type Q = generate_random_point ();
149- typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type zero = {0 , 0 };
150149 typename CurveType::template g1_type<nil::crypto3::algebra::curves::coordinates::affine>::value_type expected_res;
151150
152151 std::vector<typename CurveType::base_field_type::value_type> public_input;
153152
154153 for (std::size_t i = 0 ; i < RandomTestsAmount; i++){
155154 P = generate_random_point ();
156155 Q = generate_random_point ();
157-
158- if (Q.X == zero.X && Q.Y == zero.Y ) {
159- expected_res = P;
160- } else {
161- if (P.X == zero.X && P.Y == zero.Y ) {
162- expected_res = Q;
163- } else {
164- if (P.X == Q.X && P.Y == -Q.Y ) {
165- expected_res = {0 , 0 };
166- } else {
167- expected_res = P + Q;
168- }
169- }
170- }
156+ expected_res = P + Q;
171157
172158 public_input = {P.X , P.Y , Q.X , Q.Y };
173159 test_unified_addition<CurveType>(public_input, expected_res);
0 commit comments