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.

Test 09 passa in locale ma non in VM

FlavioFantasia (870 points)
2 7 13
in HW6 by (870 points)

Buongiorno,

avrei una curiosità: ho provato i test in locale e ne passa 13 su 13 in 3 secondi. 

Consegnando il program.py la VM fa tutti i test necessari e mi dice che passo 22 test su 23. I test segreti sono 10 e mi dice che ne ho superati 10, quindi sono andato a vedere nel dettaglio e ho notato che in VM non passo il test 09, mentre in locale lo passo con successo. Sapreste dirmi perché? Grazie mille, allego sotto il pezzo di codice che dice che non passo il test.
 

FAILED test_01.py==Test==test_data_09__9__100____NNRNFNNN____NFRNNLLN____RFFNNLLN____RFRFRNLL____FLRLFNRF____NLLNRFNF____NRNRFFNN____NNNLRLNN___
=========== 1 failed, 12 passed, 10 deselected, 1 warning in 13.53s ============
156 views

2 Answers

AL1990 (28120 points)
3 6 142
by (28.1k points)
Controlla nel log che tipo di errore hai sul test09, può darsi non lo superi per timeout error.

In quel caso devi considerare che sulla VM i tempi di esecuzione sono più alti rispetto ai pc moderni, se vai nella sezione Results, Correttezza, nel Profiling puoi vedere le 20 funzioni/metodi più lenti del tuo programma e capire dove migliorare.
FlavioFantasia (870 points)
2 7 13
by (870 points)
Sì, in effetti va in timeout ma non capisco perché non me lo segnala in locale dato che mi finisce tutti e 10 i test in 3 secondi
AL1990 (28120 points)
3 6 142
by (28.1k points)
Perché il tuo pc ha una potenza di calcolo superiore alla VM e quindi il test non va in timeout, il timeout inoltre è applicato singolarmente ad ogni test.
FlavioFantasia (870 points)
2 7 13
by (870 points)
Chiaro, grazie per la spiegazione
mirko1010 (5560 points)
13 33 60
by (5.6k points)
Da quello che noto fallisci il test  che ha molte N key tra l'altro (anche se non è detto che il maggior carico di timeout sia esso) , il mio suggerimento è quello di verificare e ottimizzare i casi in cui non devi ruotare ,  mettere cio prima di un if ( exec rotation) ottimizza di molto perche andresti a risparmiare calcoli inutili  se sono uguali non devi ruotare ; se hai ruotato almeno 2 volte, idem , non devi farlo una 3 volta