Skip to content
Snippets Groups Projects
Commit 88fe5eb0 authored by “Khaoula's avatar “Khaoula
Browse files

Petri Net corrigé avec Tests complets avec tests 7.5

parent 30450022
No related branches found
No related tags found
No related merge requests found
......@@ -44,6 +44,10 @@ public abstract class Arc {
public Transition getTransition(){
return this.transition;
};
public void supprimerPlace(Place place) {
this.place = null;
}
}
......@@ -7,6 +7,12 @@ public interface PetriNetService {
public void ajouterTransition(Transition transition);
public void ajouterArc(Arc arc);
public void supprimerPlace(Place place);
public void supprimerTransition(Transition transition);
public void supprimerArc(Arc arc);
public void afficherEtat();
......@@ -18,4 +24,5 @@ public interface PetriNetService {
public void afficherReseau();
public void tirer_transition(String id);
}
......@@ -102,6 +102,36 @@ public class ReseauPetri implements PetriNetService {
this.arcs.add(arc);
}
/**
* Supprimer une place entraîne la suppression de tous les arcs qui y sont liés.
* Supprimer une transition entraîne la suppression de tous les arcs qui y sont liés.
*/
@Override
public void supprimerPlace(Place place) {
this.places.remove(place);
// remove all arcs linked to the place
this.arcs.removeIf(arc -> arc.getPlace().getId() == place.getId());
}
@Override
public void supprimerTransition(Transition transition) {
this.transitions.remove(transition);
// remove all arcs linked to the transition
this.arcs.removeIf(arc -> arc.getTransition().getId() == transition.getId());
}
@Override
public void supprimerArc(Arc arc) {
this.arcs.remove(arc);
// remove it from the list of arcs of the transition
if (arc instanceof Arc_ENTRANT) {
arc.getTransition().getArcs_ENTRANTS().remove(arc);
} else if (arc instanceof Arc_SORTANT) {
arc.getTransition().getArcs_SORTANTS().remove(arc);
}
}
@Override
public void tirer_transition(String id) {
......@@ -129,6 +159,7 @@ public class ReseauPetri implements PetriNetService {
}
@Override
public void afficherEtat() {
// TODO Auto-generated method stub
......
......@@ -8,24 +8,11 @@ import static org.junit.jupiter.api.Assertions.*;
public class ReseauPetriTest {
/**
* Les fonctions à tester suivantes n’affichent rien. Elles créent des objets et les retournent à la
* fonction de test. C’est la fonction de test qui affiche afin que les testeurs puissent observer les
* résultats
*/
private ReseauPetri reseauPetri;
private List<Place> places;
private List<Transition> transitions;
private LinkedList<Arc> arcs;
/**
* Créer un reseauPetri vide sans entrée. Résultat attendu : un RdP est créé vide
* Créer une transition. Résultat attendu : une transition est créée (sans lien)
* Créer une place avec nombres de jetons. Les cas : jetons ≥0, jetons < 0.
* Résultat attendu : une place est créée (sans lien), aucune place n’est créée ; Erreur
*/
@BeforeEach
public void setUp() {
reseauPetri = new ReseauPetri();
......@@ -434,4 +421,82 @@ public class ReseauPetriTest {
}
// Tests de supression
@Test
public void testSupprimerTransition() {
ReseauPetri Supp = new ReseauPetri();
Transition T1 = new Transition("T1", Supp.generateId(2));
Supp.ajouterTransition(T1);
Supp.supprimerTransition(T1);
Supp.afficherReseau();
}
@Test
public void testDestruction_Place(){
ReseauPetri Destruction = new ReseauPetri();
// créer un réseau de petri similaire à Active dans testActiverPetri_3
Place P1 = new Place(2, Destruction.generateId(1));
Destruction.ajouterPlace(P1);
Transition T1 = new Transition("T1", Destruction.generateId(2));
// Creer l'arc entrant simple à T1 de P1
Arc_ENTRANT arc = new Arc_entrant_simple(T1, P1, 1, Destruction.generateId(0));
Destruction.ajouterArc(arc);
T1.ajouterArc_ENTRANT(arc);
Destruction.ajouterTransition(T1);
// Supprimer la place P1
Destruction.supprimerPlace(P1);
Destruction.afficherReseau();
}
@Test
public void testDestruction_Transition() {
ReseauPetri Destruction = new ReseauPetri();
// créer un réseau de petri similaire à Active dans testActiverPetri_3
Place P1 = new Place(2, Destruction.generateId(1));
Destruction.ajouterPlace(P1);
Transition T1 = new Transition("T1", Destruction.generateId(2));
// Creer l'arc entrant simple à T1 de P1
Arc_ENTRANT arc = new Arc_entrant_simple(T1, P1, 1, Destruction.generateId(0));
Destruction.ajouterArc(arc);
T1.ajouterArc_ENTRANT(arc);
Destruction.ajouterTransition(T1);
// Supprimer la transition T1
Destruction.supprimerTransition(T1);
Destruction.afficherReseau();
}
@Test
public void testDestruction_Arc() {
ReseauPetri Destruction = new ReseauPetri();
// créer un réseau de petri similaire à Active dans testActiverPetri_3
Place P1 = new Place(2, Destruction.generateId(1));
Destruction.ajouterPlace(P1);
Transition T1 = new Transition("T1", Destruction.generateId(2));
// Creer l'arc entrant simple à T1 de P1
Arc_ENTRANT arc = new Arc_entrant_simple(T1, P1, 1, Destruction.generateId(0));
Destruction.ajouterArc(arc);
T1.ajouterArc_ENTRANT(arc);
Destruction.ajouterTransition(T1);
// Supprimer l'arc
Destruction.supprimerArc(arc);
Destruction.afficherReseau();
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment