Do you need any help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2021-22 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 2021-22 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.

VIDEOLEZIONI DEL CORSO DI FONDAMENTI DI PROGRAMMAZIONE AA20-21

PROGRAMMING COURSE VIDEOCONFERENCES AY20-21

Errore: Test.test_many_zeros_1000 ed Errori Vari [HW1Opz]

G
Giordano_Dionisi (3100 points)
12 38 58
asked Oct 15, 2020 in HW1 opzionale by Giordano_Dionisi (3,100 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
417 views

2 Answers

R
Raffaele (3850 points)
10 24 48
answered Oct 15, 2020 by Raffaele (3,850 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)
12 38 58
commented Oct 15, 2020 by Giordano_Dionisi (3,100 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)
10 24 48
commented Oct 15, 2020 by Raffaele (3,850 points)
Di nulla, buon divertimento ;)
andrea.sterbini (172680 points)
511 927 1776
answered Oct 15, 2020 by andrea.sterbini (172,680 points)
per avere l'opzione --timeout devi installare pytest-timeout
G
Giordano_Dionisi (3100 points)
12 38 58
commented Oct 15, 2020 by Giordano_Dionisi (3,100 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