summaryrefslogtreecommitdiff
path: root/tests.cpp
diff options
context:
space:
mode:
authorBenjamin Chausse <benjamin@chausse.xyz>2023-01-13 19:37:56 -0500
committerBenjamin Chausse <benjamin@chausse.xyz>2023-01-13 19:37:56 -0500
commit6a20ac2049d7e9fbf827838259911bf0899f46d9 (patch)
tree4b96dfc05bbd03da1d80bd2369b339dac5041c10 /tests.cpp
parentbd3b390064aa8dee26845dc6fcc1b5d79773a167 (diff)
parent86fbed0811fc4ef36ffb66b3f774df61eb87c24b (diff)
Fix gitignore merge
Diffstat (limited to 'tests.cpp')
-rw-r--r--tests.cpp324
1 files changed, 300 insertions, 24 deletions
diff --git a/tests.cpp b/tests.cpp
index 83bce1c..12dff1d 100644
--- a/tests.cpp
+++ b/tests.cpp
@@ -9,42 +9,318 @@
#include "tests.h"
+// Tests sur les formes geometriques
void Tests::tests_unitaires_formes() {
- // Tests sur les formes geometriques
-}
+ cout << "----- Tests des formes geometriques -----\n";
+ cout << "\n--- Tests sur le rectangle ---\n";
+
+ cout << "Initialisation rectangle 3x4 en (1,2): \n\t";
+ Rectangle r1(1, 2, 3, 4);
+ r1.afficher(cout);
+
+ cout << "Translation de (-1,2) pour arriver à (0,4): \n\t";
+ r1.translater(-1, 2);
+ r1.afficher(cout);
+
+ cout << "Initialisation rectangle par defaut (1x1 en (0,0)): \n\t";
+ Rectangle r2;
+ r2.afficher(cout);
+ cout << "\n";
+
+ cout << "\n--- Tests sur le carre ---\n";
+
+ cout << "Initialisation carre de cote=12 en (-2,-2): \n\t";
+ Carre cr1(-2, -2, 12);
+ cr1.afficher(cout);
+
+ cout << "Initialisation carre par defaut (1x1 en (0,0)): \n\t";
+ Carre cr2;
+ cr2.afficher(cout);
+ cout << "\n";
+
+
+ cout << "\n--- Tests sur le cercle ---\n";
+ cout << "Initialisation cercle de rayon 5 en (0,0): \n\t";
+ Cercle cc1(0, 0, 5);
+ cc1.afficher(cout);
+
+ cout << "Initialisation cercle par defaut (rayon=1 en (0,0)): \n\t";
+ Cercle cc2;
+ cc2.afficher(cout);
+ cout << "\n";
+};
+
+// Tests sur la classe Vecteur
void Tests::tests_unitaires_vecteur() {
- // Tests sur la classe Vecteur
-}
+ cout << "----- Tests de la classe Vecteur -----\n\n";
+
+ cout << "--- Initialisation d\'un vecteur vide ---";
+ Vecteur v1;
+ cout << "\nVide: " << ((v1.estVide())? "Oui" : "Non")
+ << "\nTaille: " << v1.getTaille()
+ << "\nCapacite: " << v1.getCapacite()
+ << "\nAffichage: {\n";
+ v1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Ajout d'une forme (sans redimensionnement) ---";
+ v1.ajouterForme(new Rectangle() ); // a=1
+ cout << "\nVide: " << ((v1.estVide())? "Oui" : "Non")
+ << "\nTaille: " << v1.getTaille()
+ << "\nCapacite: " << v1.getCapacite()
+ << "\nAffichage: {\n";
+ v1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Ajout des autres formes (redimensionnement necessaire) ---";
+ v1.ajouterForme( new Rectangle(1, 2, 8, 3) );
+ v1.ajouterForme( new Carre(5, 6, 5) );
+ v1.ajouterForme( new Cercle(0, 0, 1) );
+ v1.ajouterForme( new Rectangle(-1,-1,95,10) );
+ cout << "\nTaille: " << v1.getTaille()
+ << "\nCapacite: " << v1.getCapacite()
+ << "\nAffichage: {\n";
+ v1.afficher(cout);
+ cout << "}\n\n";
+ cout << "--- Suppression de la forme 4 (sans deplacement) ---";
+ Forme* f1 = v1.supprimerForme(4);
+ cout << "\nForme supprimee: ";
+ f1->afficher(cout);
+ cout << "Taille: " << v1.getTaille()
+ << "\nCapacite: " << v1.getCapacite()
+ << "\nAffichage: {\n";
+ v1.afficher(cout);
+ cout << "}\n";
+
+ cout << "--- Suppression de la forme 1 (avec deplacement) ---";
+ cout << "\nForme supprimee: ";
+ delete f1;
+ f1 = v1.supprimerForme(1);
+ f1->afficher(cout);
+ cout << "Taille: " << v1.getTaille()
+ << "\nCapacite: " << v1.getCapacite()
+ << "\nAffichage: {\n";
+ v1.afficher(cout);
+ cout << "}\n";
+ delete f1;
+
+ cout << "--- Reinitialisation du vecteur ---";
+ v1.vider();
+ cout << "\nVide: " << ((v1.estVide())? "Oui" : "Non")
+ << "\nTaille: " << v1.getTaille()
+ << "\nCapacite: " << v1.getCapacite()
+ << "\nAffichage: {\n";
+ v1.afficher(cout);
+ cout << "}\n";
+};
+
+// Tests sur la classe Couche
void Tests::tests_unitaires_couche() {
- // Tests sur la classe Couche
-}
+ cout << "----- Tests de la classe Couche -----\n";
+
+ cout << "\n--- Initialisation d'une couche ---";
+ Couche c1;
+ cout << "\nEtat: " << c1.getEtat()
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Ajout d'une forme dans une couche initialisée ---";
+ cout << "\nReussite: " << ( (c1.ajouterForme(new Carre()))? "Oui":"Non")
+ << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+
+ cout << "--- Changement de l\'etat de la couche (inactif) ---";
+ cout << "\nReussite: " << (c1.changerEtat(STATE_INACTIVE)?"Oui":"Non")
+ << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Ajout d'une forme dans une couche active ---";
+ c1.changerEtat(STATE_ACTIVE);
+ cout << "\nReussite: " << (c1.ajouterForme(new Carre())? "Oui":"Non")
+ << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Changement pour un etat invalide (ex: 3) ---";
+ cout << "\nReussite: " << (c1.changerEtat(STATE_INACTIVE+1)?"Oui":"Non")
+ << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Suppression d'une forme dans une couche inactive ---";
+ c1.changerEtat(STATE_INACTIVE);
+ cout << "\nReussite: " << ((c1.supprimerForme(0) != NULL)? "Oui":"Non")
+ << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Translation d'une couche inactive (1,2) ---";
+ cout << "\nReussite: " << (c1.translater(1, 2)?"Oui":"Non")
+ << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Translation d'une couche active (1,2) ---";
+ c1.changerEtat(STATE_ACTIVE);
+ cout << "\nReussite: " << (c1.translater(1, 2)?"Oui":"Non")
+ << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+ cout << "--- Suppression d'une forme dans une couche active ---";
+ cout << "\nReussite: " << ((c1.supprimerForme(0) != NULL)? "Oui":"Non")
+ << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+ cout << "--- Reinitialisation de la couche ---";
+ c1.reinitialiser();
+ cout << "\nEtat: " << STATES[c1.getEtat()]
+ << "\nAffichage: {\n";
+ c1.afficher(cout);
+ cout << "}\n\n";
+
+
+
+};
+
+// Tests sur la classe Canevas
void Tests::tests_unitaires_canevas() {
- // Tests sur la classe Canevas
-}
+};
void Tests::tests_unitaires() {
- // Fait tous les tests unitaires
- tests_unitaires_formes();
- tests_unitaires_vecteur();
- tests_unitaires_couche();
- tests_unitaires_canevas();
-}
+ // Fait tous les tests unitaires
+ tests_unitaires_formes();
+ tests_unitaires_vecteur();
+ tests_unitaires_couche();
+ tests_unitaires_canevas();
+};
void Tests::tests_application() {
- // Fait tous les tests applicatifs
- tests_application_cas_01();
- tests_application_cas_02();
-}
+ // Fait tous les tests applicatifs
+ tests_application_cas_01();
+ tests_application_cas_02();
+};
void Tests::tests_application_cas_01() {
- cout << "TESTS APPLICATION (CAS 01)" << endl;
- // Il faut ajouter les operations realisant ce scenario de test.
-}
+ // Mise en place
+ int etape = 1;
+ Canevas c;
+
+ cout << "TESTS APPLICATION (CAS 01)" << endl;
+ // Il faut ajouter les operations realisant ce scenario de test.
+ //
+ cout << "Etape " << etape++
+ << ": Activation de la couche 1" << endl;
+ c.activerCouche(1);
+
+ cout << "Etape " << etape++
+ << ": Ajout des trois formes géométriques suivantes" << endl;
+ cout << "\t* Un rectangle (x=0, y=0, largeur=2, hauteur=3)" << endl;
+ c.ajouterForme(new Rectangle(0,0,2,3));
+ cout << "\t* Un carré (x=2, y=3, cote=4)" << endl;
+ c.ajouterForme(new Carre(2,3,4));
+ cout << "\t* Un cercle (x=7, y=8, rayon=6)" << endl;
+ c.ajouterForme(new Cercle(7,8,6));
+
+ cout << "Etape " << etape++
+ << ": Activer la couche 2" << endl;
+ c.activerCouche(2);
+
+ cout << "Etape " << etape++
+ << ": Ajouter la forme géométrique suivante" << endl;
+ cout << "\t* Un rectangle (x=0, y=0, largeur=4, hauteur=5)" << endl;
+ c.ajouterForme(new Rectangle(0,0,4,5));
+
+ cout << "Etape " << etape++
+ << ": Afficher le canevas" << endl;
+ c.afficher(cout);
+
+ cout << "Etape " << etape++
+ << ": Afficher l'aire du canevas" << endl;
+ cout << "\t* Aire du canevas: " << c.aire() << endl;
+
+ cout << "Etape " << etape++
+ << ": Activer la couche 0 et ajouter les formes suivantes" << endl;
+ c.activerCouche(0);
+ cout << "\t* Un rectangle (x=0, y=0, largeur=1, hauteur=1)" << endl;
+ c.ajouterForme(new Rectangle());
+ cout << "\t* Un carré (x=0, y=0, cote=1)" << endl;
+ c.ajouterForme(new Carre());
+ cout << "\t* Un cercle (x=0, y=0, rayon=1)" << endl;
+ c.ajouterForme(new Cercle());
+
+ cout << "Etape " << etape++
+ << ": Translater les formes de la couche selon x=5, y=5 pour obtenir les formes suivantes lorsque affiché" << endl;
+ c.translater(5, 5);
+ cout << "\t* Un rectangle (x=5, y=5, largeur=1, hauteur=1)" << endl;
+ cout << "\t* Un carré (x=5, y=5, cote=1)" << endl;
+ cout << "\t* Un cercle (x=5, y=5, rayon=1)" << endl;
+ c.afficher(cout);
+
+
+
+ cout << "Etape " << etape++
+ << ": Couche 2 - initialisée" << endl;
+ c.reinitialiserCouche(2);
+
+ cout << "Etape " << etape++
+ << ": Couche 3 - initialisée" << endl;
+ c.reinitialiserCouche(3);
+
+ cout << "Etape " << etape++
+ << ": Couche 4 - initialisée" << endl;
+ c.reinitialiserCouche(4);
+
+ cout << "Etape " << etape++
+ << ": Afficher le canevas" << endl;
+ c.afficher(cout);
+
+ cout << "Etape " << etape++
+ << ": Afficher l'aire du canevas" << endl;
+
+ cout << "Etape " << etape++
+ << ": Retirer la première forme de la couche 1" << endl;
+ c.activerCouche(1);
+ c.retirerForme(0);
+
+ cout << "Etape " << etape++
+ << ": Afficher le canevas" << endl;
+ c.afficher(cout);
+
+ cout << "Etape " << etape++
+ << ": Afficher l'aire du canevas" << endl;
+ cout << "\t* Aire du canevas: " << c.aire() << endl;
+
+ cout << "Etape " << etape++
+ << ": Réinitialiser le canevas" << endl;
+ c.reinitialiser();
+
+ cout << "Etape " << etape++
+ << ": Afficher le canevas" << endl;
+ c.afficher(cout);
+
+ cout << "Etape " << etape++
+ << ": Afficher l'aire du canevas" << endl;
+ cout << "\t* Aire du canevas: " << c.aire() << endl;
+
+};
void Tests::tests_application_cas_02() {
- cout << "TESTS APPLICATION (CAS 02)" << endl;
- // Il faut ajouter les operations realisant ce scenario de test.
-}
+ cout << "TESTS APPLICATION (CAS 02)" << endl;
+ // Il faut ajouter les operations realisant ce scenario de test.
+};