mirror of
https://github.com/fjosw/pyerrors.git
synced 2025-03-15 14:50:25 +01:00
simple test for o format working
This commit is contained in:
parent
79db746e66
commit
eb58920e34
3 changed files with 209 additions and 35 deletions
|
@ -247,15 +247,12 @@ def read_sfcf_multi(path, prefix, name_list, quarks_list=['.*'], corr_type_list=
|
|||
idl.append(rep_idl)
|
||||
# here we have found all the files we need to look into.
|
||||
if i == 0:
|
||||
if version == "0.0":
|
||||
file = path + '/' + item + '/' + sub_ls[0] + '/' + name
|
||||
else:
|
||||
if compact:
|
||||
file = path + '/' + item + '/' + sub_ls[0]
|
||||
else:
|
||||
file = path + '/' + item + '/' + sub_ls[0] + '/' + name
|
||||
if version != "0.0" and compact:
|
||||
file = path + '/' + item + '/' + sub_ls[0]
|
||||
|
||||
for name in name_list:
|
||||
if version == "0.0" or not compact:
|
||||
file = path + '/' + item + '/' + sub_ls[0] + '/' + name
|
||||
for quarks in quarks_list:
|
||||
for off in noffset_list:
|
||||
for w in wf_list:
|
||||
|
@ -271,7 +268,7 @@ def read_sfcf_multi(path, prefix, name_list, quarks_list=['.*'], corr_type_list=
|
|||
# preparing the datastructure
|
||||
# the correlators get parsed into...
|
||||
deltas = []
|
||||
for j in range(T):
|
||||
for j in range(intern[name]["T"]):
|
||||
deltas.append([])
|
||||
internal_ret_dict[name][quarks][str(off)][str(w)][str(w2)] = deltas
|
||||
|
||||
|
@ -285,46 +282,54 @@ def read_sfcf_multi(path, prefix, name_list, quarks_list=['.*'], corr_type_list=
|
|||
for t in range(intern[name]["T"]):
|
||||
internal_ret_dict[name][quarks][str(off)][str(w)][str(w2)][t].append(rep_deltas[name][quarks][str(off)][str(w)][str(w2)][t])
|
||||
else:
|
||||
for t in range(T):
|
||||
deltas[t].append(np.zeros(no_cfg))
|
||||
for cnfg, subitem in enumerate(sub_ls):
|
||||
with open(path + '/' + item + '/' + subitem + '/' + name) as fp:
|
||||
for k, line in enumerate(fp):
|
||||
if (k >= start_read and k < start_read + T):
|
||||
floats = list(map(float, line.split()))
|
||||
if version == "0.0":
|
||||
deltas[k - start_read][i][cnfg] = floats[im - single]
|
||||
else:
|
||||
deltas[k - start_read][i][cnfg] = floats[1 + im - single]
|
||||
for name in name_list:
|
||||
rep_data = []
|
||||
for cnfg, subitem in enumerate(sub_ls):
|
||||
for quarks in quarks_list:
|
||||
for off in noffset_list:
|
||||
for w in wf_list:
|
||||
for w2 in wf2_list:
|
||||
cfg_path = path + '/' + item + '/' + subitem
|
||||
file_data = _read_o_file(cfg_path, name, intern, version, im)
|
||||
rep_data.append(file_data)
|
||||
|
||||
for quarks in quarks_list:
|
||||
for off in noffset_list:
|
||||
for w in wf_list:
|
||||
for w2 in wf2_list:
|
||||
for t in range(intern[name]["T"]):
|
||||
internal_ret_dict[name][quarks][str(off)][str(w)][str(w2)][t].append([])
|
||||
for cfg in range(no_cfg):
|
||||
internal_ret_dict[name][quarks][str(off)][str(w)][str(w2)][t][i].append(rep_data[cfg][quarks][str(off)][str(w)][str(w2)][t])
|
||||
else:
|
||||
if "files" in kwargs:
|
||||
ls = kwargs.get("files")
|
||||
else:
|
||||
for exc in ls:
|
||||
if not fnmatch.fnmatch(exc, prefix + '*.' + name):
|
||||
ls = list(set(ls) - set([exc]))
|
||||
ls = sort_names(ls)
|
||||
for name in name_list:
|
||||
if "files" in kwargs:
|
||||
ls = kwargs.get("files")
|
||||
else:
|
||||
name_ls = ls
|
||||
for exc in name_ls:
|
||||
if not fnmatch.fnmatch(exc, prefix + '*.' + name):
|
||||
name_ls = list(set(name_ls) - set([exc]))
|
||||
name_ls = sort_names(name_ls)
|
||||
for quarks in quarks_list:
|
||||
for off in noffset_list:
|
||||
for w in wf_list:
|
||||
for w2 in wf2_list:
|
||||
pattern = _make_pattern(version, name, off, w, w2, intern[name]['b2b'], quarks)
|
||||
deltas = []
|
||||
for rep, file in enumerate(ls):
|
||||
for rep, file in enumerate(name_ls):
|
||||
rep_idl = []
|
||||
filename = path + '/' + file
|
||||
T, rep_idl, rep_data = _read_append_rep(filename, pattern, intern[name]['b2b'], cfg_separator, im, single)
|
||||
if 'T' not in intern[name]:
|
||||
intern[name]['T'] = T
|
||||
T, rep_idl, rep_data = _read_append_rep(filename, pattern, intern[name]['b2b'], cfg_separator, im, intern[name]['single'])
|
||||
if rep == 0:
|
||||
for t in range(T):
|
||||
intern[name]['T'] = T
|
||||
for t in range(intern[name]['T']):
|
||||
deltas.append([])
|
||||
for t in range(T):
|
||||
for t in range(intern[name]['T']):
|
||||
deltas[t].append(rep_data[t])
|
||||
internal_ret_dict[name][quarks][str(off)][str(w)][str(w2)] = deltas
|
||||
idl.append(rep_idl)
|
||||
if name == name_list[0]:
|
||||
idl.append(rep_idl)
|
||||
|
||||
if kwargs.get("check_configs") is True:
|
||||
if not silent:
|
||||
|
@ -358,6 +363,31 @@ def read_sfcf_multi(path, prefix, name_list, quarks_list=['.*'], corr_type_list=
|
|||
return result_dict
|
||||
|
||||
|
||||
def _read_o_file(cfg_path, name, intern, version, im):
|
||||
file = cfg_path + '/' + name
|
||||
return_vals = {}
|
||||
with open(file) as fp:
|
||||
lines = fp.readlines()
|
||||
for quarks in intern[name]["spec"].keys():
|
||||
return_vals[quarks] = {}
|
||||
for off in intern[name]["spec"][quarks].keys():
|
||||
return_vals[quarks][off] = {}
|
||||
for w in intern[name]["spec"][quarks][off].keys():
|
||||
return_vals[quarks][off][w] = {}
|
||||
for w2 in intern[name]["spec"][quarks][off][w].keys():
|
||||
T = intern[name]["T"]
|
||||
start_read = intern[name]["spec"][quarks][off][w][w2]["start"]
|
||||
deltas = []
|
||||
for line in lines[start_read:start_read + T]:
|
||||
floats = list(map(float, line.split()))
|
||||
if version == "0.0":
|
||||
deltas.append(floats[im - intern[name]["single"]])
|
||||
else:
|
||||
deltas.append(floats[1 + im - intern[name]["single"]])
|
||||
return_vals[quarks][off][w][w2] = deltas
|
||||
return return_vals
|
||||
|
||||
|
||||
def _extract_corr_type(corr_type):
|
||||
if corr_type == 'bb':
|
||||
b2b = True
|
||||
|
|
|
@ -82,7 +82,7 @@ def check_idl(idl, che):
|
|||
return miss_str
|
||||
|
||||
|
||||
def check_params(path, param_hash, prefix, param_prefix = "parameters_"):
|
||||
def check_params(path, param_hash, prefix, param_prefix="parameters_"):
|
||||
"""
|
||||
Check if, for sfcf, the parameter hashes at the end of the parameter files are in fact the expected one.
|
||||
|
||||
|
|
|
@ -61,6 +61,45 @@ def test_o_bib(tmp_path):
|
|||
assert f_V0[2] == 683.6776090081005
|
||||
|
||||
|
||||
def test_simple_multi_o(tmp_path):
|
||||
build_test_environment(str(tmp_path), "o", 5, 3)
|
||||
f_V0 = sfin.read_sfcf_multi(str(tmp_path) + "/data_o", "test", ["F_V0"], quarks=["lquark lquark"], wf1_list=[0], wf2_list=[0], version="2.0", corr_type_list=["bib"], nice_output=True)
|
||||
print(f_V0)
|
||||
assert len(f_V0) == 3
|
||||
assert list(f_V0[0].shape.keys()) == ["test_|r0", "test_|r1", "test_|r2"]
|
||||
assert f_V0[0] == 683.6776090085115
|
||||
assert f_V0[1] == 661.3188585582334
|
||||
assert f_V0[2] == 683.6776090081005
|
||||
|
||||
|
||||
def test_dict_multi_o(tmp_path):
|
||||
build_test_environment(str(tmp_path), "o", 5, 3)
|
||||
corrs = sfin.read_sfcf_multi(str(tmp_path) + "/data_o", "test",
|
||||
["F_V0", "f_A", "f_1"], quarks_list=["lquark lquark"],
|
||||
wf_list=[0], wf2_list=[0], version="2.0",
|
||||
corr_type_list=["bib", "bi", "bb"], nice_output=False)
|
||||
print(corrs)
|
||||
f_1 = corrs["f_1"]['lquark lquark']['0']['0']['0']
|
||||
f_A = corrs["f_A"]['lquark lquark']['0']['0']['0']
|
||||
f_V0 = corrs["F_V0"]['lquark lquark']['0']['0']['0']
|
||||
|
||||
assert len(f_1) == 1
|
||||
assert list(f_1[0].shape.keys()) == ["test_|r0", "test_|r1", "test_|r2"]
|
||||
assert f_1[0].value == 351.1941525454502
|
||||
|
||||
assert len(f_A) == 3
|
||||
assert list(f_A[0].shape.keys()) == ["test_|r0", "test_|r1", "test_|r2"]
|
||||
assert f_A[0].value == 65.4711887279723
|
||||
assert f_A[1].value == 1.0447210336915187
|
||||
assert f_A[2].value == -41.025094911185185
|
||||
|
||||
assert len(f_V0) == 3
|
||||
assert list(f_V0[0].shape.keys()) == ["test_|r0", "test_|r1", "test_|r2"]
|
||||
assert f_V0[0] == 683.6776090085115
|
||||
assert f_V0[1] == 661.3188585582334
|
||||
assert f_V0[2] == 683.6776090081005
|
||||
|
||||
|
||||
def test_c_bb(tmp_path):
|
||||
build_test_environment(str(tmp_path), "c", 5, 3)
|
||||
f_1 = sfin.read_sfcf(str(tmp_path) + "/data_c", "data_c", "f_1", quarks="lquark lquark", wf=0, wf2=0, version="2.0c", corr_type="bb")
|
||||
|
@ -131,6 +170,72 @@ def test_dict_multi_c(tmp_path):
|
|||
assert f_V0[2] == 683.6776090081005
|
||||
|
||||
|
||||
def test_dict_multi_wf_c(tmp_path):
|
||||
build_test_environment(str(tmp_path), "c", 5, 3)
|
||||
corrs = sfin.read_sfcf_multi(str(tmp_path) + "/data_c", "data_c",
|
||||
["F_V0", "f_A", "f_1"], quarks_list=["lquark lquark"],
|
||||
wf_list=[0, 1], wf2_list=[0, 1], version="2.0c",
|
||||
corr_type_list=["bib", "bi", "bb"], nice_output=False)
|
||||
rep_names = ["data_c_|r0", "data_c_|r1", "data_c_|r2"]
|
||||
f_1_00 = corrs["f_1"]['lquark lquark']['0']['0']['0']
|
||||
f_1_01 = corrs["f_1"]['lquark lquark']['0']['0']['1']
|
||||
f_1_10 = corrs["f_1"]['lquark lquark']['0']['1']['0']
|
||||
f_1_11 = corrs["f_1"]['lquark lquark']['0']['1']['1']
|
||||
|
||||
assert len(f_1_00) == 1
|
||||
assert list(f_1_00[0].shape.keys()) == rep_names
|
||||
assert f_1_00[0].value == 351.1941525454502
|
||||
|
||||
assert len(f_1_01) == 1
|
||||
assert list(f_1_01[0].shape.keys()) == rep_names
|
||||
assert f_1_01[0].value == 351.20703575855345
|
||||
|
||||
assert len(f_1_10) == 1
|
||||
assert list(f_1_10[0].shape.keys()) == rep_names
|
||||
assert f_1_10[0].value == 351.20703575855515
|
||||
|
||||
assert len(f_1_11) == 1
|
||||
assert list(f_1_11[0].shape.keys()) == rep_names
|
||||
assert f_1_11[0].value == 351.22001235609065
|
||||
|
||||
f_A = corrs["f_A"]['lquark lquark']['0']['0']['0']
|
||||
|
||||
assert len(f_A) == 3
|
||||
assert list(f_A[0].shape.keys()) == rep_names
|
||||
assert f_A[0].value == 65.4711887279723
|
||||
assert f_A[1].value == 1.0447210336915187
|
||||
assert f_A[2].value == -41.025094911185185
|
||||
|
||||
f_V0_00 = corrs["F_V0"]['lquark lquark']['0']['0']['0']
|
||||
f_V0_01 = corrs["F_V0"]['lquark lquark']['0']['0']['1']
|
||||
f_V0_10 = corrs["F_V0"]['lquark lquark']['0']['1']['0']
|
||||
f_V0_11 = corrs["F_V0"]['lquark lquark']['0']['1']['1']
|
||||
|
||||
assert len(f_V0_00) == 3
|
||||
assert list(f_V0_00[0].shape.keys()) == rep_names
|
||||
assert f_V0_00[0].value == 683.6776090085115
|
||||
assert f_V0_00[1].value == 661.3188585582334
|
||||
assert f_V0_00[2].value == 683.6776090081005
|
||||
|
||||
assert len(f_V0_01) == 3
|
||||
assert list(f_V0_01[0].shape.keys()) == rep_names
|
||||
assert f_V0_01[0].value == 683.7028316879306
|
||||
assert f_V0_01[1].value == 661.3432563640756
|
||||
assert f_V0_01[2].value == 683.7028316875197
|
||||
|
||||
assert len(f_V0_10) == 3
|
||||
assert list(f_V0_10[0].shape.keys()) == rep_names
|
||||
assert f_V0_10[0].value == 683.7028316879289
|
||||
assert f_V0_10[1].value == 661.343256364074
|
||||
assert f_V0_10[2].value == 683.702831687518
|
||||
|
||||
assert len(f_V0_11) == 3
|
||||
assert list(f_V0_11[0].shape.keys()) == rep_names
|
||||
assert f_V0_11[0].value == 683.7280552978792
|
||||
assert f_V0_11[1].value == 661.3676550700158
|
||||
assert f_V0_11[2].value == 683.7280552974681
|
||||
|
||||
|
||||
def test_a_bb(tmp_path):
|
||||
build_test_environment(str(tmp_path), "a", 5, 3)
|
||||
f_1 = sfin.read_sfcf(str(tmp_path) + "/data_a", "data_a", "f_1", quarks="lquark lquark", wf=0, wf2=0, version="2.0a", corr_type="bb")
|
||||
|
@ -162,6 +267,45 @@ def test_a_bib(tmp_path):
|
|||
assert f_V0[2] == 683.6776090081005
|
||||
|
||||
|
||||
def test_simple_multi_a(tmp_path):
|
||||
build_test_environment(str(tmp_path), "a", 5, 3)
|
||||
f_V0 = sfin.read_sfcf_multi(str(tmp_path) + "/data_a", "data_a", ["F_V0"], quarks=["lquark lquark"], wf1_list=[0], wf2_list=[0], version="2.0a", corr_type_list=["bib"], nice_output=True)
|
||||
print(f_V0)
|
||||
assert len(f_V0) == 3
|
||||
assert list(f_V0[0].shape.keys()) == ["data_a_|r0", "data_a_|r1", "data_a_|r2"]
|
||||
assert f_V0[0] == 683.6776090085115
|
||||
assert f_V0[1] == 661.3188585582334
|
||||
assert f_V0[2] == 683.6776090081005
|
||||
|
||||
|
||||
def test_dict_multi_a(tmp_path):
|
||||
build_test_environment(str(tmp_path), "a", 5, 3)
|
||||
corrs = sfin.read_sfcf_multi(str(tmp_path) + "/data_a", "data_a",
|
||||
["F_V0", "f_A", "f_1"], quarks_list=["lquark lquark"],
|
||||
wf_list=[0], wf2_list=[0], version="2.0a",
|
||||
corr_type_list=["bib", "bi", "bb"], nice_output=False)
|
||||
print(corrs)
|
||||
f_1 = corrs["f_1"]['lquark lquark']['0']['0']['0']
|
||||
f_A = corrs["f_A"]['lquark lquark']['0']['0']['0']
|
||||
f_V0 = corrs["F_V0"]['lquark lquark']['0']['0']['0']
|
||||
|
||||
assert len(f_1) == 1
|
||||
assert list(f_1[0].shape.keys()) == ["data_a_|r0", "data_a_|r1", "data_a_|r2"]
|
||||
assert f_1[0].value == 351.1941525454502
|
||||
|
||||
assert len(f_A) == 3
|
||||
assert list(f_A[0].shape.keys()) == ["data_a_|r0", "data_a_|r1", "data_a_|r2"]
|
||||
assert f_A[0].value == 65.4711887279723
|
||||
assert f_A[1].value == 1.0447210336915187
|
||||
assert f_A[2].value == -41.025094911185185
|
||||
|
||||
assert len(f_V0) == 3
|
||||
assert list(f_V0[0].shape.keys()) == ["data_a_|r0", "data_a_|r1", "data_a_|r2"]
|
||||
assert f_V0[0] == 683.6776090085115
|
||||
assert f_V0[1] == 661.3188585582334
|
||||
assert f_V0[2] == 683.6776090081005
|
||||
|
||||
|
||||
def test_find_corr():
|
||||
pattern = 'name ' + "f_A" + '\nquarks ' + "lquark lquark" + '\noffset ' + str(0) + '\nwf ' + str(0)
|
||||
start_read, T = sfin._find_correlator("tests/data/sfcf_test/data_c/data_c_r0/data_c_r0_n1", "2.0c", pattern, False)
|
||||
|
@ -177,7 +321,7 @@ def test_find_corr():
|
|||
sfin._find_correlator("tests/data/sfcf_test/broken_data_c/data_c_r0/data_c_r0_n1", "2.0c", pattern, False)
|
||||
|
||||
|
||||
def test_read_compact_file(tmp_path):
|
||||
def test_read_compact_file():
|
||||
rep_path = "tests/data/sfcf_test/broken_data_c/data_c_r0/"
|
||||
config_file = "data_c_r0_n1"
|
||||
start_read = 469
|
||||
|
|
Loading…
Add table
Reference in a new issue