Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
lookup.test.cpp File Reference
#include "ultra_honk.test.hpp"
#include <gtest/gtest.h>

Go to the source code of this file.

Typedefs

using FlavorTypes = testing::Types< UltraFlavor, UltraZKFlavor >
 

Functions

 TYPED_TEST_SUITE (UltraHonkTests, FlavorTypes)
 
 TYPED_TEST (UltraHonkTests, LookupXorConstraint)
 Test XOR lookup using the UINT32_XOR table.
 
 TYPED_TEST (UltraHonkTests, LookupAndConstraint)
 Test AND lookup using the UINT32_AND table.
 
 TYPED_TEST (UltraHonkTests, LookupFixedBaseScalarMul)
 Test fixed-base scalar multiplication lookup tables.
 
 TYPED_TEST (UltraHonkTests, LookupFailureBaselineValid)
 Baseline test: verify that the unaltered lookup circuit is valid.
 
 TYPED_TEST (UltraHonkTests, LookupFailureCorruptedReadCountsAndTags)
 Failure test: corrupted read counts and tags.
 
 TYPED_TEST (UltraHonkTests, LookupFailureCorruptedWireValue)
 Failure test: corrupted wire value in a lookup gate.
 
 TYPED_TEST (UltraHonkTests, LookupFailureErroneousLookupSelector)
 Failure test: erroneous lookup selector activation.
 
 TYPED_TEST (UltraHonkTests, LookupMixedXorAndOperations)
 Test mixed XOR and AND lookups in the same circuit. In particular, two lookup tables are present.
 

Typedef Documentation

◆ FlavorTypes

using FlavorTypes = testing::Types<UltraFlavor, UltraZKFlavor>

Definition at line 6 of file lookup.test.cpp.

Function Documentation

◆ TYPED_TEST() [1/8]

TYPED_TEST ( UltraHonkTests  ,
LookupAndConstraint   
)

Test AND lookup using the UINT32_AND table.

Definition at line 40 of file lookup.test.cpp.

◆ TYPED_TEST() [2/8]

TYPED_TEST ( UltraHonkTests  ,
LookupFailureBaselineValid   
)

Baseline test: verify that the unaltered lookup circuit is valid.

Definition at line 132 of file lookup.test.cpp.

◆ TYPED_TEST() [3/8]

TYPED_TEST ( UltraHonkTests  ,
LookupFailureCorruptedReadCountsAndTags   
)

Failure test: corrupted read counts and tags.

The read_counts polynomial tracks how many times each table entry is read. The read_tags polynomial marks which rows contain lookup data. Corrupting both breaks the log-derivative relation.

Note: updating only one or the other may not cause failure due to the design of the relation algebra. The inverse is only computed if read_tags is non-zero; otherwise the inverse at that row is zero. So if read_counts is incremented but read_tags is not, the erroneous read_counts value gets multiplied by 0 in the relation. This is expected behavior.

Definition at line 153 of file lookup.test.cpp.

◆ TYPED_TEST() [4/8]

TYPED_TEST ( UltraHonkTests  ,
LookupFailureCorruptedWireValue   
)

Failure test: corrupted wire value in a lookup gate.

A lookup gate reads (w_l, w_r, w_o) from a table. Corrupting any wire value means the tuple is no longer in the table, breaking the lookup argument.

Definition at line 181 of file lookup.test.cpp.

◆ TYPED_TEST() [5/8]

TYPED_TEST ( UltraHonkTests  ,
LookupFailureErroneousLookupSelector   
)

Failure test: erroneous lookup selector activation.

Turning on q_lookup for a row that doesn't contain valid table data creates a lookup for a non-existent entry.

Definition at line 213 of file lookup.test.cpp.

◆ TYPED_TEST() [6/8]

TYPED_TEST ( UltraHonkTests  ,
LookupFixedBaseScalarMul   
)

Test fixed-base scalar multiplication lookup tables.

Definition at line 68 of file lookup.test.cpp.

◆ TYPED_TEST() [7/8]

TYPED_TEST ( UltraHonkTests  ,
LookupMixedXorAndOperations   
)

Test mixed XOR and AND lookups in the same circuit. In particular, two lookup tables are present.

Definition at line 237 of file lookup.test.cpp.

◆ TYPED_TEST() [8/8]

TYPED_TEST ( UltraHonkTests  ,
LookupXorConstraint   
)

Test XOR lookup using the UINT32_XOR table.

Definition at line 12 of file lookup.test.cpp.

◆ TYPED_TEST_SUITE()

TYPED_TEST_SUITE ( UltraHonkTests  ,
FlavorTypes   
)