Exemple #1
0
 def test_operate_h_z(self):
     """test 'operate' (Z followed by h)
     """
     sb_expect = Stabilizer(gene_num=1,
                            qubit_num=1).set_pauli_op(0, 0, 'Z').h(0).z(0)
     expect = sb_expect.get_str()
     pp = PauliProduct(pauli_str="Z")
     sb_actual = Stabilizer(gene_num=1, qubit_num=1).set_pauli_op(
         0, 0, 'Z').h(0).operate(pp=pp)
     actual = sb_actual.get_str()
     self.assertEqual(actual, expect)
Exemple #2
0
 def test_operate_xyz(self):
     """test 'operate' (xyz)
     """
     sb_expect = Stabilizer(gene_num=3,
                            qubit_num=3).set_all('Z').x(2).y(0).z(1)
     expect = sb_expect.get_str()
     pp = PauliProduct(pauli_str="XYZ", qid=[2, 0, 1])
     sb_actual = Stabilizer(gene_num=3,
                            qubit_num=3).set_all('Z').operate(pp=pp)
     actual = sb_actual.get_str()
     self.assertEqual(actual, expect)
Exemple #3
0
 def test_operate_controlled_xyz(self):
     """test 'operate' (controlled_xyz)
     """
     sb_expect = Stabilizer(gene_num=4,
                            qubit_num=4).set_all('Z').cx(3,
                                                         2).cy(3,
                                                               0).cz(3, 1)
     expect = sb_expect.get_str()
     pp = PauliProduct(pauli_str="XYZ", qid=[2, 0, 1])
     sb_actual = Stabilizer(gene_num=4,
                            qubit_num=4).set_all('Z').operate(pp=pp, ctrl=3)
     actual = sb_actual.get_str()
     self.assertEqual(actual, expect)
Exemple #4
0
 def test_init_2(self):
     """test '__new__' (gene_num < qubit_num)
     """
     sb = Stabilizer(gene_num=2, qubit_num=3)
     actual = sb.get_str()
     expect = "  III\n  III\n"
     self.assertEqual(actual, expect)
Exemple #5
0
 def test_init_4(self):
     """test '__new__' (seed)
     """
     sb = Stabilizer(gene_num=3, qubit_num=3, seed=123)
     actual = sb.get_str()
     expect = "  III\n  III\n  III\n"
     self.assertEqual(actual, expect)
Exemple #6
0
 def test_reset_1(self):
     """test 'reset'
     """
     sb = Stabilizer(gene_num=4, qubit_num=3)
     sb.set_all('Y').reset()
     actual = sb.get_str()
     expect = "  III\n  III\n  III\n  III\n"
     self.assertEqual(actual, expect)
Exemple #7
0
 def test_set_all_3(self):
     """test 'set_all' (gene_num > qubit_num, 'X')
     """
     sb = Stabilizer(gene_num=3, qubit_num=2)
     sb.set_all('X')
     actual = sb.get_str()
     expect = "  XI\n  IX\n  II\n"
     self.assertEqual(actual, expect)
Exemple #8
0
 def test_set_all_6(self):
     """test 'set_all' (gene_num = qubit_num, 'I')
     """
     sb = Stabilizer(qubit_num=3)
     sb.set_all('I')
     actual = sb.get_str()
     expect = "  III\n  III\n  III\n"
     self.assertEqual(actual, expect)
Exemple #9
0
 def test_reset_1(self):
     """test 'clone'
     """
     sb = Stabilizer(gene_num=4, qubit_num=3)
     sb.set_all('Y')
     sb_clone = sb.clone()
     actual = sb_clone.get_str()
     expect = sb.get_str()
     self.assertEqual(actual, expect)
Exemple #10
0
 def test_h_2(self):
     """test 'H' (input:Y)
     """
     sb = Stabilizer(gene_num=1, qubit_num=1)
     sb.set_pauli_op(0, 0, 'Y')
     sb.h(0)
     actual = sb.get_str()
     expect = " -Y\n"
     self.assertEqual(actual, expect)
Exemple #11
0
 def test_cz_13(self):
     """test 'CZ' (input:YZ)
     """
     sb = Stabilizer(gene_num=1, qubit_num=2)
     sb.set_pauli_op(0, 0, 'Y').set_pauli_op(0, 1, 'Z')
     sb.cz(0, 1)
     actual = sb.get_str()
     expect = "  YI\n"
     self.assertEqual(actual, expect)
Exemple #12
0
 def test_z_1(self):
     """test 'Z' (input:X)
     """
     sb = Stabilizer(gene_num=1, qubit_num=1)
     sb.set_pauli_op(0, 0, 'X')
     sb.z(0)
     actual = sb.get_str()
     expect = " -X\n"
     self.assertEqual(actual, expect)
Exemple #13
0
 def test_cy_16(self):
     """test 'CY' (input:ZZ)
     """
     sb = Stabilizer(gene_num=1, qubit_num=2)
     sb.set_pauli_op(0, 0, 'Z').set_pauli_op(0, 1, 'Z')
     sb.cy(0, 1)
     actual = sb.get_str()
     expect = "  IZ\n"
     self.assertEqual(actual, expect)
Exemple #14
0
 def test_cx_15(self):
     """test 'CX' (input:ZY)
     """
     sb = Stabilizer(gene_num=1, qubit_num=2)
     sb.set_pauli_op(0, 0, 'Z').set_pauli_op(0, 1, 'Y')
     sb.cx(0, 1)
     actual = sb.get_str()
     expect = "  IY\n"
     self.assertEqual(actual, expect)
Exemple #15
0
 def test_s_dg_4(self):
     """test 'S+' (input:I)
     """
     sb = Stabilizer(gene_num=1, qubit_num=1)
     sb.set_pauli_op(0, 0, 'I')
     sb.s_dg(0)
     actual = sb.get_str()
     expect = "  I\n"
     self.assertEqual(actual, expect)
Exemple #16
0
 def test_s_3(self):
     """test 'S' (input:Z)
     """
     sb = Stabilizer(gene_num=1, qubit_num=1)
     sb.set_pauli_op(0, 0, 'Z')
     sb.s(0)
     actual = sb.get_str()
     expect = "  Z\n"
     self.assertEqual(actual, expect)
Exemple #17
0
 def test_inheritance_2(self):
     """test 'inheritance_2'
     """
     sb_expect = Stabilizer(qubit_num=2).set_all('Z')
     sb_expect.h(0).cx(0, 1).x(0)
     sb_actual = MyStabilizer(qubit_num=2).set_all('Z').clone()
     sb_actual.bell(0, 1).x(0)
     str_expect = sb_expect.get_str()
     str_actual = sb_actual.get_str()
     self.assertEqual(str_expect, str_actual)
Exemple #18
0
 def test_init_pp(self):
     """test '__new__' (seed)
     """
     gene_str_list = [
         "IIIXXXX", "IXXIIXX", "XIXIXIX", "IIIZZZZ", "IZZIIZZ", "ZIZIZIZ"
     ]
     gene_list = [
         PauliProduct(pauli_str=gene_str, qid=[0, 2, 4, 6, 8, 7, 5])
         for gene_str in gene_str_list
     ]
     sb = Stabilizer(pp_list=gene_list)
     actual = sb.get_str()
     expect = "  IIIIIXXXX\n  IIXIXXIXI\n  XIIIXXIIX\n  IIIIIZZZZ\n  IIZIZZIZI\n  ZIIIZZIIZ\n"
     self.assertEqual(actual, expect)
Exemple #19
0
 def test_set_pauli_op_1(self):
     """test 'set_pauli_op'
     """
     sb = Stabilizer(gene_num=4, qubit_num=3)
     sb.set_pauli_op(0, 0, 'X').set_pauli_op(0, 1,
                                             'Y').set_pauli_op(0, 2, 'Z')
     sb.set_pauli_op(1, 0, 'Y').set_pauli_op(1, 1,
                                             'Z').set_pauli_op(1, 2, 'X')
     sb.set_pauli_op(2, 0, 'Z').set_pauli_op(2, 1,
                                             'X').set_pauli_op(2, 2, 'Y')
     sb.set_pauli_op(3, 0, 'I').set_pauli_op(3, 1,
                                             'I').set_pauli_op(3, 2, 'I')
     actual = sb.get_str()
     expect = "  XYZ\n  YZX\n  ZXY\n  III\n"
     self.assertEqual(actual, expect)