Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
blake3s.test.cpp
Go to the documentation of this file.
5#include "blake3s.hpp"
6#include <gtest/gtest.h>
7
8using namespace bb;
9
13
14TEST(stdlib_blake3s, test_single_block_plookup)
15{
16 auto builder = UltraBuilder();
17 std::string input = "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz01";
18 std::vector<uint8_t> input_v(input.begin(), input.end());
19
20 byte_array_plookup input_arr(&builder, input_v);
22
23 std::vector<uint8_t> expected = blake3::blake3s(input_v);
24
25 EXPECT_EQ(output.get_value(), expected);
26
27 info("builder gates = ", builder.get_estimated_num_finalized_gates());
28
29 bool proof_result = CircuitChecker::check(builder);
30 EXPECT_EQ(proof_result, true);
31}
32
33TEST(stdlib_blake3s, test_double_block_plookup)
34{
35 auto builder = UltraBuilder();
36 std::string input = "abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789";
37 std::vector<uint8_t> input_v(input.begin(), input.end());
38
39 byte_array_plookup input_arr(&builder, input_v);
41
42 std::vector<uint8_t> expected = blake3::blake3s(input_v);
43
44 EXPECT_EQ(output.get_value(), expected);
45
46 info("builder gates = ", builder.get_estimated_num_finalized_gates());
47
48 bool proof_result = CircuitChecker::check(builder);
49 EXPECT_EQ(proof_result, true);
50}
51
52TEST(stdlib_blake3s, test_too_large_input_plookup)
53{
54 auto builder = UltraBuilder();
55
56 std::vector<uint8_t> input_v(1025, 0);
57
58 byte_array_plookup input_arr(&builder, input_v);
60 "Barretenberg does not support blake3s with input lengths greater than 1024 bytes.");
61}
#define EXPECT_THROW_OR_ABORT(statement, matcher)
Definition assert.hpp:150
static bool check(const Builder &circuit)
Check the witness satisifies the circuit.
static byte_array_ct hash(const byte_array_ct &input)
Definition blake3s.cpp:183
Represents a dynamic array of bytes in-circuit.
std::vector< uint8_t > get_value() const
A helper converting a byte_array into the vector of its uint8_t values.
void info(Args... args)
Definition log.hpp:70
AluTraceBuilder builder
Definition alu.test.cpp:123
Entry point for Barretenberg command-line interface.
TEST(MegaCircuitBuilder, CopyConstructor)
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
std::vector< uint8_t > blake3s(std::vector< uint8_t > const &input)
UltraCircuitBuilder UltraBuilder