Exercices de programmation "Simple"

Les exercices de programmations dits "Simple" permettent de donner des exercices à des étudiants dans un environnement simplifié. Ces derniers n'éditent qu'un fichier. Ces exercices sont plus simples à créer que des exercices multi-fichiers.

Les exercices simples sont vérifiés grâce à des tests unitaires. L'avantage d'un test unitaire est de fournir un contrôle plus fin qu'un test entrée/sortie.

Il existe trois manière d'écrire ces tests unitaires :

  1. Le format pytest. Chaque fonction dont le nom commence par test_ sera executé automatiquement (en cours)
  2. L'utilisation de la classe AnswerTester qui permet de faire certaines vérification plus fines
  3. Un mélange des deux

Utilisation de la classe AnswerTester

La classe AnswerTester fournit des méthode pour écrire des assertions et tester les codes des étudiants.

Elle possède les méthodes suivantes :

add_assert

La méthode add_assert permet de tester une assertion arbitraire. L'expression passée doit simplement évaluer à True ou False.
La seconde option avec la fonction lambda permet d'éviter une erreur si la variable testée n'a pas été crée par l'étudiant

compare_variables

la fonction compare_variable permet de vérifier qu'une variable a une valeur donnée.

was_function_called_with

Cette assertion permet de vérifier qu'une fonction spécifique a été utilisé par l'étudiant avec des paramètres spécifiques. Utile pour tester l'usage de fonction tierces qui n'ont pas de retour (model.fit, plt.plot ,etc.)

Le code suivant vérifier que l'étudiant a bien appelé la fonction print avec un argument valant 2