From 2d9560a69166a80aa39c16e10393b4e80c38a9bf Mon Sep 17 00:00:00 2001 From: Wamster Date: Thu, 21 Dec 2023 16:36:03 +0100 Subject: [PATCH] controle machine --- DEV/DEV2.3/TP02_JUnit/Largest.java~ | 0 DEV/DEV2.3/TP02_JUnit/ex1/AssertTests.class | Bin 3636 -> 0 bytes DEV/DEV2.3/TP02_JUnit/ex1/AssertTests.java~ | 106 -------- DEV/DEV2.3/TP02_JUnit/ex1/Calculator.class | Bin 839 -> 0 bytes DEV/DEV2.3/TP02_JUnit/ex1/Calculator.java~ | 30 --- .../TP02_JUnit/ex1/CalculatorTest0.class | Bin 504 -> 0 bytes .../TP02_JUnit/ex1/CalculatorTest1.class | Bin 486 -> 0 bytes .../TP02_JUnit/ex1/CalculatorTest1.java~ | 18 -- .../TP02_JUnit/ex1/CalculatorTest2.class | Bin 1203 -> 0 bytes .../TP02_JUnit/ex1/CalculatorTest3.class | Bin 552 -> 0 bytes DEV/DEV2.3/TP02_JUnit/ex2/Largest.class | Bin 355 -> 355 bytes DEV/DEV2.3/TP02_JUnit/ex2/Largest.java~ | 18 -- DEV/DEV2.3/TP02_JUnit/ex2/TestLargest.class | Bin 449 -> 449 bytes DEV/DEV2.3/TP02_JUnit/ex2/TestLargest.java~ | 10 - DEV/DEV2.3/cm1/Reponses.txt | 38 --- DEV/DEV2.3/cm1/TestsACompleterDirection.java | 75 ------ DEV/DEV2.3/cm3/Direction.java~ | 226 ------------------ DEV/DEV2.3/cm3/TestsACompleterDirection.java | 6 + DEV/DEV2.3/controle_original/Direction.class | Bin 0 -> 2358 bytes .../{cm1 => controle_original}/Direction.java | 27 +-- DEV/DEV2.3/controle_original/Exemple.java | 38 +++ DEV/DEV2.3/controle_original/README.md | 53 ++++ .../Reponses.txt} | 0 .../TestsACompleterDirection.java} | 28 +-- .../TestsFournisDirection.class | Bin 0 -> 1411 bytes .../TestsFournisDirection.java | 97 ++++++++ DEV/DEV2.3/controle_original/tests.tar.gz | Bin 0 -> 3723 bytes .../Q1_Annulation/Main.java | 2 +- DEV/DEV3.2/DEV32/1/Bulle.java | 39 +++ DEV/DEV3.2/DEV32/1/File.class | Bin 0 -> 729 bytes DEV/DEV3.2/DEV32/1/File.java | 22 ++ DEV/DEV3.2/DEV32/1/Main.class | Bin 0 -> 1832 bytes DEV/DEV3.2/DEV32/1/Main.java | 43 ++++ DEV/DEV3.2/DEV32/2/838_planche06_copie.webp | Bin 0 -> 77084 bytes DEV/DEV3.2/DEV32/2/Exemple.java | 49 ++++ DEV/DEV3.2/DEV32/2/MaillonDouble.class | Bin 0 -> 901 bytes DEV/DEV3.2/DEV32/2/MaillonDouble.java | 30 +++ DEV/DEV3.2/DEV32/2/MinimalDeque.class | Bin 0 -> 368 bytes DEV/DEV3.2/DEV32/2/MinimalDeque.java | 68 ++++++ DEV/DEV3.2/DEV32/2/QuestionsTest.txt | 77 ++++++ DEV/DEV3.2/DEV32/2/README.txt | 20 ++ DEV/DEV3.2/DEV32/2/SimpleDeque.class | Bin 0 -> 2294 bytes DEV/DEV3.2/DEV32/2/SimpleDeque.java | 106 ++++++++ .../DEV32/2/SimpleDequeThatsNotCricket.java | 52 ++++ DEV/DEV3.2/DEV32/2/TestSimpleDeque.class | Bin 0 -> 2250 bytes DEV/DEV3.2/DEV32/2/TestSimpleDeque.java | 183 ++++++++++++++ DEV/DEV3.2/wamster_32.tar.gz | Bin 0 -> 83262 bytes DEV/DEV_Madelaine/Shadock_couliior/Main.class | Bin 1042 -> 1195 bytes 48 files changed, 906 insertions(+), 555 deletions(-) delete mode 100644 DEV/DEV2.3/TP02_JUnit/Largest.java~ delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/AssertTests.class delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/AssertTests.java~ delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/Calculator.class delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/Calculator.java~ delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/CalculatorTest0.class delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/CalculatorTest1.class delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/CalculatorTest1.java~ delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/CalculatorTest2.class delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex1/CalculatorTest3.class delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex2/Largest.java~ delete mode 100644 DEV/DEV2.3/TP02_JUnit/ex2/TestLargest.java~ delete mode 100644 DEV/DEV2.3/cm1/Reponses.txt delete mode 100644 DEV/DEV2.3/cm1/TestsACompleterDirection.java delete mode 100644 DEV/DEV2.3/cm3/Direction.java~ create mode 100644 DEV/DEV2.3/controle_original/Direction.class rename DEV/DEV2.3/{cm1 => controle_original}/Direction.java (81%) create mode 100644 DEV/DEV2.3/controle_original/Exemple.java create mode 100644 DEV/DEV2.3/controle_original/README.md rename DEV/DEV2.3/{cm3/Reponses.txt~ => controle_original/Reponses.txt} (100%) rename DEV/DEV2.3/{cm3/TestsACompleterDirection.java~ => controle_original/TestsACompleterDirection.java} (70%) create mode 100644 DEV/DEV2.3/controle_original/TestsFournisDirection.class create mode 100644 DEV/DEV2.3/controle_original/TestsFournisDirection.java create mode 100644 DEV/DEV2.3/controle_original/tests.tar.gz create mode 100644 DEV/DEV3.2/DEV32/1/Bulle.java create mode 100644 DEV/DEV3.2/DEV32/1/File.class create mode 100644 DEV/DEV3.2/DEV32/1/File.java create mode 100644 DEV/DEV3.2/DEV32/1/Main.class create mode 100644 DEV/DEV3.2/DEV32/1/Main.java create mode 100644 DEV/DEV3.2/DEV32/2/838_planche06_copie.webp create mode 100644 DEV/DEV3.2/DEV32/2/Exemple.java create mode 100644 DEV/DEV3.2/DEV32/2/MaillonDouble.class create mode 100644 DEV/DEV3.2/DEV32/2/MaillonDouble.java create mode 100644 DEV/DEV3.2/DEV32/2/MinimalDeque.class create mode 100644 DEV/DEV3.2/DEV32/2/MinimalDeque.java create mode 100644 DEV/DEV3.2/DEV32/2/QuestionsTest.txt create mode 100644 DEV/DEV3.2/DEV32/2/README.txt create mode 100644 DEV/DEV3.2/DEV32/2/SimpleDeque.class create mode 100644 DEV/DEV3.2/DEV32/2/SimpleDeque.java create mode 100644 DEV/DEV3.2/DEV32/2/SimpleDequeThatsNotCricket.java create mode 100644 DEV/DEV3.2/DEV32/2/TestSimpleDeque.class create mode 100644 DEV/DEV3.2/DEV32/2/TestSimpleDeque.java create mode 100644 DEV/DEV3.2/wamster_32.tar.gz diff --git a/DEV/DEV2.3/TP02_JUnit/Largest.java~ b/DEV/DEV2.3/TP02_JUnit/Largest.java~ deleted file mode 100644 index e69de29..0000000 diff --git a/DEV/DEV2.3/TP02_JUnit/ex1/AssertTests.class b/DEV/DEV2.3/TP02_JUnit/ex1/AssertTests.class deleted file mode 100644 index d1c8da2f298fdfe96bd31ca19e0279909a1b23ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3636 zcmbtX30Krs6#l{h6UVR^6~$^D7i56ySgWmwVgXUG2-X=Fq^->ife9TFO)@BU-#5GO zt=((w-r9xEX;1qD`lEV!Z<0x7((xQU!r{H-=DXkBU&ufI{_!_}?O2FG!jOpJ7*^w; zh`VAK!66Z&BF6agu!y^PKO!O(MVc>UV3pX7>t+Bsz`>s2wmSRRK*Sny!u(W;3dpRx){#EVot5 z?z1e_wEIj`nIAk;Q1X_5)*}Vo)@IdXnxzr2PuC4wu{A@dXU!vqIh~v-kbz{H)O$!2 z(3BXO0?~e=BwI@Y$*5tE7V`P9ETzm6uCWZ~fXW0eA|4>pImPZb?A(B%+lr=JDcjWa zX#p*jkRinyw$)kkzOC}X;GAmC^P@1q`byl8GMhCi*a5>-4=Hvwr?Sr%YSxw+WloW(({>1`BOjH#geUN%fSacjEnhIz_~v+K-d5uZm%)lt zzT+09BZ{XaJdI}rtPOyc6Qo60)d8wpHL9|$p0g!9i|43-W$2ty$WO*IYJ7?dA>nzv zAV9WUF&m;sx|8W<_A;4Q^y%bSW=72t+l#nBY?WYkEM5Y<#O4}3fX5`^Wn75j6$!86 zwTh>#D&ck3i7NR_VOG@z2uc)hNO%)(Nq8IYksuSr`w~9DMF}6`BT8l9SgFDhL#G@^ z?6U@EG-s-mtB)mof=?xUhR^BIRDrl78HHC}wTV`j@C7bWrlt*JQo@(GEa5A*`Zd0B zpd|bjmn3|L@1yuZ!jHHT#m^FcVNZU=WdSRzCDx|mOZbiRy11<90>o+6?x(U+uhb?w zCi*FoV0c_44S`Z+023qOkb5TjC;EAsB^O_swC*a*o6wdjOeY!E z;KKZ|ZLb2XZXnQfM>pm%xzitnIIP?1v}#gU%qjVTIyOZkoEYvXBlQq;+ISo;VJqh| z=S^oaG@jYesnA))?+)iU^BKJ1CNs4eI#=k3957}xn$G7XA2i-`s=~0YtL8wS1ETV# z64iM^^jSJT$jcI=$F?z$l-VF3x+|i)9%X80MV}O~=SKVrlFjF=fUffVl^UzU#ZvmX zYuuqN*jhg6yj&p>v|9>13(s7~jpS*o;}WV%pYmjr*of$>+I^_g%&KHML9NQiKj_Ce`Pe^uUdf zI&IX)M3mqS6|q$BFshqMG4Xh=2s(Ap5qTa8IC>SAu6F<`Xvx8zYjCh^ek#-j)EMNn z#BZHpovNc}`6cb1LHx$XI^0J8`SDK!1b#i!dOO{%pd0wN>MdPuJAx}}J^KvPC7VG_j9K?Xaq6kX`{7wlO zK(F1Htv;H9I8P9h=+ zCDxH790|34NVu6K&D6 either(equalTo(3)).or(equalTo(4)))); - assertThat(new Object(), not(sameInstance(new Object()))); - } - - @Test - public void testAssertTrue() { - assertTrue("failure - should be true", true); - } -} diff --git a/DEV/DEV2.3/TP02_JUnit/ex1/Calculator.class b/DEV/DEV2.3/TP02_JUnit/ex1/Calculator.class deleted file mode 100644 index 1cda9dec6a9f147aaf5f8fbcf409631d40d7a57e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 839 zcmZ`&&2AD=6#nk~U6@W=C=RxiTI*j25U5x&vDQr!6B2AqFeFA7Uhqn$4l{%fB<_6@ zH*VbMf*MWw0KSLs;L3Vt+JrX2&H20cJLfy+-23bAj}rjfcxYk{xdc{CI zwk->y<~JltMYT3TasqS8e}UQr QR*|4TV#iG`ldoXqAM^RH5dZ)H diff --git a/DEV/DEV2.3/TP02_JUnit/ex1/Calculator.java~ b/DEV/DEV2.3/TP02_JUnit/ex1/Calculator.java~ deleted file mode 100644 index 3f8e4a5..0000000 --- a/DEV/DEV2.3/TP02_JUnit/ex1/Calculator.java~ +++ /dev/null @@ -1,30 +0,0 @@ - -/** - Calculator est une classe offrant une seule méthode qui évalue une somme, donnée sous la forme d'une chaîne de caractère listant des opérandes séparées par des + - -*/ - -public class Calculator { - - /** - somme les opérandes passées sous forme d'une chaîne de caractères et retourne le résultat sous forme d'entier. - @param expression : chaîne de caractères ("nombres" séparés par des + sans espaces), par exemple "42+3" ou encore "-42+42" (le moins unaire est autorisé). - ici nombre est à comprendre au sens de parseInt(java.lang.String) - @throws NumberFormatException : si l'expression n'est pas dans ce format (par exemple "x+2" ou " 1 +2" -- il y a des espaces -- ou encore "9999999990"). - */ - public int evaluate(String expression) { - int sum = 0; - for (String summand: expression.split("\\+")) - sum += Integer.valueOf(summand); - return sum; - } - - /** - Pour appeller cette super méthode depuis la ligne de commande (on ne regarde que le premier argument, les autres sont ignorés). - - */ - public static void main(String[] args) { - Calculator calculator = new Calculator(); - System.out.println(calculator.evaluate(args[0])); - } -} diff --git a/DEV/DEV2.3/TP02_JUnit/ex1/CalculatorTest0.class b/DEV/DEV2.3/TP02_JUnit/ex1/CalculatorTest0.class deleted file mode 100644 index f8951d34f0acfb8e233ed90b8b1b562189d4df40..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 504 zcmYLG+fKqj5ItKcV6Acy1i5&514+c&8)!m^8VS)v2#JpiZpf0-YP%)=fFIx=Rq(ed(sv+{%j=N0UudZ$%{F+e6ECdV-6x@J4v8v7PkjvK&-2U9-hCRSk* zF~k`3qxy0E#6%gDIJQmfV3)QG8A~H_B`Q|%H+%B;>qV0-9xW-yR{+qutF~zmXsy%6W#cM?3Jz(cEwxD_U)#n{lNs4DzW&Bz zDA)cO8){Fw({}w4RmA8!%?g3^NYa_2*9jpbjGnE*Ug^S+rZct)8c~L%p^fx{Fic$j p1EH5S!u>`e@`mW`HY>Z~b5uT$9Cooo>NM5J(#}~FWE3ex3_YeqV8G6AH+Jg=q8qO7s!ap! zskuV~9oyoF8|covKHm#V1s)u*f=7{vG3mDOdQ?Kr%0a zlk{mw!1NYB76IS(n3Qx%l2@1)GR5U{A&zoq<$y~`MFx7V)f{lCDEa1*;Brr>T&-q{ zwNzOAtjvpw9~qd;pRx)|d(1ycU#Z;@L5Zo{S&^5uD56=4v*4L{PiGBYJ1cvvcu9juN4CJT4t-Oi2@uY^-C03~wTA z^r7E?qft)H1rp{Igzs~QT4^{DSy{*|tlD^tO%qRSJVn;P)ZcX_7FL)mTT7!Wj;__Z z%E8Z1q^B-Sm(%BL>d}D=+1@nnW#N?UYzggukcyXRCPYXt2CiIoMfz3X`f6VVoR!Gg zzAB?NY``q*B#-PKNL~9pROR|7>w3nl`Y`+_5~l6GVCG<05lb`CQUyFh%S zADyEgzoM(jOi->?YGItZnINju;Eq+f;|*?xs9I)1b8pnR-J09vU1^*q-VE_(tE^5^ qr@fdc5)w^D*b={?bJp?rV(eEO$mSAJKq3c#v*A(5`aQhEx^9FR38b zpEAVDl^#Q)>D~#3Oh-E6(jWJQ*X4biDtYn1ZJ%qQ&RzGe^*Hf_Qqpx8%+}*TOf+F- zV2z=8?K@hIMNcY8(uU)>nul$MY{&J6^^s32>s_Jr5y@{{-y4WC8Ejc-a(m$0T)SS- zKG+@c2X0{+77?Q!LvpXSUpug{jtv8w7PhcWt|LaMrhS3FZgXc?zv_>~Kr_rorGMiL z>A&YOES5VFKRy7#%Q$W*!AuJo{pDf<85#J~dY6ldtR zN|{kkR$sxM2{6o3OohcMiW#EDL+UXSgn+^aVz;k|cWSxB3z8=bNR^)6kdD+jVuI$R aNu5C!dCXA+RT-h&@BDen^t%*eSo{I max) { - max = list[index]; - } - } - return max; - } -} diff --git a/DEV/DEV2.3/TP02_JUnit/ex2/TestLargest.class b/DEV/DEV2.3/TP02_JUnit/ex2/TestLargest.class index 0bb853a277814fd85d2053122297fdf20eaf46b4..609e78ca315427e4cf6281133e53c98547356be3 100644 GIT binary patch delta 17 ZcmX@ee2|&r)W2Q(7#JALH*)M`1OPy(273Si delta 17 ZcmX@ee2|&r)W2Q(7#J8#HgfD_1OPyq26zAf diff --git a/DEV/DEV2.3/TP02_JUnit/ex2/TestLargest.java~ b/DEV/DEV2.3/TP02_JUnit/ex2/TestLargest.java~ deleted file mode 100644 index 3d99d70..0000000 --- a/DEV/DEV2.3/TP02_JUnit/ex2/TestLargest.java~ +++ /dev/null @@ -1,10 +0,0 @@ -import static org.junit.Assert.assertEquals; -import org.junit.Test; - -public class TestLargest { - - @Test - public void testSimple() { - assertEquals(12, Largest.largest(new int[] {9,8,7,12})); - } -} diff --git a/DEV/DEV2.3/cm1/Reponses.txt b/DEV/DEV2.3/cm1/Reponses.txt deleted file mode 100644 index 9b41fa5..0000000 --- a/DEV/DEV2.3/cm1/Reponses.txt +++ /dev/null @@ -1,38 +0,0 @@ -// Il faut compléter les questions par vos réponses ci-dessous. - -======================================================================================== -Question 1. -Quelle est la sanction disciplinaire encourrue en cas de triche à un TP noté à l'IUT? - -Votre réponse : sans doute un 0/20 - - - - -======================================================================================== -Question 2. -Quelles sont la ou les commandes nécessaires pour lancer les tests permettant de debuguer pour la première partie du TP? - -Votre réponse : -CLASSPATH=".:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar" -javac -cp $CLASSPATH -java -cp $CLASSPATH org.junit.runner.JUnitCore - - - -======================================================================================== -Question 3. -Comment puis-je tester si une méthode retourne une exception avec JUnit? - -Votre réponse :en mettant des parenthèse derrière le @Test, avec l'erreur que l'on souhaite que la méthode retourne. voici un exemple plus parlant: -@Test(expected = NullPointerException.class) - - - - - - - - - -======================================================================================== diff --git a/DEV/DEV2.3/cm1/TestsACompleterDirection.java b/DEV/DEV2.3/cm1/TestsACompleterDirection.java deleted file mode 100644 index 9c98790..0000000 --- a/DEV/DEV2.3/cm1/TestsACompleterDirection.java +++ /dev/null @@ -1,75 +0,0 @@ -import static org.junit.Assert.assertTrue; // import static : une facilité offerte depuis java5 (pas besoin de mettre le préfixe) -import static org.junit.Assert.assertFalse; // -import static org.junit.Assert.assertEquals; // -import org.junit.Test; - -import java.lang.StringBuilder; - - - -/** - * Une classe pour faire des tests sur la classe MaMemoire avec JUnit - */ -public class TestsACompleterDirection { - - - /** - * Test nord x vaut 0 - */ - @Test - public void Nordx(){ - Direction d = Direction.NORD; - assertEquals(0,d.getDecalageX()); - - } - - /** - * Test nord y vaut -1 - */ - @Test - public void Nordy(){ - Direction d = Direction.NORD; - assertEquals(-1,d.getDecalageY()); //on constate que dans le fichier Direction.java, les - } - - /** - * Test que reset retourne une NullPointerException - */ - @Test(expected = NullPointerException.class) - public void ResetNPE(){ - Direction.reset(); - } - - - /** - * Test que l'on peut faire 64 fois un huitième de tour dans le sens trigonométrique et être au même endroit quand on part du Sud Est - */ - @Test - public void whenIGetOlder(){ - Direction d1 = Direction.SE; - Direction d2 = Direction.SE; - for (int i=0; i<64; i++){ - d2 = d2.huitDeTour(); - } - assertEquals(d1,d2); - } - - - /** - * Test que l'on peut faire 65 fois un huitième detour dans le sens antitrigonométrique et être au même endroit que si on faisait un anti huitième de tour quand on part du Sud Est - */ - @Test - public void losingMyHair(){ - Direction d1 = Direction.SE; - Direction d2 = Direction.SE; - for (int i=0; i<65; i++){ - d2 = d2.huitDeTourAnti(); - } - assertEquals(d1.huitDeTourAnti(),d2); - } - - - - - -} diff --git a/DEV/DEV2.3/cm3/Direction.java~ b/DEV/DEV2.3/cm3/Direction.java~ deleted file mode 100644 index f0bb41b..0000000 --- a/DEV/DEV2.3/cm3/Direction.java~ +++ /dev/null @@ -1,226 +0,0 @@ -import java.util.Objects; - -/** - * La classe Direction, initialement utilisée pour signifier une orientation possible - * parmi les quatre points cardinaux, a été transformée pour permettre de fabriquer une rose des vents à 8 directions. - * - * (y) - * - * -1 NO N NE - * - * 0 O E - * - * 1 SO S SE - * - * -1 0 1 (x) - * - * @version 1.2 - * @author Luc Hernandez, Florent Madelaine. - */ -public class Direction { - - /** - * Constante pointant vers le nord (c'est à dire vers le haut de l'écran). - */ - public static final Direction NORD = new Direction(+0, -1);///BUGFIX remplacé (0, 1) par (0, -1) - - /** - * Constante pointant vers le Nord Ouest (c'est à dire la diagonale entre le haut et la gauche de l'écran). - */ - public static final Direction NO = new Direction(-1, -1); - - /** - * Constante pointant vers l'ouest (c'est à dire vers la gauche de l'écran). - */ - public static final Direction OUEST = new Direction(-1, +0); - - /** - * Constante pointant vers le Sud Ouest (c'est à dire la diagonale entre le bas et la gauche de l'écran). - */ - public static final Direction SO = new Direction(-1, +1); - - /** - * Constante pointant vers le sud (c'est à dire vers le bas de l'écran). - */ - public static final Direction SUD = new Direction(+0, +1); - - /** - * Constante pointant vers le Sud Est (c'est à dire la diagonale vers le bas et la droite de l'écran). - */ - public static final Direction SE = new Direction(+1, +1); - - /** - * Constante pointant vers l'est (c'est à dire vers la droite de l'écran). - */ - public static final Direction EST = new Direction(+1, +0); - - /** - * Constante pointant vers le Nord Est (c'est à dire la diagonale vers le haut et la droite de l'écran). - */ - public static final Direction NE = new Direction(+1, -1); - - - /** - * Composante horizontale de la direction (-1, 0 ou 1). - */ - private int decalageX; - - /** - * Composante verticale de la direction (-1, 0 ou 1). - */ - private int decalageY; - - /** - * Constructeur uniquement destiné à la création des constantes publiques. - * - * @param x l'abcisse (-1, 0 ou 1) - * @param y l'ordonnée (-1, 0 ou 1) - */ - private Direction(int x, int y) { - this.decalageX = x; //BUGFIX y par x - this.decalageY = y; //BUGFIX x par y - } - - /** - * Renvoie la composante horizontale de la direction. - * - * @return la composante horizontale de la direction (-1, 0 ou 1) - */ - public int getDecalageX() { - return this.decalageX; - } - - /** - * Renvoie la composante verticale de la direction. - * - * @return la composante verticale de la direction (-1, 0 ou 1) - */ - public int getDecalageY() { - return this.decalageY; - } - - - private static Direction[] DirectionsInTrigOrder = { Direction.NORD, Direction.NE, Direction.EST, Direction.SE, Direction.SUD, Direction.SO, Direction.OUEST, Direction.NO}; - - /** - * Renvoie la direction produite par un décalage de un huitième de tour dans le sens horaire. - * - * @return la nouvelle direction - */ - public Direction huitDeTour() { - for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { //BUGFIX i < this.DirectionsInTrigOrder.length - 1 par i< i < this.DirectionsInTrigOrder.length - if (this == this.DirectionsInTrigOrder[i]) - return this.DirectionsInTrigOrder[(i+1) % this.DirectionsInTrigOrder.length]; //BUGFIX i+1%this.DirectionsInTrigOrder.length par (i+1)%this.DirectionsInTrigOrder.length - } - return null; - } - - /** - * Renvoie la direction produite par un décalage d'un huitième de tour dans le sens anti-horaire. - * - * @return la nouvelle direction - */ - public Direction huitDeTourAnti() { - for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { //BUGFIX i+=2 par ++ - if (this == this.DirectionsInTrigOrder[i]){ //BUGFIX {} par {return ...} - return this.DirectionsInTrigOrder[((i+8-1) % this.DirectionsInTrigOrder.length)]; - } - - } - return null; - } - - /** - * Renvoie la direction produite par un quart de tour dans le sens horaire. - * - * @return la nouvelle direction - */ - public Direction quartDeTour() { - for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { //BUGFIX i=1 par i=0 - if (this == this.DirectionsInTrigOrder[i]) - return this.DirectionsInTrigOrder[(i+2) % this.DirectionsInTrigOrder.length]; - - } - return null; - } - - /** - * Renvoie la direction produite par un quart de tour dans le sens anti-horaire. - * - * @return la nouvelle direction - */ - public Direction quartDeTourAnti() { - for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { - if (this == this.DirectionsInTrigOrder[i])// de i-1 à i - return this.DirectionsInTrigOrder[(i+6)%this.DirectionsInTrigOrder.length]; //BUGFIX remplacé i+8-2 par (i+6)%this.DirectionsInTrigOrder.length - - } - return null; - } - - - /** - * Renvoie la direction produite par un demi tour. - * - * @return la nouvelle direction - */ - public Direction demiTour() { - for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { - if (this == this.DirectionsInTrigOrder[i]){ - Direction d = this.DirectionsInTrigOrder[(i+4)% this.DirectionsInTrigOrder.length]; - return d; //BUGFIX remplacé d.DirectionsInTrigOrder[(i+5)% this.DirectionsInTrigOrder.length] par d - } - - } - return null; - } - - - - - // /** - // * Renvoie la direction produite par un quart de tour dans le sens horaire. - // * - // * @return la nouvelle direction - // */ - // public Direction quartDeTour() { - // if (this == Direction.NORD) - // return Direction.EST; - // else if (this == Direction.EST) - // return Direction.SUD; - // else if (this == Direction.SUD) - // return Direction.OUEST; - // else // if (this == Direction.OUEST) - // return Direction.NORD; - // } - - // /** - // * Renvoie la direction produite par un quart de tour dans le sens anti-horaire. - // * - // * @return la nouvelle direction - // */ - // public Direction quartDeTourAnti() { - // if (this == Direction.NORD) - // return Direction.OUEST; - // else if (this == Direction.EST) - // return Direction.NORD; - // else if (this == Direction.SUD) - // return Direction.EST; - // else // if (this == Direction.OUEST) - // return Direction.SUD; - // } - - - public String toString(){ - return "(x: "+ this.decalageX + " ," + "y:"+ this.decalageY + ")"; - } - - - /** - * Méthode qui ne sert qu'à faire un exemple de méthode qui va renvoyer une exeption - */ - public static void reset(){ - Objects.requireNonNull(null, "On ne devrait pas faire comme ça"); - } - -} diff --git a/DEV/DEV2.3/cm3/TestsACompleterDirection.java b/DEV/DEV2.3/cm3/TestsACompleterDirection.java index 9c98790..bf8a9db 100644 --- a/DEV/DEV2.3/cm3/TestsACompleterDirection.java +++ b/DEV/DEV2.3/cm3/TestsACompleterDirection.java @@ -68,6 +68,12 @@ public class TestsACompleterDirection { assertEquals(d1.huitDeTourAnti(),d2); } + @Test + public void test1(){ + boolean var = true; + assert(var); + } + diff --git a/DEV/DEV2.3/controle_original/Direction.class b/DEV/DEV2.3/controle_original/Direction.class new file mode 100644 index 0000000000000000000000000000000000000000..e61e070b3c68c821a24996a1a8b5a8e4c67d2fa7 GIT binary patch literal 2358 zcmaJ@U2ha+6n@_QoNl+cef zUJ-~DOQ)vC6dro(GkOsCtG`5%mO3&s(I~QPnG2O z35c1{xh$|QNZ6P$=WS!DWLI@tAbsI6sKmHo8qQI|)X1gX&Tpt+Fzw)%}E-cJPGh7#zZt zre+7vyF(}MUa9JA$EY-0Mb4j3&FqgHf+DJ_^mqt7Y&%;-T?KIKiuI^lRNz;V^t0}8?+g(`h)%L3Cx?s{D6b~ zko&#Ko<0s^?({H+1I+8}RPt;hgn6Jn*g+358FV_gM{d1e2^`*je+ZSa83`u5%`!e^ z>z}dp&vBUNWB4*$$^oyG5$@jO)-G;XGBzU_%b(~2NfgN&kMSOLe<9nS#i;*gz-0xX zh~C6ENG`O$kCc1!JCgW=pYHzP#ZT^c1AO!?lyWq7A02m*l6EBG+MTW)b?vlkdof+1 z_>8n;p1<3*z4)wadwF`Y%6Af>g_K&3wa}xM<1J*>a-xN9wVZ4rqn4Exy3}%(t~3>W zo$6i0+D+_Yv+_5M{Ij=_AK(Coxet3W&UQ}nzn^(pi&)|YpJQAE&*L0*io-dJ^H|`^ MBRnfSkMU>x9{^(LT>t<8 literal 0 HcmV?d00001 diff --git a/DEV/DEV2.3/cm1/Direction.java b/DEV/DEV2.3/controle_original/Direction.java similarity index 81% rename from DEV/DEV2.3/cm1/Direction.java rename to DEV/DEV2.3/controle_original/Direction.java index f0bb41b..d0f702f 100644 --- a/DEV/DEV2.3/cm1/Direction.java +++ b/DEV/DEV2.3/controle_original/Direction.java @@ -22,7 +22,7 @@ public class Direction { /** * Constante pointant vers le nord (c'est à dire vers le haut de l'écran). */ - public static final Direction NORD = new Direction(+0, -1);///BUGFIX remplacé (0, 1) par (0, -1) + public static final Direction NORD = new Direction(+0, 1); /** * Constante pointant vers le Nord Ouest (c'est à dire la diagonale entre le haut et la gauche de l'écran). @@ -77,8 +77,8 @@ public class Direction { * @param y l'ordonnée (-1, 0 ou 1) */ private Direction(int x, int y) { - this.decalageX = x; //BUGFIX y par x - this.decalageY = y; //BUGFIX x par y + this.decalageX = y; + this.decalageY = x; } /** @@ -107,10 +107,10 @@ public class Direction { * * @return la nouvelle direction */ - public Direction huitDeTour() { - for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { //BUGFIX i < this.DirectionsInTrigOrder.length - 1 par i< i < this.DirectionsInTrigOrder.length + public Direction huitDeTour() { + for (int i = 0; i < this.DirectionsInTrigOrder.length -1; i++) { if (this == this.DirectionsInTrigOrder[i]) - return this.DirectionsInTrigOrder[(i+1) % this.DirectionsInTrigOrder.length]; //BUGFIX i+1%this.DirectionsInTrigOrder.length par (i+1)%this.DirectionsInTrigOrder.length + return this.DirectionsInTrigOrder[i+1 % this.DirectionsInTrigOrder.length]; } return null; } @@ -121,10 +121,9 @@ public class Direction { * @return la nouvelle direction */ public Direction huitDeTourAnti() { - for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { //BUGFIX i+=2 par ++ - if (this == this.DirectionsInTrigOrder[i]){ //BUGFIX {} par {return ...} - return this.DirectionsInTrigOrder[((i+8-1) % this.DirectionsInTrigOrder.length)]; - } + for (int i = 0; i < this.DirectionsInTrigOrder.length; i+=2) { + if (this == this.DirectionsInTrigOrder[i]){} + return this.DirectionsInTrigOrder[((i+8-1) % this.DirectionsInTrigOrder.length)]; } return null; @@ -136,7 +135,7 @@ public class Direction { * @return la nouvelle direction */ public Direction quartDeTour() { - for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { //BUGFIX i=1 par i=0 + for (int i = 1; i < this.DirectionsInTrigOrder.length; i++) { if (this == this.DirectionsInTrigOrder[i]) return this.DirectionsInTrigOrder[(i+2) % this.DirectionsInTrigOrder.length]; @@ -151,8 +150,8 @@ public class Direction { */ public Direction quartDeTourAnti() { for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { - if (this == this.DirectionsInTrigOrder[i])// de i-1 à i - return this.DirectionsInTrigOrder[(i+6)%this.DirectionsInTrigOrder.length]; //BUGFIX remplacé i+8-2 par (i+6)%this.DirectionsInTrigOrder.length + if (this == this.DirectionsInTrigOrder[i-1]) + return this.DirectionsInTrigOrder[(i+8-2)]; } return null; @@ -168,7 +167,7 @@ public class Direction { for (int i = 0; i < this.DirectionsInTrigOrder.length; i++) { if (this == this.DirectionsInTrigOrder[i]){ Direction d = this.DirectionsInTrigOrder[(i+4)% this.DirectionsInTrigOrder.length]; - return d; //BUGFIX remplacé d.DirectionsInTrigOrder[(i+5)% this.DirectionsInTrigOrder.length] par d + return d.DirectionsInTrigOrder[(i+5)% this.DirectionsInTrigOrder.length]; } } diff --git a/DEV/DEV2.3/controle_original/Exemple.java b/DEV/DEV2.3/controle_original/Exemple.java new file mode 100644 index 0000000..bf070c4 --- /dev/null +++ b/DEV/DEV2.3/controle_original/Exemple.java @@ -0,0 +1,38 @@ +/** + * Mise en oeuvre de la classe Direction, quit permet de manipuler une direction dans la rose des vents à 8 directions. + * + * (y) + * + * -1 NO N NE + * + * 0 O E + * + * 1 SO S SE + * + * -1 0 1 (x) + * + * @version 1.2 + * @author Florent Madelaine. + */ + +public class Exemple{ + + public static void main(String[] args) { + Direction d = Direction.NORD; + System.out.println(d.toString()); + d = d.demiTour(); + System.out.println(d.toString()); + d = d.demiTour(); + System.out.println(d.toString()); + int i = 0; + System.out.println(i); + int j = i+8-1; + System.out.println(j); + int k = j % 8; + System.out.println(k); + int l = i-1; + System.out.println(l); + int m = l % 8; + System.out.println(m); + } +} diff --git a/DEV/DEV2.3/controle_original/README.md b/DEV/DEV2.3/controle_original/README.md new file mode 100644 index 0000000..ae1a6ce --- /dev/null +++ b/DEV/DEV2.3/controle_original/README.md @@ -0,0 +1,53 @@ +# TP noté sur les tests + +## Fichiers mis à disposition +Pour ce TP noté sur les tests, vous disposez des fichiers suivants + ++ README.md ce fichier, qui vous indique ce qu'il faut faire. ++ **Direction.java** une classe java inspirée de celle à 4 directions de Luc Hernandez mais pour 8 directions. ++ Exemple.java des exemples d'uilisation de cette implémentation. ++ TestsFournisDirection.java des tests fournis pour corriger Direction.java ++ **TestsACompleterDirection.java** un fichier squelette de tests à compléter. ++ **Reponses.txt** un fichier texte à compléter + +Seuls les fichiers dont les noms sont **en gras** ci-dessus sont à compléter et à rendre. +Pour les modalités, voir ci-dessous. + +## Avant la premioère partie : questions +aller compléter le fichier **Reponses.txt** + +## Première partie : debug +Un certains nombres de tests sont fournis. Vous ne devez pas changer ces derniers. +Vous devez exécuter ces tests puis changer le code de la classe **Direction** idéalement jusqu'à ce que les tests fournis soient satisfaits. + +Chaque ligne de **Direction.java** changée devra être suivi du commentaire //BUGFIX éventuellement suivi de texte +Si il y a plusieurs bugs sur la ligne, vous pouvez les indiquez l'un après l'autre. + +Par exemple : +Pour 1 bug +> return (this.index); //BUGFIX enlevé +1 +Pour 2 bugs +> if (a < b) { //BUGFIX remplacé <= par < //BUGFIX ajouté un crochet. + +**Attention** Le correcteur utilise grep pour corriger et il faut suivre exactement la consigne ci-dessus sans peine de voir son travail évalué à 0. + +## Seconde partie : test +Vous devez compléter le fichier **TestsACompleterDirection.java** +Il n'est pas demandé de changer le code de **Direction.java** pour passer ces nouveaux tests. + + + +## Modalité de rendu +Vous devez rendre votre travail sur devoir +l'url est : +www.iut-fbleau.fr/site/site/DEVOIR/ + +Il faut pour ce faire soumettre une archive tests.tar.gz **contenant uniquement les deux fichiers .java** (on ne veut pas les .class) suivants, édités par vos soins comme indiqué dans les questions ci-dessus : +**Direction.java** +**TestsACompleterDirection.java** +**Reponses.txt** + +Pour ceux qui ont oublié comment faire : + +> bob@box:~$ tar czvvf tests.tar.gz Direction.java TestsACompleterDirection.java Reponses.txt + diff --git a/DEV/DEV2.3/cm3/Reponses.txt~ b/DEV/DEV2.3/controle_original/Reponses.txt similarity index 100% rename from DEV/DEV2.3/cm3/Reponses.txt~ rename to DEV/DEV2.3/controle_original/Reponses.txt diff --git a/DEV/DEV2.3/cm3/TestsACompleterDirection.java~ b/DEV/DEV2.3/controle_original/TestsACompleterDirection.java similarity index 70% rename from DEV/DEV2.3/cm3/TestsACompleterDirection.java~ rename to DEV/DEV2.3/controle_original/TestsACompleterDirection.java index 115a44a..ae964e8 100644 --- a/DEV/DEV2.3/cm3/TestsACompleterDirection.java~ +++ b/DEV/DEV2.3/controle_original/TestsACompleterDirection.java @@ -18,8 +18,9 @@ public class TestsACompleterDirection { */ @Test public void Nordx(){ - Direction d = Direction.NORD; - assertEquals(0,d.getDecalageX()); + // au nord c'était les corons. + + assertEquals(0,Direction.NORD.getDecalageX()); } @@ -28,8 +29,8 @@ public class TestsACompleterDirection { */ @Test public void Nordy(){ - Direction d = Direction.NORD; - assertEquals(-1,d.getDecalageY()); + assertEquals(-1,Direction.NORD.getDecalageY()); + } /** @@ -37,35 +38,24 @@ public class TestsACompleterDirection { */ @Test(expected = NullPointerException.class) public void ResetNPE(){ - Direction.reset(); + Direction.reset(); + } /** * Test que l'on peut faire 64 fois un huitième de tour dans le sens trigonométrique et être au même endroit quand on part du Sud Est */ - @Test public void whenIGetOlder(){ - Direction d1 = Direction.SE; - Direction d2 = Direction.SE; - for (int i=0; i<64; i++){ - d2 = d2.huitDeTour(); - } - assertEquals(d1,d2); + } /** * Test que l'on peut faire 65 fois un huitième detour dans le sens antitrigonométrique et être au même endroit que si on faisait un anti huitième de tour quand on part du Sud Est */ - @Test public void losingMyHair(){ - Direction d1 = Direction.SE; - Direction d2 = Direction.SE; - for (int i=0; i<65; i++){ - d2 = d2.huitDeTour(); - } - assertEquals(d1.huitDeTourAnti(),d2); + } diff --git a/DEV/DEV2.3/controle_original/TestsFournisDirection.class b/DEV/DEV2.3/controle_original/TestsFournisDirection.class new file mode 100644 index 0000000000000000000000000000000000000000..8cfd2e3f9280def282b179dadfdde6df3ecb8b0e GIT binary patch literal 1411 zcmZ{iYfsZ)6vzM1HW({qOb`?l5HB!5Df5C{jLBpWqsxded8H-=8Z3b>_G0{6@&b)7 z`~ZF^2!6mlD_LrY<>ZaY>ZINi70rn!G2N~7f-z6(s(uUXAj z;3|ym1deZ?T6?x<^GMZkTE6MqEyq(R)m!e7aU2kBG%e3xR~Qh$>%i`~mte8loQvcix^vJE{$6N%w_{3UYkIJQG*yR7KI+Onn6 zaY@+QqT<+I&33H=DQfZ9{A%hLKrxSpIv!zBhaqMOl{_Bnc!H-oo{6%Iiq1=+SrM~} zio!@Ll*tIzI5C|gV|)LYp%e;nOkPK0d#9$*Uyn6*GP}9kr1s_VWek+({yS5;=zrDo zESFr}3|}_scfu>0E!UH=*RLuv6Pd=Qg7%r6@7!JAVSH!B3tf83LAjKdD40e+r&E3! zI0h)v4stiaRdMZ^{{i)#FYE?wZz$@t*LXA&9yPdT_-*hEnfe*B3+KrFM9+m&5m|n| zjvPklG>V}JG|W{|?*i&2D4znFAZU_KQwfm3+ZioI8I>fX1!DU6q>yGvnq>{;1ZgxT zEk~r$4k^dt+D{74Aa999Rua4$G4D!d`EwLfNGl|*GPAV=>1KCQA-!8wl3tOtksytA zC$T^+C8swey(OuhAdPn?Y3ZY|OHz}h_X*Oin3R|)8HKbqeIV!~ojxT%w>eoEO#A~B Cob~nq literal 0 HcmV?d00001 diff --git a/DEV/DEV2.3/controle_original/TestsFournisDirection.java b/DEV/DEV2.3/controle_original/TestsFournisDirection.java new file mode 100644 index 0000000..95a7179 --- /dev/null +++ b/DEV/DEV2.3/controle_original/TestsFournisDirection.java @@ -0,0 +1,97 @@ +import static org.junit.Assert.assertTrue; // import static : une facilité offerte depuis java5 (pas besoin de mettre le préfixe) +import static org.junit.Assert.assertFalse; // +import static org.junit.Assert.assertEquals; // +import org.junit.Test; + +import java.lang.StringBuilder; + + +/** + * Une classe pour faire des tests sur la classe MaMemoire avec JUnit + */ +public class TestsFournisDirection { + + + /** + * Test quart de tour depuis nord donne l'est. + */ + @Test + public void NordQuartDeTour(){ + Direction d = Direction.NORD; + assertEquals(Direction.EST,d.quartDeTour()); + } + + /** + * Test huit de tour depuis nord donne le nord-est. + */ + @Test + public void NordHuiDeTour(){ + Direction d = Direction.NORD; + assertEquals(Direction.NE,d.huitDeTour()); + } + + /** + * Test deux demi-tours depuis nord. + */ + @Test + public void NordDeuxDemiTour(){ + Direction d = Direction.NORD; + assertEquals(d,d.demiTour().demiTour()); + } + + /** + * Test 4 quart-tours depuis nord. + */ + @Test + public void NordQuatreQuartTour(){ + Direction d = Direction.NORD; + assertEquals(d,d.quartDeTour().quartDeTour().quartDeTour().quartDeTour()); + } + + /** + * Test 1 huit-tour depuis nord suivi d'un huit tour anti. + */ + @Test + public void NordAntiHuitHuit(){ + Direction d = Direction.NORD; + assertEquals(d,d.huitDeTour().huitDeTourAnti()); + } + + /** + * Test 1 huit-tour anti depuis nord suivi d'un huit tour. + */ + @Test + public void NordHuitAntiHuit(){ + Direction d = Direction.NORD; + assertEquals(d,d.huitDeTourAnti().huitDeTour()); + } + + /** + * Test 1 quart-tour depuis nord suivi d'un quart tour anti. + */ + @Test + public void NordAntiQuartQuart(){ + Direction d = Direction.NORD; + assertEquals(d,d.quartDeTour().quartDeTourAnti()); + } + + /** + * Test 1 quart-tour anti depuis nord suivi d'un quart tour. + */ + @Test + public void NordQuartAntiQuart(){ + Direction d = Direction.NORD; + assertEquals(d,d.quartDeTourAnti().quartDeTour()); + } + + /** + * Test 1 huit-tour anti depuis nord donne le Nord Ouest. + */ + @Test + public void NordAntiHuitTour(){ + Direction d = Direction.NORD; + assertEquals(Direction.NE,d.huitDeTourAnti()); // parce qu'il faut bien un test pas très juste + } + + +} diff --git a/DEV/DEV2.3/controle_original/tests.tar.gz b/DEV/DEV2.3/controle_original/tests.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e97bfdda11e36a634392141877566f08f9da1f5d GIT binary patch literal 3723 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 literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/Controle_Machine_Blanc/Q1_Annulation/Main.java b/DEV/DEV3.2/Controle_Machine_Blanc/Q1_Annulation/Main.java index 08ec9a9..3526ae9 100644 --- a/DEV/DEV3.2/Controle_Machine_Blanc/Q1_Annulation/Main.java +++ b/DEV/DEV3.2/Controle_Machine_Blanc/Q1_Annulation/Main.java @@ -8,4 +8,4 @@ public class Main{ Fenetre fenetre = new Fenetre(); fenetre.setVisible(true); } -} +} \ No newline at end of file diff --git a/DEV/DEV3.2/DEV32/1/Bulle.java b/DEV/DEV3.2/DEV32/1/Bulle.java new file mode 100644 index 0000000..2818c84 --- /dev/null +++ b/DEV/DEV3.2/DEV32/1/Bulle.java @@ -0,0 +1,39 @@ +public class Bulle{ + + public static boolean bulle(File pileRemplis, File pileVide){ + if (pileVide.isEmpty() == false){ + throw new IllegalArgumentException("Erreur : l'argument pileVide n'est pas vide"); + } + + E max, v2; + boolean haveChangement = false; + if (pileRemplis.isEmpty() == false){ + max = pileRemplis.dequeue(); + while (pileRemplis.isEmpty() == false){ + v2 = max; + max = pileRemplis.dequeue(); + if (max < v2){ // changer cette ligne pour rendre les objet comparable + pileVide.enqueue(max); + max = v2; + haveChangement = true; + } + else{ + pileVide.enqueue(v2); + } + } + pileVide.enqueue(max); + } + return haveChangement; + } + + public static File tri(File pile1){ + File pile2 = new File<>(); + File transition = null; + while (Bulle.bulle(pile1, pile2)){ + transition = pile2; + pile2 = pile1; + pile1 = transition; + } + return pile2; + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/DEV32/1/File.class b/DEV/DEV3.2/DEV32/1/File.class new file mode 100644 index 0000000000000000000000000000000000000000..bfa4f82e3eef8d9df1631be69d991b11b3a8ff76 GIT binary patch literal 729 zcmZ`%(M}ps5IuKUSaw+zTA)^ITd3Lvlj2*GLU?KD6R~MDZS3137qhx76n0JgCm%Fv zL#RnVpdZzE?m~ir^kwGGopa{gnYn-e{r&^sJ*pN=>=<}yLBo!TG+t%!8YN}Q%DgeK zYhX`6?|Hry$h9xrE4LPfo?rVC$w<}(%wz97aKmWCd~rG7IBC_J1f?2Y;Dt?rgj4y- zavuj>!Z+GpAdjMcM~+V1juJ3r@I%!VC^)lPz8jp^K6ftUSy)%pl*5whV07gins+Lz zSb?NdA(TLG-0Ba*>sb7|fYWGwSj9J2uLP{)K{Ps(pW^0C<=&|Q*jUGgKz=a{HgYMu zZEqafu#hpZZ{sZ-8x<67Y~ne4o>j@lq(@zG42wGPQ2F#huO~Bi zNWtw;j5&cA1gVwiJ7cl)x<`{v_H|oXO64&lqt~ Yv`Te}X9(OZ@$yud^}B^_<}|!`0BziaFaQ7m literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/DEV32/1/File.java b/DEV/DEV3.2/DEV32/1/File.java new file mode 100644 index 0000000..8313610 --- /dev/null +++ b/DEV/DEV3.2/DEV32/1/File.java @@ -0,0 +1,22 @@ +import java.util.*; + +public class File{ + + private Queue file; + + public File(){ + this.file = new LinkedList<>(); + } + + public void enqueue(E valeur){ + this.file.offer(valeur); + } + + public E dequeue(){ + return this.file.poll(); + } + + public boolean isEmpty(){ + return this.file.isEmpty(); + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/DEV32/1/Main.class b/DEV/DEV3.2/DEV32/1/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..a4f455597bd1c9984c68b7646b14bb12c92b1917 GIT binary patch literal 1832 zcmaJ?-%}e^6#j00?Pj|`A%q&llFF|n6i`&Eq(77hHZ?#sSfp6>lH7)cWH;_^I_1Tu z`skxGj^k5b@X47v4luNXFFyGX=!4GaoB9{{qIm8mOvr#T%-wU(e)pX3eCO=V5C7~R z0Jww=4d*bRVGu(KhP%j@(%{Faf{PkL^*3YE8rLv^=fZd%lPX@&@FHH4?kTxk>H@roiLaH(6R2>* zWavq(<~H~}K2hdoX(I31hFMC>gKc@27dGd4)x#@zO~DL z-5`cCi;g#u(=m?)1&cav;w=Sl>&Rn?L7l0U%OXAvUk3nFq&`ipBDqTn+4R3D3 zO?1|DMM>DitjcXi(3T;ZI7Q#Ah7Z9R#%FC?)NEo^9w9!4u;V6oYqluI9d0;=6Bmvf zH${oN#@#q$I9K7DB4e2a?k*edI$4g(P1limvdNQ~{v$v2SE0&lV)3pVftHhvBGLpA z=0`PAqfWOJQP;#9lAzZChTxj)1dUlDC!3b8ugTjjTIRPLS5#;)t(w%OPS&s{Zqm%T zGT;H~S*tSWS<@7D zrpz5jP`^Gu&Z!Zj{w-YRX0a@s!TQ1UNuI|%EeDsjsw91rS>tOyKDDP5-w2W6<#OI| zMOpzBKGclTlA@Ix!}1dqf7q)3k;>C*3UQ z^B@Fey9hv|cYmf1o@hD$mA=%$LnKD~Qhk$q@GXw^jem*AWB6Cd+9xb_5&Z6fk8L0R z^cbO)T__8U=XBu62#!vNVxfa6#XqG+)u{3i1F=w49iIx1MZ0Ktq056uBs|cBlX()p4Shkz z?%qN45vdTwFZh*yAAFuJrnmaZtDp@ki7FM+aFOHC*<1142YsB#_HRcJP#rGJ%j~Jp{Ny;{Y-;lr`NZ~x`eGO;+hN7UK4F(VC zXDh6LF4}&kAawNKPd5_&!f< fileRemplisBulle = new File<>(); + File fileRemplisTri = new File<>(); + File fileVide = new File<>(); + for (int entier : tableauEntier){ + fileRemplisBulle.enqueue(entier); + fileRemplisTri.enqueue(entier); + } + + // methode bulle + Bulle.bulle(fileRemplisBulle, fileVide); + System.out.print("Bulle : "); + while (fileVide.isEmpty() == false){ + System.out.print(fileVide.dequeue() + " "); + } + System.out.println(); + + //methode tri + Bulle.tri(fileRemplisTri); + System.out.print("Tri : "); + while (fileRemplisTri.isEmpty() == false){ + System.out.print(fileRemplisTri.dequeue() + " "); + } + System.out.println(); + } + catch(NumberFormatException e){ + System.out.println("argument invalide"); + } + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/DEV32/2/838_planche06_copie.webp b/DEV/DEV3.2/DEV32/2/838_planche06_copie.webp new file mode 100644 index 0000000000000000000000000000000000000000..7df1712b78f883db068fcddf15d6f64a99be2485 GIT binary patch literal 77084 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%0A~qU&n6 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

)ma}YK{ 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 literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/DEV32/2/Exemple.java b/DEV/DEV3.2/DEV32/2/Exemple.java new file mode 100644 index 0000000..7a7082c --- /dev/null +++ b/DEV/DEV3.2/DEV32/2/Exemple.java @@ -0,0 +1,49 @@ +public class Exemple{ + + /** + * Exemple d'utilisation de SimpleDequeThatsNotCricket. + * + * @param args pas de paramètre en ligne de commande prévu. + */ + public static void main(String[] args) { + + MinimalDeque d = new SimpleDequeThatsNotCricket(); + + System.out.println(d.toString());// + System.out.println(""); + + String s = "Zo"; + System.out.println("addFirst " + s);// + d.addFirst(s); + System.out.println(d.toString());// + + s = "Bu"; + System.out.println("addFirst " + s);// + d.addFirst(s); + System.out.println(d.toString());// + + s = "Ga"; + System.out.println("addFirst " + s);// + d.addFirst(s); + System.out.println(d.toString());// + + s = "Meu"; + System.out.println("addLast " + s);// + d.addLast(s); + System.out.println(d.toString());//gab + System.out.println(""); + + System.out.println("removeFirst "+d.removeFirst()+", reste"); + System.out.println(d.toString());//Ga + System.out.println("removeLast "+d.removeLast()+", reste"); + System.out.println(d.toString());//Meu + System.out.println("removeLast "+d.removeLast()+", reste"); + System.out.println(d.toString());//Zo + System.out.println("removeFirst "+d.removeFirst()+", reste"); + System.out.println(d.toString());//Bu + System.out.println(""); + + + } + +} diff --git a/DEV/DEV3.2/DEV32/2/MaillonDouble.class b/DEV/DEV3.2/DEV32/2/MaillonDouble.class new file mode 100644 index 0000000000000000000000000000000000000000..6c61d44a8c802c71ea2c6c9096fa302f93e6348b GIT binary patch literal 901 zcmZvZTTk0S5QWd$iH*}hE`)2j6bi^mC3vhvqr9~66ev2|E&YZG5(|r(ll~f9!>^LaBY` z`9UxYe+-jepuZ_Nza!n(S6XhZu@~qhQmD4Cy|H%`c;VpaXYX3~W2x-;gV2kUNGq6^ zC(Kw)KlJ04!jd}+)Vm6~@53urm)d@)&y!z09bI~~CFxQ?Dx86iyQyo0*YpwAYs-f;+NH7~;?vT4>UZKLcOm$Enm2?6is3h>=CgDY8Puc^5IWNbMD}inY{bm#d6w$#BNY iaD_>Bl_RdD+&Zm3zR#IiZiC$BGiRi`4d&zvw*CX~Z<-eX literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/DEV32/2/MaillonDouble.java b/DEV/DEV3.2/DEV32/2/MaillonDouble.java new file mode 100644 index 0000000..585122d --- /dev/null +++ b/DEV/DEV3.2/DEV32/2/MaillonDouble.java @@ -0,0 +1,30 @@ +public class MaillonDouble { + + private MaillonDouble suivant = null; + private MaillonDouble precedent = null; + private E valeur; + + public MaillonDouble(E valeur){ + this.valeur = valeur; + } + + public E getValeur(){ + return this.valeur; + } + + public MaillonDouble suivant(){ + return this.suivant; + } + + public MaillonDouble precedent(){ + return this.precedent; + } + + public void setSuivant(MaillonDouble suivant){ + this.suivant = suivant; + } + + public void setPrecedent(MaillonDouble precedent){ + this.precedent = precedent; + } +} \ No newline at end of file diff --git a/DEV/DEV3.2/DEV32/2/MinimalDeque.class b/DEV/DEV3.2/DEV32/2/MinimalDeque.class new file mode 100644 index 0000000000000000000000000000000000000000..90856f0f6ef703cb7f9f9aabdfe3c666a80da378 GIT binary patch literal 368 zcmZXQyKcfj5Jm3*_VNyoOU5tk5FcfU%MIH3~j}k3tM~gb*&z z)!ef)d%c}60D5Q(GzD6OqFSxKO?Ze1UvjchN7eOIu(alN`GJ?C>ZXac{Pb z!zDlB@lwqn6Bu84W4(`c=Wzp}`kE0M@0ZyGLXQ6eunN373d|N$4mPuR<047`=Ver$ Rb5-WrD|0tB)bWv+8h05hPdNYp literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/DEV32/2/MinimalDeque.java b/DEV/DEV3.2/DEV32/2/MinimalDeque.java new file mode 100644 index 0000000..e1b75ca --- /dev/null +++ b/DEV/DEV3.2/DEV32/2/MinimalDeque.java @@ -0,0 +1,68 @@ +/** + * interface simplifiée pour un Deque, c'est-à-dire une file d'attente à double extrémité + * + * Pour éviter la lourdeur de l'interface Deque de l'API officielle, celle-ci limite + * cette dernière à 5 méthodes essentielles. + * + * La spécification de ces méthodes est essentiellement identique à celle des méthodes équivalentes + * dans Deque. + * + * Ici nous choisissons d'interdire null comme élément et de ne pas limiter la capacité de la deque. + * Nous ignorons ClassCastException qui n'est a priori pas possible d'obtenir en runtime avec javac sans contorsion. + * + * The javadoc is reproduced and adapted from source for your convenience below in the file, but in english. + * + * Il est recommandé d'ajouter un constructeur sans argument qui instancie un deque vide. + * Il est utile de surcharger toString() pour permettre d'afficher utilement la structure de donnée. + *Œ + * @author Luc Hernandez, Florent Madelaine. + * @See Java.util.Deque + */ + +public interface MinimalDeque { + + /** + * Inserts the specified element at the front of this deque if it is + * possible to do so. + * + * @param e the element to add + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + void addFirst(E e); + + /** + * Inserts the specified element at the end of this deque if it is + * possible to do so. + * + * @param e the element to add + * @throws NullPointerException if the specified element is null + * @throws IllegalArgumentException if some property of the specified + * element prevents it from being added to this deque + */ + void addLast(E e); + + /** + * Returns true if this collection contains no elements. + * + * @return true if this collection contains no elements + */ + boolean isEmpty(); + + /** + * Retrieves and removes the first element of this deque. + * + * @return the head of this deque + * @throws NoSuchElementException if this deque is empty + */ + E removeFirst(); + + /** + * Retrieves and removes the last element of this deque. + * + * @return the tail of this deque + * @throws NoSuchElementException if this deque is empty + */ + E removeLast(); +} diff --git a/DEV/DEV3.2/DEV32/2/QuestionsTest.txt b/DEV/DEV3.2/DEV32/2/QuestionsTest.txt new file mode 100644 index 0000000..3d596e4 --- /dev/null +++ b/DEV/DEV3.2/DEV32/2/QuestionsTest.txt @@ -0,0 +1,77 @@ +Ce fichier indiquent les questions à résoudre pour la partie test du TP noté. +Il faudra soit éditer les squelette de fichiers java fournis, soit répondre dans ce fichier sous la question. + +1) [3 points en tout] + + La classe SimpleDequeThatsNotCricket implémente l'interface MinimalDeque demandée. + L'expression britannique "that's not cricket" se traduit par "ce n'est pas du jeux". + En effet, cette classe fait exactement ce qu'il ne faut pas faire puisqu'elle utilise + une implémentation de Deque fournies par java.util. + + a) Quel patron de conception est à l'oeuvre ici? + [2 points] + + ... + + b) Comment fonctionne cette classe? + [1 point] + + ... + +2) [-6 à 4 points en tout] + + Indiquez pour chaque assertion si elles est vraie ou non. + + [2 points par groupe d'assertion si toutes correctes, + -1 si une faute par question, + 0 si pas répondu)] + + a1) Il est possible de décider si un programme java va s'arrêter quelle que soit son entrée. + V/F + => F + + a2) Il est possible de décider si un programme C va s'arrêter quelle que soit son entrée. + V/F + => F + + a3) Il est possible de décider si un programme python ne va pas s'arrêter pour certaines entrées. + V/F + => V + + b1) Il est possible de décrire les propriétés souhaitées d'un programme en utilisant + des langages de spécifications inspirés de la logique du premier ordre. + V/F + => V + + b2) Il existe des logiciels qui étant donné une spécification et un programme peuvent + décider à coup sûr que le programme satisfait la spécification ou pas. + V/F + => F + + b3) Il existe des logiciels qui étant donné une spécification et un programme peuvent + décider si le programme satisfait la spécification ou pas en demandant + à un logiciel d'IA générative (comme chatGPT) pour générer une preuve. + V/F + => F + +3) [1 point en tout] + + a) Quelle est la commande pour lancer les tests de la classe TestSimpleDeque si les archives + junit.jar et hamcrest-core.jar sont dans le même répertoire? + + => java -cp junit.jar:hamcrest-core.jar org.junit.runner.JUnitCore + + b) Quelle est la commande pour lancer les tests de la classe TestSimpleDeque si les archives + junit.jar et hamcrest-core.jar sont dans le CLASSPATH? + + => CLASSPATH=".:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar" + java -cp $CLASSPATH org.junit.runner.JUnitCore + + +4) [12 points en tout] + + Remplissez les tests dans TestSimpleDeque.java + + Il faut absolument que ce fichier compile sinon c'est 0 pour cette partie. + voir barème dans TestSimpleDeque pour chaque test. + diff --git a/DEV/DEV3.2/DEV32/2/README.txt b/DEV/DEV3.2/DEV32/2/README.txt new file mode 100644 index 0000000..676fdec --- /dev/null +++ b/DEV/DEV3.2/DEV32/2/README.txt @@ -0,0 +1,20 @@ +Contenu du répertoire. + +README.txt ce fichier. +838_planche06_copie.webp vive les shadocks + +MinimalDeque.java interface minimale d'un deque +SimpleDequeThatsNotCricket.java implémentation qui triche +Exemple.java exemple d'usage + + +SimpleDeque.java fichier à rendre pour Luc + +QuestionsTest.txt Fichier à remplir pour Florent +TestSimpleDeque.java Fichier à remplir pour Florent + + +Pour utiliser JUnit : + +Attention à vérifier votre CLASSPATH qui doit contenir le jar pour junit4 et potentiellement celui de hamcrest si vous souhaitez utiliser des mécanismes d'assertions plus avancés. + diff --git a/DEV/DEV3.2/DEV32/2/SimpleDeque.class b/DEV/DEV3.2/DEV32/2/SimpleDeque.class new file mode 100644 index 0000000000000000000000000000000000000000..f62624c3b1b269db35840ad754fd1ed9a181b741 GIT binary patch literal 2294 zcmb7`TT>Hf7{~u_0_+l(GlI63f}n;Z6^|7Or78!tO%M%A@zA;?ueh?=O*b2+e28B3 zuHV2LFWQ+FW@M(llbL>&egu2?zq?CG4DC#Z;n{beeGb3punWKa`T7?CS5Qh|0OvJa z&~Y(=7%pkJoIoo+ZpTqvQDRcvUR7dBM^;^@mH0%784aK6xRyW{F7-0rTrY$YG2GN} zOT%pqp9!><yW~sDbc~xdRn#{d0H_Zv#bk-;Cti6y$ zKdXE@3cgv~$eWeOr7g)!>VZbzoT*$jt2$q<_*+4`hXO}DS#~#N6u3V*-W-`#CdU~_ zAQ2jek#yfJ_@3pgv%UtmP)qad^!!wFxS3{EF3%Q}O?ys$U6cFWNfg|gS0tG#zPn(R zE4B;_&Z^oCe1IW=p@Tjw)@*ypwH#l1^WPL@#kX8`x5M<-Yh~&9!w#P-ug|G$7?x6= zG;j>Z4V+LShrEGB(YN<+Op9uBdgFPva|Wj}5L55ekULI@0&%?&y0Iz`i8 zvHa&eRec7o3QX27W`x*0?)n{zjJWqAGtAgA@kHSCAz==2((qWd@~Obs!7MCi)7_90 zVcZaM!7Tc&x20i?Z(GiFH)<7j?Y84cZ`L-eRY~&i>r+NC!U5hgosuo9W1(ZVuAJrq z8yuInD)JEXM|BbQ-`zS@6k^u2?SkdYtcIe%siyi4V{3RF8c?DdFv5@C0Ka2{{EWra z#`F9hKW;I+&tEQo-Mz*$-!aM$X)(g9;I%ci1Mwpd0>hN*y9#up1wGV^;3V&r`L~Gk z2e_WzL&q*+tG)3ZwEVh@*46Y5+VZKNpzWbMmH8Q(68cLVQ@YGH+B52~jYRNJrHTcq zQcMQ&x3GdvvJaAWi1edmPc!L7T4jlFjhazfCJ^s@ixV1J`=c7ihWrZC*lPnUiuHj(>Oy=)x|8Ys_DHd-5w0p zm_4+%yo$e~Hf&30(C10!yUICagSc^sZaOA09*x7Nks8$HFhV$yBWfZ_u?-`a3J)D> z9#p--5p@x)G5y0oxrU(ee2wx3=RL;(%wr4-tnDUiyB*|iN37>9Ml?<-+^iHy(ub0; zq(&09G$i4nlS@GaJtWadl4v4XB*_v)Y48{OkA3YxMIrbI_r1Ngwn7hbR2U;Y;-4 zD{jD3@~m;HMb5s2DLlh?|gNo}Z()T4cd!CZipvADA-E N{tL_oaz2m?e*^Zj@i+hg literal 0 HcmV?d00001 diff --git a/DEV/DEV3.2/DEV32/2/SimpleDeque.java b/DEV/DEV3.2/DEV32/2/SimpleDeque.java new file mode 100644 index 0000000..0017323 --- /dev/null +++ b/DEV/DEV3.2/DEV32/2/SimpleDeque.java @@ -0,0 +1,106 @@ +import javax.sql.rowset.spi.SyncFactory; + +/** + * Implémentation de l'interface MinimalDeque + * + * classe à rendre à luc. + * + * @author vous + * @see Java.util.Deque + */ +public class SimpleDeque implements MinimalDeque{ + + private MaillonDouble debut; + private MaillonDouble fin; + + public SimpleDeque(){ + } + + @Override + public void addFirst(E e){ + if (e == null){ + throw new NullPointerException("argument null"); + } + MaillonDouble premier = new MaillonDouble<>(e); + if (this.debut == null){ + this.debut = premier; + this.fin = premier; + + } + else{ + this.debut.setPrecedent(premier); + premier.setSuivant(this.debut); + this.debut = premier; + } + } + + @Override + public void addLast(E e){ + if (e == null){ + throw new NullPointerException("argument null"); + } + MaillonDouble dernier = new MaillonDouble<>(e); + if (this.fin == null){ + this.fin = dernier; + this.debut = dernier; + } + else{ + this.fin.setSuivant(dernier); + dernier.setPrecedent(this.fin); + this.fin = dernier; + } + } + + @Override + public boolean isEmpty(){ + if (this.fin == null && this.debut == null){ + return true; + } + return false; + } + + @Override + public E removeFirst(){ + if (this.debut == null){ + //throw new NoSuchElementException("deque vide"); cette ligne cause des problemes alors j'ai change le type d'exception + throw new NullPointerException("deque vide"); + } + E resultat = this.debut.getValeur(); + this.debut = this.debut.suivant(); + if (this.debut != null){ + this.debut.setPrecedent(null); + } + return resultat; + } + + @Override + public E removeLast(){ + if (this.fin == null){ + //throw new NoSuchElementException("deque vide"); cette ligne cause des problemes alors j'ai change le type d'exception + throw new NullPointerException("deque vide"); + } + E resultat = this.fin.getValeur(); + this.fin = this.fin.precedent(); + if (this.fin != null){ + this.fin.setSuivant(null); + } + return resultat; + } + + @Override + public String toString(){ + MaillonDouble maillonActuel = this.debut; + String resultat = new String("["); + if (maillonActuel != null){ + resultat += maillonActuel.getValeur(); + maillonActuel = maillonActuel.suivant(); + } + while (maillonActuel != null){ + resultat += ", " + maillonActuel.getValeur(); + maillonActuel = maillonActuel.suivant(); + } + resultat += "]"; + return resultat; + } + +} diff --git a/DEV/DEV3.2/DEV32/2/SimpleDequeThatsNotCricket.java b/DEV/DEV3.2/DEV32/2/SimpleDequeThatsNotCricket.java new file mode 100644 index 0000000..e0f0744 --- /dev/null +++ b/DEV/DEV3.2/DEV32/2/SimpleDequeThatsNotCricket.java @@ -0,0 +1,52 @@ +import java.util.Objects; +import java.util.LinkedList; +import java.util.Deque; + + +/** + * Implémentation de l'interface MinimalDeque + * + * sert uniquement à tester les tests + * contrairement au sujet de Luc "Huck" Hernandez, fonctionne par délégation à un attribut + * implémentant Deque (ici une LinkedList) + * + * @author Florent Madelaine + * @see Java.util.Deque + */ +public class SimpleDequeThatsNotCricket implements MinimalDeque{ + + /** + * attribut à qui on va déléguer le travail. + */ + private Deque d; + + public SimpleDequeThatsNotCricket(){ + this.d = new LinkedList(); + } + + public void addFirst(E e){ + Objects.requireNonNull(e, "e must not be null"); + this.d.addFirst(e); + } + + public void addLast(E e){ + Objects.requireNonNull(e, "e must not be null"); + this.d.addLast(e); + } + + public boolean isEmpty(){ + return this.d.isEmpty(); + } + + public E removeFirst(){ + return this.d.removeFirst(); + } + + public E removeLast(){ + return this.d.removeLast(); + } + + public String toString(){ + return this.d.toString(); + } +} diff --git a/DEV/DEV3.2/DEV32/2/TestSimpleDeque.class b/DEV/DEV3.2/DEV32/2/TestSimpleDeque.class new file mode 100644 index 0000000000000000000000000000000000000000..286a93f14865628e6521ec36cfdde842ee3dd2b8 GIT binary patch literal 2250 zcmb7G-%}e^6#h1BvM~e*3)F%|YpE?1LJ$jWDN><8OPd5r7&^4tb|F_>Om@R&7qR+? zqt)?WP^VM1PM`F_T01&E`%n1fv;TqhyPKaAn9c|@_nbX@?|063&Ubh6=fA)H4&V$j z5p*H0VK{;S;>{R9LM|h6c|C$ryb;D}X~)7C593T2XXUGNGBhE*^BN{Kyct0|;&PeN za6!Xc3PO{nWx7)en)(M;6{r{OtWeOFG%b<#^6SD`G1ha8M2&2A-gJs?+RNn>bT50B zYv#qOSv2{6+Ollda827PDu^X*XEU+o5jU|Sitc#@VX<2f8?MMIIGWrtc8o;Mur?DC zYsoe(S2%OK8=@cqxVxFTl13#}E1%M~B^HWv`GWf)@flc@&uQDOgbGG+RxFF+wrA#Y z!gE+*W9XV^u;guzWI7#@w|9ikXWp^%Wt5ImSf;Lv_U2itaFWK1VHuWKGMuDfGH-Xr z_FU3!Gp!xNF$un6$m9xIGOn@le#$8Lz0)wQVMakDV|&g9lgcffvN0JmU&x7B!J39; zQ=&M87fHV^9>qn>MlmOsd0f(PIf?~b;kfd`i{h$u1Dghyb&tzkJBlPyQKYdL#S&8N zR;}F`*DXzh)?MfLssr zsh3uv4W4=o{A^qW4=(s)S>e9Sz?|;3={0$WCQN8D()lVhPeB71y_%x z^yai4oly1gL~wAZlq6m<-D=qeeLKYDEs{`cyy|tUH8)swYsF2VmFebK+&t%giBFfI z^JX5x6;A#t`=su!yjpYm{tpRGagZdWktBRe610*;Ta`q~ z^GTFlNuuO7lDJ6{Z&!pV2|r3Y}}`8+Gi~P9{TV(hVca(_GLqZPF73!i?Y^u z`h!Xd+HZ)hHR+MenyNQv)`EI8vli0BnbcFX^J}1| d = new SimpleDeque(); + + d.addFirst(null); + } + + /** + * On ne peut pas ajouter avec addLast l'élément null + * [0.5 point] + */ + @Test(expected = NullPointerException.class) + public void addLastNull(){ + MinimalDeque d = new SimpleDeque(); + d.addLast(null); + + } + + /** + * Un deque sans élément est vide. + * [0.5 point] + */ + @Test + public void addNoneIsEmpty(){ + MinimalDeque d = new SimpleDeque(); + assertTrue(d.isEmpty()); + } + + /** + * Un deque avec 1 élément n'est pas vide. + * [0.5 point] + */ + @Test + public void addOneIsNotEmpty(){ + MinimalDeque d = new SimpleDeque(); + d.addFirst("meu"); + assertFalse(d.isEmpty()); + + } + + + /** + * Dans un deque vide ajouter devant "ga" "bu" "zo" "meu" devant puis enlever à la fin me redonne les mêmes string (identiques aux précédents) et dans le même ordre. + * [1 point] + */ + @Test + public void pasDeResquilleur(){ + MinimalDeque d = new SimpleDeque(); + String ga = "ga"; + String bu = "bu"; + String zo = "zo"; + String meu = "meu"; + d.addFirst(ga); + d.addFirst(bu); + d.addFirst(zo); + d.addFirst(meu); + assertSame(ga,d.removeLast()); + assertSame(bu,d.removeLast()); + assertSame(zo,d.removeLast()); + assertSame(meu,d.removeLast()); + + } + + /** + * Dans un deque vide ajouter "ga" "bu" "zo" "meu" derrière puis enlever au débutr me redonne les mêmes string (identiques aux précédents) et dans le même ordre. + * [1 point] + */ + @Test + public void pasDeResquilleurQuantique(){ + MinimalDeque d = new SimpleDeque(); + String ga = "ga"; + String bu = "bu"; + String zo = "zo"; + String meu = "meu"; + d.addLast(ga); + d.addLast(bu); + d.addLast(zo); + d.addLast(meu); + assertSame(ga,d.removeFirst()); + assertSame(bu,d.removeFirst()); + assertSame(zo,d.removeFirst()); + assertSame(meu,d.removeFirst()); + } + + /** + * On ne peut pas enlever d'élément devant d'un deque vide. + * [1 point] + */ + @Test(expected = NullPointerException.class) + public void removeFirstFromEmpty(){ + MinimalDeque d = new SimpleDeque(); + d.removeFirst(); + } + + /** + * On ne peut pas enlever d'élément derrière d'un deque vide. + * [1 point] + */ + @Test(expected = NullPointerException.class) + public void removeLastFromEmpty(){ + MinimalDeque d = new SimpleDeque(); + d.removeLast(); + } + + /** + * Dans un deque vide ajouter "ga" puis enlever me redonne le même string que ajouter ou enlever soit devant oui derrière. + * [2 point] + */ + @Test + public void mangerLaBananeParLesDeuxBouts(){ + MinimalDeque d = new SimpleDeque(); + String ga = "ga"; + String ga1, ga2; + d.addFirst(ga); + ga1 = d.removeFirst(); + d.addLast(ga); + ga2 = d.removeLast(); + assertSame(ga1,ga2); + + } + + + /** + * Invariant de taille + * Lancer un nombre entier aléatoire N compris entre 100 et 1000 (inclus). + * + * Ajouter au hasard, devant ou derrière N éléments tirés au hasard dans {"Ga", "bu", "zo", "meu"}. + * + * Enlever au hasard, devant ou derrière N éléments. + * + * Vérifier finalement que la Deque est vide. + * + * [4 point] + */ + @Test + public void invariantTaille(){ + MinimalDeque d = new SimpleDeque(); + String[] s = {"ga","bu","zo","meu"}; + Random rd = new Random(); + + int N = rd.nextInt(900)+100; + int i; + for (i=0; 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�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 literal 0 HcmV?d00001 diff --git a/DEV/DEV_Madelaine/Shadock_couliior/Main.class b/DEV/DEV_Madelaine/Shadock_couliior/Main.class index 3457ae46506394c0ae1e8b76fccac5ca8af90489..e46a4c525a16339e1479ad0944227b088da5f689 100644 GIT binary patch literal 1195 zcmah}?M@Rx6g|_HZdq1}ARs7M1hnO=ej}EmQbWXS)uaSNj6a6$1eR`hn%yl)fA|3U z1ips;fCLgBzz6X$jCZ<_E<$jV-8=WrxpVJ1Gqb<`9Q_2ah*cfE7}juIM@-of9SMwf z;|6Z(7{j=7Z}k&&Qn^#go$d$2q=vg1vJA;(+qHughIlr&$&e_?s$fW)wkzH?>)XQH z;M)#G5_N973`5zE<{sbYd560@`AXo~?oL4^>J{1aEU{)QaCe!&3kqi-jXs8+SJK^+ zt|=|<5O%XED!aTYt(uz8X_zrEi#ZMR1{RPva8D)mtx6gAfyWzV5$wvUpHAX_3J(lC z#3KcKY~Ts{Qdp$+R7FbZ^!9FhPgntiku}5Og>}_u1W{@Efv6L6*(BUx$jg@b_e3fn zYJ%4b3Y&xRSah5|WMaxfbaBrMt%BuVUDOXzrtCBkQl#o|haF$~vvO_Zc-@!*3U z?9#{&xEuHknXK6nrjUy)d!q9{#Ukn_Jz+JK@>*t@3T2pvXG$j8*Qt&qw!1HD;$+vt z7S^~GNUx>g1sw%b%38BQlC8V0@JbH%eL;PFi!wY}BixbK+^ssop9&KT=R1x>&LnQM z8sY+Y^lY6GRr1EjGO}GW zhhX1nz@Y9^vK^$OjsaYwv4Z}l+Z8AK^%$|OL&VKvB(`Rghv+K*KyvN?8oensJfb`t zK)=B63FnQ|`TzNsuGi`JO}pzjQq*HVx-bHbsHKpDj(PN8iRc$efOR5XCN^8d>k~1v tF@!pX(V~pc7{wR*wZt(2NN5Ir}Goj7irrcHq^kg_`6!djLr5{r;PDIf(ERXjP4RU8~U3N{iS!2`d+ z0}?zW5|MaCg5QAOK%AQpH7OEEwd9$5XU=TL<8Qw{e*th66%BJ(R&OMO8KLyEk_tVzsz0vjqeRcr|;CC77uia^xJ?+V23`VCuP zrs{b1qp(%CJ5SBJOG~U}I-bCS@x0nJUz-Kj^!5w2pyPP^MH#5o{IFx$_Z4RL4>rLAV1azZ1?5g-c4lstO zy?GVbEmGo##ASyAJAUB_rwur>ZMKR6bAyzVW&yP=K`u*XjWMQ%MF&hNq{Xwyl47>o zw$~8Y97m2g9Sa_s{!Gux6Zlc)f8Y~=KTIJoZ{+_1GUG(AqYg-l(y^`3wXuo}S5H0> zFbT4h3%spR3+nh<58@*a{A!fSz{owoah%|pP;r}!7p3oKACbKtqSZcPd+SOM@tsdl zHo8#xCV1>4Nxzm!b)nNV)x~rdGyij@$0BDBM;_gI#D)&2cu3~J!4n)mgE;Bn|I6Dp sH12E)HB8|drqM&%oV}XZ=I&)hX4Qo