setKnownEffectToBitPermutation(knownBitPermutationFunc) {
        this.gate.knownBitPermutationFunc = knownBitPermutationFunc;
        this.gate.knownBitPermutationGroupMasks = permutationGrouping(knownBitPermutationFunc, this.gate.height);
        this.gate._isDefinitelyUnitary = true;
        this.gate._stableDuration = Infinity;
        this.gate._hasNoEffect = false;
        this.gate._effectPermutesStates = true;
        this.gate._effectCreatesSuperpositions = false;
        return this;
    }
Provides a function equivalent to how the gate rearranges wires, for checking in tests if the gate's behavior is
correct.
@param {!function(!int) : !int} knownBitPermutationFunc Returns the output of the permutation for a
    given input, assuming the gate is exactly sized to the overall circuit.
@returns {!GateBuilder}