def test_h_gate_nondeterministic_waltz_basis_gates(self): """Test h-gate gate circuits compiling to u1,u2,u3,cx""" circuits = ref_1q_clifford.h_gate_circuits_nondeterministic(final_measure=False) targets = ref_1q_clifford.h_gate_statevector_nondeterministic() job = execute(circuits, StatevectorSimulator(), shots=1, basis_gates=['u1', 'u2', 'u3', 'cx']) result = job.result() self.is_completed(result) self.compare_statevector(result, circuits, targets)
def test_h_gate_nondeterministic_minimal_basis_gates(self): """Test h-gate gate circuits compiling to u3,cx""" circuits = ref_1q_clifford.h_gate_circuits_nondeterministic(final_measure=False) targets = ref_1q_clifford.h_gate_unitary_nondeterministic() job = execute(circuits, UnitarySimulator(), shots=1, basis_gates=['u3', 'cx']) result = job.result() self.is_completed(result) self.compare_unitary(result, circuits, targets)
def test_h_gate_nondeterministic_default_basis_gates(self): """Test h-gate circuits compiling to backend default basis_gates.""" circuits = ref_1q_clifford.h_gate_circuits_nondeterministic(final_measure=False) targets = ref_1q_clifford.h_gate_statevector_nondeterministic() job = execute(circuits, StatevectorSimulator(), shots=1) result = job.result() self.is_completed(result) self.compare_statevector(result, circuits, targets)
def test_h_gate_nondeterministic_default_basis_gates(self): """Test h-gate circuits compiling to backend default basis_gates.""" circuits = ref_1q_clifford.h_gate_circuits_nondeterministic(final_measure=False) targets = ref_1q_clifford.h_gate_unitary_nondeterministic() job = execute(circuits, UnitarySimulator(), shots=1) result = job.result() self.assertTrue(getattr(result, 'success', False)) self.compare_unitary(result, circuits, targets)
def test_h_gate_nondeterministic_minimal_basis_gates(self): """Test h-gate gate circuits compiling to u3,cx""" circuits = ref_1q_clifford.h_gate_circuits_nondeterministic(final_measure=False) targets = ref_1q_clifford.h_gate_statevector_nondeterministic() job = execute(circuits, StatevectorSimulator(), shots=1, basis_gates=['u3', 'cx']) result = job.result() self.assertTrue(getattr(result, 'success', False)) self.compare_statevector(result, circuits, targets)
def test_h_gate_nondeterministic_default_basis_gates(self): """Test h-gate circuits compiling to backend default basis_gates.""" circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=False) targets = ref_1q_clifford.h_gate_unitary_nondeterministic() job = execute(circuits, self.SIMULATOR, shots=1, **self.BACKEND_OPTS) result = job.result() self.assertSuccess(result) self.compare_unitary(result, circuits, targets)
def test_h_gate_nondeterministic_default_basis_gates(self): """Test h-gate circuits compiling to backend default basis_gates.""" shots = 2000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=True) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) job = execute(circuits, self.SIMULATOR, shots=shots) result = job.result() self.is_completed(result) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_h_gate_nondeterministic_default_basis_gates(self): """Test h-gate circuits compiling to backend default basis_gates.""" shots = 2000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=True) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) qobj = compile(circuits, self.SIMULATOR, shots=shots) result = self.SIMULATOR.run( qobj, backend_options=self.BACKEND_OPTS).result() self.is_completed(result) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_h_gate_nondeterministic_minimal_basis_gates(self): """Test h-gate gate circuits compiling to u3,cx""" shots = 4000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=True) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) job = execute( circuits, self.SIMULATOR, shots=shots, basis_gates=['u3', 'cx']) result = job.result() self.assertTrue(getattr(result, 'success', False)) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_h_gate_nondeterministic_default_basis_gates(self): """Test h-gate circuits compiling to backend default basis_gates.""" shots = 4000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=True) qobj = assemble(circuits, QasmSimulator(), shots=shots) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) job = QasmSimulator().run(qobj, **self.BACKEND_OPTS_SAMPLING) result = job.result() self.assertSuccess(result) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_h_gate_nondeterministic(self, method, device): """Test h-gate circuits""" backend = self.backend( method=method, device=device, seed_simulator=self.SEED) shots = 4000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=True) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) job = backend.run(circuits, shots=shots) result = job.result() self.assertSuccess(result) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_h_gate_nondeterministic_waltz_basis_gates(self): """Test h-gate gate circuits compiling to u1,u2,u3,cx""" shots = 2000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=True) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) job = execute(circuits, self.SIMULATOR, shots=shots, basis_gates=['u1', 'u2', 'u3', 'cx']) result = job.result() self.is_completed(result) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_h_gate_nondeterministic(self): """Test h-gate circuits""" shots = 4000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=True) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) job = execute(circuits, self.SIMULATOR, shots=shots, **self.BACKEND_OPTS) result = job.result() self.assertSuccess(result) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_h_gate_nondeterministic_waltz_basis_gates(self): """Test h-gate gate circuits compiling to u1,u2,u3,cx""" circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=False) targets = ref_1q_clifford.h_gate_unitary_nondeterministic() job = execute(circuits, self.SIMULATOR, shots=1, basis_gates=['u1', 'u2', 'u3', 'cx'], **self.BACKEND_OPTS) result = job.result() self.assertSuccess(result) self.compare_unitary(result, circuits, targets)
def test_h_gate_nondeterministic_minimal_basis_gates(self): """Test h-gate gate circuits compiling to u3,cx""" shots = 4000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=True) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) job = execute(circuits, self.SIMULATOR, shots=shots, basis_gates=['u3', 'cx'], backend_options=self.BACKEND_OPTS) result = job.result() self.assertSuccess(result) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_qobj_global_phase(self, device): """Test qobj global phase.""" backend = self.backend(device=device) circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=False) targets = ref_1q_clifford.h_gate_statevector_nondeterministic() for iter, circuit in enumerate(circuits): global_phase = (-1)**iter * (pi / 4) circuit.global_phase += global_phase targets[iter] = exp(1j * global_phase) * targets[iter] circuits = transpile(circuits, backend, optimization_level=1) result = backend.run(circuits, shots=1).result() self.assertSuccess(result) self.compare_statevector(result, circuits, targets, ignore_phase=False)
def test_h_gate_nondeterministic_default_basis_gates(self): """Test h-gate circuits compiling to backend default basis_gates.""" shots = 2000 circuits = ref_1q_clifford.h_gate_circuits_nondeterministic(final_measure=True) qobj = qiskit_compile(circuits, QasmSimulator(), shots=shots) targets = ref_1q_clifford.h_gate_counts_nondeterministic(shots) job = QasmSimulator().run(qobj, backend_options={ "method": "extended_stabilizer", "disable_measurement_opt": False }) result = job.result() self.is_completed(result) self.compare_counts(result, circuits, targets, delta=0.05 * shots)
def test_qobj_global_phase(self): """Test qobj global phase.""" circuits = ref_1q_clifford.h_gate_circuits_nondeterministic( final_measure=False) targets = ref_1q_clifford.h_gate_unitary_nondeterministic() qobj = assemble(transpile(circuits, self.SIMULATOR), shots=1, **self.BACKEND_OPTS) # Set global phases for i, _ in enumerate(circuits): global_phase = (-1) ** i * (pi / 4) qobj.experiments[i].header.global_phase = global_phase targets[i] = exp(1j * global_phase) * targets[i] result = self.SIMULATOR.run(qobj).result() self.assertSuccess(result) self.compare_unitary(result, circuits, targets, ignore_phase=False)