bug dans cinquiemes/statistiques.py

Les propositions de correctifs ou d'exercices pour Pyromaths.

Modérateur : Développeurs

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

bug dans cinquiemes/statistiques.py

Message par djinn » 10 avr. 2013, 19:00

Salut à tous,

Je me suis mis dans l'idée de déplacer le code du package python pyromaths, jusqu'ici situé dans src/, dans un dossier nommé pyromaths (en fait: src/pyromaths/) afin de respecter le standard python, de débarrasser le code de quelques hacks disgracieux destinés à panser les conséquences de cette non-conformité, et surtout de satisfaire mon IDE (Eclipse) dont les multiples soulignements rouges (synonymes d'erreur) m'agacent au plus haut point -- et viennent brouiller ma détection des "vraies" erreurs.
J'aime le code propre et carré, et oui, vous pouvez me traiter de psychorigide…

Bref, me voilà en train d'adapter le code de scripts/, d'autant plus consciencieusement qu'on a alerté mon attention sur le fait que le principal obstacle dans ce projet serait le packaging cross-platform (linux/win32/osX), et de vérifier que je n'ai rien cassé…
Tout se passe pour le mieux et j'en suis au script test_creation_fichiers_tex.py, qui m'avait l'air de tourner correctement… jusqu'à l'erreur suivante:
(...)
Test n° 131
Test n° 132
Traceback (most recent call last):
  File "./test_creation_fichiers_tex.py", line 75, in <module>
  File "/home/olivier/dev/pyromaths/src/pyromaths/outils/System.py", line 167, in creation
    fonction[exercice[0]].main(exercice[1], f0, f1)
  File "/home/olivier/dev/pyromaths/src/pyromaths/cinquiemes/cinquiemes.py", line 39, in main
    write(f0, f1, modules[exo]())
  File "/home/olivier/dev/pyromaths/src/pyromaths/cinquiemes/statistiques.py", line 672, in statistiques
    exo_vote()
  File "/home/olivier/dev/pyromaths/src/pyromaths/cinquiemes/statistiques.py", line 525, in exo_vote
    freq1 = 4*random.randint(1,25-eff1-eff2)
  File "/usr/lib/python2.7/random.py", line 241, in randint
    return self.randrange(a, b+1)
  File "/usr/lib/python2.7/random.py", line 217, in randrange
    raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width)
ValueError: empty range for randrange() (1,1, 0)
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/apport_python_hook.py", line 68, in apport_excepthook
    binary = os.path.realpath(os.path.join(os.getcwd(), sys.argv[0]))
OSError: [Errno 2] No such file or directory

Original exception was:
Traceback (most recent call last):
  File "./test_creation_fichiers_tex.py", line 75, in <module>
  File "/home/olivier/dev/pyromaths/src/pyromaths/outils/System.py", line 167, in creation
    fonction[exercice[0]].main(exercice[1], f0, f1)
  File "/home/olivier/dev/pyromaths/src/pyromaths/cinquiemes/cinquiemes.py", line 39, in main
    write(f0, f1, modules[exo]())
  File "/home/olivier/dev/pyromaths/src/pyromaths/cinquiemes/statistiques.py", line 672, in statistiques
    exo_vote()
  File "/home/olivier/dev/pyromaths/src/pyromaths/cinquiemes/statistiques.py", line 525, in exo_vote
    freq1 = 4*random.randint(1,25-eff1-eff2)
  File "/usr/lib/python2.7/random.py", line 241, in randint
    return self.randrange(a, b+1)
  File "/usr/lib/python2.7/random.py", line 217, in randrange
    raise ValueError, "empty range for randrange() (%d,%d, %d)" % (istart, istop, width)
ValueError: empty range for randrange() (1,1, 0)
«Damn! Les emmerdes commencent» me dis-je… :(
Je me penche donc à reculons sur le bout de code en question, que voilà (cinquiemes/statistiques.py:523):
eff1 = random.randint(1,15)
eff2 = random.randint(1,25-eff1)
freq1 = 4*random.randint(1,25-eff1-eff2)
Et en effet: bug («ouf!»).
randint(a,b) retourne un entier x tel que a<=x<=b. Du coup, une fois sur 150 en moyenne, on a:
eff1 = 15
eff2 = 10
freq1 = 4*randint(1, 0)   # 25-15-10=0
N'est-ce pas, Arnaud? ;-)
Dernière modification par djinn le 11 avr. 2013, 09:29, modifié 2 fois.

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

Re: bug dans cinquiemes/statistiques.py

Message par Jérôme » 10 avr. 2013, 20:25

djinn a écrit :N'est-ce pas, Arnaud? ;-)
:mrgreen: Merci pour le moment de rigolade :D
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: bug dans cinquiemes/statistiques.py

Message par djinn » 10 avr. 2013, 20:35

Jérôme a écrit : :mrgreen: Merci pour le moment de rigolade :D
"git blame" never forgets! :lol:

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: bug dans cinquiemes/statistiques.py

Message par Arnaud » 10 avr. 2013, 22:50

J'ai jamais été très fort en soustraction, faudrait que je prenne du temps pour refaire des maths un jour.
T'as corrigé ou pas ?
Sinon je m'en occupe ce week-end ;)

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: bug dans cinquiemes/statistiques.py

Message par djinn » 10 avr. 2013, 23:05

En fait, je n'ai pas cherché à comprendre le contexte de l'exercice, j'étais juste soulagé de voir que mes bidouillages n'étaient pas en cause! :-p
Pour éviter que je fasse des bêtises, il vaut probablement mieux que je te laisse gérer…

PS: Quelle galère ce packaging

Avatar de l’utilisateur
Arnaud
Critique officiel de pyromaths
Messages : 609
Inscription : 26 août 2006, 21:49
Localisation : Allemagne
Contact :

Re: bug dans cinquiemes/statistiques.py

Message par Arnaud » 13 avr. 2013, 15:32

Avec trois séries de 500 exos de vote sans problème, je pense qu'on peut dire "corrigé".
djinn a écrit :PS: Quelle galère ce packaging
Je pense qu'il y a encore pire qui nous attend, mais pas pour tout de suite.

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

Re: bug dans cinquiemes/statistiques.py

Message par Jérôme » 13 avr. 2013, 20:12

djinn a écrit :PS: Quelle galère ce packaging
Ah non. Il ne fallait pas lancer Arnaud la dessus ! :lol:
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

Avatar de l’utilisateur
djinn
Messages : 183
Inscription : 03 mars 2013, 10:38

Re: bug dans cinquiemes/statistiques.py

Message par djinn » 15 avr. 2013, 15:45

Arnaud a écrit :Je pense qu'il y a encore pire qui nous attend, mais pas pour tout de suite.
Tu en as trop dit ou pas assez! ;)
À quoi penses-tu?

Répondre