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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)