Supponiamo di avere il nostro algoritmo di ricerca del percorso:
def myHeuristicTSP(graph):
/*implementation*/
return route
Ora vogliamo provare questo:
class TestMyHeuristicTSP:
def testNullGraphRaiseValueError(self):
self.assertRaises(ValueError, myHueristicTSP(None))
def testSimpleTwoNodeGraphReturnsRoute:
self.assertEquals(expectedResult, myHeuristicTSP(input))
La domanda è, per un algoritmo TSP non euristico, che possiamo fornire una varietà di grafici e verificare che restituiscano sempre assolutamente il percorso più breve.
Ma perché un algoritmo euristico, sebbene sia ancora deterministico, è meno prevedibile, ha semplicemente lo scopo di capire come funziona l'algoritmo e trovare quei casi limite?