def test_reset_qlazy_stabilizer_simulator(self): """test 'reset' (qlazy_stabilizer_simulator) """ bk = Backend('qlazy_stabilizer_simulator') qc = QComp(qubit_num=3, cmem_num=2, backend=bk) qc.h(0).h(1).h(2).run() qc.reset() actual = qc.stab.get_str() expect = " ZII\n IZI\n IIZ\n" qc.free() self.assertEqual(actual, expect)
def test_reset_qlazy_qstate_simulator(self): """test 'reset' (qlazy_qstate_simulator) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=3, cmem_num=2, backend=bk) qc.h(0).h(1).h(2).run() qc.reset() actual = qc.qstate.amp expect = np.array([1j, 0j, 0j, 0j, 0j, 0j, 0j, 0j]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_measure_simple(self): """test 'm' (simple case) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).cx(0, 1).measure([0, 1]).run(shots=10) qc.free() self.assertEqual(res['measured_qid'], [0, 1]) self.assertEqual(res['frequency']['00'] + res['frequency']['11'], 10)
def test_1(self): qid_0 = CreateRegister(2) qid_1 = CreateRegister(3, 4) qubit_num = InitRegister(qid_0, qid_1) cid_0 = CreateRegister(4) cid_1 = CreateRegister(2, 3) cmem_num = InitRegister(cid_0, cid_1) bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=qubit_num, cmem_num=cmem_num, backend=bk) qc.h(qid_0[1]).cx(qid_0[1], qid_1[0][2]).measure(qid=[qid_0[1], qid_1[0][2]], cid=[cid_1[0][0], cid_1[1][1]]) res = qc.run(shots=10) self.assertEqual(res['measured_qid'], [1, 4]) self.assertEqual(res['frequency']['00'] + res['frequency']['11'], 10) qc.free()
def test_hh_cz(self): """test 'CZ' (folowint 'h' gate) """ bk = Backend('qlazy_stabilizer_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).h(1).cz(0, 1).run(reset_qubits=False) actual = qc.stab.get_str() expect = " XZ\n ZX\n" qc.free() self.assertEqual(actual, expect)
def test_h_z(self): """test 'z' gate (following 'h' gate) """ bk = Backend('qlazy_stabilizer_simulator') qc = QComp(qubit_num=1, backend=bk) res = qc.h(0).z(0).run(reset_qubits=False) actual = qc.stab.get_str() expect = " -X\n" self.assertEqual(actual, expect) qc.free()
def test_measure_control_qubit(self): """test 'm' (control qubit using classical memory) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, cmem_num=3, backend=bk) res = qc.h(0).cx(0, 1).measure([0], [0]).x(0, ctrl=0).x( 1, ctrl=0).measure([0, 1]).run(shots=10) qc.free() self.assertEqual(res['measured_qid'], [0, 1]) self.assertEqual(res['frequency']['00'], 10)
def test_h_t_dg(self): """test 't_dg' gate (following 'h' gate) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=1, backend=bk) res = qc.h(0).t_dg(0).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([1.0 / SQRT_2, 0.5 - 0.5j]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_measure_use_cmem(self): """test 'm' (use classical memory) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, cmem_num=3, backend=bk) res = qc.h(0).cx(0, 1).measure([0, 1], [0, 1]).run(shots=10, reset_cmem=False) self.assertEqual(res['measured_qid'], [0, 1]) self.assertEqual(res['frequency']['00'] + res['frequency']['11'], 10) self.assertEqual(qc.cmem == [0, 0, 0] or qc.cmem == [1, 1, 0], True) qc.free()
def test_h_p(self): """test 'p' gate (following 'h' gate) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=1, backend=bk) res = qc.h(0).p(0, phase=0.25).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([0.70710678, 0.5 + 0.5j]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_sw(self): """test 'sw' gate """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).h(1).sw(0, 1).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([(0.5 + 0j), (0.5 + 0j), (0.5 + 0j), (0.5 + 0j)]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_h_u2(self): """test 'u2' gate (following 'h' gate) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=1, backend=bk) res = qc.h(0).u2(0, alpha=0.1, beta=0.2).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([0.02447174 - 0.1545085j, 0.69840112 + 0.69840112j]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_h_u1(self): """test 'u1' gate (following 'h' gate) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=1, backend=bk) res = qc.h(0).u1(0, alpha=0.1).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([0.70710678 + 0.j, 0.67249851 + 0.21850801j]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_cu1(self): """test 'cu1' gate """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).h(1).cu1(0, 1, alpha=0.1).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([(0.5 + 0j), (0.5 + 0j), (0.5 + 0j), (0.47552825814757677 + 0.1545084971874737j)]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_cry(self): """test 'cry' gate """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).h(1).cry(0, 1, phase=0.25).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([(0.5 + 0j), (0.5 + 0j), (0.2705980500730985 + 0j), (0.6532814824381882 + 0j)]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_cp(self): """test 'cp'gate """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).h(1).cp(0, 1, phase=0.25).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([(0.5 + 0j), (0.5 + 0j), (0.5 + 0j), (0.3535533905932738 + 0.35355339059327373j)]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_h_u3(self): """test 'u3' gate (following 'h' gate) """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=1, backend=bk) res = qc.h(0).u3(0, alpha=0.1, beta=0.2, gamma=0.3).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([0.32472882 - 0.09920056j, 0.63003676 + 0.69840112j]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_crz(self): """test 'crz' gate """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).h(1).crz(0, 1, phase=0.25).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([(0.5 + 0j), (0.5 + 0j), (0.4619397662556434 - 0.1913417161825449j), (0.4619397662556434 + 0.1913417161825449j)]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_cu3(self): """test 'cu3' gate """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).h(1).cu3(0, 1, alpha=0.1, beta=0.2, gamma=0.3).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([(0.5 + 0j), (0.5 + 0j), (0.22961795053748937 - 0.07014538985214754j), (0.44550326209418395 + 0.4938441702975689j)]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)
def test_cu2(self): """test 'cu2' gate """ bk = Backend('qlazy_qstate_simulator') qc = QComp(qubit_num=2, backend=bk) res = qc.h(0).h(1).cu2(0, 1, alpha=0.1, beta=0.2).run(reset_qubits=False) actual = qc.qstate.amp expect = np.array([(0.5 + 0j), (0.5 + 0j), (0.0173041346112951 - 0.10925400611220525j), (0.49384417029756883 + 0.49384417029756883j)]) ans = equal_vectors(actual, expect) qc.free() self.assertEqual(ans, True)