@Test public void testCoolingSchedule() { final DiscreteAnnealSubclass anneal = new DiscreteAnnealSubclass(1000, 400, 1); assertEquals(400, anneal.coolingSchedule(), AIFH.DEFAULT_PRECISION); anneal.iteration(); assertEquals(397.61057939346017, anneal.coolingSchedule(), AIFH.DEFAULT_PRECISION); }
@Test public void testProbability() { final DiscreteAnnealSubclass anneal = new DiscreteAnnealSubclass(1000, 400, 1); assertEquals( 0.9753099120283326, anneal.calcProbability(10, 20, anneal.coolingSchedule()), AIFH.DEFAULT_PRECISION); anneal.iteration(); assertEquals( 0.9751633961486054, anneal.calcProbability(10, 20, anneal.coolingSchedule()), AIFH.DEFAULT_PRECISION); }
@Test public void testRun() { final DiscreteAnnealSubclass anneal = new DiscreteAnnealSubclass(1000, 400, 1); while (!anneal.done()) { anneal.iteration(); } final CalculateDistance dist = new EuclideanDistance(); assertEquals(1000, anneal.getK()); assertEquals( 0, dist.calculate(anneal.getBest(), DiscreteAnnealSubclass.IDEAL), AIFH.DEFAULT_PRECISION); assertEquals(0, anneal.getBestScore(), AIFH.DEFAULT_PRECISION); }