Merge branch 'develop' into documentation

This commit is contained in:
fjosw 2023-11-17 17:57:32 +00:00
commit 4859640b41
6 changed files with 142 additions and 23 deletions

View file

@ -200,17 +200,17 @@ def test_padded_correlator():
def test_corr_exceptions():
obs_a = pe.Obs([np.random.normal(0.1, 0.1, 100)], ['test'])
obs_b= pe.Obs([np.random.normal(0.1, 0.1, 99)], ['test'])
obs_b = pe.Obs([np.random.normal(0.1, 0.1, 99)], ['test'])
with pytest.raises(Exception):
pe.Corr([obs_a, obs_b])
obs_a = pe.Obs([np.random.normal(0.1, 0.1, 100)], ['test'])
obs_b= pe.Obs([np.random.normal(0.1, 0.1, 100)], ['test'], idl=[range(1, 200, 2)])
obs_b = pe.Obs([np.random.normal(0.1, 0.1, 100)], ['test'], idl=[range(1, 200, 2)])
with pytest.raises(Exception):
pe.Corr([obs_a, obs_b])
obs_a = pe.Obs([np.random.normal(0.1, 0.1, 100)], ['test'])
obs_b= pe.Obs([np.random.normal(0.1, 0.1, 100)], ['test2'])
obs_b = pe.Obs([np.random.normal(0.1, 0.1, 100)], ['test2'])
with pytest.raises(Exception):
pe.Corr([obs_a, obs_b])
@ -436,6 +436,7 @@ def test_GEVP_solver():
sp_vecs = [v / np.sqrt((v.T @ mat2 @ v)) for v in sp_vecs]
assert np.allclose(sp_vecs, pe.correlators._GEVP_solver(mat1, mat2), atol=1e-14)
assert np.allclose(np.abs(sp_vecs), np.abs(pe.correlators._GEVP_solver(mat1, mat2, method='cholesky')))
def test_GEVP_none_entries():
@ -552,7 +553,7 @@ def test_corr_no_filtering():
li = [-pe.pseudo_Obs(.2, .1, 'a', samples=10) for i in range(96)]
for i in range(len(li)):
li[i].idl['a'] = range(1, 21, 2)
c= pe.Corr(li)
c = pe.Corr(li)
b = pe.pseudo_Obs(1, 1e-11, 'a', samples=30)
c *= b
assert np.all([c[0].idl == o.idl for o in c])
@ -572,6 +573,28 @@ def test_corr_symmetric():
assert scorr[0] == corr[0]
def test_error_GEVP():
corr = pe.input.json.load_json("tests/data/test_matrix_corr.json.gz")
t0, ts, state = 3, 6, 0
vec_regular = corr.GEVP(t0=t0)[state][ts]
vec_errors = corr.GEVP(t0=t0, vector_obs=True, auto_gamma=True)[state][ts]
vec_regular_chol = corr.GEVP(t0=t0, method='cholesky')[state][ts]
print(vec_errors)
print(type(vec_errors[0]))
assert(np.isclose(np.asarray([e.value for e in vec_errors]), vec_regular).all())
assert(all([e.dvalue > 0. for e in vec_errors]))
projected_regular = corr.projected(vec_regular).content[ts + 1][0]
projected_errors = corr.projected(vec_errors).content[ts + 1][0]
projected_regular.gamma_method()
projected_errors.gamma_method()
assert(projected_errors.dvalue > projected_regular.dvalue)
assert(corr.GEVP(t0, vector_obs=True)[state][42] is None)
assert(np.isclose(vec_regular_chol, vec_regular).all())
assert(np.isclose(corr.GEVP(t0=t0, state=state)[ts], vec_regular).all())
def test_corr_array_ndim1_init():
y = [pe.pseudo_Obs(2 + np.random.normal(0.0, 0.1), .1, 't') for i in np.arange(5)]
cc1 = pe.Corr(y)
@ -688,7 +711,6 @@ def test_matrix_trace():
for el in corr.trace():
assert el == 0
with pytest.raises(ValueError):
corr.item(0, 0).trace()

Binary file not shown.

View file

@ -297,6 +297,10 @@ def test_matrix_functions():
for j in range(dim):
assert tmp[j].is_zero()
# Check eigv
v2 = pe.linalg.eigv(sym)
assert(np.all(v - v2).is_zero())
# Check eig function
e2 = pe.linalg.eig(sym)
assert np.all(np.sort(e) == np.sort(e2))