def test_add_ancilla_register_to_circuit_python_object( self, number_of_ancilla_qubits): # Given number_of_qubits = 4 number_of_gates = 10 circuit = new_circuits.create_random_circuit( number_of_qubits, number_of_gates, rng=np.random.default_rng(RNDSEED), ) expected_extended_cirucit = new_circuits.add_ancilla_register( copy.deepcopy(circuit), number_of_ancilla_qubits) expected_extended_circuit_filename = "extended-circuit.json" # When circuit = add_ancilla_register_to_circuit(number_of_ancilla_qubits, circuit) # Then try: with open(expected_extended_circuit_filename) as f: extended_circuit = new_circuits.circuit_from_dict(json.load(f)) assert (extended_circuit.n_qubits == number_of_qubits + number_of_ancilla_qubits) assert extended_circuit == expected_extended_cirucit finally: remove_file_if_exists(expected_extended_circuit_filename)
def test_create_random_circuit(self, number_of_qubits, number_of_gates, seed): # Given expected_filename = "circuit.json" expected_circuit = new_circuits.create_random_circuit( number_of_qubits, number_of_gates, rng=np.random.default_rng(seed), ) # When create_random_circuit( number_of_qubits=number_of_qubits, number_of_gates=number_of_gates, seed=seed, ) # Then try: with open(expected_filename) as f: circuit = new_circuits.circuit_from_dict(json.load(f)) if seed is not None: assert circuit.operations == expected_circuit.operations else: assert circuit.operations != expected_circuit.operations finally: remove_file_if_exists(expected_filename)
def create_random_circuit(number_of_qubits: int, number_of_gates: int, seed: Optional[int] = None): rng = np.random.default_rng(seed) circuit = circuits.create_random_circuit(number_of_qubits, number_of_gates, rng=rng) save_circuit(circuit, "circuit.json")
def input_circuit_set(self, request): number_of_qubits = 4 number_of_gates = 10 rng = np.random.default_rng(RNDSEED + 100) return [ new_circuits.create_random_circuit(number_of_qubits, number_of_gates, rng=rng) for _ in range(request.param) ]
def circuit_set(self, number_of_circuits): number_of_qubits = 4 number_of_gates = 10 circuit_set = [ new_circuits.create_random_circuit( number_of_qubits, number_of_gates, rng=np.random.default_rng(RNDSEED)) for _ in range(number_of_circuits) ] return circuit_set
def circuit_filename_and_number_of_ancilla_qubits( self, number_of_ancilla_qubits): number_of_qubits = 4 number_of_gates = 10 circuit = new_circuits.create_random_circuit( number_of_qubits, number_of_gates, rng=np.random.default_rng(RNDSEED), ) circuit_filename = "circuit.json" with open(circuit_filename, "w") as f: json.dump(new_circuits.to_dict(circuit), f) yield circuit_filename, number_of_ancilla_qubits remove_file_if_exists(circuit_filename)