def prep_recv(conn): with SimulaQronConnection("Alice", appID=1) as Alice: qA = Qubit(Alice) qA.H() Alice.sendQubit(qA, "Bob") qB = conn.recvQubit() return qB
def testReset(self): with SimulaQronConnection("Alice") as conn: # Test RESET sys.stdout.write("Testing RESET:") exp_values = calc_exp_values(prep_I_state()) ans = conn.test_preparation(prep_reset, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def testKGate(self): with SimulaQronConnection("Alice") as conn: # Test K sys.stdout.write("Testing K gate:") exp_values = calc_exp_values(prep_K_state()) ans = conn.test_preparation(prep_K, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def test_x0(self): with SimulaQronConnection("Alice") as conn: sys.stdout.write("Testing noise on state (|0>+|1>)/sqrt(2)") ans = conn.test_preparation(prep_x0, exp_values=self.exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def testRevTarget(self): with SimulaQronConnection("Bob", appID=0) as conn: # Test recv target sys.stdout.write("Testing recv:") exp_values = calc_exp_values(prep_H_state()) ans = conn.test_preparation(prep_recv, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def testSendControl(self): with SimulaQronConnection("Bob", appID=0) as conn: # Test send control sys.stdout.write("Testing send:") exp_values = calc_exp_values(prep_H_state()) ans = conn.test_preparation(prep_send, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def testEPR2(self): with SimulaQronConnection("Bob", appID=0) as conn: # Test EPR2 sys.stdout.write("Testing EPR2:") exp_values = calc_exp_values(prep_mixed_state()) ans = conn.test_preparation(prep_EPR2, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def testCPHASETarget(self): with SimulaQronConnection("Bob", appID=0) as conn: # Test CPHASE target sys.stdout.write("Testing CPHASE target:") exp_values = calc_exp_values(prep_mixed_state()) ans = conn.test_preparation(prep_CPHASE_target, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def testCNOTControl(self): with SimulaQronConnection("Bob", appID=0) as conn: # Test CNOT control sys.stdout.write("Testing CNOT control:") exp_values = calc_exp_values(prep_mixed_state()) ans = conn.test_preparation(prep_CNOT_control, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def testZ5pi8Rot(self): with SimulaQronConnection("Alice") as conn: # Test ROT_Z 5*pi/8 sys.stdout.write("Testing rotation (Z,5*pi/8) gate:") exp_values = calc_exp_values(prep_rot_state([0, 0, 1], 5 * np.pi / 8)) if simulaqron_settings.sim_backend == SimBackend.STABILIZER.value: with self.assertRaises(SimUnsupportedError): conn.test_preparation(prep_rotz2, exp_values, iterations=self.iterations, progress=False) else: ans = conn.test_preparation(prep_rotz2, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def testTGate(self): with SimulaQronConnection("Alice") as conn: # Test T sys.stdout.write("Testing T gate:") exp_values = calc_exp_values(prep_T_state()) if simulaqron_settings.sim_backend == SimBackend.STABILIZER.value: with self.assertRaises(SimUnsupportedError): conn.test_preparation(prep_T, exp_values, iterations=self.iterations, progress=False) else: ans = conn.test_preparation(prep_T, exp_values, iterations=self.iterations) sys.stdout.write("\r") self.assertTrue(ans)
def prep_send(conn): with SimulaQronConnection("Alice", appID=1) as Alice: qA = Qubit(conn) qB = Qubit(conn) qA.H() qA.cnot(qB) conn.sendQubit(qA, "Alice", remote_appID=1) qA = Alice.recvQubit() m = qA.measure() if m == 1: qB.X() qB.H() return qB
def prep_EPR2(conn): with SimulaQronConnection("Alice", appID=1) as Alice: qB = conn.createEPR("Alice", remote_appID=1) qA = Alice.recvEPR() qA.measure() return qB
def prep_EPR1(conn): with SimulaQronConnection("Alice", appID=1) as Alice: qA = Alice.createEPR("Bob") qB = conn.recvEPR() qA.measure() return qB
def recv_func(name, remote_name): epr_socket = EPRSocket(remote_name) with SimulaQronConnection(name, epr_sockets=[epr_socket]): q = epr_socket.create()[0] m = q.measure() outcomes.append(m)