Test programma *Risolto*

P
Pasqualino96 (1490 points)
3 17 27
asked Nov 4, 2020 in HW2 obbligatorio by Pasqualino96 (1,490 points)
edited Nov 4, 2020 by Pasqualino96
Ciao Ragazzi, ho un disperato bisogno di aiuto!!

Allora, il mio problema è questo: sono riuscito a creare finalmente un programma di scarabeo per l'HW2 funzionante in tutti i casi (ho testato manualmente i casi importando le liste di test a mano dal file json del prof) però non riesco a fargli passare i test, non capisco esattamente cosa vuole. Potreste darmi una mano a risolvere sta cosa? Non vorrei ritrovarmi con un programma che non è stato valutato per sta cosa.

grazie
267 views

6 Answers

Fabioerpini (7970 points)
6 10 27
answered Nov 4, 2020 by Fabioerpini (7,970 points)
Ciao, la funzione ex1 deve restituire la lista di punteggi finale. Ricorda che deve essere una lista di valori interi
P
Pasqualino96 (1490 points)
3 17 27
commented Nov 4, 2020 by Pasqualino96 (1,490 points)
Si, la funzione restituisce i valori finali corretti, però non riesco a capire come far passare i test del prof al programma. Ad esempio, in questo momento da pytest mi da come errore "AssertionError", ma non riesco a correggerlo
a
alessandro.bellia (930 points)
0 2 12
commented Nov 4, 2020 by alessandro.bellia (930 points)
Ti confermo che non stai restituendo una LISTA di interi.
AdSum (16290 points)
9 20 134
commented Nov 4, 2020 by AdSum (16,290 points)
AssertionError te lo da quando dai i valori errati ma nella forma corretta. Nel suo caso sta restituendo una lista ma con i valori errati.
a
alessandro.bellia (930 points)
0 2 12
commented Nov 4, 2020 by alessandro.bellia (930 points)
In realtà te lo dà anche quando dai valori giusti nella forma errata (esempio, degli interi non in lista), l'ho appena provato a ricreare sul mio e mi ha dato lo stesso errore.

l'errore cita
AssertionError: <class 'tuple'> != <class 'list'> : The output type should be: list

e penso sia lo stesso di OP
AdSum (16290 points)
9 20 134
commented Nov 4, 2020 by AdSum (16,290 points)
Strano, in quel caso dovrebbe essere ValueError
P
Pasqualino96 (1490 points)
3 17 27
commented Nov 4, 2020 by Pasqualino96 (1,490 points)
Si, è lo stesso errore. Ho appena provato a modificare il programma e adesso ne passa 8 su 17
a
alessandro.bellia (930 points)
0 2 12
answered Nov 4, 2020 by alessandro.bellia (930 points)
edited Nov 4, 2020 by alessandro.bellia
potrebbe essere che tu non stia restituendo una lista, assicurati di mettere le parentesi giuste sul retrun :]
M
MatteoRinaldi (440 points)
0 0 4
answered Nov 4, 2020 by MatteoRinaldi (440 points)
Non è semplice capire quale sia il problema dalla domanda. In ogni caso, sei certo che il risultato che torni sia una lista di interi?
P
Pasqualino96 (1490 points)
3 17 27
commented Nov 4, 2020 by Pasqualino96 (1,490 points)
Io il return ho semplicemente scritto cosi:

return punti1 - dim_hand1 * 3, punti2 - dim_hand2 * 3, punti3 - dim_hand3 * 3, punti4 - dim_hand4 * 3

e lui alla fine dell'esecuzione ritorna i valori giusti. Per quanto ho capito da quello che mi avete scritto dovrebbe ritornare una lista con all'interno i risultati? Se si, come posso codificare sta cosa?
C
ChristianSt (1790 points)
3 9 25
commented Nov 4, 2020 by ChristianSt (1,790 points)
devi mettere i risultati tra parentesi quadrate return [*operazioni che hai descritto sopra*]
AdSum (16290 points)
9 20 134
answered Nov 4, 2020 by AdSum (16,290 points)
edited Nov 4, 2020 by AdSum

Buongiorno, senza specificare il problema non è possibile aiutarti. Non ti passa i test sul tuo pc (test.py) o  i test una volta caricati su q2a? Che tipo di errore ti da? Timeout, valueerror ecc? (se non sei sicuro, rispondimi copiando il "corpo" dell'errore, dovrebbe bastare per capire il problema)

EDIT:

Leggendo la tua risposta ad un altro commento ho compreso che il tuo problema è il valore restituito. Tu resistuisci si una lista con i punteggi finali, ma questi ultimi non sono corretti.

EDIT 2:

Prova a cambiare

return punti1 - dim_hand1 * 3, punti2 - dim_hand2 * 3, punti3 - dim_hand3 * 3, punti4 - dim_hand4 * 3

con

return [punti1 - dim_hand1 * 3, punti2 - dim_hand2 * 3, punti3 - dim_hand3 * 3, punti4 - dim_hand4 * 3]

senza le [ ] la trasforma in una tupla, quando invece è richiesta una lista

andrea.sterbini (172780 points)
513 935 1789
answered Nov 4, 2020 by andrea.sterbini (172,780 points)
Se è quello che hai consegnato ti faccio una domanda: perchè usi assert male e generi tu stesso delle eccezioni?
P
Pasqualino96 (1490 points)
3 17 27
commented Nov 4, 2020 by Pasqualino96 (1,490 points)
Pensavo fossero necessarie per poter passare il test, poi in secondo momento ho capito che si trattava di un errore al ritorno della funzione che richiedeva di passare i risultati in una lista
Loriv3 (7970 points)
10 20 84
answered Nov 4, 2020 by Loriv3 (7,970 points)
Hai restituito il tipo di valore sbagliato, controllando ho visto che ti hanno dato in molti lo stesso consiglio
P
Pasqualino96 (1490 points)
3 17 27
commented Nov 4, 2020 by Pasqualino96 (1,490 points)
Infatti ho risolto così e sono riuscito a consegnare qualcosa