Skip to content

Commit 30980b7

Browse files
zepfredtriceo
authored andcommitted
feat: make the nearbyDistanceMeterClass a visitable class for GIZMO
1 parent 50e19a2 commit 30980b7

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

core/src/main/java/ai/timefold/solver/core/config/solver/SolverConfig.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,9 @@ public void visitReferencedClasses(Consumer<Class<?>> classVisitor) {
704704
if (scoreDirectorFactoryConfig != null) {
705705
scoreDirectorFactoryConfig.visitReferencedClasses(classVisitor);
706706
}
707+
if (nearbyDistanceMeterClass != null) {
708+
classVisitor.accept(nearbyDistanceMeterClass);
709+
}
707710
if (terminationConfig != null) {
708711
terminationConfig.visitReferencedClasses(classVisitor);
709712
}

core/src/test/java/ai/timefold/solver/core/config/solver/SolverConfigTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
import ai.timefold.solver.core.config.localsearch.LocalSearchPhaseConfig;
3636
import ai.timefold.solver.core.impl.heuristic.move.DummyMove;
3737
import ai.timefold.solver.core.impl.heuristic.selector.common.decorator.SelectionFilter;
38+
import ai.timefold.solver.core.impl.heuristic.selector.common.nearby.NearbyDistanceMeter;
3839
import ai.timefold.solver.core.impl.heuristic.selector.move.factory.MoveIteratorFactory;
3940
import ai.timefold.solver.core.impl.heuristic.selector.move.factory.MoveListFactory;
4041
import ai.timefold.solver.core.impl.heuristic.selector.move.generic.ChangeMove;
@@ -182,6 +183,7 @@ void visitReferencedClasses() {
182183
verify(classVisitor, atLeastOnce()).accept(DummyEasyScoreCalculator.class);
183184
verify(classVisitor, atLeastOnce()).accept(DummyConstraintProvider.class);
184185
verify(classVisitor, atLeastOnce()).accept(DummyIncrementalScoreCalculator.class);
186+
verify(classVisitor, atLeastOnce()).accept(DummyNearbyDistanceClass.class);
185187
verify(classVisitor, atLeastOnce()).accept(DummyEntityFilter.class);
186188
verify(classVisitor, atLeastOnce()).accept(DummyValueFilter.class);
187189
verify(classVisitor, atLeastOnce()).accept(DummyChangeMoveFilter.class);
@@ -374,4 +376,12 @@ public abstract static class DummyMoveIteratorFactory implements MoveIteratorFac
374376
public abstract static class DummyMoveListFactory implements MoveListFactory<TestdataSolution> {
375377
}
376378

379+
public class DummyNearbyDistanceClass implements NearbyDistanceMeter<String, String> {
380+
381+
@Override
382+
public double getNearbyDistance(String origin, String destination) {
383+
return 0;
384+
}
385+
}
386+
377387
}

core/src/test/resources/ai/timefold/solver/core/config/solver/testSolverConfigWithoutNamespace.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
<incrementalScoreCalculatorClass>ai.timefold.solver.core.config.solver.SolverConfigTest$DummyIncrementalScoreCalculator</incrementalScoreCalculatorClass>
1212
<initializingScoreTrend>ONLY_DOWN</initializingScoreTrend>
1313
</scoreDirectorFactory>
14+
<nearbyDistanceMeterClass>ai.timefold.solver.core.config.solver.SolverConfigTest$DummyNearbyDistanceClass</nearbyDistanceMeterClass>
1415
<constructionHeuristic>
1516
<constructionHeuristicType>FIRST_FIT_DECREASING</constructionHeuristicType>
1617
<queuedEntityPlacer>

0 commit comments

Comments
 (0)