Skip to content

Commit

Permalink
add splitBytesToWords unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
remicolin committed Jun 18, 2024
1 parent fed5740 commit 6e1b374
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
33 changes: 33 additions & 0 deletions packages/circuits/tests/splitBytesToWords.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import { wasm as wasm_tester } from "circom_tester";
import path from "path";
import { bigIntToChunkedBytes, Uint8ArrayToCharArray } from "@zk-email/helpers/src/binary-format";


describe("SplitBytesToWords Helper unit test", () => {
jest.setTimeout(0.1 * 60 * 1000);
let circuit: any;

beforeAll(async () => {
circuit = await wasm_tester(
path.join(__dirname, "./test-circuits/splitBytesToWords-test.circom"),
{
recompile: true,
include: path.join(__dirname, "../../../node_modules"),
// output: path.join(__dirname, "./compiled-test-circuits"),
}
);

});

it("should split correctly according to bigIntToChunkedBytes function", async function () {
const bytes = new Uint8Array(256).map(() => Math.floor(Math.random() * 256));
const bytesBigInt = bytes.reduce((acc, val) => (acc << 8n) | BigInt(val), 0n);
const ts_split_to_words = bigIntToChunkedBytes(bytesBigInt, 121, 17);
const ts_split_to_words_bigint = ts_split_to_words.map((word) => BigInt(word));
const witness = await circuit.calculateWitness({
in: Uint8ArrayToCharArray(bytes)
});
await circuit.assertOut(witness, { out: ts_split_to_words_bigint });
});

});
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
pragma circom 2.1.6;

include "../../utils/bytes.circom";

component main = SplitBytesToWords(256,121,17);

0 comments on commit 6e1b374

Please sign in to comment.