Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

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.