Пример #1
0
 def test_unitary_teleportation(self):
     states = [z0, z1, xp, xm, yp, ym, rand_ket(2)]
     for psi in states:
         fidelity0000, fidelity = simulateTeleportation(
             psi,
             circuitTeleportationSimulation,
             circuitXXBraidingCorrectionSimulation,
             circuitZBraidingCorrectionSimulation,
             circuitDecodingSimulation)
         assert are_close(fidelity0000, 1.)
         assert are_close(fidelity, 1.)
Пример #2
0
 def test_teleportation_component(self):
     states = [z0, z1, xp, xm, yp, ym, rand_ket(2)]
     for psi in states:
         psift = continuousTeleportationSimulation(psi, 0.)
         psifc = circuitTeleportationSimulation(psi)
         overl = psifc.overlap(psift)
         assert are_close(overl, 1., atol=1e-04)
Пример #3
0
 def test_time_teleportation(self):
     states = [z0, z1, xp, xm, yp, ym, rand_ket(2)]
     for psi in states:
         fidelity0000, fidelity = simulateTeleportation(
             psi,
             continuousTeleportationSimulation,
             continuousXXBraidingCorrectionSimulation,
             continuousZBraidingCorrectionSimulation,
             continuousDecodingSimulation)
         assert are_close(fidelity0000, 1.)
         assert fidelity < fidelity0000
Пример #4
0
 def testHadamardHamiltonian(self):
     t = np.pi
     H = constructHadamardH(1, [0])
     U = snot()
     Ucorr = constructHadamardCorr(1, [0])
     for psi0 in [z0, z1, xp, xm, yp, ym, rand_ket(2)]:
         psiu = U*psi0
         psif = evolve(H, t/2., psi0)
         psic = Ucorr*psif
         overl = psiu.overlap(psic)
         assert are_close(overl, 1.)
     assert H.isherm
Пример #5
0
 def testCZHamiltonian(self):
     t = np.pi
     H = constructCZH(2, [0], [1])
     U = controlled_gate(sigmaz(), N=2, control=0, target=1)
     states = [z0, z1, xp, xm, yp, ym, rand_ket(2)]
     for psiA in states:
         for psiB in states:
             psi0 = tensor([psiA, psiB])
             psiu = U*psi0
             psic = evolve(H, t/2., psi0)
             overl = psiu.overlap(psic)
             assert are_close(overl, 1., atol=1e-04)
     assert H.isherm
Пример #6
0
 def testCZHamiltonianMore(self):
     t = np.pi
     H1 = constructCZH(4, [0], [1])
     H2 = constructCZH(4, [2], [3])
     U1 = controlled_gate(sigmaz(), N=4, control=0, target=1)
     U2 = controlled_gate(sigmaz(), N=4, control=2, target=3)
     for psiA in [z0, z1]:
         for psiB in [xp, xm]:
             for psiC in [z0, z1]:
                 for psiD in [xp, xm]:
                     psi0 = tensor([psiA, psiB, psiC, psiD])
                     psiu = U2*U1*psi0
                     psic = evolve(H1, t/2., psi0)
                     psic = evolve(H2, t/2., psic)
                     overl = psiu.overlap(psic)
                     assert are_close(overl, 1., atol=1e-04)
     assert H1.isherm
     assert H2.isherm