示例#1
0
 def test_dict_round_trip(self, num_qubits):
     """Test round trip conversion to and from dict"""
     num_gates = 10
     seed = 655
     gates = 'all'
     circ = random_clifford_circuit(num_qubits,
                                    num_gates,
                                    gates=gates,
                                    seed=seed + num_qubits)
     target = Clifford(circ)
     value = Clifford.from_dict(target.to_dict())
     self.assertEqual(value, target)
示例#2
0
    def test_to_dict(self):
        """Test to_dict method"""

        with self.subTest(msg="Identity"):
            cliff = Clifford(np.eye(8))
            value = cliff.to_dict()

            keys_value = set(value.keys())
            keys_target = {'destabilizer', 'stabilizer'}
            self.assertEqual(keys_value, keys_target)

            stabilizer_value = set(value['stabilizer'])
            stabilizer_target = {'+IIIZ', '+IIZI', '+IZII', '+ZIII'}
            self.assertEqual(stabilizer_value, stabilizer_target)

            destabilizer_value = set(value['destabilizer'])
            destabilizer_target = {'+IIIX', '+IIXI', '+IXII', '+XIII'}
            self.assertEqual(destabilizer_value, destabilizer_target)

        with self.subTest(msg="bell"):
            qc = QuantumCircuit(2)
            qc.h(0)
            qc.cx(0, 1)
            cliff = Clifford(qc)
            value = cliff.to_dict()

            keys_value = set(value.keys())
            keys_target = {'destabilizer', 'stabilizer'}
            self.assertEqual(keys_value, keys_target)

            stabilizer_value = set(value['stabilizer'])
            stabilizer_target = {'+XX', '+ZZ'}
            self.assertEqual(stabilizer_value, stabilizer_target)

            destabilizer_value = set(value['destabilizer'])
            destabilizer_target = {'+IZ', '+XI'}
            self.assertEqual(destabilizer_value, destabilizer_target)
示例#3
0
    def test_to_dict(self):
        """Test to_dict method"""

        with self.subTest(msg="Identity"):
            cliff = Clifford(np.eye(8))
            value = cliff.to_dict()

            keys_value = set(value.keys())
            keys_target = {"destabilizer", "stabilizer"}
            self.assertEqual(keys_value, keys_target)

            stabilizer_value = set(value["stabilizer"])
            stabilizer_target = {"+IIIZ", "+IIZI", "+IZII", "+ZIII"}
            self.assertEqual(stabilizer_value, stabilizer_target)

            destabilizer_value = set(value["destabilizer"])
            destabilizer_target = {"+IIIX", "+IIXI", "+IXII", "+XIII"}
            self.assertEqual(destabilizer_value, destabilizer_target)

        with self.subTest(msg="bell"):
            qc = QuantumCircuit(2)
            qc.h(0)
            qc.cx(0, 1)
            cliff = Clifford(qc)
            value = cliff.to_dict()

            keys_value = set(value.keys())
            keys_target = {"destabilizer", "stabilizer"}
            self.assertEqual(keys_value, keys_target)

            stabilizer_value = set(value["stabilizer"])
            stabilizer_target = {"+XX", "+ZZ"}
            self.assertEqual(stabilizer_value, stabilizer_target)

            destabilizer_value = set(value["destabilizer"])
            destabilizer_target = {"+IZ", "+XI"}
            self.assertEqual(destabilizer_value, destabilizer_target)