from utils.files.input import ScannedObject
from integration_tests import data_test

def test_differences():
    eps = 0.000001
    obj = ScannedObject.from_xyz_file("datasets/Barette/4 - BARETTE v1.xyz",
                                      "datasets/Barette/BARETTE_Delta 1,0_analyse rayon.txt", normalised='z')

    data_test.test_get_raw_data(obj,
                                "datasets/Barette/BARETTE_Delta 1,0_analyse brute.txt",
                                eps=eps)

    data_test.test_get_discrete_data(obj,
                                     "datasets/Barette/BARETTE_Delta 1,0_analyse rayon.txt",
                                     eps=eps)


def show_diff_two_obj():
    obj1 = ScannedObject.from_obj_file(
        "datasets/Barette/3 - BARETTE v1.obj", normalised='z')
    obj2 = ScannedObject.from_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 = ScannedObject.from_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()