ソースを参照

Add a probabilistic test

master
Pete Shadbolt 8年前
コミット
924e240285
1個のファイルの変更25行の追加2行の削除
  1. +25
    -2
      tests/test_measurement.py

+ 25
- 2
tests/test_measurement.py ファイルの表示

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

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])
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():


読み込み中…
キャンセル
保存