[Python] Exercism.io test: Assetion Error

2020-08-22 Per discussione Simone Giuri
Ciao a tutti.

Sto risolvendo alcuni degli esercizi proposti su exercism, ma nonostante in
apparenza i risultati siano corretti, la sessione di test proposta mi
restituisce comunque un assertion error su molti dei test condotti (17 su
38).
L''esercisio è rational-numbers e sia la soluzione che la sesisone di test
è pubblicata al link:
https://exercism.io/tracks/python/exercises/rational-numbers/solutions/3b67ca1690e246e8bcbbee407703c2a5


Se testo i due risultati con un "==" il risultato è True... ma
probabilmente c'è qualche cosa che mi sfugge...

Gli errori sembrano concentrati nelle funzioni  e test che prevedono un
cambio del segno, forse nel metodo __repr__

Il risultato dalla shell è questo:

 >>>...
.F.F..F..F.F.FF.FFF.FF.F..
==
FAIL:
test_absolute_value_of_a_negative_rational_number_with_negative_denominator
(__main__.RationalNumbersTest)
--
Traceback (most recent call last):
  File
"C:/Users/simon/Exercism/python/rational-numbers/rational_numbers_test.py",
line 91, in
test_absolute_value_of_a_negative_rational_number_with_negative_denominator
self.assertEqual(abs(Rational(1, -2)), Rational(1, 2))
AssertionError: 1/2 != 1/2
[...]


Cosa sto trascurando ?

Grazie a tutti!

-- 
_Ai sensi del Regolamento Europeo 679/2016 si precisa che le informazioni 
trasmesse sono intese soltanto per la persona o l'ente cui sono indirizzate 
e possono avere contenuto confidenziale e/o riservato. La visione, la 
trasmissione, la diffusione o altro uso delle informazioni di cui sopra è 
proibita a chiunque ad esclusione del legittimo destinatario Se avete 
ricevuto queste informazioni per errore, siete pregati di contattare il 
mittente e cancellare il materiale ricevuto._
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Dubbio su name space / variabili globali

2020-08-22 Per discussione Valerio Pachera
Il giorno ven 21 ago 2020 alle ore 21:33 Pietro Brunetti <
gunzap...@gmail.com> ha scritto:

> Non sto a sindacare, ogni linguaggio fa delle scelte. Ma se ci pensi anche
> la scelta di Python ha una sua logica. Ti impedisce di avere delle funzioni
> con side effect difficili da debuggare.
>
> Immagina un codice pieno di funzioni che modifichino variabili esterne al
> loro scopo. Come trovi un eventuale errore senza dare di matto?
>

Sono pienamente d'accordo.
Io avrei impedito anche la lettura delle variabili del global scope
all'interno di una funzione se non dichiarata come global.
La regola invece è: lettura si, scrittura no.
Anche a mia è solo una considerazione.
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python


Re: [Python] Exercism.io test: Assetion Error

2020-08-22 Per discussione Carlo Miron
Ciao Simone

Il giorno sab 22 ago 2020 alle ore 10:13 Simone Giuri
 ha scritto:
> Sto risolvendo alcuni degli esercizi proposti su exercism, ma nonostante in 
> apparenza i risultati siano corretti, la sessione di test proposta mi 
> restituisce comunque un assertion error su molti dei test condotti (17 su 38).
> L''esercisio è rational-numbers e sia la soluzione che la sesisone di test è 
> pubblicata al link: 
> https://exercism.io/tracks/python/exercises/rational-numbers/solutions/3b67ca1690e246e8bcbbee407703c2a5
> Se testo i due risultati con un "==" il risultato è True... ma probabilmente 
> c'è qualche cosa che mi sfugge...
> Gli errori sembrano concentrati nelle funzioni  e test che prevedono un 
> cambio del segno, forse nel metodo __repr__
> [...]
> Cosa sto trascurando ?

Ci sono 3 piccoli errori, nella tua classe. Il primo è che normalizzi
i valori, semplificando con `gcd` solo su `__repr__`; pertanto
*visualizzi* il numero in forma normalizzata, ma non lo *memorizzi*
come tale. Io applicherei la normalizzazione direttamente su
`__init__`. E ricorda di normalizzare anche il segno!
Del terzo problema hai individuato correttamente la causa, il cambio
di segno, ma non la soluzione: non è `__repr__` ad essere sbagliato,
ma `__abs__`.

Buon lavoro,
㎝

--
 THE -WARE LICENSE (Revision ㊷):
 wrote this 📧. As long as you retain this notice you can
do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a in return. — Carlo
___
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python