Skip to content
Snippets Groups Projects
test.py 2.88 KiB
Newer Older
Djalim Simaila's avatar
Djalim Simaila committed
import numpy as np
from main import get_raw_data, get_discrete_data
from utils.files.file_data import Object
from utils.files.output import save_output_file, format_data
Djalim Simaila's avatar
Djalim Simaila committed
from utils.files.parsers import parse_obj_file, parse_xyz_file
from integration_tests import data_test
import time
import os

Djalim Simaila's avatar
Djalim Simaila committed
def test_get_raw_data(obj:Object, expected_file:str, ndigits:int = 6, eps:float = 0.0001):
    """
    Test the get_raw_data function
    """

    # Calculate raw data and save it in a file
    now = time.time()
    data = get_raw_data(obj, ndigits)
    print()
    print("Time to calculate raw data: ", time.time() - now)
    save_output_file('tmp_analyse_brute.txt', format_data(data, '\t', ["X (en mm)", "Y (en mm)", "Z (en mm)", "teta (en rad)", "rayon (en mm)","Xi-Xmoy","Yi-Ymoy"] ))
    data_test.check_raw_data(expected_file, 'tmp_analyse_brute.txt', ndigits, eps)
    os.remove('tmp_analyse_brute.txt')

Djalim Simaila's avatar
Djalim Simaila committed
def test_get_discrete_data(obj: Object,expected_file:str, ndigits:int = 6, eps:float = 0.0001):
    """
    Test the get_discrete_data function
    """

    # Calculate discrete data and save it in a file
    now = time.time()
    data = get_discrete_data(obj, ndigits)
    print()
    print("Time to calculate discrete data: ", time.time() - now)
    save_output_file('tmp_analyse_discrete.txt', format_data(data, '\t', ["X moy (en mm)", "Y moy (en mm)", "Z moy (en mm)","Rayon moyen (en mm)","Rayon ecart type (en mm)"] ))
    data_test.check_discrete_data(expected_file, 'tmp_analyse_discrete.txt', ndigits, eps)
    os.remove('tmp_analyse_discrete.txt')

Djalim Simaila's avatar
Djalim Simaila committed
def test():
    eps = 0.000001
Djalim Simaila's avatar
Djalim Simaila committed
    #obj = parse_obj_file("datasets/Barette/3 - BARETTE v1.obj",normalised='z')
    #obj = parse_xyz_file("datasets/Barette/4 - BARETTE v1.xyz",normalised='z')
    obj = parse_xyz_file("datasets/Barette/4 - BARETTE v1.xyz","datasets/Barette/BARETTE_Delta 1,0_analyse rayon.txt",normalised='z')
Djalim Simaila's avatar
Djalim Simaila committed
    test_get_raw_data(obj,
                      "datasets/Barette/BARETTE_Delta 1,0_analyse brute.txt",
                      eps=eps)
Djalim Simaila's avatar
Djalim Simaila committed
    test_get_discrete_data(obj,
                           "datasets/Barette/BARETTE_Delta 1,0_analyse rayon.txt",
                           eps=eps)

def show_diff_between_obj_and_xyz():
    obj1 = parse_obj_file("datasets/Barette/3 - BARETTE v1.obj",normalised='z')
    obj2 = parse_xyz_file("datasets/Barette/4 - BARETTE v1.xyz",normalised='z')
    obj2verts = obj2.get_vertices(sort=True)
    for count, values in enumerate(obj1.get_vertices(sort=True)):
        L = [abs(values[i] - obj2verts[count][i]) for i in range(len(values))]
        print(*L,sep="\t")


def count_elements_in_discrete_array():
    obj = parse_xyz_file("datasets/Barette/4 - BARETTE v1.xyz","datasets/Barette/BARETTE_Delta 1,0_analyse rayon.txt",normalised='z')
    cpt = 0
    for i in obj.bruteforce_discretization():
        print(f"nb of element in z{cpt} to z{cpt+1}:",len(i))
        cpt += 1

if __name__ == "__main__":
    test()