Skip to content

Commit ed9c587

Browse files
unit tests for measure measurement, reset, and error gates in cirq_utils.parallelize.
1 parent e14b7ac commit ed9c587

File tree

1 file changed

+42
-3
lines changed

1 file changed

+42
-3
lines changed

test/cirq_utils/test_parallelize.py

Lines changed: 42 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,53 @@ def test1():
2626
)
2727

2828
circuit_m, _ = moment_similarity(circuit, weight=1.0)
29-
# print(circuit_m)
3029
circuit_b, _ = block_similarity(circuit, weight=1.0, block_id=1)
3130
circuit_m2 = remove_tags(circuit_m)
32-
print(circuit_m2)
3331
circuit2 = parallelize(circuit)
34-
# print(circuit2)
3532
assert len(circuit2.moments) == 7
3633

34+
def test_measurement_and_reset():
35+
qubits = cirq.LineQubit.range(4)
36+
circuit = cirq.Circuit(
37+
cirq.H(qubits[0]),
38+
cirq.CX(qubits[0], qubits[1]),
39+
cirq.measure(qubits[1]),
40+
cirq.reset(qubits[1]),
41+
cirq.CX(qubits[1], qubits[2]),
42+
cirq.measure(qubits[2]),
43+
cirq.reset(qubits[2]),
44+
cirq.CX(qubits[2], qubits[3]),
45+
cirq.measure(qubits[0]),
46+
cirq.reset(qubits[0]),
47+
)
48+
49+
circuit_m, _ = moment_similarity(circuit, weight=1.0)
50+
circuit_b, _ = block_similarity(circuit, weight=1.0, block_id=1)
51+
circuit_m2 = remove_tags(circuit_m)
52+
53+
parallelized_circuit = parallelize(circuit)
54+
55+
assert len(parallelized_circuit.moments) == 11
56+
57+
#this circuit should deterministically return all qubits to |0>
58+
#let's check:
59+
simulator = cirq.Simulator()
60+
for _ in range(20): #one in a million chance we miss an error
61+
state_vector = simulator.simulate(parallelized_circuit).state_vector()
62+
assert np.all(np.isclose(np.abs(state_vector), np.concatenate((np.array([1]),np.zeros(2**4-1)))))
63+
64+
def test_nonunitary_error_gate():
65+
qubits = cirq.LineQubit.range(2)
66+
circuit = cirq.Circuit(
67+
cirq.H(qubits[0]),
68+
cirq.CX(qubits[0], qubits[1]),
69+
cirq.amplitude_damp(0.5).on(qubits[1]),
70+
cirq.CX(qubits[1], qubits[0]),
71+
)
72+
73+
parallelized_circuit = parallelize(circuit)
74+
75+
assert len(parallelized_circuit.moments) == 7
3776

3877
RNG_STATE = np.random.RandomState(1902833)
3978

0 commit comments

Comments
 (0)