128 lines
5.5 KiB
Python
128 lines
5.5 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 = []
|
|
x,y,z,r,std = 0,0,0,0,0
|
|
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)
|
|
|
|
x += x_diff
|
|
y += y_diff
|
|
z += z_diff
|
|
r += r_diff
|
|
std += std_diff
|
|
|
|
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)
|
|
|
|
x = round(x/len(expected),ndigits)
|
|
y = round(y/len(expected),ndigits)
|
|
z = round(z/len(expected),ndigits)
|
|
r = round(r/len(expected),ndigits)
|
|
std = round(std/len(expected),ndigits)
|
|
print()
|
|
print("Analyse données discretisées:")
|
|
print(f"difference moyenne X: {x}")
|
|
print(f"difference moyenne Y: {y}")
|
|
print(f"difference moyenne Z: {z}")
|
|
print(f"difference moyenne R: {r}")
|
|
print(f"difference moyenne STD: {std}")
|
|
print(f"diff globale des fichiers: {(x+y+z+r+std)/5}")
|
|
print(f"Voir {output_file} pour plus de détails")
|
|
print(f"Voir {minimal_output_file} pour les différences significatives")
|
|
print("_"*80)
|
|
|
|
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 = []
|
|
x,y,z,t,r,xmoy,ymoy = 0,0,0,0,0,0,0
|
|
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)
|
|
|
|
x += x_diff
|
|
y += y_diff
|
|
z += z_diff
|
|
t += t_diff
|
|
r += r_diff
|
|
xmoy += xmoy_diff
|
|
ymoy += ymoy_diff
|
|
|
|
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 {x_diff}\n"
|
|
if y_diff > eps:
|
|
minimal_output_data += f"{i} : Y diff {y_diff}\n"
|
|
if z_diff > eps:
|
|
minimal_output_data += f"{i} : Z diff {z_diff}\n"
|
|
if t_diff > eps:
|
|
minimal_output_data += f"{i} : teta diff{ t_diff}\n"
|
|
if r_diff > eps:
|
|
minimal_output_data += f"{i} : R diff {r_diff}\n"
|
|
if xmoy_diff > eps:
|
|
minimal_output_data += f"{i} : Xi-Xmoy diff {xmoy_diff}\n"
|
|
if ymoy_diff > eps:
|
|
minimal_output_data += f"{i} : Yi-Ymoy diff{ymoy_diff}\n"
|
|
output.save_output_file(output_file, output_data)
|
|
output.save_output_file(minimal_output_file, minimal_output_data)
|
|
x = round(x/len(expected),ndigits)
|
|
y = round(y/len(expected),ndigits)
|
|
z = round(z/len(expected),ndigits)
|
|
t = round(t/len(expected),ndigits)
|
|
r = round(r/len(expected),ndigits)
|
|
xmoy = round(xmoy/len(expected),ndigits)
|
|
ymoy = round(ymoy/len(expected),ndigits)
|
|
|
|
print()
|
|
print("Analyse données brutes :")
|
|
print(f"diff moyenne de x : {x}")
|
|
print(f"diff moyenne de y : {y}")
|
|
print(f"diff moyenne de z : {z}")
|
|
print(f"diff moyenne de t : {t}")
|
|
print(f"diff moyenne de r : {r}")
|
|
print(f"diff moyenne de xmoy : {xmoy}")
|
|
print(f"diff moyenne de ymoy : {ymoy}")
|
|
print(f"diff gloabale des fichiers : {(x+y+z+t+r+xmoy+ymoy)/7}")
|
|
print(f"Voir {output_file} pour plus de détails")
|
|
print(f"Voir {minimal_output_file} pour les différences significatives")
|
|
print("_"*80)
|