From d3811e63c4f340369cd8b774df11c59836944b7c Mon Sep 17 00:00:00 2001
From: arnaudlabourel <arnaud.labourel@univ-amu.fr>
Date: Fri, 15 Dec 2023 15:12:43 +0100
Subject: [PATCH] added template for TP1

---
 .gitignore                                   |   2 +
 README.md                                    |  92 +-------
 TP1/.gitignore                               |  14 ++
 TP1/README.md                                |  11 +
 TP1/build.gradle                             |  24 ++
 TP1/executables/check00exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check01exe                   | Bin 0 -> 34760 bytes
 TP1/executables/check02exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check03exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check04exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check05exe                   | Bin 0 -> 34792 bytes
 TP1/executables/check06exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check07exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check08exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check09exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check10exe                   | Bin 0 -> 34704 bytes
 TP1/executables/check11exe                   | Bin 0 -> 34704 bytes
 TP1/gradle/wrapper/gradle-wrapper.jar        | Bin 0 -> 60756 bytes
 TP1/gradle/wrapper/gradle-wrapper.properties |   6 +
 TP1/gradlew                                  | 234 +++++++++++++++++++
 TP1/gradlew.bat                              |  89 +++++++
 TP1/settings.gradle                          |   2 +
 TP1/src/main/java/BlackBox.java              |  97 ++++++++
 23 files changed, 480 insertions(+), 91 deletions(-)
 create mode 100644 .gitignore
 create mode 100644 TP1/.gitignore
 create mode 100644 TP1/README.md
 create mode 100644 TP1/build.gradle
 create mode 100755 TP1/executables/check00exe
 create mode 100755 TP1/executables/check01exe
 create mode 100755 TP1/executables/check02exe
 create mode 100755 TP1/executables/check03exe
 create mode 100755 TP1/executables/check04exe
 create mode 100755 TP1/executables/check05exe
 create mode 100755 TP1/executables/check06exe
 create mode 100755 TP1/executables/check07exe
 create mode 100755 TP1/executables/check08exe
 create mode 100755 TP1/executables/check09exe
 create mode 100755 TP1/executables/check10exe
 create mode 100755 TP1/executables/check11exe
 create mode 100644 TP1/gradle/wrapper/gradle-wrapper.jar
 create mode 100644 TP1/gradle/wrapper/gradle-wrapper.properties
 create mode 100755 TP1/gradlew
 create mode 100644 TP1/gradlew.bat
 create mode 100644 TP1/settings.gradle
 create mode 100644 TP1/src/main/java/BlackBox.java

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..720dabc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/README.md b/README.md
index 0f0c1f7..d45efdc 100644
--- a/README.md
+++ b/README.md
@@ -1,93 +1,3 @@
 # M1 INFO FSI TP Template
 
-
-
-## Getting started
-
-To make it easy for you to get started with GitLab, here's a list of recommended next steps.
-
-Already a pro? Just edit this README.md and make it your own. Want to make it easy? [Use the template at the bottom](#editing-this-readme)!
-
-## Add your files
-
-- [ ] [Create](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#create-a-file) or [upload](https://docs.gitlab.com/ee/user/project/repository/web_editor.html#upload-a-file) files
-- [ ] [Add files using the command line](https://docs.gitlab.com/ee/gitlab-basics/add-file.html#add-a-file-using-the-command-line) or push an existing Git repository with the following command:
-
-```
-cd existing_repo
-git remote add origin https://etulab.univ-amu.fr/alaboure/M1-INFO-FSI-TP-template.git
-git branch -M main
-git push -uf origin main
-```
-
-## Integrate with your tools
-
-- [ ] [Set up project integrations](https://etulab.univ-amu.fr/alaboure/M1-INFO-FSI-TP-template/-/settings/integrations)
-
-## Collaborate with your team
-
-- [ ] [Invite team members and collaborators](https://docs.gitlab.com/ee/user/project/members/)
-- [ ] [Create a new merge request](https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html)
-- [ ] [Automatically close issues from merge requests](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically)
-- [ ] [Enable merge request approvals](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/)
-- [ ] [Set auto-merge](https://docs.gitlab.com/ee/user/project/merge_requests/merge_when_pipeline_succeeds.html)
-
-## Test and Deploy
-
-Use the built-in continuous integration in GitLab.
-
-- [ ] [Get started with GitLab CI/CD](https://docs.gitlab.com/ee/ci/quick_start/index.html)
-- [ ] [Analyze your code for known vulnerabilities with Static Application Security Testing (SAST)](https://docs.gitlab.com/ee/user/application_security/sast/)
-- [ ] [Deploy to Kubernetes, Amazon EC2, or Amazon ECS using Auto Deploy](https://docs.gitlab.com/ee/topics/autodevops/requirements.html)
-- [ ] [Use pull-based deployments for improved Kubernetes management](https://docs.gitlab.com/ee/user/clusters/agent/)
-- [ ] [Set up protected environments](https://docs.gitlab.com/ee/ci/environments/protected_environments.html)
-
-***
-
-# Editing this README
-
-When you're ready to make this README your own, just edit this file and use the handy template below (or feel free to structure it however you want - this is just a starting point!). Thanks to [makeareadme.com](https://www.makeareadme.com/) for this template.
-
-## Suggestions for a good README
-
-Every project is different, so consider which of these sections apply to yours. The sections used in the template are suggestions for most open source projects. Also keep in mind that while a README can be too long and detailed, too long is better than too short. If you think your README is too long, consider utilizing another form of documentation rather than cutting out information.
-
-## Name
-Choose a self-explaining name for your project.
-
-## Description
-Let people know what your project can do specifically. Provide context and add a link to any reference visitors might be unfamiliar with. A list of Features or a Background subsection can also be added here. If there are alternatives to your project, this is a good place to list differentiating factors.
-
-## Badges
-On some READMEs, you may see small images that convey metadata, such as whether or not all the tests are passing for the project. You can use Shields to add some to your README. Many services also have instructions for adding a badge.
-
-## Visuals
-Depending on what you are making, it can be a good idea to include screenshots or even a video (you'll frequently see GIFs rather than actual videos). Tools like ttygif can help, but check out Asciinema for a more sophisticated method.
-
-## Installation
-Within a particular ecosystem, there may be a common way of installing things, such as using Yarn, NuGet, or Homebrew. However, consider the possibility that whoever is reading your README is a novice and would like more guidance. Listing specific steps helps remove ambiguity and gets people to using your project as quickly as possible. If it only runs in a specific context like a particular programming language version or operating system or has dependencies that have to be installed manually, also add a Requirements subsection.
-
-## Usage
-Use examples liberally, and show the expected output if you can. It's helpful to have inline the smallest example of usage that you can demonstrate, while providing links to more sophisticated examples if they are too long to reasonably include in the README.
-
-## Support
-Tell people where they can go to for help. It can be any combination of an issue tracker, a chat room, an email address, etc.
-
-## Roadmap
-If you have ideas for releases in the future, it is a good idea to list them in the README.
-
-## Contributing
-State if you are open to contributions and what your requirements are for accepting them.
-
-For people who want to make changes to your project, it's helpful to have some documentation on how to get started. Perhaps there is a script that they should run or some environment variables that they need to set. Make these steps explicit. These instructions could also be useful to your future self.
-
-You can also document commands to lint the code or run tests. These steps help to ensure high code quality and reduce the likelihood that the changes inadvertently break something. Having instructions for running tests is especially helpful if it requires external setup, such as starting a Selenium server for testing in a browser.
-
-## Authors and acknowledgment
-Show your appreciation to those who have contributed to the project.
-
-## License
-For open source projects, say how it is licensed.
-
-## Project status
-If you have run out of energy or time for your project, put a note at the top of the README saying that development has slowed down or stopped completely. Someone may choose to fork your project or volunteer to step in as a maintainer or owner, allowing your project to keep going. You can also make an explicit request for maintainers.
+Dépôt à forker pour les TP de fiabilité logicielle en M1 informatique parcours FSI.
\ No newline at end of file
diff --git a/TP1/.gitignore b/TP1/.gitignore
new file mode 100644
index 0000000..917e7a6
--- /dev/null
+++ b/TP1/.gitignore
@@ -0,0 +1,14 @@
+.gradle
+build/
+!gradle/wrapper/gradle-wrapper.jar
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### IntelliJ IDEA ###
+.idea
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
\ No newline at end of file
diff --git a/TP1/README.md b/TP1/README.md
new file mode 100644
index 0000000..42be039
--- /dev/null
+++ b/TP1/README.md
@@ -0,0 +1,11 @@
+# TP 1 : tests boîte noire
+
+Les exécutables à tester sont dans le répertoire `executables`.
+Les fichiers images correspondant au cas de test sont à mettre dans le répertoire `ìmage`.
+
+
+Pour lancer les tests, il suffit d'utiliser la commande :
+
+```bash
+gradle run
+```
diff --git a/TP1/build.gradle b/TP1/build.gradle
new file mode 100644
index 0000000..f778d08
--- /dev/null
+++ b/TP1/build.gradle
@@ -0,0 +1,24 @@
+plugins {
+    id 'java'
+    id 'application'
+}
+
+group = 'org.example'
+version = '1.0-SNAPSHOT'
+
+repositories {
+    mavenCentral()
+}
+
+dependencies {
+    testImplementation platform('org.junit:junit-bom:5.9.1')
+    testImplementation 'org.junit.jupiter:junit-jupiter'
+}
+
+test {
+    useJUnitPlatform()
+}
+
+application {
+    mainClass.set("BlackBox")
+}
\ No newline at end of file
diff --git a/TP1/executables/check00exe b/TP1/executables/check00exe
new file mode 100755
index 0000000000000000000000000000000000000000..c164fbfb54bb096428d4e327c15188c50206225f
GIT binary patch
literal 34704
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

literal 0
HcmV?d00001

diff --git a/TP1/executables/check01exe b/TP1/executables/check01exe
new file mode 100755
index 0000000000000000000000000000000000000000..9a5861271874695e3b3f49ff2d31978ca2e020ad
GIT binary patch
literal 34760
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
HFfafB#hy=#

literal 0
HcmV?d00001

diff --git a/TP1/executables/check02exe b/TP1/executables/check02exe
new file mode 100755
index 0000000000000000000000000000000000000000..addc3ccf3f1efab1b52bef3db7a2cce7ea955861
GIT binary patch
literal 34704
zcmX^A>+L^w1_nlE1_lNu1_lN}1_p)|EDQ{-3<?Y&Aj!bM;K9Ja5Fa1l=<XWj8srZW
zMa7J$T&z5hIUS53b3$ArLQs`}^*f-7F+lmO3=9k)%mS5;k1t8BD1mao?m{(hfdK;p
z$h=iN5H%n^OfOi3g`ojVLy7qK;*!#&Vki&OeO|T@^HiWJKzt|@OmRTXV*~R*`jd-G
ziZb)k;e1s0<w4EU0|hn%0|ST;RSKq{!eBOth>tJLE6>bJiO<YS%g5s1Irb3uMSv7D
zFff4l=w?8rz!WGRW`NCcaSU;cclP%ShQx*g#2i?-qtl@D0m7iL6#(l`&qs;|hWL2w
z=2?JkWnciA2htDYg2D@gVSH3~!9*DtK(Pg~6QmzW6wU;h3Bq7CV0R@IBVrR2A0T(Z
zmBY>BKoUX@FPJ$nX^^`h>EFlG&)e0-6B1es3<uD{3!17XutRi$%mHBtkAcC2fuR8u
zZXo|0U|?V{hVl<IFfd3kLGqpiNO3a*IOkckGB89iF)(m5Ffasw#G&~U<W_M81_qG3
zpjJU;(Wq7i23|BF5SNbuVm>H)=$953>E~o7>8DiYq<|zD7#O4(7#KkA;9eTtaE8f7
zarwp?_k(3@0Y*@L5I^xTFfj3f^BE}Y85sXDYcVh|fc*zGM}vW(0c1{r4O9S1f$RmP
z36LDfFO0Spte}vDyCo+xDY&w@BsEvhNiU@`Co>76Q4MPTjV1;L4F(1VO(>tC86rPQ
zj)uT!2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mk
zz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By2#kinXb6mkz-S1JhQMeDjE2By
z2n>7(gnD#7^=N$afPsOb<p6&RXxT5nW^2Iz|Nr?ldlSIa)B-RS+rY1xI)Ps^cLBd<
z=>~qy+5<kFy&nJn|M%%^b@>1Pzei`U1(=#@0H$hxcyyM2@aT2D;L+Qw02cBP@aXjw
z@aXj5IPSn=z`($89K5C(tfsm42Lpc#CuloFckPcCQalU{`$3DLUvTj-Fr?}6%eR07
z3+&$JHwqq|wI7bVz5t1Nbi01=NcMffzmJ8Z8Dxkj*brnv1O6US3_(l&KG16E<F0@H
z|NsC0r3(WC!%L8P-L5a14={GRzIeF^<m&F)4<5ayi?|sWJbFXlY+!gXk(+^``3EC^
z3$kv|TKjI-H=VA3x?TTxG#^ojJ<Kof!oYy!UT}DHhQ9IWuKn=B<p2NwovtsMYhN(%
z_lkktR{O)FI}~J>B{u`Z28I`j|Nj5)c70*(`i8#`w4B?cyY@$S=!<UOHy*vFwh%S8
z|Nj5q0SYFFm1z?|_BnL?=y3hdzt8vo2FB)}3LUQh_*)Da7#Lt8TwoD-BoR)q2xvV!
z|326M%|CegryS^T{nzFCPlb_x+kx1_X~^LZGasaqi+{=is2Z&PJ?{Dj6sE^qUo#$a
zeZ>Is!wVNK28K@8C(X4_{`0qjHlMuw#lXPOY<u1Z<fK;668h%aC(8V-pp7NRTwgJE
zvu^caU;sr5>lzTlcBu~ogByRF95mdzMQ8djFm&_w`+y?J)Sn9+eu{rV;rE1p-;Wn=
z|NsAA!3ebs6coo<<3W}&Ffeqp#)6DIz}U$e;={o3&Gi){BpHI7`_c!LGC&@Hh=Uyq
zO6A?IU~~KaA(<<}0Mh=Nk-r73Oc111k%58XnCokXZr3Lrhd>Fn+xJa}2uHW;8<1~Y
z-@JVN@Be?O_%Rj^hUVHg4E$3eAqtJsG!Vd+{$c3}nhlP-J^?utWSB>??-O`#m<jSE
zBpE>hy8|3*;Oy~)f1eG<ixYp5d;xZQIEoTbwld^zvBVHG;BNu#+W|!?!delIZeA{L
za76s!07t}(-=K(qW~y%2Ct$BXc^UK{EDZ4`a{BUUeq#X2-yWT%FFHe?boxGU>2$r*
z?fRtC^+xjxMo40YX4M<b2mXP?+D&2E7nHp`x=UYlhdy{w_Xm{A{=5XGb%gkx7u)_p
z#6deej=TN=g&QQ>8pIw31vmEcrnB@-W9=KzwhaEc2UHk4TwjCCd{N4dl$=2Y*fH1t
z3@>BhsX-eYZnYm?_<$8YXs&(mpT8BZ&;%SmPYyodV0L}b>H4JG^$Bv8|Ii)!1d`>w
z*ukOc_3QutW3K-hyIlW+Gak<H`_WnYr8D$Hx9gXkpxrn#zyECh#lYVx47Lw0*6DiZ
zC1_I`vNBNVcc<I+PN(Y|XyO8wLm&8iLEEmN2@UGbUPp-ce!R$K1BC<Bdx!$-Nw@C{
zk6u$bi0gZP{{Ih+I#@c`49X~wD1fGsm%X5ZxA}-c>|s!O<^d`1q5grEDBZ4atX)6w
z_u50P?=JoF!XKI)5te^|1l<ERaM1B1EQjU4tq_|Oz(pLiyzZ?1vw^X>_78K1>u>%R
zE>PK2`-cr&B>wJl{S6LvWc48Tb=LmrEd9|L`lZ|T2mgB4FP*L*x@-TuSc_cnfa;5E
z*AL8{u5VsK>WdGZu5Y?s-@u{}YCp(4kIq`Ce>;8OxPWVlFD(46pfU!O-MUNPbceop
z!T0a~|CgYRgx$4YphDT;iscDJ5h(Gz*a<3PpfwV#J}U6&X3b=0VDRW>@aS~?;n7*U
zqO){KXXt`X-#N!!K^xc@x?N{jyUyY71?_zE=&oJi(ObIVh3qd#Q2`C%72Tn8x_xJO
z^qSVOf<t)icTk?5qwPAQ({&0=S9j==Zr=qi-L6w!$o~2NpBW@M<K-Ms$ak|oW`nq*
z+xLfu<q7^)P{4RJA1R1E{DO;xfq|bJGe5%OhY=h<pq*Nn(Zz%wUHtOk9c0Mq3EV#E
z41EC#E06Bd4=?P0LVSl*AA^$aH5RbnE`Iy}9}-h(807;fJSCw%frh6?XXyf12zYdd
zE_l%h@^EkMh8Gs!L8Z@}=Gr+7{QXjp^t%G2#G}`DgGaAvHN?KeZ{V=(be-YR&ANvb
zHJCufN4M(?Xh=O^0)-U6yaOzL!R@2YQc&Uo)wG~O(+*ZZf=l3k%`cevo6L~KUa;`D
zfC3YdJ%580fl7y$fuPo!>mN{4<0Yu(1eJUqy{7k>85myt0GFmO8f#yGcAD|`LA~^$
zI}{Xp$Cw!yc7h}}Fudsd3i8s6PS-y#p+zsqKuFOGZZRRdA2t1V*M52NAGx9e?NS3L
z`xo7zZ(fvuOL}Os|I!`$q1*S#3;w_V|G$JqW_Kw>_=QWi>zfx-{vaYV4KqFyJi1vu
zSs+0Ui%)1C@aPp)0r`5<-~a#l_qlFp{t>|60<~lX|GrRA4017pQ_TD?U?m%ye;D%j
zKwDQEn}3+`_aUj@=+SHXhY74cAEy3=L8t2yk8V~_*nzSrEOS6&eThf&k%ZX8FJ6I~
zOIY#;sQ!f3YMqc)cysL!CjJ&71_lPh1D(e`dQJC3Ed2Kw()#e|uHf+KH9gM6!0=)X
zC_#3*zVHCIO<N(6>H5K=JAebKc@aeOL9pi97cWkL;~y0Ep!l8%GUO>ZIv#j**Mfw4
zKth+mLU%wy-K9@n1pftPf*Vk7cj%37-v=(;u6JJi`U`SX?TZ(nZJ0Yi>B9qD6Z}`*
zz{J4tUv(Fl+yf@}fyo14@(>dPgK7#xW?orhPG*WiSz=CUs)A~<LS~*qK!C4)fV;0k
zVu?adW?rg-Y9<#0R6Ye+zPPj?wJ0;cNTDQOAvduCW=19#gAYWTLP>tULQZ~Ox`LHL
zQEFm}LUKl8QDSmQYEiL*YNi6RescpZxLe?=6jYPJ_Br_~I0id=dZM_<GcP&6s3<kL
zL?N#<Hz~D9AwNwasj?)sSiuTRE2yR@<YpEZXXd3Vq~#YWWacKOr$RlH!o`41JJ^%O
zRtl*V1*yp;sVNGoDLM*?$t9(UISQ&NTnu6GKq`hA4KfH4f~v&|s>NIk@PJ_OMFdF-
zieD3Ra`MYlQxr-I3Q~&{lJZOQKsIqPq~#aoCYCU`Wfm2eK)jGz2(r2)9~2OYc_|8c
z`6UVgTnxdf$@zIHxRn^{C>ZG|80#pQ=qQ*f<QFNJaWRAzC#I)bDI{m4CTBy!B0eoM
zCpA7VF*lWqp@_jbF%M*VenD!U0!RYvnexn(k_?87)XemZ5>P{qK?c<DU|>L@LHlMw
z``STU<Uts=CmqCwDhE@by}3LLj0^%`lfXit<O*h>5&{hn34sQX*$fN<4IsTB8q~!B
z(V%8Ghz3=EkX_lRCXDh%Ltr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ON
zU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU
z1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0qLtr!nMnhmU1V%$(Gz3ONU^E0q
zLtr!nMnhmU1V%$(Gz2IM0nh<GpgYD37#J8p$DTmW0)Uta+4m1&gAUb!upoDYGdQq;
z?{$ZXf%GvlF)%QyF)%RtFfcGiFfcG?FfcHdF)%Pfj>iLC$R1x@l9-$wpPZ2$pO%=J
z!w?^jB$8g5Sd_vLpIVVw!VsU9oReRi$`GHHo?4R35T6D*D}f=txHvg6FAZ*KJi}hl
zVFjRr3z!)$q%trwd`MwnU`owPiO)}q2c4(Ez+0SJkXV#hl3&Ci#LO_Ekb#+DLl#&~
za(+r?UOIzeNq%-}9)lS(!-fKo0XYoJ3<vTU7?_fB<5TmXih|Q~;|mIq1R|Ij4rDVh
zFvC^&6)?ntkF;Q@WoFn=#=y*QA%lULp#kKcq}=$#;^fTCc!*VV84Ggb3(`>q7cnxh
zKol`pCuQa(7FEVGG%<qD(Lgw324exkaz+Lw=)oTGnZ@x8;;G5m@eJn~nHer5F)%P?
zF#KT5&nrtUDv2*HDay=Ck1xrO&&(@f=wo7LSda+vemMg(!-HawUrQL68734nFt9*R
z!`RA{nO71I@y0Hu+{6kfdp}cNYDEdu`A3)-m@-S^%QH(d;!}%?@{1TYFqME#8i{8(
z$;8ZXp$KG0J_7?2*gFhUm<tMW8D=swGd#!#*;xT1QW+T7<8w3OQ!7%FOG{GYGg1>%
zQi~WklNly6rB*QfWP&&d?7?}=>8U00uwz0XE{adiFU>1qSjU{3n3>10nHkA>JD3+F
zZeZNNSdgIbfaw9_1jY@F7Z?i+0ul}|Is{B$Jiyq%cmR}I85mTV7#R3Khgvj%jsRj{
z@PzVNpnOoW;%9{1Y!A`_Iv9tak%8fY5kx)clt>W20Lu3Ooq5B^z%aoAA|D6k8<;})
zg)lx;9(33pSic!Welb+u!5qRr1mz!q>c0l%8(2f+L8ljj^aq$g_{@w93?M!O)ID-g
zet;oF-W19QogV`7j~kS~0cu_tl>fjIqCOMKFR+5}YoPoIQ27Z^egKre5X#>Gb^it^
z{{fVL3d%3AftYsz%Krd$?;S?4ILK+>9R3cC4=!K8O2E<#?4a@niO-M57enLAqVYio
zN=ZY{SCM64U;rK22s(`qBn~=S2%8+pW(9_LENM3$ev%F-)gl)`s4|H1C?0%1476x~
z7bGa6kOBiL1T7ZORYHXekjpDn9iXxXrSw9ThU9ms7+Q$~6$Kd%&d$&>049v3Ad64N
zTKs^Eb>u=LKD7c;YCy6&sN9F}5k(MO38Ex|3nAtBc!&w0U<bPqR9k=!_W=oj%AR<f
p<wrcY_=ra~3%Np~q>4f^R1c9dz{OU4W*($&0+aEO6O|Yk7yvJnYtH}x

literal 0
HcmV?d00001

diff --git a/TP1/executables/check03exe b/TP1/executables/check03exe
new file mode 100755
index 0000000000000000000000000000000000000000..a96f09b7a613d5db169a3f150b1486aa0e1c1624
GIT binary patch
literal 34704
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
F005c4M{ocD

literal 0
HcmV?d00001

diff --git a/TP1/executables/check04exe b/TP1/executables/check04exe
new file mode 100755
index 0000000000000000000000000000000000000000..9f16eda125aa556c45c3a40f9e11b196c7f57bea
GIT binary patch
literal 34704
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
H0|Ns9DiumH

literal 0
HcmV?d00001

diff --git a/TP1/executables/check05exe b/TP1/executables/check05exe
new file mode 100755
index 0000000000000000000000000000000000000000..7b7174df8c4e35bd2c070f6fc78c91d3fa9ece3b
GIT binary patch
literal 34792
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

literal 0
HcmV?d00001

diff --git a/TP1/executables/check06exe b/TP1/executables/check06exe
new file mode 100755
index 0000000000000000000000000000000000000000..0d479968a6872df1c08fd09813f81728240032b7
GIT binary patch
literal 34704
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

literal 0
HcmV?d00001

diff --git a/TP1/executables/check07exe b/TP1/executables/check07exe
new file mode 100755
index 0000000000000000000000000000000000000000..d17c8492afd9827415c1dec5a11238916e3b5a91
GIT binary patch
literal 34704
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

literal 0
HcmV?d00001

diff --git a/TP1/executables/check08exe b/TP1/executables/check08exe
new file mode 100755
index 0000000000000000000000000000000000000000..71e3d29bac12562e9be4976bd820554895ce48b0
GIT binary patch
literal 34704
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

literal 0
HcmV?d00001

diff --git a/TP1/executables/check09exe b/TP1/executables/check09exe
new file mode 100755
index 0000000000000000000000000000000000000000..b22ce4ec6bd1b655dcb6fa72bc3d1a12d0eca6ea
GIT binary patch
literal 34704
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

literal 0
HcmV?d00001

diff --git a/TP1/executables/check10exe b/TP1/executables/check10exe
new file mode 100755
index 0000000000000000000000000000000000000000..fd451191a7357323b0e8a2a4b0bddc2d88ac56ee
GIT binary patch
literal 34704
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
Oo4{l|<WM9A1_l7Ec0N`B

literal 0
HcmV?d00001

diff --git a/TP1/executables/check11exe b/TP1/executables/check11exe
new file mode 100755
index 0000000000000000000000000000000000000000..ace0b68f7932954ad6107a8e6933ee2c166bc237
GIT binary patch
literal 34704
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%0DJWrq(haD<w1X9n;I_@b<`+!-O=ieqFIf0nKmiHO
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
NCgUN8A~7&90079wJFx%&

literal 0
HcmV?d00001

diff --git a/TP1/gradle/wrapper/gradle-wrapper.jar b/TP1/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000000000000000000000000000000000..249e5832f090a2944b7473328c07c9755baa3196
GIT binary patch
literal 60756
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

literal 0
HcmV?d00001

diff --git a/TP1/gradle/wrapper/gradle-wrapper.properties b/TP1/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..16e76d0
--- /dev/null
+++ b/TP1/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Tue Dec 05 18:16:17 CET 2023
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/TP1/gradlew b/TP1/gradlew
new file mode 100755
index 0000000..1b6c787
--- /dev/null
+++ b/TP1/gradlew
@@ -0,0 +1,234 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+##############################################################################
+#
+#   Gradle start up script for POSIX generated by Gradle.
+#
+#   Important for running:
+#
+#   (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+#       noncompliant, but you have some other compliant shell such as ksh or
+#       bash, then to run this script, type that shell name before the whole
+#       command line, like:
+#
+#           ksh Gradle
+#
+#       Busybox and similar reduced shells will NOT work, because this script
+#       requires all of these POSIX shell features:
+#         * functions;
+#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+#         * compound commands having a testable exit status, especially «case»;
+#         * various built-in commands including «command», «set», and «ulimit».
+#
+#   Important for patching:
+#
+#   (2) This script targets any POSIX shell, so it avoids extensions provided
+#       by Bash, Ksh, etc; in particular arrays are avoided.
+#
+#       The "traditional" practice of packing multiple parameters into a
+#       space-separated string is a well documented source of bugs and security
+#       problems, so this is (mostly) avoided, by progressively accumulating
+#       options in "$@", and eventually passing that to Java.
+#
+#       Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+#       and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+#       see the in-line comments for details.
+#
+#       There are tweaks for specific operating systems such as AIX, CygWin,
+#       Darwin, MinGW, and NonStop.
+#
+#   (3) This script is generated from the Groovy template
+#       https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+#       within the Gradle project.
+#
+#       You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+    APP_HOME=${app_path%"${app_path##*/}"}  # leaves a trailing /; empty if no leading path
+    [ -h "$app_path" ]
+do
+    ls=$( ls -ld "$app_path" )
+    link=${ls#*' -> '}
+    case $link in             #(
+      /*)   app_path=$link ;; #(
+      *)    app_path=$APP_HOME$link ;;
+    esac
+done
+
+APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
+
+APP_NAME="Gradle"
+APP_BASE_NAME=${0##*/}
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+    echo "$*"
+} >&2
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in                #(
+  CYGWIN* )         cygwin=true  ;; #(
+  Darwin* )         darwin=true  ;; #(
+  MSYS* | MINGW* )  msys=true    ;; #(
+  NONSTOP* )        nonstop=true ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD=$JAVA_HOME/jre/sh/java
+    else
+        JAVACMD=$JAVA_HOME/bin/java
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD=java
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+    case $MAX_FD in #(
+      max*)
+        MAX_FD=$( ulimit -H -n ) ||
+            warn "Could not query maximum file descriptor limit"
+    esac
+    case $MAX_FD in  #(
+      '' | soft) :;; #(
+      *)
+        ulimit -n "$MAX_FD" ||
+            warn "Could not set maximum file descriptor limit to $MAX_FD"
+    esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+#   * args from the command line
+#   * the main class name
+#   * -classpath
+#   * -D...appname settings
+#   * --module-path (only if needed)
+#   * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+    APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+    CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+    JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    for arg do
+        if
+            case $arg in                                #(
+              -*)   false ;;                            # don't mess with options #(
+              /?*)  t=${arg#/} t=/${t%%/*}              # looks like a POSIX filepath
+                    [ -e "$t" ] ;;                      #(
+              *)    false ;;
+            esac
+        then
+            arg=$( cygpath --path --ignore --mixed "$arg" )
+        fi
+        # Roll the args list around exactly as many times as the number of
+        # args, so each arg winds up back in the position where it started, but
+        # possibly modified.
+        #
+        # NB: a `for` loop captures its iteration list before it begins, so
+        # changing the positional parameters here affects neither the number of
+        # iterations, nor the values presented in `arg`.
+        shift                   # remove old arg
+        set -- "$@" "$arg"      # push replacement arg
+    done
+fi
+
+# Collect all arguments for the java command;
+#   * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
+#     shell script including quotes and variable substitutions, so put them in
+#     double quotes to make sure that they get re-expanded; and
+#   * put everything else in single quotes, so that it's not re-expanded.
+
+set -- \
+        "-Dorg.gradle.appname=$APP_BASE_NAME" \
+        -classpath "$CLASSPATH" \
+        org.gradle.wrapper.GradleWrapperMain \
+        "$@"
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+#   readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+#   set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+        printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+        xargs -n1 |
+        sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+        tr '\n' ' '
+    )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/TP1/gradlew.bat b/TP1/gradlew.bat
new file mode 100644
index 0000000..107acd3
--- /dev/null
+++ b/TP1/gradlew.bat
@@ -0,0 +1,89 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem      https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/TP1/settings.gradle b/TP1/settings.gradle
new file mode 100644
index 0000000..58e9110
--- /dev/null
+++ b/TP1/settings.gradle
@@ -0,0 +1,2 @@
+rootProject.name = 'blackbox'
+
diff --git a/TP1/src/main/java/BlackBox.java b/TP1/src/main/java/BlackBox.java
new file mode 100644
index 0000000..1c0e292
--- /dev/null
+++ b/TP1/src/main/java/BlackBox.java
@@ -0,0 +1,97 @@
+import java.io.IOException;
+import java.nio.file.DirectoryIteratorException;
+import java.nio.file.DirectoryStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+public class BlackBox {
+  private static final String EXECUTABLES_DIRECTORY = "executables";
+  private static final String EXECUTABLE_NAME_PREFIX = "check";
+  private static final String EXECUTABLE_NAME_SUFFIX = "exe";
+  private static final String IMAGES_DIRECTORY = "images";
+  public static final String IMAGES_FILE_SUFFIXES = "ppm,pgm,pbm";
+  public static final String IMAGES_FILE_PREFIX = "test";
+  private final String executablesDirectoryPath;
+  private final String imagesDirectoryPath;
+
+  public static final String ANSI_RED = "\u001B[31m";
+  public static final String ANSI_GREEN = "\u001B[32m";
+  public static final String ANSI_RESET = "\u001B[0m";
+
+  public BlackBox(String executablesDirectoryPath, String imagesDirectoryPath){
+    this.executablesDirectoryPath = executablesDirectoryPath;
+    this.imagesDirectoryPath = imagesDirectoryPath;
+  }
+
+  private List<Path> getImagePaths() throws IOException {
+    return getDirectoryFiles(imagesDirectoryPath, IMAGES_FILE_PREFIX + "*.{" + IMAGES_FILE_SUFFIXES + "}");
+  }
+
+  private List<Path> getExecutablePaths() throws IOException {
+    return getDirectoryFiles(executablesDirectoryPath, EXECUTABLE_NAME_PREFIX + "*" + EXECUTABLE_NAME_SUFFIX);
+  }
+  private List<Path> getDirectoryFiles(String directoryPath, String glob) throws IOException {
+    List<Path> result = new ArrayList<>();
+    try (DirectoryStream<Path> stream = Files.newDirectoryStream(Path.of(directoryPath), glob)) {
+      for (Path entry: stream) {
+        result.add(entry);
+      }
+    } catch (DirectoryIteratorException ex) {
+      throw ex.getCause();
+    }
+    Collections.sort(result);
+    return result;
+  }
+
+  private boolean runTest(String executablePath, String... args) {
+    List<String> command = new ArrayList<>();
+    command.add(executablePath);
+    command.addAll(List.of(args));
+    ProcessBuilder processBuilder = new ProcessBuilder(command);
+    try {
+      Process process = processBuilder.start();
+      return process.waitFor() == 0;
+    }
+    catch (Exception exception){
+      exception.printStackTrace();
+    }
+    return false;
+  }
+
+  public void runTestSuites() throws IOException{
+    for(Path executablePath : getExecutablePaths()) {
+      runTestSuite(executablePath);
+    }
+  }
+
+  private void printTestResult(String text, boolean isSuccessful){
+    String color = isSuccessful ? ANSI_GREEN : ANSI_RED;
+    System.out.println(color + text + ANSI_RESET);
+  }
+
+  private void runTestSuite(Path executablePath) throws IOException {
+    String executableName = executablePath.getFileName().toString();
+    System.out.println("-".repeat(70));
+    System.out.println("Test suite for " + executableName);
+    boolean testSuiteIsSuccessful = true;
+    for (Path imagePath : getImagePaths()) {
+      String imageName = imagePath.getFileName().toString();
+      boolean expected_result = imageName.contains("_Y");
+      boolean actual_result = runTest(executablePath.toString(), imagePath.toString());
+      printTestResult(executableName + " " + imageName + ", expected: "
+              + expected_result + ",\tactual: " + actual_result, actual_result==expected_result);
+      if (actual_result != expected_result) {
+        testSuiteIsSuccessful = false;
+      }
+    }
+    printTestResult("Test suite for " + executableName + " successful: " + testSuiteIsSuccessful,
+            testSuiteIsSuccessful);
+  }
+
+  public static void main(String[] args) throws IOException{
+    new BlackBox(EXECUTABLES_DIRECTORY, IMAGES_DIRECTORY).runTestSuites();
+  }
+}
-- 
GitLab