Des tests de non régression pour les exercices

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur : Développeurs

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: Des tests de non régression pour les exercices

Message par spalax » 07 janv. 2015, 12:04

Jérôme a écrit :
spalax a écrit :C'est normal : les autres exercices n'ont pas d'attribut *description*. Ils ne sont donc pas inclus dans pyromaths (l'interface graphique ne les affiche pas), et ne sont pas non plus pris en compte par l'outil de test.
Je me suis mal exprimé. Je voulais dire qu'il ne me créait pas les tests des niveaux 6e, 5e, 4e, ... Seulement les deux exercices de 1reS.
Pour le moment, ça ne fonctionne qu'avec les nouveaux exercices (ceux de type TexExercise), mais pas avec l'ancien format. Si ça se trouve, ça n'est pas très compliqué d'inclure ça. À voir.

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Des tests de non régression pour les exercices

Message par Jérôme » 07 janv. 2015, 16:30

spalax a écrit :Pour le moment, ça ne fonctionne qu'avec les nouveaux exercices (ceux de type TexExercise), mais pas avec l'ancien format.
OK. Si c'était possible d'intégrer l'ancien format, ce serait un plus indéniable.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: Des tests de non régression pour les exercices

Message par spalax » 14 janv. 2015, 12:55

Bonjour,
en ce qui concerne les tests pour l'ancien format d'exercices, je n'y ai pas touché. Pour ton bug (le test d'un exercice tout juste créé ne fonctionnait pas), deux problèmes :
  • Un problème d'unicode que j'ai corrigé et pushé.
  • Un problème d'aléatoire : dans le fichier SecondDegre.py, à la ligne 234, un appel est fait à une fonction aléatoire. J'avais dans la tête (mais j'ai surinterprété ça) qu'aucun appel aux fonctions aléatoires ne se faisait dans les méthodes tex_statement et tex_answer. Donc soit on confirme ma pensée, et on interdit cela, soit on l'autorise, et il faut revoir le code (je pense qu'interdire le hasard dans tex_statement et tex_answer est de loin le plus simple).
Autre problème rencontré : Dans l'interface graphique, l'aperçu affiché pour l'exercice "Sd. 1 - Forme canonique" n'est pas bon : c'est une illustration en rapport avec des vecteurs. Du coup, j'ai une question : y a-t-il une raison pour laquelle les exercices sont numérotés de manière « implicite » (ou alors je n'ai pas vu où c'était explicité) ? Je trouve que cela obscurcit le code. Ce à quoi j'aurais pensé est :
  • un attribut de chaque exercice sous la forme "lycee/mon_illustration.png" qui indique le chemin de l'illustration, relative à un dossier de données (ou plus simplement "mon_illustration.png", si on suppose que l'arborescence du répertoire de données est le même que le répertoire des exercices).
  • chaque illustration est nommée fichier.exercice.png : par exemple, l'illustration de l'exercice "Sd1FormeCanonique" du module "SecondDegre" se trouve dans le fichier "SecondDegre.Sd1FormeCanonique.png".
Qu'en pensez-vous ?

-- Louis

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1083
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Des tests de non régression pour les exercices

Message par Jérôme » 14 janv. 2015, 16:51

Bonjour,
spalax a écrit :Donc soit on confirme ma pensée, et on interdit cela, soit on l'autorise, et il faut revoir le code (je pense qu'interdire le hasard dans tex_statement et tex_answer est de loin le plus simple).
En effet, il me semblerait plus logique, dans l'esprit de tex_statement et tex_answer, que tout ce qui est aléatoire se fasse avant, dans le init, ces deux fonctions ayant pour unique but de mettre en forme ce qui a été initié. Je corrigerai cela très prochainement.
spalax a écrit :Dans l'interface graphique, l'aperçu affiché pour l'exercice "Sd. 1 - Forme canonique" n'est pas bon
C'est normal, je n'ai pas encore créé les vignettes des nouveaux exercices. Il manque donc quelques vignettes. Cela sera fait juste avant publication.
spalax a écrit :Je trouve que cela obscurcit le code. Ce à quoi j'aurais pensé est :

un attribut de chaque exercice sous la forme "lycee/mon_illustration.png" qui indique le chemin de l'illustration, relative à un dossier de données (ou plus simplement "mon_illustration.png", si on suppose que l'arborescence du répertoire de données est le même que le répertoire des exercices).
chaque illustration est nommée fichier.exercice.png : par exemple, l'illustration de l'exercice "Sd1FormeCanonique" du module "SecondDegre" se trouve dans le fichier "SecondDegre.Sd1FormeCanonique.png".
Dans l'absolu, c'est une bonne idée. Maintenant, c'est plus difficile à coder. Si tu as du temps pour modifier cela, pas de soucis, bien au contraire. Ce serait plus lisible. En ce qui me concerne, j'ai plus envie de passer le trop peu de temps que j'ai à créer des exercices. j'ai des tas d'idée pour le lycée :)

Bonne journée.
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: Des tests de non régression pour les exercices

Message par spalax » 17 janv. 2015, 20:01

Les vieux exercices sont maintenant aussi testés. J'en ai ajouté quelques un pour vérifier que ça fonctionnait. C'est dans la branche *unittest*, et je l'y laisse là pour le moment : j'ai modifié des noms de classe. J'ai fait attention, mais il y a quand même un risque que j'ai cassé des choses, notamment pour la version web que je n'ai pas testé.

Pour les vignettes, je marque ça à ma todo liste non urgente. Moi aussi, j'ai des tas d'exercices en tête pour mes lycéens, mais j'avoue que je n'ai pas encore vraiment eu le courage de mettre vraiment le nez dans ce code là…

Répondre