def test_moments_with_shots() -> None: b = BraketBackend(local=True) c = Circuit(1).H(0) z = QubitPauliString(Qubit(0), Pauli.Z) e = b.get_pauli_expectation_value(c, z, n_shots=10) assert abs(e) <= 1 v = b.get_pauli_variance(c, z, n_shots=10) assert v <= 1 op = QubitPauliOperator({z: 3}) e = b.get_operator_expectation_value(c, op, n_shots=10) assert abs(e) <= 3 v = b.get_operator_variance(c, op, n_shots=10) assert v <= 9
def test_variance() -> None: b = BraketBackend(local=True) assert b.supports_variance # - Prepare a state (1/sqrt(2), 1/sqrt(2)). # - Measure w.r.t. the operator Z which has evcs (1,0) (evl=+1) and (0,1) (evl=-1). # - Get +1 with prob. 1/2 and -1 with prob. 1/2. c = Circuit(1).H(0) z = QubitPauliString(Qubit(0), Pauli.Z) assert b.get_pauli_expectation_value(c, z) == pytest.approx(0) assert b.get_pauli_variance(c, z) == pytest.approx(1) op = QubitPauliOperator({z: 3}) assert b.get_operator_expectation_value(c, op) == pytest.approx(0) assert b.get_operator_variance(c, op) == pytest.approx(9)