예제 #1
0
def test_get_methods_of_factories():
    """Tests the get methods of a factory"""
    x_values = [0, 0, 1]
    y_values = [-1, 1, 0]
    fac = LinearFactory(x_values)
    fac._instack = [
        {
            "scale_factor": 0
        },
        {
            "scale_factor": 0
        },
        {
            "scale_factor": 1
        },
    ]
    fac._outstack = y_values
    zne_reduce = fac.reduce()

    assert np.allclose(fac.get_expectation_values(), y_values)
    assert np.allclose(fac.get_extrapolation_curve()(0.0), zne_reduce)
    assert np.allclose(fac.get_optimal_parameters(), [0.0, 0.0])
    assert np.allclose(fac.get_parameters_covariance(),
                       [[3.0, -1.0], [-1.0, 1.0]])
    assert np.allclose(fac.get_scale_factors(), x_values)
    assert np.allclose(fac.get_zero_noise_limit(), zne_reduce)
    assert np.allclose(fac.get_zero_noise_limit_error(), 1.0)
예제 #2
0
def test_equal_simple():
    fac = LinearFactory(scale_factors=[1, 2, 3])
    assert fac != 1

    copied_fac = copy(fac)
    assert copied_fac == fac
    copied_fac._already_reduced = True
    assert copied_fac != fac

    fac._instack = [{"scale_factor": 1, "shots": 100}]
    copied_fac = deepcopy(fac)
    assert copied_fac == fac
    copied_fac._instack[0].update({"shots": 101})
    assert copied_fac != fac