Example #1
0
def add_ancilla_register_to_circuit(number_of_ancilla_qubits: int,
                                    circuit: Union[Circuit, str]):
    if isinstance(circuit, str):
        circuit = load_circuit(circuit)
    extended_circuit = _add_ancilla_register_to_circuit(
        circuit, number_of_ancilla_qubits)
    save_circuit(extended_circuit, "extended-circuit.json")
Example #2
0
    def test_add_ancilla_register_to_circuit_python_object(
        self, number_of_ancilla_qubits
    ):
        # Given
        number_of_qubits = 4
        number_of_gates = 10
        circuit = _create_random_circuit(
            number_of_qubits, number_of_gates, seed=RNDSEED
        )
        expected_extended_cirucit = _add_ancilla_register_to_circuit(
            copy.deepcopy(circuit), number_of_ancilla_qubits
        )
        expected_extended_circuit_filename = "extended-circuit.json"

        # When
        add_ancilla_register_to_circuit(number_of_ancilla_qubits, circuit)

        # Then
        try:
            extended_circuit = load_circuit(expected_extended_circuit_filename)
            assert (
                len(extended_circuit.qubits)
                == number_of_qubits + number_of_ancilla_qubits
            )
            assert extended_circuit.gates == expected_extended_cirucit.gates
        finally:
            remove_file_if_exists(expected_extended_circuit_filename)
Example #3
0
    def test_add_ancilla_register_to_circuit_artifact_file(
            self, circuit_filename_and_number_of_ancilla_qubits):
        # Given
        (
            circuit_filename,
            number_of_ancilla_qubits,
        ) = circuit_filename_and_number_of_ancilla_qubits
        expected_extended_circuit_filename = "extended-circuit.json"

        circuit = load_circuit(circuit_filename)
        expected_extended_circuit = _add_ancilla_register_to_circuit(
            circuit, number_of_ancilla_qubits)

        # When
        add_ancilla_register_to_circuit(number_of_ancilla_qubits,
                                        circuit_filename)

        # Then
        try:
            extended_circuit = load_circuit(expected_extended_circuit_filename)
            assert (len(extended_circuit.qubits) == len(circuit.qubits) +
                    number_of_ancilla_qubits)
            assert extended_circuit.gates == expected_extended_circuit.gates
        finally:
            remove_file_if_exists(expected_extended_circuit_filename)
Example #4
0
def add_ancilla_register_to_circuit(number_of_ancilla_qubits: int,
                                    circuit: str):
    circuit_object = load_circuit(circuit)
    extended_circuit = _add_ancilla_register_to_circuit(
        circuit_object, number_of_ancilla_qubits)
    save_circuit(extended_circuit, "extended-circuit.json")