예제 #1
0
 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)
예제 #2
0
 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)
예제 #3
0
 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)
예제 #4
0
    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()
예제 #5
0
 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)
예제 #6
0
 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()
예제 #7
0
 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)
예제 #8
0
 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)
예제 #9
0
 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()
예제 #10
0
 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)
예제 #11
0
 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)
예제 #12
0
 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)
예제 #13
0
 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)
예제 #14
0
 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)
예제 #15
0
 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)
예제 #16
0
 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)
예제 #17
0
 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)
예제 #18
0
 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)
예제 #19
0
 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)
예제 #20
0
 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)