mirror of
https://github.com/arnaucube/circomlib.git
synced 2026-02-06 18:56:43 +01:00
separate test for mimc and sparse-merkle-tree and update test
This commit is contained in:
51
test/mimctestvectors.js
Normal file
51
test/mimctestvectors.js
Normal file
@@ -0,0 +1,51 @@
|
||||
const chai = require("chai");
|
||||
const snarkjs = require("snarkjs");
|
||||
const mimcjs = require("../src/mimc7.js");
|
||||
const expect = chai.expect;
|
||||
const bigInt = snarkjs.bigInt;
|
||||
|
||||
function bytesToHex(buff) {
|
||||
return `0x${buff.toString("hex")}`;
|
||||
}
|
||||
|
||||
function bigIntToBuffer(number) {
|
||||
const buff = Buffer.alloc(32);
|
||||
let pos = buff.length - 1;
|
||||
while (!number.isZero()) {
|
||||
buff[pos] = number.and(255);
|
||||
number = number.shiftRight(8);
|
||||
pos -= 1;
|
||||
}
|
||||
return buff;
|
||||
}
|
||||
|
||||
describe("[mimc hash] Javascript test", function () {
|
||||
|
||||
this.timeout(100000);
|
||||
before( async () => {
|
||||
});
|
||||
|
||||
it("Mimc7 hash with 1 entry", () => {
|
||||
const entries = [bigInt(12)];
|
||||
const hash = mimcjs.multiHash(entries);
|
||||
const hashHex = bytesToHex(bigIntToBuffer(hash));
|
||||
expect(hashHex).to.be.equal("0x04252a243a23848a29fa5783336905f6394585fb38d0d89f16d36084c53cb73c");
|
||||
});
|
||||
|
||||
it("Mimc7 hash with 2 entries", () => {
|
||||
const entries = [bigInt(12), bigInt(45), bigInt(78), bigInt(41)];
|
||||
const hi = mimcjs.multiHash(entries.slice(2));
|
||||
const hiHex = bytesToHex(bigIntToBuffer(hi));
|
||||
expect(hiHex).to.be.equal("0x1fd4bc970a697084ec1f83ecf81936d4a047e27c654752ddbc89f9ed1728e0ab");
|
||||
const hv = mimcjs.multiHash(entries.slice(0, 2));
|
||||
const hvHex = bytesToHex(bigIntToBuffer(hv));
|
||||
expect(hvHex).to.be.equal("0x263924eb9ae730cea9ce31bb9ada695ec3525536b4c058813552b074db36ba9a");
|
||||
});
|
||||
|
||||
it("Mimc7 hash with 4 entries", () => {
|
||||
const entries = [bigInt(12), bigInt(45), bigInt(78), bigInt(41)];
|
||||
const hash = mimcjs.multiHash(entries);
|
||||
const hashHex = bytesToHex(bigIntToBuffer(hash));
|
||||
expect(hashHex).to.be.equal("0x10e02cc6c8fc40cda121602903df911f6398d65f84ff1f27c680d0b7d85b7418");
|
||||
});
|
||||
});
|
||||
@@ -36,17 +36,6 @@ describe("[sparse-merkle-tree] Javascript test", function () {
|
||||
before( async () => {
|
||||
});
|
||||
|
||||
it("Mimc7 hash", async () => {
|
||||
const entries = [bigInt(12), bigInt(45), bigInt(78), bigInt(41)];
|
||||
const hi = mimcjs.multiHash(entries.slice(2));
|
||||
const hiHex = bytesToHex(bigIntToBuffer(hi));
|
||||
expect(hiHex).to.be.equal("0x1fd4bc970a697084ec1f83ecf81936d4a047e27c654752ddbc89f9ed1728e0ab");
|
||||
const hv = mimcjs.multiHash(entries.slice(0, 2));
|
||||
const hvHex = bytesToHex(bigIntToBuffer(hv));
|
||||
expect(hvHex).to.be.equal("0x263924eb9ae730cea9ce31bb9ada695ec3525536b4c058813552b074db36ba9a");
|
||||
});
|
||||
|
||||
|
||||
it("Add one claim", async () => {
|
||||
const claim = [bigInt(12), bigInt(45), bigInt(78), bigInt(41)];
|
||||
const entries = newEntry(claim);
|
||||
|
||||
Reference in New Issue
Block a user