AnalyseMorphologique/integration_tests/data_test.py

72 lines
3.7 KiB
Python

from utils.files import output
def check_discrete_data(expected_file, actual_file, ndigits=7,eps=0.00001) :
output_file = "check_discrete_data_full.txt"
minimal_output_file = "check_discrete_data_minimal.txt"
minimal_output_data = ""
output_data = ""
expected = []
with open(expected_file, "r") as f:
expected = f.readlines()[1:]
expected = [line.replace(',','.').split('\t') for line in expected]
expected = [[float(x) for x in line] for line in expected]
actual = []
with open(actual_file, "r") as f:
actual = f.readlines()[1:]
actual = [line.split('\t') for line in actual]
actual = [[float(x) for x in line if x != '\n'] for line in actual]
for i in range(min(len(expected), len(actual))):
x_diff = round(abs(expected[i][0] - actual[i][0]),ndigits)
y_diff = round(abs(expected[i][1] - actual[i][1]),ndigits)
z_diff = round(abs(expected[i][2] - actual[i][2]),ndigits)
r_diff = round(abs(expected[i][3] - actual[i][3]),ndigits)
std_diff = round(abs(expected[i][4] - actual[i][4]),ndigits)
line = f"{str(i).rjust(4)}:\t X: {str(x_diff).rjust(8)}\t Y: {str(y_diff).rjust(8)}\t Z: {str(z_diff).rjust(8)}\t R: {str(r_diff).rjust(8)}\t STD: {str(std_diff).rjust(8)}"
output_data += line + "\n"
if x_diff > eps or y_diff > eps or z_diff > eps or r_diff > eps or std_diff > eps:
minimal_output_data += line + "\n"
output.save_output_file(output_file, output_data)
output.save_output_file(minimal_output_file, minimal_output_data)
def check_raw_data(expected_file, actual_file, ndigits=7,eps=0.00001) :
output_file = "check_raw_data_full.txt"
minimal_output_file = "check_raw_data_minimal.txt"
minimal_output_data = ""
output_data = ""
expected = []
with open(expected_file, "r") as f:
expected = f.readlines()[1:]
expected = [line.replace(',','.').split('\t') for line in expected]
expected = [[float(x) for x in line] for line in expected]
actual = []
with open(actual_file, "r") as f:
actual = f.readlines()[1:]
actual = [line.split('\t') for line in actual]
actual = [[float(x) for x in line if x != '\n'] for line in actual]
for i in range(min(len(expected), len(actual))):
x_diff = round(abs(expected[i][0] - actual[i][0]),ndigits)
y_diff = round(abs(expected[i][1] - actual[i][1]),ndigits)
z_diff = round(abs(expected[i][2] - actual[i][2]),ndigits)
t_diff = round(abs(expected[i][3] - actual[i][3]),ndigits)
r_diff = round(abs(expected[i][4] - actual[i][4]),ndigits)
xmoy_diff = round(abs(expected[i][5] - actual[i][5]),ndigits)
ymoy_diff = round(abs(expected[i][6] - actual[i][6]),ndigits)
line = f"{str(i).rjust(4)}:\t X: {str(x_diff).rjust(8)}\t Y: {str(y_diff).rjust(8)}\t Z: {str(z_diff).rjust(8)}\t T: {str(t_diff).rjust(8)}\t R: {str(r_diff).rjust(8)}\t Xmoy: {str(xmoy_diff).rjust(8)}\t Ymoy: {str(ymoy_diff).rjust(8)}"
output_data += line + "\n"
if x_diff > eps:
minimal_output_data += f"{i} : {x_diff}\n"
if y_diff > eps:
minimal_output_data += f"{i} : {y_diff}\n"
if z_diff > eps:
minimal_output_data += f"{i} : {z_diff}\n"
if t_diff > eps:
minimal_output_data += f"{i} : {t_diff}\n"
if r_diff > eps:
minimal_output_data += f"{i} : {r_diff}\n"
if xmoy_diff > eps:
minimal_output_data += f"{i} : {xmoy_diff}\n"
if ymoy_diff > eps:
minimal_output_data += f"{i} : {ymoy_diff}\n"
output.save_output_file(output_file, output_data)
output.save_output_file(minimal_output_file, minimal_output_data)