Beispiel #1
0
 def test_decompose_u1(self):
     qr = QuantumRegister(1)
     circ = QuantumCircuit(qr)
     circ.u1(pi, qr[0])
     unrolled = pass_manager = PassManager([IonUnroller()]).run(
         circ, output_name=circ.name + " unrolled")
     c2 = QuantumCircuit(qr)
     c2.rz(pi, qr[0])
     self.assertEqual(str(c2.draw()), str(unrolled.draw()))
Beispiel #2
0
 def test_decompose_cx(self):
     qr = QuantumRegister(2)
     circ = QuantumCircuit(qr)
     circ.cx(qr[0], qr[1])
     unrolled = pass_manager = PassManager([IonUnroller()]).run(
         circ, output_name=circ.name + " unrolled")
     c2 = QuantumCircuit(qr)
     c2.sy(qr[0])
     c2.ms2(pi / 2, 0, qr[0], qr[1])
     c2.r(0, -pi / 2, qr[0])
     c2.r(0, -pi / 2, qr[1])
     c2.r(pi / 2, -pi / 2, qr[0])
     self.maxDiff = 2000
     self.assertEqual(str(c2.draw()), str(unrolled.draw()))
Beispiel #3
0
 def test_stable_gates(self):
     qr = QuantumRegister(2)
     cr = ClassicalRegister(2)
     circ = QuantumCircuit(qr, cr)
     circ.ms2(pi / 4, pi / 4, qr[0], qr[1])
     circ.r(pi / 2, pi / 4, qr[0])
     circ.x(qr[1])
     circ.y(qr[0])
     circ.sx(qr[0])
     circ.sy(qr[1])
     circ.i(qr[0])
     circ.measure(qr, cr)
     unrolled = pass_manager = PassManager([IonUnroller()]).run(
         circ, output_name=circ.name + " unrolled")
     self.assertEqual(str(circ.draw()), str(unrolled.draw()))