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.

Immagini uguali ma diverse per i test

L
Lorespo (610 points)
0 14 17
in Es3 by (610 points)
recategorized by
Quando vado a fare i test ottengo l'errore images differ, starting at coordinates 36,3 (colors: (0, 0, 0) != (255, 255, 255)) , ma quando vado a generare l'immagine per conto mio il pixel 36,3 è bianco. Inoltre confrontando l'immagine ottenuta dalla funzione es3 con i png dei risultati sono identici

Edit: mi correggo: quando salvo manualmente l'immagine è uguale alla risposta del test ma quelle generate da test3.py posizionano i figli fuori dall'imagine (ho messo dei blocchi try except per evitare che vada fuori range); succede su tutti i test tranne il primo
469 views

2 Answers

K
Khalester (3310 points)
2 5 24
by (3.3k points)
edited by

Anche a me capita un errore simile, se non identico: nel test 8, se runno il tester mi crea un immagine diversa da quella aspettata, mentre se la creo mettendo un nome a scelta, crea quella esatta.

'''a = immagini.load("es3_test8.png")

b = immagini.load("es3_risTest8.png")

p = es3("dirs","mio_risultato.png")

c = immagini.load("mio_risultato.png")

b == a
Out[295]: False

b == c
Out[296]: True'''

*insert "room guardian" here*

EDIT: che poi col vecchio zip fallivo il primo e l'ultimo test, con quello nuovo solo l'ultimo test ("dirs")

EDIT Pt2: pensavo fosse un errore dello zip così ho uploaddato, ma nulla, anche sulla WM lo stesso errore. HELP!

HO TROVATO LA SOLUZIONE!

Molto probabilmente usi delle variabili nella classe Nodo ma variabili generali della classe Nodo, ovvero delle variabili fuori dall'init. Praticamente quello che succede è che la classe Nodo e tutte le sue variabili, permangono anche nei test successivi, quindi per fixare, la classe Nodo si dovrebbe resettare a ogni test!

andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Infatti hai usato degli attributi di classe che vengono condivisi tra tutte le istanze.
andrea.sterbini (207920 points)
750 1267 2373
by (208k points)
Controlla se hai usato parametri di default inizializzati con un oggetto mutabile (dizionario/set/lista)
Viene condiviso tra tutte le chiamate generando errori difficilmente individuabili

(spiegherebbe perchè il primo test passa e i seguenti no)