Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
cycle_group.test.cpp File Reference

Go to the source code of this file.

Classes

class  CycleGroupTest< Builder >
 

Macros

#define STDLIB_TYPE_ALIASES
 

Typedefs

using CircuitTypes = ::testing::Types< bb::UltraCircuitBuilder, bb::MegaCircuitBuilder >
 

Functions

 TYPED_TEST_SUITE (CycleGroupTest, CircuitTypes)
 
STANDARD_TESTING_TAGS TYPED_TEST (CycleGroupTest, TestBasicTagLogic)
 Check basic tag interactions.
 
 TYPED_TEST (CycleGroupTest, TestInfConstantWintnessRegression)
 Checks that a point at infinity passes the constant_witness initialization.
 
 TYPED_TEST (CycleGroupTest, TestInfWintnessRegression)
 Checks that a point at infinity passes the witness initialization.
 
 TYPED_TEST (CycleGroupTest, TestWitnessSumRegression)
 Checks that the result of adding two witness values is not constant.
 
 TYPED_TEST (CycleGroupTest, TestOperatorNegRegression)
 Checks that adding operator-(value) to an existing value does not result into error.
 
 TYPED_TEST (CycleGroupTest, TestConstantWitnessMixupRegression)
 Checks the mixup bad behavior found by fuzzer.
 
 TYPED_TEST (CycleGroupTest, TestConditionalAssignRegression)
 Checks the bad behavior of conditional assign.
 
 TYPED_TEST (CycleGroupTest, TestConditionalAssignSuperMixupRegression)
 Checks the bad behavior of conditional assign.
 
 TYPED_TEST (CycleGroupTest, TestValidateOnCurveSucceed)
 Checks that a point on the curve passes the validate_on_curve check.
 
 TYPED_TEST (CycleGroupTest, TestValidateOnCurveInfinitySucceed)
 Checks that a point that is not on the curve but marked as the point at infinity passes the validate_on_curve check.
 
 TYPED_TEST (CycleGroupTest, TestValidateOnCurveFail)
 Checks that a point that is not on the curve but not marked as the point at infinity fails the validate_on_curve check.
 
 TYPED_TEST (CycleGroupTest, TestValidateOnCurveFail2)
 Checks that a point that is not on the curve but not marked as the point at infinity fails the validate_on_curve check.
 
 TYPED_TEST (CycleGroupTest, TestStandardForm)
 
 TYPED_TEST (CycleGroupTest, TestDbl)
 
 TYPED_TEST (CycleGroupTest, TestDblNonConstantPoints)
 
 TYPED_TEST (CycleGroupTest, TestDblConstantPoints)
 
 TYPED_TEST (CycleGroupTest, TestDblMixedConstantWitness)
 
 TYPED_TEST (CycleGroupTest, TestUnconditionalAddNonConstantPoints)
 
 TYPED_TEST (CycleGroupTest, TestUnconditionalAddConstantPoints)
 
 TYPED_TEST (CycleGroupTest, TestUnconditionalSubtractNonConstantPoints)
 
 TYPED_TEST (CycleGroupTest, TestUnconditionalSubtractConstantPoints)
 
 TYPED_TEST (CycleGroupTest, TestUnconditionalAdd)
 
 TYPED_TEST (CycleGroupTest, TestConstrainedUnconditionalAddSucceed)
 
 TYPED_TEST (CycleGroupTest, TestConstrainedUnconditionalAddFail)
 
 TYPED_TEST (CycleGroupTest, TestAddRegular)
 
 TYPED_TEST (CycleGroupTest, TestAddLhsInfinity)
 
 TYPED_TEST (CycleGroupTest, TestAddRhsInfinity)
 
 TYPED_TEST (CycleGroupTest, TestAddBothInfinity)
 
 TYPED_TEST (CycleGroupTest, TestAddInversePoints)
 
 TYPED_TEST (CycleGroupTest, TestAddDoubling)
 
 TYPED_TEST (CycleGroupTest, TestAddConstantPoints)
 
 TYPED_TEST (CycleGroupTest, TestAddMixedConstantWitness)
 
 TYPED_TEST (CycleGroupTest, TestAddInfinityResultLogic)
 
 TYPED_TEST (CycleGroupTest, TestUnconditionalSubtract)
 
 TYPED_TEST (CycleGroupTest, TestConstrainedUnconditionalSubtractSucceed)
 
 TYPED_TEST (CycleGroupTest, TestConstrainedUnconditionalSubtractFail)
 
 TYPED_TEST (CycleGroupTest, TestSubtract)
 
 TYPED_TEST (CycleGroupTest, TestSubtractConstantPoints)
 
template<typename T1 , typename T2 >
auto assign_and_merge_tags (T1 &points, T2 &scalars)
 Assign different tags to all points and scalars and return the union of that tag.
 
 TYPED_TEST (CycleGroupTest, TestBatchMulGeneralMSM)
 
 TYPED_TEST (CycleGroupTest, TestBatchMulProducesInfinity)
 
 TYPED_TEST (CycleGroupTest, TestBatchMulMultiplyByZero)
 
 TYPED_TEST (CycleGroupTest, TestBatchMulInputsAreInfinity)
 
 TYPED_TEST (CycleGroupTest, TestBatchMulFixedBaseInLookupTable)
 
 TYPED_TEST (CycleGroupTest, TestBatchMulFixedBaseSomeInLookupTable)
 
 TYPED_TEST (CycleGroupTest, TestBatchMulFixedBaseZeroScalars)
 
 TYPED_TEST (CycleGroupTest, TestMul)
 
 TYPED_TEST (CycleGroupTest, TestOne)
 
 TYPED_TEST (CycleGroupTest, TestConversionFromBigfield)
 Ensures naive conversion from a bigfield representation of bb::fq (Grumpkin::ScalarField) to cycle_scalar preserves the same value until we implement a smarter function.
 
 TYPED_TEST (CycleGroupTest, TestBatchMulIsConsistent)
 
 TYPED_TEST (CycleGroupTest, TestFixedBaseBatchMul)
 Test fixed-base batch multiplication via the public batch_mul interface.
 

Macro Definition Documentation

◆ STDLIB_TYPE_ALIASES

#define STDLIB_TYPE_ALIASES
Value:
using Builder = TypeParam; \
using cycle_group_ct = stdlib::cycle_group<Builder>; \
using Element = typename Curve::Element; \
using AffineElement = typename Curve::AffineElement; \
using Group = typename Curve::Group; \
using bool_ct = stdlib::bool_t<Builder>; \
using cycle_scalar_ct = cycle_group_ct::cycle_scalar;
typename Group::element Element
Definition grumpkin.hpp:62
typename grumpkin::g1 Group
Definition grumpkin.hpp:61
typename Group::affine_element AffineElement
Definition grumpkin.hpp:63
Implements boolean logic in-circuit.
Definition bool.hpp:59
cycle_group represents a group Element of the proving system's embedded curve, i.e....
Curve::Element Element

Definition at line 16 of file cycle_group.test.cpp.

Typedef Documentation

◆ CircuitTypes

Definition at line 55 of file cycle_group.test.cpp.

Function Documentation

◆ assign_and_merge_tags()

template<typename T1 , typename T2 >
auto assign_and_merge_tags ( T1 &  points,
T2 &  scalars 
)

Assign different tags to all points and scalars and return the union of that tag.

We assign the tags with the same round index to a (point,scalar) pair, but the point is treated as submitted value, while scalar as a challenge. Merging these tags should not run into any edgecases

Definition at line 1395 of file cycle_group.test.cpp.

◆ TYPED_TEST() [1/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddBothInfinity   
)

Definition at line 928 of file cycle_group.test.cpp.

◆ TYPED_TEST() [2/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddConstantPoints   
)

Definition at line 1000 of file cycle_group.test.cpp.

◆ TYPED_TEST() [3/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddDoubling   
)

Definition at line 978 of file cycle_group.test.cpp.

◆ TYPED_TEST() [4/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddInfinityResultLogic   
)

Definition at line 1087 of file cycle_group.test.cpp.

◆ TYPED_TEST() [5/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddInversePoints   
)

Definition at line 955 of file cycle_group.test.cpp.

◆ TYPED_TEST() [6/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddLhsInfinity   
)

Definition at line 877 of file cycle_group.test.cpp.

◆ TYPED_TEST() [7/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddMixedConstantWitness   
)

Definition at line 1042 of file cycle_group.test.cpp.

◆ TYPED_TEST() [8/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddRegular   
)

Definition at line 852 of file cycle_group.test.cpp.

◆ TYPED_TEST() [9/50]

TYPED_TEST ( CycleGroupTest  ,
TestAddRhsInfinity   
)

Definition at line 902 of file cycle_group.test.cpp.

◆ TYPED_TEST() [10/50]

STANDARD_TESTING_TAGS TYPED_TEST ( CycleGroupTest  ,
TestBasicTagLogic   
)

Check basic tag interactions.

Definition at line 66 of file cycle_group.test.cpp.

◆ TYPED_TEST() [11/50]

TYPED_TEST ( CycleGroupTest  ,
TestBatchMulFixedBaseInLookupTable   
)

Definition at line 1558 of file cycle_group.test.cpp.

◆ TYPED_TEST() [12/50]

TYPED_TEST ( CycleGroupTest  ,
TestBatchMulFixedBaseSomeInLookupTable   
)

Definition at line 1596 of file cycle_group.test.cpp.

◆ TYPED_TEST() [13/50]

TYPED_TEST ( CycleGroupTest  ,
TestBatchMulFixedBaseZeroScalars   
)

Definition at line 1646 of file cycle_group.test.cpp.

◆ TYPED_TEST() [14/50]

TYPED_TEST ( CycleGroupTest  ,
TestBatchMulGeneralMSM   
)

Definition at line 1409 of file cycle_group.test.cpp.

◆ TYPED_TEST() [15/50]

TYPED_TEST ( CycleGroupTest  ,
TestBatchMulInputsAreInfinity   
)

Definition at line 1520 of file cycle_group.test.cpp.

◆ TYPED_TEST() [16/50]

TYPED_TEST ( CycleGroupTest  ,
TestBatchMulIsConsistent   
)

Definition at line 1774 of file cycle_group.test.cpp.

◆ TYPED_TEST() [17/50]

TYPED_TEST ( CycleGroupTest  ,
TestBatchMulMultiplyByZero   
)

Definition at line 1493 of file cycle_group.test.cpp.

◆ TYPED_TEST() [18/50]

TYPED_TEST ( CycleGroupTest  ,
TestBatchMulProducesInfinity   
)

Definition at line 1461 of file cycle_group.test.cpp.

◆ TYPED_TEST() [19/50]

TYPED_TEST ( CycleGroupTest  ,
TestConditionalAssignRegression   
)

Checks the bad behavior of conditional assign.

Definition at line 200 of file cycle_group.test.cpp.

◆ TYPED_TEST() [20/50]

TYPED_TEST ( CycleGroupTest  ,
TestConditionalAssignSuperMixupRegression   
)

Checks the bad behavior of conditional assign.

Definition at line 216 of file cycle_group.test.cpp.

◆ TYPED_TEST() [21/50]

TYPED_TEST ( CycleGroupTest  ,
TestConstantWitnessMixupRegression   
)

Checks the mixup bad behavior found by fuzzer.

Definition at line 177 of file cycle_group.test.cpp.

◆ TYPED_TEST() [22/50]

TYPED_TEST ( CycleGroupTest  ,
TestConstrainedUnconditionalAddFail   
)

Definition at line 832 of file cycle_group.test.cpp.

◆ TYPED_TEST() [23/50]

TYPED_TEST ( CycleGroupTest  ,
TestConstrainedUnconditionalAddSucceed   
)

Definition at line 813 of file cycle_group.test.cpp.

◆ TYPED_TEST() [24/50]

TYPED_TEST ( CycleGroupTest  ,
TestConstrainedUnconditionalSubtractFail   
)

Definition at line 1214 of file cycle_group.test.cpp.

◆ TYPED_TEST() [25/50]

TYPED_TEST ( CycleGroupTest  ,
TestConstrainedUnconditionalSubtractSucceed   
)

Definition at line 1195 of file cycle_group.test.cpp.

◆ TYPED_TEST() [26/50]

TYPED_TEST ( CycleGroupTest  ,
TestConversionFromBigfield   
)

Ensures naive conversion from a bigfield representation of bb::fq (Grumpkin::ScalarField) to cycle_scalar preserves the same value until we implement a smarter function.

Definition at line 1745 of file cycle_group.test.cpp.

◆ TYPED_TEST() [27/50]

TYPED_TEST ( CycleGroupTest  ,
TestDbl   
)

Definition at line 393 of file cycle_group.test.cpp.

◆ TYPED_TEST() [28/50]

TYPED_TEST ( CycleGroupTest  ,
TestDblConstantPoints   
)

Definition at line 480 of file cycle_group.test.cpp.

◆ TYPED_TEST() [29/50]

TYPED_TEST ( CycleGroupTest  ,
TestDblMixedConstantWitness   
)

Definition at line 553 of file cycle_group.test.cpp.

◆ TYPED_TEST() [30/50]

TYPED_TEST ( CycleGroupTest  ,
TestDblNonConstantPoints   
)

Definition at line 422 of file cycle_group.test.cpp.

◆ TYPED_TEST() [31/50]

TYPED_TEST ( CycleGroupTest  ,
TestFixedBaseBatchMul   
)

Test fixed-base batch multiplication via the public batch_mul interface.

Tests that the fixed-base MSM works correctly for the two supported Pedersen generators

Definition at line 1825 of file cycle_group.test.cpp.

◆ TYPED_TEST() [32/50]

TYPED_TEST ( CycleGroupTest  ,
TestInfConstantWintnessRegression   
)

Checks that a point at infinity passes the constant_witness initialization.

Definition at line 106 of file cycle_group.test.cpp.

◆ TYPED_TEST() [33/50]

TYPED_TEST ( CycleGroupTest  ,
TestInfWintnessRegression   
)

Checks that a point at infinity passes the witness initialization.

Definition at line 122 of file cycle_group.test.cpp.

◆ TYPED_TEST() [34/50]

TYPED_TEST ( CycleGroupTest  ,
TestMul   
)

Definition at line 1676 of file cycle_group.test.cpp.

◆ TYPED_TEST() [35/50]

TYPED_TEST ( CycleGroupTest  ,
TestOne   
)

Definition at line 1729 of file cycle_group.test.cpp.

◆ TYPED_TEST() [36/50]

TYPED_TEST ( CycleGroupTest  ,
TestOperatorNegRegression   
)

Checks that adding operator-(value) to an existing value does not result into error.

Definition at line 157 of file cycle_group.test.cpp.

◆ TYPED_TEST() [37/50]

TYPED_TEST ( CycleGroupTest  ,
TestStandardForm   
)

Definition at line 307 of file cycle_group.test.cpp.

◆ TYPED_TEST() [38/50]

TYPED_TEST ( CycleGroupTest  ,
TestSubtract   
)

Definition at line 1232 of file cycle_group.test.cpp.

◆ TYPED_TEST() [39/50]

TYPED_TEST ( CycleGroupTest  ,
TestSubtractConstantPoints   
)

Definition at line 1330 of file cycle_group.test.cpp.

◆ TYPED_TEST() [40/50]

TYPED_TEST ( CycleGroupTest  ,
TestUnconditionalAdd   
)

Definition at line 785 of file cycle_group.test.cpp.

◆ TYPED_TEST() [41/50]

TYPED_TEST ( CycleGroupTest  ,
TestUnconditionalAddConstantPoints   
)

Definition at line 635 of file cycle_group.test.cpp.

◆ TYPED_TEST() [42/50]

TYPED_TEST ( CycleGroupTest  ,
TestUnconditionalAddNonConstantPoints   
)

Definition at line 574 of file cycle_group.test.cpp.

◆ TYPED_TEST() [43/50]

TYPED_TEST ( CycleGroupTest  ,
TestUnconditionalSubtract   
)

Definition at line 1166 of file cycle_group.test.cpp.

◆ TYPED_TEST() [44/50]

TYPED_TEST ( CycleGroupTest  ,
TestUnconditionalSubtractConstantPoints   
)

Definition at line 741 of file cycle_group.test.cpp.

◆ TYPED_TEST() [45/50]

TYPED_TEST ( CycleGroupTest  ,
TestUnconditionalSubtractNonConstantPoints   
)

Definition at line 679 of file cycle_group.test.cpp.

◆ TYPED_TEST() [46/50]

TYPED_TEST ( CycleGroupTest  ,
TestValidateOnCurveFail   
)

Checks that a point that is not on the curve but not marked as the point at infinity fails the validate_on_curve check.

(1, 1) is not on the either the Grumpkin curve or the BN254 curve.

Definition at line 274 of file cycle_group.test.cpp.

◆ TYPED_TEST() [47/50]

TYPED_TEST ( CycleGroupTest  ,
TestValidateOnCurveFail2   
)

Checks that a point that is not on the curve but not marked as the point at infinity fails the validate_on_curve check.

(1, 1) is not on the either the Grumpkin curve or the BN254 curve.

Definition at line 293 of file cycle_group.test.cpp.

◆ TYPED_TEST() [48/50]

TYPED_TEST ( CycleGroupTest  ,
TestValidateOnCurveInfinitySucceed   
)

Checks that a point that is not on the curve but marked as the point at infinity passes the validate_on_curve check.

Should pass since marking it with _is_infinity=true makes whatever other point data invalid.

Definition at line 256 of file cycle_group.test.cpp.

◆ TYPED_TEST() [49/50]

TYPED_TEST ( CycleGroupTest  ,
TestValidateOnCurveSucceed   
)

Checks that a point on the curve passes the validate_on_curve check.

Definition at line 236 of file cycle_group.test.cpp.

◆ TYPED_TEST() [50/50]

TYPED_TEST ( CycleGroupTest  ,
TestWitnessSumRegression   
)

Checks that the result of adding two witness values is not constant.

Definition at line 138 of file cycle_group.test.cpp.

◆ TYPED_TEST_SUITE()

TYPED_TEST_SUITE ( CycleGroupTest  ,
CircuitTypes   
)