AGGIORNAMENTO: Ho risolto il mio problema, vi consiglio di leggere il mio commento qui in basso per vedere se la soluzione si può applicare anche al vostro caso.
Anche io ho un problema simile, in pratica mi vengono due risultati diversi se provo ad eseguire il programma a mano (tutto OK) o con il tester (6 errori su 9).
Cercherò di spiegarlo nel modo più chiaro possibile.
Inizialmente per poter controllare più facilmente il funzionamento del mio programma ho deciso di passare alla funzione es3 i parametri necessari in modo manuale, copia-incollandoli dal file test_03.json.
Alla fine sono riuscito a sviluppare un algoritmo in grado di risolvere il problema in maniera corretta al 100%: la tupla restituita dalla funzione es3 contiene esattamente la lista e la stringa che ci si dovrebbe aspettare (rispettivamente expected_lista e expected_parola nel JSON), mentre alla lista passata in input sono stati rimossi tutti gli elementi necessari (corrisponde anche lei a expected_ls). Questo vale per tutti e tre i test cases presenti nel file JSON. In altre parole il programma funziona correttamente in tutti i casi previsti.
Tuttavia nel momento in cui vado ad eseguire il tester (test_03.py) si vengono a generare degli errori: il primo test case (quello 'gatto, cane, topo') passa tranquillamente, mentre i successivi due generano un IndexError che porta ovviamente all'interruzione immediata del test, restituendo di conseguenza 6 errori su 9 test.
È questo che non riesco a spiegarmi: come può lo stesso identico programma terminare in due modi così diversi in base a come viene eseguito?
I valori di input sono esattamente gli stessi, ma l'esecuzione cambia: tutto OK se passo i test cases a mano, 6 errori su 9 se uso il tester. Non posso correggere un programma che a me funziona senza il minimo problema. Se ci fosse veramente un bug allora mi si dovrebbe generare un IndexError in entrambe le situazioni.
Per adesso ho consegnato l'homework per vedere cosa ne pensano i grader ufficiali, ma dubito che il problema si risolva così facilmente.
Qualche idea?