|
19 | 19 | import random
|
20 | 20 | from qrisp.operators import X, Y, Z, A, C, P0, P1
|
21 | 21 | from qrisp import *
|
| 22 | +from qrisp.interface import VirtualBackend |
| 23 | +from qrisp.simulator import run |
22 | 24 |
|
23 | 25 | def test_measurement_method(sample_size=100, seed=42, exhaustive = False):
|
| 26 | + |
| 27 | + non_sampling_backend = VirtualBackend(lambda qasm_string, shots, token : run(QuantumCircuit.from_qasm_str(qasm_string), None, "")) |
24 | 28 |
|
25 | 29 | def testing_helper(qv, operator_combinations):
|
26 | 30 | for H in operator_combinations:
|
27 | 31 | if isinstance(H, int):
|
28 | 32 | continue
|
29 | 33 |
|
30 | 34 | print(H)
|
31 |
| - assert abs(H.get_measurement(qv, precision=0.005, shots=int(1E8)) - |
32 |
| - H.to_pauli().get_measurement(qv, precision=0.0005, shots=int(1E8))) < 1E-1 |
33 |
| - assert abs(H.get_measurement(qv, precision=0.005, shots=int(1E8), |
34 |
| - diagonalisation_method="commuting") - |
| 35 | + assert abs(H.get_measurement(qv, precision=0.0005, shots=int(1E8), backend =non_sampling_backend) - |
| 36 | + H.to_pauli().get_measurement(qv, precision=0.0005, shots=int(1E8), backend = non_sampling_backend)) < 1E-1 |
| 37 | + assert abs(H.get_measurement(qv, precision=0.0005, shots=int(1E8), |
| 38 | + diagonalisation_method="commuting", backend = non_sampling_backend) - |
35 | 39 | H.to_pauli().get_measurement(qv, diagonalisation_method="commuting",
|
36 |
| - precision=0.005, shots=int(1E8))) < 1E-1 |
| 40 | + precision=0.0005, shots=int(1E8), backend = non_sampling_backend)) < 1E-1 |
37 | 41 |
|
38 | 42 | # Set the random seed for reproducibility
|
39 | 43 | random.seed(seed)
|
|
0 commit comments