From 83204ce7947fea5f42ee572f9ec213dd47beb043 Mon Sep 17 00:00:00 2001 From: Justus Kuhlmann <82444481+jkuhl-uni@users.noreply.github.com> Date: Thu, 16 Mar 2023 14:12:03 +0100 Subject: [PATCH] fixed appended mode reading (#165) --- pyerrors/input/sfcf.py | 2 +- tests/sfcf_in_test.py | 26 +++++++++++++++++++++----- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/pyerrors/input/sfcf.py b/pyerrors/input/sfcf.py index f069d2bf..7ec26f03 100644 --- a/pyerrors/input/sfcf.py +++ b/pyerrors/input/sfcf.py @@ -210,7 +210,7 @@ def read_sfcf(path, prefix, name, quarks='.*', corr_type='bi', noffset=0, wf=0, for exc in ls: if not fnmatch.fnmatch(exc, prefix + '*.' + name): ls = list(set(ls) - set([exc])) - ls.sort(key=lambda x: int(re.findall(r'\d+', x)[-1])) + ls = sort_names(ls) pattern = _make_pattern(version, name, noffset, wf, wf2, b2b, quarks) deltas = [] for rep, file in enumerate(ls): diff --git a/tests/sfcf_in_test.py b/tests/sfcf_in_test.py index e0327175..35fb3509 100644 --- a/tests/sfcf_in_test.py +++ b/tests/sfcf_in_test.py @@ -25,6 +25,10 @@ def build_test_environment(path, env_type, cfgs, reps): os.mkdir(path + "/data_c/data_c_r"+str(i)) for j in range(1,cfgs+1): shutil.copy(path + "/data_c/data_c_r0/data_c_r0_n1",path + "/data_c/data_c_r"+str(i)+"/data_c_r"+str(i)+"_n"+str(j)) + elif env_type == "a": + for i in range(1,reps): + for corr in ["f_1", "f_A", "F_V0"]: + shutil.copy(path + "/data_a/data_a_r0." + corr, path + "/data_a/data_a_r" + str(i) + "." + corr) def test_o_bb(tmp_path): @@ -32,6 +36,7 @@ def test_o_bb(tmp_path): f_1 = sfin.read_sfcf(str(tmp_path) + "/data_o", "test", "f_1",quarks="lquark lquark", wf = 0, wf2=0, version = "2.0", corr_type="bb") print(f_1) 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 def test_o_bi(tmp_path): @@ -39,6 +44,7 @@ def test_o_bi(tmp_path): f_A = sfin.read_sfcf(str(tmp_path) + "/data_o", "test", "f_A",quarks="lquark lquark", wf = 0, version = "2.0") print(f_A) 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 @@ -48,6 +54,7 @@ def test_o_bib(tmp_path): f_V0 = sfin.read_sfcf(str(tmp_path) + "/data_o", "test", "F_V0",quarks="lquark lquark", wf = 0, wf2 = 0, version = "2.0", corr_type="bib") 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 @@ -57,6 +64,7 @@ def test_c_bb(tmp_path): 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") print(f_1) assert len(f_1) == 1 + assert list(f_1[0].shape.keys()) == ["data_c_|r0","data_c_|r1","data_c_|r2"] assert f_1[0].value == 351.1941525454502 def test_c_bi(tmp_path): @@ -64,6 +72,7 @@ def test_c_bi(tmp_path): f_A = sfin.read_sfcf(str(tmp_path) + "/data_c", "data_c", "f_A", quarks="lquark lquark", wf = 0, version = "2.0c") print(f_A) assert len(f_A) == 3 + assert list(f_A[0].shape.keys()) == ["data_c_|r0","data_c_|r1","data_c_|r2"] assert f_A[0].value == 65.4711887279723 assert f_A[1].value == 1.0447210336915187 assert f_A[2].value == -41.025094911185185 @@ -73,33 +82,40 @@ def test_c_bib(tmp_path): f_V0 = sfin.read_sfcf(str(tmp_path) + "/data_c", "data_c", "F_V0",quarks="lquark lquark", wf = 0, wf2 = 0, version = "2.0c", corr_type="bib") print(f_V0) assert len(f_V0) == 3 + assert list(f_V0[0].shape.keys()) == ["data_c_|r0","data_c_|r1","data_c_|r2"] assert f_V0[0] == 683.6776090085115 assert f_V0[1] == 661.3188585582334 assert f_V0[2] == 683.6776090081005 def test_a_bb(tmp_path): - f_1 = sfin.read_sfcf("tests/data/sfcf_test/data_a", "data_a", "f_1", quarks="lquark lquark", wf = 0, wf2=0, version = "2.0a", corr_type="bb") + 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") print(f_1) 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 def test_a_bi(tmp_path): - f_A = sfin.read_sfcf("tests/data/sfcf_test/data_a", "data_a", "f_A", quarks="lquark lquark", wf = 0, version = "2.0a") + build_test_environment(str(tmp_path), "a",5,3) + f_A = sfin.read_sfcf(str(tmp_path) + "/data_a", "data_a", "f_A", quarks="lquark lquark", wf = 0, version = "2.0a") print(f_A) 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.02509491118518 + assert f_A[2].value == -41.025094911185185 def test_a_bib(tmp_path): - f_V0 = sfin.read_sfcf("tests/data/sfcf_test/data_a", "data_a", "F_V0",quarks="lquark lquark", wf = 0, wf2 = 0, version = "2.0a", corr_type="bib") + build_test_environment(str(tmp_path), "a",5,3) + f_V0 = sfin.read_sfcf(str(tmp_path) + "/data_a", "data_a", "F_V0",quarks="lquark lquark", wf = 0, wf2 = 0, version = "2.0a", corr_type="bib") 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_find_corr(tmp_path): +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) assert start_read == 21