qc = QuantumCircuit(3,2)
qc.x(0) #control on
qc.compose(Controlled_FedoriakaConstantAdder(3,2), qubits=[0,1,2], inplace=True)
qc.measure([1,2], [0,1])
assert _run(qc,8) == {'11': 8}, "Controlled_ConstantAdder_Size2 does not add properly"
qc = QuantumCircuit(3,2)
#control off
qc.compose(Controlled_FedoriakaConstantAdder(2,2), qubits=[0,1,2])
qc.measure([1,2], [0,1])
assert _run(qc,8) == {'00': 8}, "Controlled_ConstantAdder_Size2 is not disabeled by control qubit"
qc = QuantumCircuit(7,4)
#control off
qc.compose(Controlled_FedoriakaConstantAdder(15,4), qubits=[6,0,1,2,3,4,5], clbits=[0], inplace=True)
qc.measure([1,2,3,4], [0,1,2,3])
assert _run(qc,8) == {'0000': 8}, "Controlled_ConstantAdder_Size3 is not disabeled by control qubit"
qc = QuantumCircuit(9,5)
qc.x(8)
qc.compose(Controlled_FedoriakaConstantAdder(13,5), qubits=[8,0,1,2,3,4,5,6,7], clbits=[0], inplace=True)
qc.compose(Controlled_FedoriakaConstantAdder(21,5), qubits=[8,0,1,2,3,4,5,6,7], clbits=[0], inplace=True)
qc.measure([0,1,2,3,4], [0,1,2,3,4])
assert _run(qc,8) == {'00010': 8}, "Controlled_ConstantAdder_Size3 does not add properly"