Przeglądaj źródła

Add a probabilistic test

master
Pete Shadbolt 8 lat temu
rodzic
commit
924e240285
1 zmienionych plików z 25 dodań i 2 usunięć
  1. +25
    -2
      tests/test_measurement.py

+ 25
- 2
tests/test_measurement.py Wyświetl plik

@@ -2,9 +2,32 @@ from abp import GraphState
from anders_briegel import graphsim from anders_briegel import graphsim


def test_measurements(): def test_measurements():

# Test that measuring |0> in Z gives 0
g = GraphState([0])
assert g.measure(0, "pz") == 0, "Measuring |0> in Z gives 0"

# Test that measuring |1> in Z gives 1
g = GraphState([0]) g = GraphState([0])
print g
assert all(g.measure(0, "pz") == 0 for i in range(100)), "Measuring |0> in Z gives 0"
g.act_local_rotation(0, "px")
assert g.measure(0, "pz") == 1, "Measuring |1> in Z gives 1"

# Test that measuring |+> in X gives 0
g = GraphState([0])
g.act_local_rotation(0, "hadamard")
assert g.measure(0, "px") == 0
assert g.measure(0, "px") == 0, "Measuring |+> in X gives 0"
g.act_local_rotation(0, "pz")
assert g.measure(0, "px") == 1, "Measuring |-> in X gives 1"

# Test random outcomes
ones = 0
for i in range(1000):
g = GraphState([0])
g.act_local_rotation(0, "hadamard")
ones += g.measure(0, "pz")
assert 400 < ones < 600, "This is a probabilistic test!"





def test_z_measurement_against_ab(): def test_z_measurement_against_ab():


Ładowanie…
Anuluj
Zapisz