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.

Ricorsione non presente

nick98 (700 points)
4 12 14
in HW8 obbligatorio by (700 points)
closed by
ciao a tutti, sono riuscito finalmente a risolvere il problema del homework trovando tutti i segreti ed ottendo la lista finale correttamente. L unico problema è che il test mi dice che la ricorsione non è presente nonostante la mia funzione non sia definita all interno di un altra funzione e io ottenga i segreti solo tramite questa funzione ricorsiva, comunque mi da questo errore cosa può essere?

'''

self = <test_01.Test testMethod=test_random_1_00001_esempio>, filename = 'esempio.txt', start = 'ROMA'
clues = 'la bocca sollevò dal fiero pasto'
expected = [['vendita diamanti rubati stanotte ad anversa', 'CANCUN'], ['vendita cannoni mercato nero del cairo', 'CANCUN'], ['furto di diamanti a buckingham palace', 'MILANO'], ['mata hari ha sedotto ambasciatore zambia', 'MILANO']]

    @file_data("esempio.json")
    def test_random_1(self, filename, start, clues, expected):
>       return self.do_test(filename, start, clues, expected)

test_01.py:60:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
test_01.py:32: in do_test
    program.ex1(filename, start_city, clues)
..\..\anaconda3\lib\contextlib.py:120: in __exit__
    next(self.gen)
testlib.py:90: in assertIsRecursive
    yield program
E   AssertionError: RecursionDetectedError not raised'''
283 views
closed with the note: risolto

2 Answers

Best answer
AdSum (16290 points)
9 20 134
by (16.3k points)
selected by
Un ragazzo aveva il tuo stesso problema, controlla bene, attraverso il debugger, che stai effettivamente chiamando la funzione.
nick98 (700 points)
4 12 14
by (700 points)
si sono sicuro che la sto chiamando altrimenti non potrei ottenere le soluzioni. . .se lo eseguo inserendo io i dati dei test mi ritorna esattamente le soluzioni
nick98 (700 points)
4 12 14
by (700 points)
ok ho risolto, sono stupido stavo lavorando ad un altro file che si trovava in un altra cartella
AdSum (16290 points)
9 20 134
by (16.3k points)
Controllato con il debugger? L'unica spiegazione è che manca la chiamata. Non metto in dubbio che ti dia il giusto risultato e che tu abbia effettivamente inserito la ricorsione all'interno, metto in dubbio una possibile svista logica che non ti fa entrare in ricorsione.
f
fabio.chiarini (2280 points)
0 0 7
by (2.3k points)

Non so se è il tuo caso, a me quel problema si presentava perché i dati in input della funzione ex1 erano in un formato diverso da quello che mi aspettavo. Ad esempio il parametro clues pensavo fosse una lista e invece era una stringa e, di fatto, il mio programma si arrestava ben prima di far partire la ricorsione, generando quell'errore su tutti i test. 

Se questo fosse il tuo caso, dai un'occhiata a questa discussione: https://q2a.di.uniroma1.it/20503/exception-recursion-not-present?course=hw8-required/homeworks/fondamenti-di-programmazione-20-21

nick98 (700 points)
4 12 14
by (700 points)
no non è quello il mio caso, considero i dati in imput come devono essere considerati.