@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 testGeneral() { final DiscreteAnnealSubclass anneal = new DiscreteAnnealSubclass(1000, 4000, 1); anneal.setCycles(100); assertEquals(100, anneal.getCycles()); assertEquals(0, anneal.getK()); assertEquals(false, anneal.done()); }
@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); }
@Test public void testStatus() { final DiscreteAnnealSubclass anneal = new DiscreteAnnealSubclass(1000, 4000, 1); assertEquals("k=0,kMax=1000,t=0.0,prob=0.0", anneal.getStatus()); }