def test_reset(): p = Program() p.reset(0) p.reset() assert p.out() == "RESET 0\nRESET\n" program = Program() qubit = QubitPlaceholder() # address_qubits() won't work unless there's a gate besides # RESET on a QubitPlaceholder, this is just here to make # addressing work program += X(qubit) program += RESET(qubit) program = address_qubits(program) assert program.out() == "X 0\nRESET 0\n"
def construct_recovery_circuit(self, parameters, index): """ Returns a circuit for recovering the input data after compression, i.e. daggered state preparation followed by decoding (daggered training) circuit. :param parameters: (list) Vector of training circuit parameters :param index: (int) Index pointing to corresponding state un-preparation circuit :returns: Quantum circuit implementing daggered state preparation followed by daggered training circuit :rtype: Program """ recovery_circuit = Program() if self.reset: refresh_qubits = list(self.q_refresh.values()) for refresh_qubit in refresh_qubits: recovery_circuit.reset(refresh_qubit) if self.trash_training: raise QAutoencoderError("Invalid command for halfway training!") recovery_circuit.inst(self.training_circuit_dag(parameters)) recovery_circuit.inst(self.state_prep_circuits_dag[index]) return recovery_circuit
def test_reset(): p = Program() p.reset(0) p.reset() assert p.out() == "RESET 0\nRESET\n"