|
22 | 22 | import ai.timefold.solver.core.config.constructionheuristic.placer.QueuedValuePlacerConfig; |
23 | 23 | import ai.timefold.solver.core.config.heuristic.selector.move.generic.list.ListChangeMoveSelectorConfig; |
24 | 24 | import ai.timefold.solver.core.config.heuristic.selector.value.ValueSelectorConfig; |
| 25 | +import ai.timefold.solver.core.config.localsearch.LocalSearchPhaseConfig; |
25 | 26 | import ai.timefold.solver.core.config.solver.monitoring.MonitoringConfig; |
26 | 27 | import ai.timefold.solver.core.config.solver.monitoring.SolverMetric; |
27 | 28 | import ai.timefold.solver.core.config.solver.termination.TerminationConfig; |
@@ -420,6 +421,21 @@ void failMultiEntityWithListAndBasicVariables() { |
420 | 421 | .hasMessageContaining("it cannot be deduced automatically"); |
421 | 422 | } |
422 | 423 |
|
| 424 | + @Test |
| 425 | + void failLocalSearchWithListAndBasicVariables() { |
| 426 | + var solverConfig = PlannerTestUtils.buildSolverConfig( |
| 427 | + TestdataListMultiVarSolution.class, TestdataListMultiVarEntity.class, TestdataListMultiVarValue.class, |
| 428 | + TestdataListMultiVarOtherValue.class) |
| 429 | + .withPhases(new ConstructionHeuristicPhaseConfig() |
| 430 | + .withTerminationConfig(new TerminationConfig().withStepCountLimit(16)), |
| 431 | + new LocalSearchPhaseConfig()) |
| 432 | + .withEasyScoreCalculatorClass(TestdataListMultiVarEasyScoreCalculator.class); |
| 433 | + |
| 434 | + var problem = TestdataListMultiVarSolution.generateUninitializedSolution(2, 2, 2); |
| 435 | + assertThatCode(() -> PlannerTestUtils.solve(solverConfig, problem)) |
| 436 | + .hasMessageContaining("A mixed model using both basic and list variables is not supported yet."); |
| 437 | + } |
| 438 | + |
423 | 439 | @Test |
424 | 440 | void solveWithListAndBasicVariables() { |
425 | 441 | var solverConfig = PlannerTestUtils.buildSolverConfig( |
|
0 commit comments