Better tests

This commit is contained in:
Sean Bowe 2015-12-05 01:14:53 -07:00
parent 2a7e41f04e
commit d239a9f193
2 changed files with 74 additions and 8 deletions

View File

@ -15,17 +15,81 @@ int main()
auto keypair = generate_keypair<default_r1cs_ppzksnark_pp>(); auto keypair = generate_keypair<default_r1cs_ppzksnark_pp>();
// Run test vectors. // Run test vectors.
assert(run_test(keypair)); {
vector<uint8_t> puzzle =
{
8, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3, 6, 0, 0, 0, 0, 0,
0, 7, 0, 0, 9, 0, 2, 0, 0,
0, 5, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 4, 5, 7, 0, 0,
0, 0, 0, 1, 0, 0, 0, 3, 0,
0, 0, 1, 0, 0, 0, 0, 6, 8,
0, 0, 8, 5, 0, 0, 0, 1, 0,
0, 9, 0, 0, 0, 0, 4, 0, 0
};
vector<uint8_t> solution =
{
8, 1, 2, 7, 5, 3, 6, 4, 9,
9, 4, 3, 6, 8, 2, 1, 7, 5,
6, 7, 5, 4, 9, 1, 2, 8, 3,
1, 5, 4, 2, 3, 7, 8, 9, 6,
3, 6, 9, 8, 4, 5, 7, 2, 1,
2, 8, 7, 1, 6, 9, 5, 3, 4,
5, 2, 1, 9, 7, 4, 3, 6, 8,
4, 3, 8, 5, 2, 6, 9, 1, 7,
7, 9, 6, 3, 1, 8, 4, 5, 2
};
assert(run_test(keypair, puzzle, solution));
}
// Run test vectors.
{
vector<uint8_t> puzzle =
{
8, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3, 6, 0, 0, 0, 0, 0,
0, 7, 0, 0, 9, 0, 2, 0, 0,
0, 5, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 4, 5, 7, 0, 0,
0, 0, 0, 1, 0, 0, 0, 3, 0,
0, 0, 1, 0, 0, 0, 0, 6, 8,
0, 0, 8, 5, 0, 0, 0, 1, 0,
0, 9, 0, 0, 0, 0, 4, 0, 0
};
vector<uint8_t> solution =
{
8, 1, 2, 7, 5, 3, 6, 4, 9,
9, 4, 3, 6, 8, 2, 1, 7, 5,
6, 7, 5, 4, 9, 1, 2, 8, 3,
1, 5, 4, 2, 3, 7, 8, 9, 6,
3, 6, 9, 8, 4, 5, 7, 2, 1,
2, 8, 7, 1, 6, 9, 5, 3, 4,
5, 2, 1, 9, 7, 4, 3, 6, 8,
4, 3, 8, 5, 2, 6, 9, 1, 7,
7, 9, 6, 3, 1, 8, 3, 5, 2 // not a solution to the puzzle, 4 => 3
};
assert(!run_test(keypair, puzzle, solution));
}
} }
bool run_test(r1cs_ppzksnark_keypair<default_r1cs_ppzksnark_pp>& keypair bool run_test(r1cs_ppzksnark_keypair<default_r1cs_ppzksnark_pp>& keypair,
std::vector<uint8_t> puzzle,
std::vector<uint8_t> solution
) { ) {
vector<uint8_t> puzzle(81, 0);
vector<uint8_t> solution(81, 1);
cout << "Trying to generate proof..." << endl;
auto proof = generate_proof<default_r1cs_ppzksnark_pp>(keypair.pk, puzzle, solution); auto proof = generate_proof<default_r1cs_ppzksnark_pp>(keypair.pk, puzzle, solution);
cout << "Proof generated!" << endl;
if (!proof) { if (!proof) {
return false; return false;

View File

@ -1,3 +1,5 @@
bool run_test(r1cs_ppzksnark_keypair<default_r1cs_ppzksnark_pp>& keypair bool run_test(r1cs_ppzksnark_keypair<default_r1cs_ppzksnark_pp>& keypair,
std::vector<uint8_t> puzzle,
std::vector<uint8_t> solution
); );