Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Errore: Test.test_many_zeros_1000 ed Errori Vari [HW1Opz]

G
Giordano_Dionisi (3100 points)
16 41 59
in HW1 opzionale by (3.1k points)

Salve a tutti,

Non so se sia un problema solo mio o se sia generalizzato, però vi espongo il mio piccolo problemino:

Ho risolto l'HW1Opz e passa 15 test su 16, ovvero tutti i test tranne: Test.test_many_zeros_1000, nel quale compare questa schermata su Anaconda Prompt: 

test_01.py:26: in do_test
    self.assertEqual(result, expected,
E   AssertionError: 500 != 250000 : The return value is incorrect
E   [Il valore di ritorno è errato]

Allora sembra come se il valore di ritorno sia sbagliato, solo che ho aperto il file test_01.json, dove ci sono 13 tests differenti e li ho eseguiti tutti quanti e tutti danno il risultato corretto. 

Quindi non so se magari sia un problema del mio programma oppure del test o di qualcosa del genere, però so solo che il test mi da questo problema (anche se tutti gli altri test vanno benissimo, quindi per questo ho qualche dubbio, anche perchè se faccio tutti i test "a mano", quelli del file json, tutto riesce perfettamente)

Tra l'altro ho questi due warnings che non riesco bene ad interpretare (sto ancora alle prime armi con il Python) e non so da cosa siano dovuti:

..\..\..\anaconda3\lib\site-packages\pyreadline\py3k_compat.py:8
  C:\Users\Utente\anaconda3\lib\site-packages\pyreadline\py3k_compat.py:8: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working
    return isinstance(x, collections.Callable)

..\..\..\anaconda3\lib\site-packages\win32\lib\pywintypes.py:2
  C:\Users\Utente\anaconda3\lib\site-packages\win32\lib\pywintypes.py:2: DeprecationWarning: the imp module is deprecated in favour of importlib; see the module's documentation for alternative uses
    import imp, sys, os

Infine vorrei chiedervi un'ultima curiosità: Il comando 

  • pytest test_01.py -v -rA
Mi funziona benissimo su Anaconda Prompt (mi faceva vedere pure quando andavo in timeout), però ho un problema con i comandi: 
  • pytest test_01.py -v -rA --timeout 1 --durations 0
  • pytest test_01.py -v -rA --timeout 1 --profile
In quanto Anaconda mi dice che:
ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --timeout 1
  inifile: None
  rootdir: C:\Users\Utente\Desktop\Homework Fondamenti di Programmazione\HW1opz
Quindi sembra come se non avessi installato le varie librerie, ma proprio ieri mi sono messo ad installare tutte le varie librerie (non so se magari sia qualche altro problema) e le ho pure aggiornata con il comando
  • conda update --all
Mi scuso se in un solo post ho messo più argomenti insieme, ma lo ho fatto per non generare troppi post e disperdere troppo le discussioni, nel caso li riedito in più post
Grazie mille per la pazienza e per la cortesia e buona gioranta
655 views

2 Answers

R
Raffaele (3850 points)
16 27 49
by (3.9k points)
La stringa che ti dà errore è quella composta da 499 zeri + "1"+"1" + altri 499 zeri, la stringa in questione la trovi direttamente nel file test_01.py, non nel file json, tra la riga 42 e 47.

P.s. Per risolvere il caso int_sequbtotal = "somma di tutti i valori nella lista", con n zeri all'inizio e alla fine, io ho usato una piccola formula matematica di calcolo combinatorio.
G
Giordano_Dionisi (3100 points)
16 41 59
by (3.1k points)
Ahhhh okay okay per questo problema (quindi il primo che ho postato) ora ho capito perchè non funziona, almeno si ha che un problema è proprio che io ciclo fino alla fine della sequenza e non torno indietro, quindi, in pratica, non scorre l'indice di inizio sequenza (visto che la sequenza termina con zeri).. Non so se mi sono spiegato, però almeno questo problema lo ho capito, ora vedo se riesco a risolverlo!!

Grazie mille !!!
R
Raffaele (3850 points)
16 27 49
by (3.9k points)
Di nulla, buon divertimento ;)
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
per avere l'opzione --timeout devi installare pytest-timeout
G
Giordano_Dionisi (3100 points)
16 41 59
by (3.1k points)

Consideri prof che lo ho fatto e ho anche aggiornato però mi rimanda a questo errore:

ERROR: usage: pytest [options] [file_or_dir] [file_or_dir] [...]
pytest: error: unrecognized arguments: --timeout 1
  inifile: None
  rootdir: C:\Users\Utente\Desktop\Homework Fondamenti di Programmazione\HW1opz

Ma alla fine non è così malvagio perchè se uso il comando:

  • pytest test_01.py -v -rA
alla fine mi dice pure i vari timeout, quindi alla fine per questo problema ho risolto in questo modo, quel comando mi dice tutti i problemi possibili