2023-12-21 16:36:03 +01:00
|
|
|
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?
|
|
|
|
|
2024-02-26 20:37:20 +01:00
|
|
|
=> avec ce CLASSPATH ci dessous voici la requette qui correspond:
|
|
|
|
CLASSPATH=".:/usr/share/java/junit.jar:/usr/share/java/hamcrest-core.jar"
|
2023-12-21 16:36:03 +01:00
|
|
|
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.
|
|
|
|
|