From d0bde3c60fa911ac0bb0f71ce2a6a963c874392e Mon Sep 17 00:00:00 2001 From: Benjamin Chausse Date: Fri, 13 Jan 2023 14:52:41 -0500 Subject: Everything works before validation --- tests.cpp | 317 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 293 insertions(+), 24 deletions(-) (limited to 'tests.cpp') diff --git a/tests.cpp b/tests.cpp index 83bce1c..ffb37c7 100644 --- a/tests.cpp +++ b/tests.cpp @@ -9,42 +9,311 @@ #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" << endl; + c.activerCouche(0); + + cout << "Etape " << etape++ + << ": Ajouter les trois formes géométriques suivantes" << endl; + 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++ + << ": 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. +}; -- cgit v1.2.3 From 86fbed0811fc4ef36ffb66b3f774df61eb87c24b Mon Sep 17 00:00:00 2001 From: Benjamin Chausse Date: Fri, 13 Jan 2023 19:29:25 -0500 Subject: add translate to validation code --- tests.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'tests.cpp') diff --git a/tests.cpp b/tests.cpp index ffb37c7..12dff1d 100644 --- a/tests.cpp +++ b/tests.cpp @@ -255,11 +255,8 @@ void Tests::tests_application_cas_01() { cout << "\t* Aire du canevas: " << c.aire() << endl; cout << "Etape " << etape++ - << ": Activer la couche 0" << endl; + << ": Activer la couche 0 et ajouter les formes suivantes" << endl; c.activerCouche(0); - - cout << "Etape " << etape++ - << ": Ajouter les trois formes géométriques suivantes" << endl; 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; @@ -267,6 +264,16 @@ void Tests::tests_application_cas_01() { 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); -- cgit v1.2.3