arnaucube
arnaucube/circomlibPublic Self-hosted repository
circomlib/test/multiplexer.js
test/multiplexer.jsRaw
 1const chai = require("chai");
 2const path = require("path");
 3const snarkjs = require("snarkjs");
 4const compiler = require("circom");
 5
 6const assert = chai.assert;
 7
 8const bigInt = require("big-integer");
 9
10
11describe("Mux4 test", () => {
12    it("Should create a constant multiplexer", async () => {
13
14        const cirDef = await compiler(path.join(__dirname, "circuits", "mux4_1.circom"));
15
16//        console.log(JSON.stringify(cirDef, null, 1));
17
18//        assert.equal(cirDef.nVars, 2);
19
20        const circuit = new snarkjs.Circuit(cirDef);
21
22        console.log("NConstrains: " + circuit.nConstraints);
23
24        for (i=0; i<16; i++) {
25            const w = circuit.calculateWitness({ "selector": snarkjs.bigInt(i).toString() });
26
27            assert(w[0].equals(snarkjs.bigInt(1)));
28
29            console.log(i + " -> " + w[circuit.getSignalIdx("main.out")].toString());
30//            assert(w[circuit.getSignalIdx("main.out")].equals(snarkjs.bigInt("100").add(snarkjs.bigInt(i))));
31        }
32    });
33});