diff --git a/main.py b/main.py
index 850e6a3c4e9472f9846a8d26920390894259b2c9..37eb7b1914aad01a38c6d0e993ac873c8d63b7f7 100644
--- a/main.py
+++ b/main.py
@@ -22,7 +22,7 @@ def get_raw_data(obj:Object, ndigits:int)->dict:
     data = {}
     for colone in colones:
         data[colone] = []
-    for discrete_values in obj.get_discrete_vertices(1):
+    for discrete_values in obj.get_discrete_vertices():
         mean_x ,mean_y, mean_z = utils.get_x_y_z_mean(discrete_values)
         for x,y,z in discrete_values:
             data["X (en mm)"].append(round(x, ndigits))
@@ -34,7 +34,7 @@ def get_raw_data(obj:Object, ndigits:int)->dict:
             data["Yi-Ymoy"].append(round(y-mean_y, ndigits))
     return data
 
-def get_discrete_data(obj, ndigits)->dict:
+def get_discrete_data(obj:Object, ndigits:int)->dict:
     """
     Calculates data from the given object
 
@@ -51,7 +51,8 @@ def get_discrete_data(obj, ndigits)->dict:
     data = {}
     for colone in colones:
         data[colone] = []
-    for discrete_values in obj.get_discrete_vertices(1):
+    cpt = 0
+    for discrete_values in obj.get_discrete_vertices():
         x,y,z = utils.get_x_y_z_mean(discrete_values)
         data["X moy (en mm)"].append(round(x, ndigits))
         data["Y moy (en mm)"].append(round(y, ndigits))
@@ -63,7 +64,7 @@ def get_discrete_data(obj, ndigits)->dict:
 
 def main():
     # Create an object from the given file
-    obj = parsers.parse_obj_file("datasets/Barette/3 - BARETTE v1.obj",normalised='z')
+    obj = parsers.parse_xyz_file("test_cylindre.xyz",normalised='z')
     
     # Calculate raw data and save it in a file
     data = get_raw_data(obj, 6)
diff --git a/obj.py b/obj.py
new file mode 100644
index 0000000000000000000000000000000000000000..eaafdbe5205a8fd093ff5944b305867f5e00e629
--- /dev/null
+++ b/obj.py
@@ -0,0 +1,23 @@
+import random
+import math
+
+def circle_points(r, cx, cy):
+    cpt = 0
+    angles = []
+    while cpt < 2*math.pi:
+        angles.append(cpt)
+        cpt += 1/6*math.pi
+    return [[round(r * math.cos(angle) + cx,6), round(r * math.sin(angle) + cy,6)] for angle in angles]
+
+cylindre = []
+for i in range(10):
+    points = circle_points(random.randint(2,20),5,5)
+    for point in points:
+        point.append(i)
+    cylindre.append(points)
+
+with open("test_cylindre.xyz",'w') as f:
+    for couches in cylindre:
+        for points in couches:
+            x,y,z = points[0],points[1],points[2]
+            f.write(f"{x} {y} {z}\n")
diff --git a/outputchecker.py b/outputchecker.py
new file mode 100644
index 0000000000000000000000000000000000000000..717819bb87776dd01faede50c15c34f3168bd371
--- /dev/null
+++ b/outputchecker.py
@@ -0,0 +1,53 @@
+from utils.files.parsers import parse_obj_file, parse_xyz_file
+import numpy as np
+
+def parse_result_file(file_path):
+    lines = []
+    x,y,z = [],[],[]
+    with open(file_path, "r") as f:
+        lines = f.readlines()[1:]
+    for line in lines:
+        line = line.replace(",", ".")
+        values = line.split("\t")
+        x.append(float(values[0]))
+        y.append(float(values[1]))
+        z.append(float(values[2]))
+    return x,y,z
+
+def verifier_coherance():
+    obj = parse_obj_file("datasets/Barette/3 - BARETTE v1.obj",normalised='z')
+    obj.export("verification.txt")
+    #obj = parse_xyz_file("datasets/Barette/4 - BARETTE v1.xyz",normalised='')
+    cpt = 0
+    L = []
+    moyx, moyy, moyz = parse_result_file("datasets/Barette/BARETTE_Delta 1,0_analyse rayon.txt")
+    print(len(moyx),len(moyy),len(moyz))
+    moy = moyx
+    verticies = obj.get_vertices(sort=True)
+    position = 0
+    while position < len(verticies) and len(moy) > 0:
+        x = verticies[position][0]
+        y = verticies[position][1]
+        z = verticies[position][2]
+        L.append(x)
+        m = np.mean(L)
+        print(f"searching for {moy[0]}, currently at {position}",end="\r")
+        if abs(m - moy[0]) < 0.000001:
+            moy.pop(0)
+            L = []
+            copyposition = position
+            if int(verticies[copyposition][2]) >= int(verticies[copyposition+1][2]):
+                while int(verticies[copyposition][2]) == int(verticies[copyposition-1][2]):
+                    copyposition -= 1
+                    """                 
+                    if verticies[position][2] - verticies[copyposition][2] > 1:
+                        copyposition = position + 1
+                        break 
+                    """
+            # Position +1 pour l'allignement des indices avec le numero de ligne
+            # Position - copyposition + 1  car on se deplace seulement si, la condition est fasse aka, on bouge pas si on est aussi de la ou on doit etre
+            print("index :",position,"|should have stoped :",position - copyposition + 1,"position higher| Z difference :",verticies[position][2] - verticies[copyposition-1][2])
+        position += 1
+
+if __name__ == "__main__":
+    verifier_coherance()
\ No newline at end of file
diff --git a/test.py b/test.py
index 9c93d1bb85e58536601f2af80b4d8eb7e8ad4edf..ec276e376decc98178e7ad0fccc209bf6787f46f 100644
--- a/test.py
+++ b/test.py
@@ -1,17 +1,16 @@
+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
-from utils.files.parsers import parse_obj_file
+from utils.files.parsers import parse_obj_file, parse_xyz_file
 from integration_tests import data_test
 import time
-
 import os
 
-def test_get_raw_data(obj_path:Object,expected_file:str, ndigits:int = 6, eps:float = 0.0001):
+def test_get_raw_data(obj:Object, expected_file:str, ndigits:int = 6, eps:float = 0.0001):
     """
     Test the get_raw_data function
     """
-    obj = parse_obj_file(obj_path,normalised='z')
 
     # Calculate raw data and save it in a file
     now = time.time()
@@ -22,11 +21,10 @@ def test_get_raw_data(obj_path:Object,expected_file:str, ndigits:int = 6, eps:fl
     data_test.check_raw_data(expected_file, 'tmp_analyse_brute.txt', ndigits, eps)
     os.remove('tmp_analyse_brute.txt')
 
-def test_get_discrete_data(obj_path:Object,expected_file:str, ndigits:int = 6, eps:float = 0.0001):
+def test_get_discrete_data(obj: Object,expected_file:str, ndigits:int = 6, eps:float = 0.0001):
     """
     Test the get_discrete_data function
     """
-    obj = parse_obj_file(obj_path,normalised='z')
 
     # Calculate discrete data and save it in a file
     now = time.time()
@@ -37,14 +35,36 @@ def test_get_discrete_data(obj_path:Object,expected_file:str, ndigits:int = 6, e
     data_test.check_discrete_data(expected_file, 'tmp_analyse_discrete.txt', ndigits, eps)
     os.remove('tmp_analyse_discrete.txt')
 
+def test():
+    eps = 0.000001
 
-if __name__ == '__main__':
-    eps = 0.0001
-
-    #obj = ("datasets/Barette/3 - BARETTE v1.obj","datasets/Barette/BARETTE_Delta 1,0_analyse brute.txt","datasets/Barette/BARETTE_Delta 1,0_analyse rayon.txt")
-    obj = ("datasets/Cylindre/3 - CYLINDRE v1.obj","datasets/Cylindre/Cylindre_Delta 1,0_analyse brute.txt","datasets/Cylindre/Cylindre_Delta 1,0_analyse rayon.txt")
-    #obj = ("datasets/Echantillon/3 - KA50HN50_98% fusion v1.obj","datasets/Echantillon/30-03-2023_Delta 1,0_analyse brute.txt","datasets/Echantillon/30-03-2023_Delta 1,0_analyse rayon.txt")
+    #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')
 
-    test_get_raw_data(obj[0],obj[1],eps=eps)
+    test_get_raw_data(obj,
+                      "datasets/Barette/BARETTE_Delta 1,0_analyse brute.txt",
+                      eps=eps)
     
-    test_get_discrete_data(obj[0],obj[2],eps=eps)
\ No newline at end of file
+    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()
\ No newline at end of file