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.

[AVVISO] Completati i test aggiuntivi sullo HW2obb

andrea.sterbini (207940 points)
756 1270 2377
in Avvisi by (208k points)
closed by

Ho ri-eseguito i test aggiuntivi sullo HW2obb ed aggiornato la classifica.

  • come già detto, ho rimesso il timeout a 1.5 secondo com'era originariamente
  • per due studenti nasce un INTERNALERROR che impedisce il completamento dei test. Li rifarò in seguito.
  • I 3 test aggiuntivi sono tre istanze abbastanza piccole (solo 1000 concorrenti e max 2000 azioni):

    def test_segreto_1(self):
        '''Istanza con N=1000 concorrenti.
        Senza alcun sorpasso i piloti abbandonano uno dopo
        l'altro a partire da quello in ultima posizione e resta il primo.
        la funzione deve restituire la lista [1]
        '''
        n=1000
        lista2=list(range(1,n+1))
        lista1=[f'e{i}' for i in range(n,1,-1)]
        return self.do_test(lista1,lista2, [1])

    def test_segreto_2(self):
        '''Istanza con N=1000 concorrenti.  Dopo N-2 abbandoni dal penultimo al secondo, si scambiano N volte l'ultimo e il primo '''
        n=1000
        lista2=list(range(1,n+1))
        lista1=[f'e{i}' for i in range(n-1,1,-1)] + [f's{n}' if i%2 else 's1' for i in range(n)]
        return self.do_test(lista1,lista2, [1,n])

    @file_data("test_segreto.json") # file finalmente corretto
    def test_segreto_3(self, azioni, concorrenti, expected):
        '''Istanza con 1008 concorrenti.  Dopo 900 abbandoni casuali, si fanno 1000 sorpassi a caso.  '''
        return self.do_test(azioni, concorrenti, expected)

798 views
closed with the note: risolto

1 Answer

z
zanna (510 points)
1 1 6
by (510 points)
Buonasera professore. Dopo l'aggiunta dei test segreti c'è un test per cui il mio programma dà un Key Error. L'unico caso in cui credo possa darlo è quando un evento sorpasso ha l'id di un pilota eliminato in precedenza. Possibile che nella creazione del test randomico ci sia questa eventualità? È un mio errore eliminare dalla struttura dati i piloti eliminati?
Grazie e scusi il disturbo.
AndreaGasparini (18850 points)
7 12 120
by (18.9k points)
Sembra anche a me che l'errore sia dovuto ad un evento di sorpasso su un pilota precedentemente eliminato, ma avevo capito che questo tipo di "errori" nell'input non dovessero essere gestiti dal nostro programma.
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
edited by

Mi pareva di aver costruito il test in modo da evitare questa eventualità.
Controllo il file e se necessario lo aggiorno e rifaccio tutti i test a tutti.

Edit: effettivamente ci sono due cancellazioni dello stesso concorrente 200

Edit: Ho rigenerato il file, rifaccio i dannati test. Stay tuned.

LucianoBlasetti (800 points)
2 2 6
by (800 points)

Anche a me da un errore il terzo test segreto 

Christian (15220 points)
3 4 77
by (15.2k points)
Io nel terzo vado in timeout, spero di andare in loop in qualche punto a causa della doppia eliminazione... (la speranza è l'ultima a morire )
z
zanna (510 points)
1 1 6
by (510 points)
Grazie mille professore!
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)
Ora mi sembra che i test siano a posto
AndreaGasparini (18850 points)
7 12 120
by (18.9k points)
Confermo, grazie professore
LucianoBlasetti (800 points)
2 2 6
by (800 points)

tutto ok,  thx 1000 e buona domenica! 

j
juanjozo (680 points)
4 6 8
by (680 points)
A me non passa il test 2 segreto, ma non capisco il perchè. Da' errore di "None type non subscriptable", ma tutto il resto dei test (tranne il 5 per timeout) li passa senza alcun errore. Ho visto che ci sono anche altri alunni con il mio stesso problema.
Christian (15220 points)
3 4 77
by (15.2k points)
Confermo che anche per me è tornato tutto ok, grazie!
andrea.sterbini (207940 points)
756 1270 2377
by (208k points)

juanjozo mi sa che non controlli un None nella variabile neutroposl per cui hai errore nel leggere il secondo valore

neutroposl[1]