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