### Question:
DiscreteAnneal { public double coolingSchedule() { final double ex = (double) k / (double) kMax; return this.startingTemperature * Math.pow(this.endingTemperature / this.startingTemperature, ex); } DiscreteAnneal(final int theKMax, final double theStartingTemperature, final double theEndingTemperature); double coolingSchedule(); void iteration(); abstract void backupState(); abstract void restoreState(); abstract void foundNewBest(); abstract void moveToNeighbor(); abstract double evaluate(); boolean done(); double getBestScore(); double calcProbability(final double ecurrent, final double enew, final double t); int getK(); int getCycles(); void setCycles(final int cycles); String getStatus();  }### Answer:
@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); }