diff --git a/Readme.md b/Readme.md
index 58d1c84f4b1e779c10469ef5f762ca458dcbd9e8..e7ae6893195527dfddc5e407005d53245266a53f 100644
--- a/Readme.md
+++ b/Readme.md
@@ -73,6 +73,8 @@ Below is a detailed description of the test cases:
 - **testAddPlace**: Verifies that places can be added only once to the Petri Net.
 - **testAddTransition**: Verifies that transitions can be added uniquely to the Petri Net.
 - **testAddArc**: Validates the addition of arcs, including handling of negative weights and duplicate arcs.
+- **testSetWeight**: Ensures that the weight of an arc can be updated.
+- **testSetTokenCount**: Validates that the token count of a place can be updated.
 
 ### Petri Net Assembly
 
@@ -112,3 +114,9 @@ Tests under this category simulate the firing of transitions and observe token d
 
 - **testIncomingArcVideur (SAV)** : Validates the behavior of the IncomingArc_Videur class by removing all tokens from a place when the connected transition fires.
 - **testIncomingArcZero (SAZ)** : Tests the IncomingArc_Zero class to ensure that the transition fires only when the connected place has zero tokens.
+
+### Test des méthode d'améloriation
+
+- **testActivatePetri_11 (RDGM1)** : Tests the methods setPlaces, setTransitions, setArcs to add a list of these components to the PetriNet all at once, and setOutgoingArcs, setIncomingArcs to
+    add Arcs to a transition all at once.
+- **testActivatePetri_12 (RDGM2)** : Tests the methods createPlaces, createTransitions, create(Incoming or Outgoing)Arcs to create a list of these components automatically and all at once.
diff --git a/src/main/java/org/petriNet/PetriNet.java b/src/main/java/org/petriNet/PetriNet.java
index c21f224c271a934fc5437dd143f842949d0df03b..dac7e9def556665831deeb2bc54c75a6c29f3571 100644
--- a/src/main/java/org/petriNet/PetriNet.java
+++ b/src/main/java/org/petriNet/PetriNet.java
@@ -175,6 +175,13 @@
 
 			for (int i = 0; i < numberOfArcs; i++) {
                 switch (types_of_arcs.get(i)) {
+					case "zero":
+						IncomingArc.add(new IncomingArc_Zero(transitions.get(i), places.get(i), weights.get(i), this.generateId(0)));
+					case "videur":
+						IncomingArc.add(new IncomingArc_Videur(transitions.get(i), places.get(i), weights.get(i), this.generateId(0)));
+					case "simple":
+						IncomingArc.add(new IncomingArc_Simple(transitions.get(i), places.get(i), weights.get(i), this.generateId(0)));
+						break;
                     case "Simple":
                         IncomingArc.add(new IncomingArc_Simple(transitions.get(i), places.get(i), weights.get(i), this.generateId(0)));
                         break;
diff --git a/src/test/java/org/petriNet/PetriNetTest.java b/src/test/java/org/petriNet/PetriNetTest.java
index 1adcf46b6732ab270f7e0b4ddfee565966b31cbe..11855b2ce09aa33fbec62e280282766cc0cd6bd7 100644
--- a/src/test/java/org/petriNet/PetriNetTest.java
+++ b/src/test/java/org/petriNet/PetriNetTest.java
@@ -96,67 +96,6 @@ public class PetriNetTest {
         assertEquals(0, place.getTokenCount());
     }
 
-    @Test
-    public void testSetPlaces() {
-        PetriNet petriNet = new PetriNet();
-
-        // Create a list of places
-        List<Place> places = new ArrayList<>();
-        Place place1 = new Place(2, petriNet.generateId(1));
-        Place place2 = new Place(3, petriNet.generateId(2));
-        places.add(place1);
-        places.add(place2);
-
-        // Set the places in the Petri net
-        petriNet.setPlaces(places);
-
-        // Assert that the places were correctly set
-        assertEquals(2, petriNet.getPlaces().size());
-        assertEquals(place1, petriNet.getPlaces().get(0));
-        assertEquals(place2, petriNet.getPlaces().get(1));
-    }
-
-    @Test
-    public void testSetTransitions() {
-        PetriNet petriNet = new PetriNet();
-
-        // Create a list of transitions
-        List<Transition> transitions = new ArrayList<>();
-        Transition transition1 = new Transition("T1", petriNet.generateId(1));
-        Transition transition2 = new Transition("T2", petriNet.generateId(2));
-        transitions.add(transition1);
-        transitions.add(transition2);
-
-        // Set the transitions in the Petri net
-        petriNet.setTransitions(transitions);
-
-        // Assert that the transitions were correctly set
-        assertEquals(2, petriNet.getTransitions().size());
-        assertEquals(transition1, petriNet.getTransitions().get(0));
-        assertEquals(transition2, petriNet.getTransitions().get(1));
-    }
-
-    @Test
-    public void testSetPlace() {
-        Transition transition = new Transition("T1", 1);
-        Place initialPlace = new Place(2, 2);
-        Place newPlace = new Place(3, 3);
-        int weight = 1;
-        int id = 4;
-
-        // Create an OutgoingArc
-        OutgoingArc arc = new OutgoingArc(transition, initialPlace, weight, id);
-
-        // Assert initial place
-        assertEquals(initialPlace, arc.getPlace());
-
-        // Set a new place
-        arc.setPlace(newPlace);
-
-        // Assert the place is updated
-        assertEquals(newPlace, arc.getPlace());
-    }
-
     @Test
     @DisplayName("Assemble Petri")
     public void testAssemblePetri(){
@@ -169,48 +108,48 @@ public class PetriNetTest {
         Place P1 = new Place(0, Mutex.generateId(1));
         Mutex.addPlace(P1);
         Mutex.addPlace(P1);
-        assertEquals(1, Mutex.getPlaces().size(), "CP1") ;
+        assertEquals(1, Mutex.getPlaces().size(), "Number of places"); ;
 
         // CT1
         Transition T1 = new Transition("T1", Mutex.generateId(2));
         Mutex.addTransition(T1);
         Mutex.addTransition(T1);
-        assertEquals(1, Mutex.getTransitions().size(), "CT1");
+        assertEquals(1, Mutex.getTransitions().size(), "Number of transitions");
 
         // CP2
         Place P2 = new Place(1, Mutex.generateId(1));
         Mutex.addPlace(P2);
-        assertEquals(2, Mutex.getPlaces().size(), "CP2");
+        assertEquals(2, Mutex.getPlaces().size(), "Number of places");
 
         // CT2
         Transition T2 = new Transition("T2", Mutex.generateId(2));
         Mutex.addTransition(T2);
-        assertEquals(2, Mutex.getTransitions().size(), "CT2");
+        assertEquals(2, Mutex.getTransitions().size(), "Number of transitions");
 
         // CP5
         Place P3 = new Place(0, Mutex.generateId(1));
         Mutex.addPlace(P3);
-        assertEquals(3, Mutex.getPlaces().size(), "CP5");
+        assertEquals(3, Mutex.getPlaces().size(), "Number of places");
 
         // CT3
         Transition T3 = new Transition("T3", Mutex.generateId(2));
         Mutex.addTransition(T3);
-        assertEquals(3, Mutex.getTransitions().size(), "CT3");
+        assertEquals(3, Mutex.getTransitions().size(), "Number of transitions");
 
         // CP4
         Place P4 = new Place(0, Mutex.generateId(1));
         Mutex.addPlace(P4);
-        assertEquals(4, Mutex.getPlaces().size(), "CP4");
+        assertEquals(4, Mutex.getPlaces().size(), "Number of places");
 
         // CT4
         Transition T4 = new Transition("T4", Mutex.generateId(2));
         Mutex.addTransition(T4);
-        assertEquals(4, Mutex.getTransitions().size(), "CT4");
+        assertEquals(4, Mutex.getTransitions().size(), "Number of transitions");
 
         // CP5
         Place P5 = new Place(1, Mutex.generateId(1));
         Mutex.addPlace(P5);
-        assertEquals(5, Mutex.getPlaces().size(), "CP5");
+        assertEquals(5, Mutex.getPlaces().size(), "Number of places");
 
         // CPT1
         // Create the simple incoming arc to T1 from P1
@@ -218,88 +157,88 @@ public class PetriNetTest {
         Mutex.addArc(arc);
         T1.addIncomingArc((IncomingArc) arc);
         T1.addIncomingArc((IncomingArc) arc);
-        assertEquals(1, T1.getIncomingArcs().size(), "CPT1");
+        assertEquals(1, T1.getIncomingArcs().size(), "Number of incoming arcs in T1");
 
         // CTP2
         // Create the simple outgoing arc from T2 to P1
         arc = new OutgoingArc(T2, P1, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T2.addOutgoingArc((OutgoingArc) arc);
-        assertEquals(1, T2.getOutgoingArcs().size(), "CTP2");
+        assertEquals(1, T2.getOutgoingArcs().size(), "Number of outgoing arcs in T2");
 
         // CTP1
         // Create the simple outgoing arc from T1 to P2
         arc = new OutgoingArc(T1, P2, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T1.addOutgoingArc((OutgoingArc) arc);
-        assertEquals(1, T1.getOutgoingArcs().size(), "CTP1");
+        assertEquals(1, T1.getOutgoingArcs().size(), "Number of outgoing arcsin T1");
 
         // CPT2
         // Create the simple incoming arc to T2 from P2
         arc = new IncomingArc_Simple(T2, P2, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T2.addIncomingArc((IncomingArc) arc);
-        assertEquals(1, T2.getIncomingArcs().size(), "CPT2");
+        assertEquals(1, T2.getIncomingArcs().size(), "Number of incoming arcs in T2");
 
         // CPT5
         // Create the simple incoming arc to T1 from P3
         arc = new IncomingArc_Simple(T1, P3, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T1.addIncomingArc((IncomingArc) arc);
-        assertEquals(2, T1.getIncomingArcs().size(), "CPT5");
+        assertEquals(2, T1.getIncomingArcs().size(), "Number of incoming arcs in T1");
 
         // CTP5
         // Create the simple outgoing arc from T2 to P3
         arc = new OutgoingArc(T2, P3, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T2.addOutgoingArc((OutgoingArc) arc);
-        assertEquals(2, T2.getOutgoingArcs().size(), "CTP5");
+        assertEquals(2, T2.getOutgoingArcs().size(), "Number of outgoing arcs in T2");
 
         // CPT6
         // Create the simple incoming arc to T3 from P3
         arc = new IncomingArc_Simple(T3, P3, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T3.addIncomingArc((IncomingArc) arc);
-        assertEquals(1, T3.getIncomingArcs().size(), "CPT6");
+        assertEquals(1, T3.getIncomingArcs().size(), "Number of incoming arcs in T3");
 
         // CTP6
         // Create the simple outgoing arc from T4 to P3
         arc = new OutgoingArc(T4, P3, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T4.addOutgoingArc((OutgoingArc) arc);
-        assertEquals(1, T4.getOutgoingArcs().size(), "CTP6");
+        assertEquals(1, T4.getOutgoingArcs().size(), "Number of outgoing arcs in T4");
 
         // CTP3
         // Create the simple outgoing arc from T3 to P4
         arc = new OutgoingArc(T3, P4, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T3.addOutgoingArc((OutgoingArc) arc);
-        assertEquals(1, T3.getOutgoingArcs().size(), "CTP3");
+        assertEquals(1, T3.getOutgoingArcs().size(), "Number of outgoing arcs in T3");
 
         // CPT4
         // Create the simple incoming arc to T4 from P4
         arc = new IncomingArc_Simple(T4, P4, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T4.addIncomingArc((IncomingArc) arc);
-        assertEquals(1, T4.getIncomingArcs().size(), "CPT4");
+        assertEquals(1, T4.getIncomingArcs().size(), "Number of incoming arcs in T4");
 
         // CPT3
         // Create the simple incoming arc to T3 from P5
         arc = new IncomingArc_Simple(T3, P5, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T3.addIncomingArc((IncomingArc) arc);
-        assertEquals(2, T3.getIncomingArcs().size(), "CPT3");
+        assertEquals(2, T3.getIncomingArcs().size(), "Number of incoming arcs in T3");
 
         // CTP4
         // Create the simple outgoing arc from T4 to P5
         arc = new OutgoingArc(T4, P5, 1, Mutex.generateId(0));
         Mutex.addArc(arc);
         T4.addOutgoingArc((OutgoingArc) arc);
-        assertEquals(2, T4.getOutgoingArcs().size(), "CTP4");
+        assertEquals(2, T4.getOutgoingArcs().size(), "Number of outgoing arcs in T4");
 
-        assertEquals(12, Mutex.getArcs().size(), "There should be 12 unique arcs in Mutex");
-        assertEquals(5, Mutex.getPlaces().size(), "There should be 5 unique places in Mutex");
-        assertEquals(4, Mutex.getTransitions().size(), "There should be 4 unique transitions in Mutex");
+        assertEquals(12, Mutex.getArcs().size(), "Total number of arcs");
+        assertEquals(5, Mutex.getPlaces().size(), "Total number of places");
+        assertEquals(4, Mutex.getTransitions().size(), "Total number of transitions");
 
         Mutex.displayNetwork();
 
@@ -318,7 +257,7 @@ public class PetriNetTest {
         Active.fireTransition(String.valueOf(T1.getId()));
         Active.displayNetwork();
 
-        assertEquals(1, Active.getTransitions().size(), "RI");
+        assertEquals(1, Active.getTransitions().size(), "Number of transitions");
     }
 
     @Test
@@ -343,7 +282,7 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(0, p1.getTokenCount(), "RD0");
+        assertEquals(0, p1.getTokenCount(), "Tokens in P1");
     }
 
     @Test
@@ -368,7 +307,7 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(1, p1.getTokenCount(), "RD1");
+        assertEquals(1, p1.getTokenCount(), "Tokens in P1");
     }
 
     @Test
@@ -393,7 +332,7 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(2, p1.getTokenCount(), "RD2");
+        assertEquals(2, p1.getTokenCount(), "Tokens in P1");
     }
 
     @Test
@@ -418,7 +357,7 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(2, p1.getTokenCount(), "RG0");
+            assertEquals(2, p1.getTokenCount(), "Tokens in P1");
     }
 
     @Test
@@ -448,8 +387,8 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(0, p1.getTokenCount(), "RM0");
-        assertEquals(2, p2.getTokenCount(), "RM0");
+        assertEquals(0, p1.getTokenCount(), "Tokens in P1");
+        assertEquals(2, p2.getTokenCount(), "Tokens in P2");
     }
 
     @Test
@@ -479,8 +418,8 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(2, p1.getTokenCount(), "RM1");
-        assertEquals(1, p2.getTokenCount(), "RM1");
+        assertEquals(2, p1.getTokenCount(), "Tokens in P1");
+        assertEquals(1, p2.getTokenCount(), "Tokens in P2");
     }
 
     @Test
@@ -511,8 +450,8 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(1, p1.getTokenCount(), "RGM");
-        assertEquals(0, p2.getTokenCount(), "RGM");
+        assertEquals(1, p1.getTokenCount(), "Tokens in P1");
+        assertEquals(0, p2.getTokenCount(), "Tokens in P2");
     }
 
     @Test
@@ -543,8 +482,8 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(1, p1.getTokenCount(), "RDM");
-        assertEquals(2, p2.getTokenCount(), "RDM");
+        assertEquals(1, p1.getTokenCount(), "Tokens in P1");
+        assertEquals(2, p2.getTokenCount(), "Tokens in P2");
     }
 
     @Test
@@ -587,10 +526,10 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(0, p1.getTokenCount(), "RDGM");
-        assertEquals(0, p2.getTokenCount(), "RDGM");
-        assertEquals(1, p3.getTokenCount(), "RDGM");
-        assertEquals(1, p4.getTokenCount(), "RDGM");
+        assertEquals(0, p1.getTokenCount(), "Tokens in P1");
+        assertEquals(0, p2.getTokenCount(), "Tokens in P2");
+        assertEquals(1, p3.getTokenCount(), "Tokens in P3");
+        assertEquals(1, p4.getTokenCount(), "Tokens in P4");
     }
 
     @Test
@@ -648,13 +587,13 @@ public class PetriNetTest {
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(4, active.getTransitions().size(), "RDGM");
-        assertEquals(4, active.getPlaces().size(), "RDGM");
-        assertEquals(4, active.getArcs().size(), "RDGM");
-        assertEquals(0, p1.getTokenCount(), "RDGM");
-        assertEquals(0, p2.getTokenCount(), "RDGM");
-        assertEquals(1, p3.getTokenCount(), "RDGM");
-        assertEquals(1, p4.getTokenCount(), "RDGM");
+        assertEquals(4, active.getTransitions().size(), "Number of transitions");
+        assertEquals(4, active.getPlaces().size(), "Number of places");
+        assertEquals(4, active.getArcs().size(), "Number of arcs");
+        assertEquals(0, p1.getTokenCount(), "Tokens in P1");
+        assertEquals(0, p2.getTokenCount(), "Tokens in P2");
+        assertEquals(1, p3.getTokenCount(), "Tokens in P3");
+        assertEquals(1, p4.getTokenCount(), "Tokens in P4");
     }
 
     @Test
@@ -699,19 +638,24 @@ public class PetriNetTest {
         t1.setIncomingArcs(incomingArcsList);
         t1.setOutgoingArcs(outgoingArcsList);
 
-        active.addTransition(t1);
+        // Create other transitions to test PetriNet.setTransitions
+        LinkedList<Transition> transitions;
+        transitions = active.createTransitions(3);
+        transitions.add(t1);
+
+        active.setTransitions(transitions);
 
         // Fire T1
         active.fireTransition(String.valueOf(t1.getId()));
         active.displayNetwork();
 
-        assertEquals(1, active.getTransitions().size(), "RDGM : number of transitions");
-        assertEquals(4, active.getPlaces().size(), "RDGM : number of places");
-        assertEquals(4, active.getArcs().size(), "RDGM : number of arcs");
-        assertEquals(0, places.get(0).getTokenCount(), "RDGM : P1");
-        assertEquals(0, places.get(1).getTokenCount(), "RDGM : P2");
-        assertEquals(1, places.get(2).getTokenCount(), "RDGM : P3");
-        assertEquals(1, places.get(3).getTokenCount(), "RDGM : P4");
+        assertEquals(4, active.getTransitions().size(), "Number of transitions");
+        assertEquals(4, active.getPlaces().size(), "Number of places");
+        assertEquals(4, active.getArcs().size(), "Number of arcs");
+        assertEquals(0, places.get(0).getTokenCount(), "Tokens in P1");
+        assertEquals(0, places.get(1).getTokenCount(), "Tokens in P2");
+        assertEquals(1, places.get(2).getTokenCount(), "Tokens in P3");
+        assertEquals(1, places.get(3).getTokenCount(), "Tokens in P4");
     }
 
     @Test
@@ -724,7 +668,7 @@ public class PetriNetTest {
         supp.removeTransition(t1);
         supp.displayNetwork();
 
-        assertEquals(0, supp.getTransitions().size(), "ST0");
+        assertEquals(0, supp.getTransitions().size(), "number of transitions");
     }
 
     @Test
@@ -749,9 +693,9 @@ public class PetriNetTest {
         destruction.removePlace(p1);
         destruction.displayNetwork();
 
-        assertEquals(0, destruction.getPlaces().size(), "SP1");
-        assertEquals(1, destruction.getTransitions().size(), "SP1");
-        assertEquals(0, destruction.getArcs().size(), "SP1");
+        assertEquals(0, destruction.getPlaces().size(), "Number of places");
+        assertEquals(1, destruction.getTransitions().size(), "Number of transitions");
+        assertEquals(0, destruction.getArcs().size(), "Number of arcs");
     }
 
     @Test
@@ -776,9 +720,9 @@ public class PetriNetTest {
         destruction.removeTransition(t1);
         destruction.displayNetwork();
 
-        assertEquals(1, destruction.getPlaces().size(), "ST1");
-        assertEquals(0, destruction.getTransitions().size(), "ST1");
-        assertEquals(0, destruction.getArcs().size(), "ST1");
+        assertEquals(1, destruction.getPlaces().size(), "Number of places");
+        assertEquals(0, destruction.getTransitions().size(), "Number of transitions");
+        assertEquals(0, destruction.getArcs().size(), "Number of arcs");
     }
 
     @Test
@@ -803,9 +747,9 @@ public class PetriNetTest {
         destruction.removeArc(arc);
         destruction.displayNetwork();
 
-        assertEquals(1, destruction.getPlaces().size(), "SA1");
-        assertEquals(1, destruction.getTransitions().size(), "SA1");
-        assertEquals(0, destruction.getArcs().size(), "SA1");
+        assertEquals(1, destruction.getPlaces().size(), "Number of places");
+        assertEquals(1, destruction.getTransitions().size(), "Number of transitions");
+        assertEquals(0, destruction.getArcs().size(), "Number of arcs");
     }
 
     @Test
@@ -852,8 +796,8 @@ public class PetriNetTest {
         petriNetwork.displayNetwork();
 
         // Assertions to verify the correct state of the Petri network
-        assertEquals(4, place1.getTokenCount(), "Tokens in Place 1 should be 4");
-        assertEquals(0, place2.getTokenCount(), "Tokens in Place 2 should be 0");
+        assertEquals(4, place1.getTokenCount(), "Tokens in Place 1");
+        assertEquals(0, place2.getTokenCount(), "Tokens in Place 2");
     }
 
     @Test
@@ -900,8 +844,8 @@ public class PetriNetTest {
         petriNetwork.displayNetwork();
 
         // Assertions to verify the correct state of the Petri network
-        assertEquals(3, place1.getTokenCount(), "Tokens in Place 1 should be 3");
-        assertEquals(0, place2.getTokenCount(), "Tokens in Place 2 should be 0");
+        assertEquals(3, place1.getTokenCount(), "Tokens in Place 1");
+        assertEquals(0, place2.getTokenCount(), "Tokens in Place 2");
     }
 
 }