2022-02-09 11:23:58 +00:00
|
|
|
import os
|
|
|
|
import sys
|
|
|
|
import inspect
|
2022-02-06 18:05:37 +01:00
|
|
|
import pyerrors as pe
|
|
|
|
import pyerrors.input.sfcf as sfin
|
|
|
|
import shutil
|
2023-03-15 18:46:12 +01:00
|
|
|
import pytest
|
2022-02-06 18:05:37 +01:00
|
|
|
|
2022-02-09 11:23:58 +00:00
|
|
|
current_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
|
|
|
|
parent_dir = os.path.dirname(current_dir)
|
|
|
|
sys.path.insert(0, parent_dir)
|
|
|
|
|
2022-02-06 18:05:37 +01:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def build_test_environment(path, env_type, cfgs, reps):
|
|
|
|
shutil.copytree("tests/data/sfcf_test/data_"+env_type, (path + "/data_" + env_type))
|
2022-02-07 18:29:49 +01:00
|
|
|
if env_type == "o":
|
2022-02-07 12:28:14 +01:00
|
|
|
for i in range(2,cfgs+1):
|
2023-03-15 18:46:12 +01:00
|
|
|
shutil.copytree(path + "/data_o/test_r0/cfg1", path + "/data_o/test_r0/cfg"+str(i))
|
2022-02-07 12:28:14 +01:00
|
|
|
for i in range(1,reps):
|
2023-03-15 18:46:12 +01:00
|
|
|
shutil.copytree(path + "/data_o/test_r0", path + "/data_o/test_r"+str(i))
|
2022-02-07 18:29:49 +01:00
|
|
|
elif env_type == "c":
|
2022-02-07 12:28:14 +01:00
|
|
|
for i in range(2,cfgs+1):
|
2023-03-15 18:46:12 +01:00
|
|
|
shutil.copy(path + "/data_c/data_c_r0/data_c_r0_n1", path + "/data_c/data_c_r0/data_c_r0_n"+str(i))
|
2022-02-07 12:28:14 +01:00
|
|
|
for i in range(1,reps):
|
2023-03-15 18:46:12 +01:00
|
|
|
os.mkdir(path + "/data_c/data_c_r"+str(i))
|
2022-02-07 12:28:14 +01:00
|
|
|
for j in range(1,cfgs+1):
|
2023-03-15 18:46:12 +01:00
|
|
|
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))
|
2022-02-06 18:05:37 +01:00
|
|
|
|
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def test_o_bb(tmp_path):
|
|
|
|
build_test_environment(str(tmp_path), "o",5,3)
|
|
|
|
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")
|
2022-02-07 12:28:14 +01:00
|
|
|
print(f_1)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_1) == 1
|
|
|
|
assert f_1[0].value == 351.1941525454502
|
2022-02-09 11:23:58 +00:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def test_o_bi(tmp_path):
|
|
|
|
build_test_environment(str(tmp_path), "o",5,3)
|
|
|
|
f_A = sfin.read_sfcf(str(tmp_path) + "/data_o", "test", "f_A",quarks="lquark lquark", wf = 0, version = "2.0")
|
2022-02-07 12:28:14 +01:00
|
|
|
print(f_A)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_A) == 3
|
|
|
|
assert f_A[0].value == 65.4711887279723
|
|
|
|
assert f_A[1].value == 1.0447210336915187
|
|
|
|
assert f_A[2].value == -41.025094911185185
|
2022-02-09 11:23:58 +00:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def test_o_bib(tmp_path):
|
|
|
|
build_test_environment(str(tmp_path), "o",5,3)
|
|
|
|
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")
|
2022-02-07 12:28:14 +01:00
|
|
|
print(f_V0)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_V0) == 3
|
|
|
|
assert f_V0[0] == 683.6776090085115
|
|
|
|
assert f_V0[1] == 661.3188585582334
|
|
|
|
assert f_V0[2] == 683.6776090081005
|
2022-02-07 12:28:14 +01:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
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")
|
2022-02-07 12:28:14 +01:00
|
|
|
print(f_1)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_1) == 1
|
|
|
|
assert f_1[0].value == 351.1941525454502
|
2022-02-07 12:28:14 +01:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def test_c_bi(tmp_path):
|
|
|
|
build_test_environment(str(tmp_path), "c",5,3)
|
|
|
|
f_A = sfin.read_sfcf(str(tmp_path) + "/data_c", "data_c", "f_A", quarks="lquark lquark", wf = 0, version = "2.0c")
|
2022-02-07 15:10:19 +01:00
|
|
|
print(f_A)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_A) == 3
|
|
|
|
assert f_A[0].value == 65.4711887279723
|
|
|
|
assert f_A[1].value == 1.0447210336915187
|
|
|
|
assert f_A[2].value == -41.025094911185185
|
2022-02-07 12:28:14 +01:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def test_c_bib(tmp_path):
|
|
|
|
build_test_environment(str(tmp_path), "c",5,3)
|
|
|
|
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")
|
2022-02-07 15:10:19 +01:00
|
|
|
print(f_V0)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_V0) == 3
|
|
|
|
assert f_V0[0] == 683.6776090085115
|
|
|
|
assert f_V0[1] == 661.3188585582334
|
|
|
|
assert f_V0[2] == 683.6776090081005
|
2022-02-07 15:10:19 +01:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def test_a_bb(tmp_path):
|
2022-02-08 11:51:51 +01:00
|
|
|
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")
|
2022-02-07 15:10:19 +01:00
|
|
|
print(f_1)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_1) == 1
|
|
|
|
assert f_1[0].value == 351.1941525454502
|
2022-02-07 15:10:19 +01:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def test_a_bi(tmp_path):
|
2022-02-07 18:29:49 +01:00
|
|
|
f_A = sfin.read_sfcf("tests/data/sfcf_test/data_a", "data_a", "f_A", quarks="lquark lquark", wf = 0, version = "2.0a")
|
2022-02-07 15:10:19 +01:00
|
|
|
print(f_A)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_A) == 3
|
|
|
|
assert f_A[0].value == 65.4711887279723
|
|
|
|
assert f_A[1].value == 1.0447210336915187
|
|
|
|
assert f_A[2].value == -41.02509491118518
|
2022-02-07 15:10:19 +01:00
|
|
|
|
2023-03-15 18:46:12 +01:00
|
|
|
def test_a_bib(tmp_path):
|
2022-02-08 11:51:51 +01:00
|
|
|
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")
|
2022-02-07 12:28:14 +01:00
|
|
|
print(f_V0)
|
2022-02-07 15:54:57 +01:00
|
|
|
assert len(f_V0) == 3
|
|
|
|
assert f_V0[0] == 683.6776090085115
|
|
|
|
assert f_V0[1] == 661.3188585582334
|
2022-02-09 11:23:58 +00:00
|
|
|
assert f_V0[2] == 683.6776090081005
|
2023-03-15 18:46:12 +01:00
|
|
|
|
|
|
|
def test_find_corr(tmp_path):
|
|
|
|
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
|
|
|
|
assert T == 3
|
|
|
|
|
|
|
|
pattern = 'name ' + "f_X" + '\nquarks ' + "lquark lquark" + '\noffset ' + str(0) + '\nwf ' + str(0)
|
|
|
|
with pytest.raises(ValueError):
|
|
|
|
sfin._find_correlator("tests/data/sfcf_test/data_c/data_c_r0/data_c_r0_n1", "2.0c", pattern, False)
|
|
|
|
|
|
|
|
pattern = 'name ' + "f_A" + '\nquarks ' + "lquark lquark" + '\noffset ' + str(0) + '\nwf ' + str(0)
|
|
|
|
with pytest.raises(ValueError):
|
|
|
|
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):
|
|
|
|
rep_path = "tests/data/sfcf_test/broken_data_c/data_c_r0/"
|
|
|
|
config_file = "data_c_r0_n1"
|
|
|
|
start_read = 469
|
|
|
|
T = 3
|
|
|
|
b2b = False
|
|
|
|
name = "F_V0"
|
|
|
|
im = False
|
|
|
|
with pytest.raises(Exception):
|
|
|
|
sfin._read_compact_file(rep_path, config_file, start_read, T, b2b, name, im)
|