diff options
-rw-r--r-- | cas-dapplication-01.txt | 95 | ||||
-rw-r--r-- | cas-dapplication-02.txt | 95 | ||||
-rw-r--r-- | couche.cpp | 1 | ||||
-rw-r--r-- | graphicus-02.cpp | 2 | ||||
-rw-r--r-- | rapport/main.pdf | bin | 577604 -> 577902 bytes | |||
-rw-r--r-- | rapport/main.tex | 8 | ||||
-rw-r--r-- | tests.cpp | 78 |
7 files changed, 272 insertions, 7 deletions
diff --git a/cas-dapplication-01.txt b/cas-dapplication-01.txt new file mode 100644 index 0000000..35821ca --- /dev/null +++ b/cas-dapplication-01.txt @@ -0,0 +1,95 @@ +TESTS APPLICATION (CAS 01) +Etape 1: Activation de la couche 1 +Etape 2: Ajout des trois formes géométriques suivantes + * Un rectangle (x=0, y=0, largeur=2, hauteur=3) + * Un carré (x=2, y=3, cote=4) + * Un cercle (x=7, y=8, rayon=6) +Etape 3: Activer la couche 2 +Etape 4: Ajouter la forme géométrique suivante + * Un rectangle (x=0, y=0, largeur=4, hauteur=5) +Etape 5: Afficher le canevas +----- Couche 0 +----- Couche 1 +Rectangle:(x=0, y=0, l=2, h=3, aire=6) +Carre(x=2, y=3, c=4, a=16) +Cercle (x=7, y=8, r=6, aire=113.097) +----- Couche 2 +Rectangle:(x=0, y=0, l=4, h=5, aire=20) +----- Couche 3 +Couche initialisée +----- Couche 4 +Couche initialisée +Etape 6: Afficher l'aire du canevas + * Aire du canevas: 155.097 +Etape 7: Activer la couche 0 et ajouter les formes suivantes + * Un rectangle (x=0, y=0, largeur=1, hauteur=1) + * Un carré (x=0, y=0, cote=1) + * Un cercle (x=0, y=0, rayon=1) +Etape 8: Translater les formes de la couche selon x=5, y=5 pour obtenir les formes suivantes lorsque affiché + * Un rectangle (x=5, y=5, largeur=1, hauteur=1) + * Un carré (x=5, y=5, cote=1) + * Un cercle (x=5, y=5, rayon=1) +----- Couche 0 +Rectangle:(x=5, y=5, l=1, h=1, aire=1) +Carre(x=5, y=5, c=1, a=1) +Cercle (x=5, y=5, r=1, aire=3.14159) +----- Couche 1 +Rectangle:(x=0, y=0, l=2, h=3, aire=6) +Carre(x=2, y=3, c=4, a=16) +Cercle (x=7, y=8, r=6, aire=113.097) +----- Couche 2 +Rectangle:(x=0, y=0, l=4, h=5, aire=20) +----- Couche 3 +Couche initialisée +----- Couche 4 +Couche initialisée +Etape 9: Couche 2 - initialisée +Etape 10: Couche 3 - initialisée +Etape 11: Couche 4 - initialisée +Etape 12: Afficher le canevas +----- Couche 0 +Rectangle:(x=5, y=5, l=1, h=1, aire=1) +Carre(x=5, y=5, c=1, a=1) +Cercle (x=5, y=5, r=1, aire=3.14159) +----- Couche 1 +Rectangle:(x=0, y=0, l=2, h=3, aire=6) +Carre(x=2, y=3, c=4, a=16) +Cercle (x=7, y=8, r=6, aire=113.097) +----- Couche 2 +Couche initialisée +----- Couche 3 +Couche initialisée +----- Couche 4 +Couche initialisée +Etape 13: Afficher l'aire du canevas +Etape 14: Retirer la première forme de la couche 1 +Etape 15: Afficher le canevas +----- Couche 0 +Rectangle:(x=5, y=5, l=1, h=1, aire=1) +Carre(x=5, y=5, c=1, a=1) +Cercle (x=5, y=5, r=1, aire=3.14159) +----- Couche 1 +Carre(x=2, y=3, c=4, a=16) +Cercle (x=7, y=8, r=6, aire=113.097) +----- Couche 2 +Couche initialisée +----- Couche 3 +Couche initialisée +----- Couche 4 +Couche initialisée +Etape 16: Afficher l'aire du canevas + * Aire du canevas: 134.239 +Etape 17: Réinitialiser le canevas +Etape 18: Afficher le canevas +----- Couche 0 +Couche initialisée +----- Couche 1 +Couche initialisée +----- Couche 2 +Couche initialisée +----- Couche 3 +Couche initialisée +----- Couche 4 +Couche initialisée +Etape 19: Afficher l'aire du canevas + * Aire du canevas: 0 diff --git a/cas-dapplication-02.txt b/cas-dapplication-02.txt new file mode 100644 index 0000000..3bee6df --- /dev/null +++ b/cas-dapplication-02.txt @@ -0,0 +1,95 @@ +TESTS APPLICATION (CAS 02) +Étape 1: Activer la couche d'index 4 +Étape 2: Ajouter les formes suivantes au canevas: + - Un cercle (x= 1, y= 2, rayon=1/sqrt(pi) ) + - Un rectangle (x= 3, y= 4, largeur=3, hauteur=4) + - Un carré (x=-1, y=-1, cote=2) +Étape 3: Afficher le canevas +----- Couche 0 +----- Couche 1 +Couche initialisée +----- Couche 2 +Couche initialisée +----- Couche 3 +Couche initialisée +----- Couche 4 +Cercle (x=1, y=2, r=0, aire=0) +Rectangle:(x=3, y=4, l=3, h=4, aire=12) +Carre(x=-1, y=-1, c=2, a=4) +Étape 4: Imprimer l'aire du canevas (doit etre egale a 1+12+4 soit 17) + * Aire du canevas: 16 +Étape 5: Activer la couche d'index 3 +Étape 6: Ajouter les formes par défaut au canevas. Soit: + - Un cercle (x=0, y=0, rayon=1) + - Un rectangle (x=0, y=0, largeur=1, hauteur=1) + - Un carre (x=0, y=0, cote=1) +Étape 7: Afficher le canevas +----- Couche 0 +----- Couche 1 +Couche initialisée +----- Couche 2 +Couche initialisée +----- Couche 3 +Cercle (x=0, y=0, r=1, aire=3.14159) +Rectangle:(x=0, y=0, l=1, h=1, aire=1) +Carre(x=0, y=0, c=1, a=1) +----- Couche 4 +Cercle (x=1, y=2, r=0, aire=0) +Rectangle:(x=3, y=4, l=3, h=4, aire=12) +Carre(x=-1, y=-1, c=2, a=4) +Étape 8: Translater la couche active de (1,1) +Étape 9: Afficher le canevas +----- Couche 0 +----- Couche 1 +Couche initialisée +----- Couche 2 +Couche initialisée +----- Couche 3 +Cercle (x=1, y=1, r=1, aire=3.14159) +Rectangle:(x=1, y=1, l=1, h=1, aire=1) +Carre(x=1, y=1, c=1, a=1) +----- Couche 4 +Cercle (x=1, y=2, r=0, aire=0) +Rectangle:(x=3, y=4, l=3, h=4, aire=12) +Carre(x=-1, y=-1, c=2, a=4) +Étape 10: Supprimer la forme d'index 0 (la premiere) +Étape 11: Activer la couche d'index 4 +Étape 12: Supprimer la forme d'index 2 (la dernière) +Étape 13: Afficher le canevas +----- Couche 0 +----- Couche 1 +Couche initialisée +----- Couche 2 +Couche initialisée +----- Couche 3 +Rectangle:(x=1, y=1, l=1, h=1, aire=1) +Carre(x=1, y=1, c=1, a=1) +----- Couche 4 +Cercle (x=1, y=2, r=0, aire=0) +Rectangle:(x=3, y=4, l=3, h=4, aire=12) +Étape 14: Initialiser la couche d'index 4 +Étape 15: Afficher le canevas +----- Couche 0 +----- Couche 1 +Couche initialisée +----- Couche 2 +Couche initialisée +----- Couche 3 +Rectangle:(x=1, y=1, l=1, h=1, aire=1) +Carre(x=1, y=1, c=1, a=1) +----- Couche 4 +Couche initialisée +Étape 16: Imprimer l'aire du canevas + * Aire du canevas: 2 +Étape 17: Réinitialiser le canevas +Étape 18: Afficher le canevas +----- Couche 0 +Couche initialisée +----- Couche 1 +Couche initialisée +----- Couche 2 +Couche initialisée +----- Couche 3 +Couche initialisée +----- Couche 4 +Couche initialisée @@ -71,7 +71,6 @@ Forme *Couche::supprimerForme(int index) { }; bool Couche::reinitialiser() { - if (state == STATE_INIT) return false; state = STATE_INIT; vecteur.vider(); return true; diff --git a/graphicus-02.cpp b/graphicus-02.cpp index f9081d9..800b393 100644 --- a/graphicus-02.cpp +++ b/graphicus-02.cpp @@ -13,7 +13,7 @@ int main() { Tests tests; /* tests.tests_unitaires(); */ - tests.tests_application_cas_01(); + tests.tests_application(); return 0; } diff --git a/rapport/main.pdf b/rapport/main.pdf Binary files differindex 325b471..e705be0 100644 --- a/rapport/main.pdf +++ b/rapport/main.pdf diff --git a/rapport/main.tex b/rapport/main.tex index 638a69d..bdf975e 100644 --- a/rapport/main.tex +++ b/rapport/main.tex @@ -175,7 +175,7 @@ même d'autres actions accessibles à l'utilisateur). \item Ajouter les formes suivantes au canevas: \begin{itemize} \item un cercle de centre (1, 2) et de rayon $\frac{1}{\sqrt{\pi}}$ - \item un rectangle anchré en (3, 4), de largeur + \item un rectangle anchré en (3, 4), de dimensions $3\times4$ \item un carré anchré en (-1, -1), de côté 2 \end{itemize} \item Afficher le canevas @@ -193,17 +193,17 @@ même d'autres actions accessibles à l'utilisateur). \item un carré anchré en (0, 0), de côté 1 \end{itemize} \item Afficher le canevas - \item Translater le canevas de (1, 1) + \item Translater la couche active de (1, 1) \item Afficher le canevas \item Supprimer la forme de l'index 0 (la première) - \item Activer la couche 4 + \item Activer la couche d'index 4 \item Supprimer la forme de l'index 2 (la dernière) \item Afficher le canevas \end{enumerate} \subsubsection{Étapes 14 à 18} \begin{enumerate} \setcounter{enumi}{13} - \item Initialiser la couche 4 + \item Initialiser la couche d'index 4 \item Afficher le canevas \item Imprimer l'aire du canevas (doit être égale à $1+1$ soit $2$) \item Réinitialiser le canevas @@ -8,6 +8,8 @@ ********/ #include "tests.h" +#include "math.h" + // Tests sur les formes geometriques {{{ void Tests::tests_unitaires_formes() { @@ -387,8 +389,82 @@ void Tests::tests_application_cas_01() { cout << "\t* Aire du canevas: " << c.aire() << endl; }; // }}} +// takes an int pointer and increments it, prints the message: "Step i: msg\n" +void step(string msg, int *i) { + cout << "Étape " << *i << ": " << msg << endl; + (*i)++; +} + // Deuxieme application {{{ void Tests::tests_application_cas_02() { cout << "TESTS APPLICATION (CAS 02)" << endl; - // Il faut ajouter les operations realisant ce scenario de test. + // Mise en place + Canevas c; + int etape = 1; + + + step("Activer la couche d'index 4", &etape); + c.activerCouche(4); + + step("Ajouter les formes suivantes au canevas:", &etape); + cout << "\t- Un cercle (x= 1, y= 2, rayon=1/sqrt(pi) )\n" + << "\t- Un rectangle (x= 3, y= 4, largeur=3, hauteur=4)\n" + << "\t- Un carré (x=-1, y=-1, cote=2)\n"; + c.ajouterForme(new Cercle(1, 2, 1/sqrt(M_PI))); + c.ajouterForme(new Rectangle(3, 4, 3, 4)); + c.ajouterForme(new Carre(-1, -1, 2)); + + step("Afficher le canevas", &etape); + c.afficher(cout); + + step("Imprimer l'aire du canevas (doit etre egale a 1+12+4 soit 17)", &etape); + cout << "\t* Aire du canevas: " << c.aire() << endl; + + step("Activer la couche d'index 3", &etape); + c.activerCouche(3); + + step("Ajouter les formes par défaut au canevas. Soit:", &etape); + cout << "\t- Un cercle (x=0, y=0, rayon=1)\n" + << "\t- Un rectangle (x=0, y=0, largeur=1, hauteur=1)\n" + << "\t- Un carre (x=0, y=0, cote=1)\n"; + c.ajouterForme(new Cercle()); + c.ajouterForme(new Rectangle()); + c.ajouterForme(new Carre()); + + step("Afficher le canevas", &etape); + c.afficher(cout); + + step("Translater la couche active de (1,1)", &etape); + c.translater(1, 1); + + step("Afficher le canevas", &etape); + c.afficher(cout); + + step("Supprimer la forme d'index 0 (la premiere)", &etape); + c.retirerForme(0); + + step("Activer la couche d'index 4", &etape); + c.activerCouche(4); + + step("Supprimer la forme d'index 2 (la dernière)", &etape); + c.retirerForme(2); + + step("Afficher le canevas", &etape); + c.afficher(cout); + + step("Initialiser la couche d'index 4", &etape); + c.reinitialiserCouche(4); + + step("Afficher le canevas", &etape); + c.afficher(cout); + + step("Imprimer l'aire du canevas", &etape); + cout << "\t* Aire du canevas: " << c.aire() << endl; + + step("Réinitialiser le canevas", &etape); + c.reinitialiser(); + + step("Afficher le canevas", &etape); + c.afficher(cout); + }; // }}} |