@Test public void trackConstructionHeuristics() { SolverFactory<NQueens> solverFactory = SolverFactory.createFromXmlResource(NQueensApp.SOLVER_CONFIG); SolverConfig solverConfig = solverFactory.getSolverConfig(); ConstructionHeuristicPhaseConfig chConfig = new ConstructionHeuristicPhaseConfig(); chConfig.setValueSorterManner(valueSorterManner); chConfig.setEntitySorterManner(entitySorterManner); chConfig.setConstructionHeuristicType(constructionHeuristicType); solverConfig.setPhaseConfigList(Collections.<PhaseConfig>singletonList(chConfig)); NQueensGenerator generator = new NQueensGenerator(); NQueens problem = generator.createNQueens(8); NQueensStepTracker listener = new NQueensStepTracker(); DefaultSolver<NQueens> solver = (DefaultSolver<NQueens>) solverFactory.buildSolver(); solver.addPhaseLifecycleListener(listener); NQueens bestSolution = solver.solve(problem); assertNotNull(bestSolution); assertTrackingList(expectedCoordinates, listener.getTrackingList()); }
@Test public void trackConstructionHeuristics() { SolverFactory<NQueens> solverFactory = SolverFactory.createFromXmlResource(NQueensApp.SOLVER_CONFIG); SolverConfig solverConfig = solverFactory.getSolverConfig(); ConstructionHeuristicPhaseConfig chConfig = new ConstructionHeuristicPhaseConfig(); chConfig.setValueSorterManner(valueSorterManner); chConfig.setEntitySorterManner(entitySorterManner); chConfig.setConstructionHeuristicType(constructionHeuristicType); solverConfig.setPhaseConfigList(Collections.<PhaseConfig>singletonList(chConfig)); NQueensGenerator generator = new NQueensGenerator(); NQueens problem = generator.createNQueens(8); NQueensStepTracker listener = new NQueensStepTracker(); DefaultSolver<NQueens> solver = (DefaultSolver<NQueens>) solverFactory.buildSolver(); solver.addPhaseLifecycleListener(listener); NQueens bestSolution = solver.solve(problem); assertNotNull(bestSolution); assertTrackingList(expectedCoordinates, listener.getTrackingList()); }