Ricorsione non presente

nick98 (700 points)
3 11 14
asked Dec 11, 2020 in HW8 obbligatorio by nick98 (700 points)
closed Dec 12, 2020 by andrea.sterbini
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'''
173 views
closed with note: risolto

2 Answers

Best answer
AdSum (16290 points)
9 20 134
answered Dec 11, 2020 by AdSum (16,290 points)
selected Dec 12, 2020 by nick98
Un ragazzo aveva il tuo stesso problema, controlla bene, attraverso il debugger, che stai effettivamente chiamando la funzione.
nick98 (700 points)
3 11 14
commented Dec 11, 2020 by nick98 (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)
3 11 14
commented Dec 11, 2020 by nick98 (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
commented Dec 11, 2020 by AdSum (16,290 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
answered Dec 11, 2020 by fabio.chiarini (2,280 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)
3 11 14
commented Dec 11, 2020 by nick98 (700 points)
no non è quello il mio caso, considero i dati in imput come devono essere considerati.