diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 0d5d0a7d29591a87af2d2aac3df4f1377ca96b1a..083493963b5d8938ce40c5bb6034623460030783 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -10,7 +10,10 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="43aff179-c306-46b9-b69f-eca5306fbf96" name="Default Changelist" comment="">
+      <change beforePath="$PROJECT_DIR$/Vector" beforeDir="false" afterPath="$PROJECT_DIR$/Vector" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/Vector.c" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.c" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/Vector.o" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.o" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/makefile" beforeDir="false" afterPath="$PROJECT_DIR$/makefile" afterDir="false" />
     </list>
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
     <option name="SHOW_DIALOG" value="false" />
@@ -20,20 +23,38 @@
   </component>
   <component name="FileEditorManager">
     <leaf>
-      <file pinned="false" current-in-tab="true">
+      <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Vector.c">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="342">
-              <caret line="211" column="97" selection-start-line="211" selection-start-column="97" selection-end-line="211" selection-end-column="97" />
+            <state relative-caret-position="920">
+              <caret line="210" lean-forward="true" selection-start-line="210" selection-end-line="210" />
             </state>
           </provider>
         </entry>
       </file>
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/Vector.h">
+          <provider selected="true" editor-type-id="text-editor">
+            <state relative-caret-position="85">
+              <caret line="5" selection-start-line="5" selection-end-line="5" selection-end-column="33" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="true">
+        <entry file="file://$PROJECT_DIR$/Box.c">
           <provider selected="true" editor-type-id="text-editor">
             <state relative-caret-position="391">
-              <caret line="23" selection-start-line="23" selection-end-line="23" selection-end-column="34" />
+              <caret line="56" column="33" selection-start-line="56" selection-start-column="33" selection-end-line="56" selection-end-column="33" />
+            </state>
+          </provider>
+        </entry>
+      </file>
+      <file pinned="false" current-in-tab="false">
+        <entry file="file://$PROJECT_DIR$/Box.h">
+          <provider selected="true" editor-type-id="text-editor">
+            <state>
+              <caret column="18" selection-start-column="18" selection-end-column="18" />
             </state>
           </provider>
         </entry>
@@ -41,8 +62,8 @@
       <file pinned="false" current-in-tab="false">
         <entry file="file://$PROJECT_DIR$/makefile">
           <provider selected="true" editor-type-id="text-editor">
-            <state relative-caret-position="51">
-              <caret line="3" column="30" selection-start-line="3" selection-start-column="30" selection-end-line="3" selection-end-column="30" />
+            <state>
+              <caret column="15" selection-start-column="15" selection-end-column="15" />
             </state>
           </provider>
         </entry>
@@ -59,11 +80,13 @@
         <option value="$PROJECT_DIR$/Vector_Test.h" />
         <option value="$PROJECT_DIR$/Vector_Test.c" />
         <option value="$PROJECT_DIR$/makefile" />
+        <option value="$PROJECT_DIR$/Box.h" />
         <option value="$PROJECT_DIR$/Vector.c" />
+        <option value="$PROJECT_DIR$/Box.c" />
       </list>
     </option>
   </component>
-  <component name="ProjectFrameBounds" extendedState="7">
+  <component name="ProjectFrameBounds" extendedState="6">
     <option name="x" value="848" />
     <option name="y" value="317" />
     <option name="width" value="1050" />
@@ -115,12 +138,12 @@
       <option name="number" value="Default" />
       <option name="presentableId" value="Default" />
       <updated>1559227081243</updated>
-      <workItem from="1559227084365" duration="16429000" />
+      <workItem from="1559227084365" duration="25870000" />
     </task>
     <servers />
   </component>
   <component name="TimeTrackingManager">
-    <option name="totallyTimeSpent" value="16429000" />
+    <option name="totallyTimeSpent" value="25870000" />
   </component>
   <component name="ToolWindowManager">
     <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
@@ -181,22 +204,36 @@
     </entry>
     <entry file="file://$PROJECT_DIR$/makefile">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="51">
-          <caret line="3" column="30" selection-start-line="3" selection-start-column="30" selection-end-line="3" selection-end-column="30" />
+        <state>
+          <caret column="15" selection-start-column="15" selection-end-column="15" />
         </state>
       </provider>
     </entry>
-    <entry file="file://$PROJECT_DIR$/Vector.h">
+    <entry file="file://$PROJECT_DIR$/Box.h">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="391">
-          <caret line="23" selection-start-line="23" selection-end-line="23" selection-end-column="34" />
+        <state>
+          <caret column="18" selection-start-column="18" selection-end-column="18" />
         </state>
       </provider>
     </entry>
     <entry file="file://$PROJECT_DIR$/Vector.c">
       <provider selected="true" editor-type-id="text-editor">
-        <state relative-caret-position="342">
-          <caret line="211" column="97" selection-start-line="211" selection-start-column="97" selection-end-line="211" selection-end-column="97" />
+        <state relative-caret-position="920">
+          <caret line="210" lean-forward="true" selection-start-line="210" selection-end-line="210" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Vector.h">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="85">
+          <caret line="5" selection-start-line="5" selection-end-line="5" selection-end-column="33" />
+        </state>
+      </provider>
+    </entry>
+    <entry file="file://$PROJECT_DIR$/Box.c">
+      <provider selected="true" editor-type-id="text-editor">
+        <state relative-caret-position="391">
+          <caret line="56" column="33" selection-start-line="56" selection-start-column="33" selection-end-line="56" selection-end-column="33" />
         </state>
       </provider>
     </entry>
diff --git a/Box b/Box
new file mode 100644
index 0000000000000000000000000000000000000000..e7a51acc7eb153c6786d6dc8f969c37bd5a9fca1
Binary files /dev/null and b/Box differ
diff --git a/Box.c b/Box.c
new file mode 100644
index 0000000000000000000000000000000000000000..503aa7119eeee49e090504bbfc9f3db50334723a
--- /dev/null
+++ b/Box.c
@@ -0,0 +1,90 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include "Box.h"
+#include <math.h>
+
+box new_box(double x0, double x1, double y0, double y1){
+
+    box new_box;
+    //On vérifie que l'allocation est bien faite
+    if (new_vec == NULL){
+        exit(1);
+    }
+    //Attribution des valeurs
+    new_box.x0 = x0;
+    new_box.y0 = y0;
+    new_box.x1 = x1;
+    new_box.y1 = y1;
+
+    return new_box;
+
+}
+
+bool is_inside(box b, vec *v){
+
+    //Vérification des valeurs du vecteur dans les intervalles de la box
+    if(v->x >= b.x0 && v->x <= b.x1 && v->y >= b.y0 && v->y <= b.y1){
+
+        return true;
+    }
+    else{
+        return false;
+    }
+}
+
+
+//TEST FONCTIONS//
+
+int Test_new_box(){
+
+    box b = new_box(1.0,1.0,2.0,2.0);
+    if(b.x0 == 1.0 && b.x1 == 1.0 && b.y0 == 2.0 && b.y1 == 2.0){
+        printf("Test_new_box IS OK\n");
+    }
+    else{
+        printf("Test_new_box has an ERROR\n");
+    }
+}
+
+int Test_is_inside(){
+
+    box b = new_box(-1.0,1.0,-2.0,2.0);
+    vec *v1 = new_vec(0.5,1.5);
+    vec *v2 = new_vec(1.0,2.5);
+
+    bool test1 = is_inside(b,v1);
+    bool test2 = is_inside(b,v2);
+
+    if(test1  && !test2){
+        printf("Test_is_inside IS OK\n");
+    }
+    else{
+        printf("Test_is_inside has an ERROR\n");
+    }
+    free(v1);
+    free(v2);
+}
+
+int box_tests(){
+    Test_new_box();
+    Test_is_inside();
+}
+
+int main(int argc, char *argv[]){
+    if(argc == 2) {
+        if (strcmp(argv[1], "box_test") == 0) {
+            box_tests();
+        }
+        else if(strcmp(argv[1], "vector_test") == 0){
+            vector_tests();
+            vec *v = new_vec(1.0,2.0);
+            print_vec(v);
+            free(v);
+        }
+    }
+    else{
+
+    }
+
+}
\ No newline at end of file
diff --git a/Box.h b/Box.h
new file mode 100644
index 0000000000000000000000000000000000000000..450d084c1b200103456bd7998049e5d99b0022e3
--- /dev/null
+++ b/Box.h
@@ -0,0 +1,20 @@
+#include "Vector.c"
+typedef struct box {
+    double x0, x1, y0, y1;
+} box;
+
+//Création d’une nouvelle box
+box new_box(double x0, double x1, double y0, double y1);
+
+//Division d’une box en quatre parties égales
+box *divide_in_four(box b);
+
+//Déterminer si une position est à l’intérieur de la box
+bool is_inside(box b, vec *v);
+
+//Déterminer la taille maximale d’un des côtés de la box
+double compute_length(box b);
+
+//Affiche la box
+void print_box(box b);
+
diff --git a/Box.o b/Box.o
new file mode 100644
index 0000000000000000000000000000000000000000..d0d6dd02196d093b5813914099b23515a7e1ea48
Binary files /dev/null and b/Box.o differ
diff --git a/Vector b/Vector
index 7bb7f35b4a87245360f4ca39e7dc53655bde6886..5baf464ab329f6ea248824298a294a82772035ee 100644
Binary files a/Vector and b/Vector differ
diff --git a/Vector.c b/Vector.c
index 1e12cafb9a01d9239504509c40a0303cc08bd7c6..e30a356da10e9b0f4d4b17303a0280fc2ba0cbd8 100644
--- a/Vector.c
+++ b/Vector.c
@@ -198,7 +198,7 @@ int Test_distance(){
 }
 
 //Fonction regroupant tout les tests
-int main_tests(){
+int vector_tests(){
 
     Test_new_vec();
     Test_add_vec();
@@ -209,19 +209,3 @@ int main_tests(){
 }
 
 
-//On peut choisir de faire les tests ou d'afficher un vecteur quelconque si on lance le programme
-int main(int argc, char *argv[]){
-    if(argc == 2) {
-        if (strcmp(argv[1], "test") == 0) {
-
-            main_tests();
-
-        }
-    }
-    else{
-        vec *v = new_vec(1.0,2.0);
-        print_vec(v);
-        free(v);
-    }
-
-}
diff --git a/Vector.o b/Vector.o
index d777c6f61e9eff81b7c792df869df487af011a34..93485b83284c520123b61091cdd80eeb88f51f49 100644
Binary files a/Vector.o and b/Vector.o differ
diff --git a/makefile b/makefile
index cbd7c6aefc019d53cf6f4fa7d357a7d697321c33..22b7ef8031608242ab6ceaf151bcdf8ec5f2fd08 100644
--- a/makefile
+++ b/makefile
@@ -1,6 +1,10 @@
-All: Vector
+All: Vector Box
 
 Vector: Vector.o
 	gcc -o Vector Vector.o -lm
 Vector.o: Vector.c
 	gcc -o Vector.o -c Vector.c
+Box: Box.o
+	gcc -o Box Box.o -lm
+Box.o: Box.c
+	gcc -o Box.o -c Box.c
\ No newline at end of file