Skip to content

Commit cede214

Browse files
committed
Complete the first level of test coverage
1 parent 28728bc commit cede214

File tree

58 files changed

+612
-631
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+612
-631
lines changed

core/src/main/java/ai/timefold/solver/core/impl/bavet/uni/AbstractForEachUniNode.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package ai.timefold.solver.core.impl.bavet.uni;
22

3+
import java.util.IdentityHashMap;
4+
import java.util.Map;
5+
36
import ai.timefold.solver.core.impl.bavet.common.AbstractNode;
47
import ai.timefold.solver.core.impl.bavet.common.Propagator;
58
import ai.timefold.solver.core.impl.bavet.common.StaticPropagationQueue;
69
import ai.timefold.solver.core.impl.bavet.common.tuple.TupleLifecycle;
710
import ai.timefold.solver.core.impl.bavet.common.tuple.TupleState;
811
import ai.timefold.solver.core.impl.bavet.common.tuple.UniTuple;
912
import ai.timefold.solver.core.impl.score.director.SessionContext;
13+
1014
import org.jspecify.annotations.NullMarked;
1115
import org.jspecify.annotations.Nullable;
1216

13-
import java.util.IdentityHashMap;
14-
import java.util.Map;
15-
1617
/**
1718
* Filtering nodes are expensive.
1819
* Considering that most streams start with a nullity check on genuine planning variables,

core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningListVariableMetaModel.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,9 @@ public String name() {
2727
return variableDescriptor.getVariableName();
2828
}
2929

30-
@Override
31-
public boolean hasValueRangeOnEntity() {
32-
return !variableDescriptor.canExtractValueRangeFromSolution();
33-
}
34-
3530
@Override
3631
public boolean allowsUnassignedValues() {
37-
return false;
32+
return variableDescriptor.allowsUnassignedValues();
3833
}
3934

4035
@Override

core/src/main/java/ai/timefold/solver/core/impl/domain/solution/descriptor/DefaultPlanningVariableMetaModel.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ public String name() {
2727
return variableDescriptor.getVariableName();
2828
}
2929

30-
@Override
31-
public boolean hasValueRangeOnEntity() {
32-
return !variableDescriptor.canExtractValueRangeFromSolution();
33-
}
34-
3530
@Override
3631
public boolean allowsUnassigned() {
3732
return variableDescriptor.allowsUnassigned();

core/src/main/java/ai/timefold/solver/core/impl/localsearch/DefaultLocalSearchPhaseFactory.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package ai.timefold.solver.core.impl.localsearch;
22

3+
import java.util.ArrayList;
4+
import java.util.Collections;
5+
import java.util.List;
6+
import java.util.Objects;
7+
38
import ai.timefold.solver.core.api.domain.entity.PinningFilter;
49
import ai.timefold.solver.core.api.domain.entity.PlanningPin;
510
import ai.timefold.solver.core.api.domain.variable.PlanningListVariable;
@@ -45,11 +50,6 @@
4550
import ai.timefold.solver.core.impl.solver.termination.SolverTermination;
4651
import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningVariableMetaModel;
4752

48-
import java.util.ArrayList;
49-
import java.util.Collections;
50-
import java.util.List;
51-
import java.util.Objects;
52-
5353
public class DefaultLocalSearchPhaseFactory<Solution_> extends AbstractPhaseFactory<Solution_, LocalSearchPhaseConfig> {
5454

5555
public DefaultLocalSearchPhaseFactory(LocalSearchPhaseConfig phaseConfig) {

core/src/main/java/ai/timefold/solver/core/impl/move/director/MoveDirector.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
package ai.timefold.solver.core.impl.move.director;
22

3+
import java.util.List;
4+
import java.util.Objects;
5+
import java.util.function.BiFunction;
6+
37
import ai.timefold.solver.core.api.score.Score;
48
import ai.timefold.solver.core.impl.domain.entity.descriptor.EntityDescriptor;
59
import ai.timefold.solver.core.impl.domain.solution.descriptor.DefaultPlanningListVariableMetaModel;
@@ -18,13 +22,10 @@
1822
import ai.timefold.solver.core.preview.api.domain.metamodel.PlanningVariableMetaModel;
1923
import ai.timefold.solver.core.preview.api.move.Move;
2024
import ai.timefold.solver.core.preview.api.move.Rebaser;
25+
2126
import org.jspecify.annotations.NullMarked;
2227
import org.jspecify.annotations.Nullable;
2328

24-
import java.util.List;
25-
import java.util.Objects;
26-
import java.util.function.BiFunction;
27-
2829
@NullMarked
2930
public sealed class MoveDirector<Solution_, Score_ extends Score<Score_>>
3031
implements InnerMutableSolutionView<Solution_>, Rebaser

core/src/main/java/ai/timefold/solver/core/impl/move/streams/DefaultMoveStreamFactory.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import ai.timefold.solver.core.impl.domain.solution.descriptor.DefaultPlanningVariableMetaModel;
66
import ai.timefold.solver.core.impl.domain.solution.descriptor.SolutionDescriptor;
77
import ai.timefold.solver.core.impl.domain.variable.descriptor.GenuineVariableDescriptor;
8-
import ai.timefold.solver.core.impl.move.streams.dataset.bi.AbstractBiDataStream;
9-
import ai.timefold.solver.core.impl.move.streams.dataset.uni.AbstractUniDataStream;
108
import ai.timefold.solver.core.impl.move.streams.dataset.DataStreamFactory;
119
import ai.timefold.solver.core.impl.move.streams.dataset.DatasetSessionFactory;
10+
import ai.timefold.solver.core.impl.move.streams.dataset.bi.AbstractBiDataStream;
11+
import ai.timefold.solver.core.impl.move.streams.dataset.uni.AbstractUniDataStream;
1212
import ai.timefold.solver.core.impl.move.streams.maybeapi.DataJoiners;
1313
import ai.timefold.solver.core.impl.move.streams.maybeapi.stream.BiDataStream;
1414
import ai.timefold.solver.core.impl.move.streams.maybeapi.stream.BiMoveStream;

core/src/main/java/ai/timefold/solver/core/impl/move/streams/DefaultMoveStreamSession.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package ai.timefold.solver.core.impl.move.streams;
22

3+
import java.util.Objects;
4+
5+
import ai.timefold.solver.core.impl.move.streams.dataset.DatasetSession;
36
import ai.timefold.solver.core.impl.move.streams.dataset.bi.BiDataset;
47
import ai.timefold.solver.core.impl.move.streams.dataset.bi.BiDatasetInstance;
5-
import ai.timefold.solver.core.impl.move.streams.dataset.DatasetSession;
68
import ai.timefold.solver.core.impl.move.streams.dataset.uni.UniDataset;
79
import ai.timefold.solver.core.impl.move.streams.dataset.uni.UniDatasetInstance;
810
import ai.timefold.solver.core.impl.move.streams.maybeapi.stream.MoveStreamSession;
911
import ai.timefold.solver.core.preview.api.move.SolutionView;
10-
import org.jspecify.annotations.NullMarked;
1112

12-
import java.util.Objects;
13+
import org.jspecify.annotations.NullMarked;
1314

1415
@NullMarked
1516
public final class DefaultMoveStreamSession<Solution_>

core/src/main/java/ai/timefold/solver/core/impl/move/streams/FromBiUniMoveProducer.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,23 @@
11
package ai.timefold.solver.core.impl.move.streams;
22

3+
import java.util.Iterator;
4+
import java.util.NoSuchElementException;
5+
import java.util.Objects;
6+
import java.util.Random;
7+
import java.util.Set;
8+
import java.util.function.Supplier;
9+
310
import ai.timefold.solver.core.impl.bavet.common.tuple.BiTuple;
4-
import ai.timefold.solver.core.impl.move.streams.dataset.common.AbstractDataStream;
511
import ai.timefold.solver.core.impl.move.streams.dataset.bi.BiDataset;
12+
import ai.timefold.solver.core.impl.move.streams.dataset.common.AbstractDataStream;
613
import ai.timefold.solver.core.impl.move.streams.maybeapi.stream.BiMoveConstructor;
714
import ai.timefold.solver.core.impl.move.streams.maybeapi.stream.MoveStreamSession;
815
import ai.timefold.solver.core.preview.api.move.Move;
916
import ai.timefold.solver.core.preview.api.move.SolutionView;
17+
1018
import org.jspecify.annotations.NullMarked;
1119
import org.jspecify.annotations.Nullable;
1220

13-
import java.util.Iterator;
14-
import java.util.NoSuchElementException;
15-
import java.util.Objects;
16-
import java.util.Random;
17-
import java.util.Set;
18-
import java.util.function.Supplier;
19-
2021
@NullMarked
2122
public final class FromBiUniMoveProducer<Solution_, A, B> implements InnerMoveProducer<Solution_> {
2223

core/src/main/java/ai/timefold/solver/core/impl/move/streams/FromUniBiMoveProducer.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,24 @@
11
package ai.timefold.solver.core.impl.move.streams;
22

3+
import java.util.Iterator;
4+
import java.util.NoSuchElementException;
5+
import java.util.Objects;
6+
import java.util.Random;
7+
import java.util.Set;
8+
import java.util.function.BiPredicate;
9+
import java.util.function.Supplier;
10+
311
import ai.timefold.solver.core.impl.bavet.common.tuple.UniTuple;
412
import ai.timefold.solver.core.impl.move.streams.dataset.common.AbstractDataStream;
513
import ai.timefold.solver.core.impl.move.streams.dataset.uni.UniDataset;
614
import ai.timefold.solver.core.impl.move.streams.maybeapi.stream.BiMoveConstructor;
715
import ai.timefold.solver.core.impl.move.streams.maybeapi.stream.MoveStreamSession;
816
import ai.timefold.solver.core.preview.api.move.Move;
917
import ai.timefold.solver.core.preview.api.move.SolutionView;
18+
1019
import org.jspecify.annotations.NullMarked;
1120
import org.jspecify.annotations.Nullable;
1221

13-
import java.util.Iterator;
14-
import java.util.NoSuchElementException;
15-
import java.util.Objects;
16-
import java.util.Random;
17-
import java.util.Set;
18-
import java.util.function.BiPredicate;
19-
import java.util.function.Supplier;
20-
2122
@NullMarked
2223
public final class FromUniBiMoveProducer<Solution_, A, B> implements InnerMoveProducer<Solution_> {
2324

core/src/main/java/ai/timefold/solver/core/impl/move/streams/dataset/DataStreamFactory.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
package ai.timefold.solver.core.impl.move.streams.dataset;
22

3+
import java.util.HashMap;
4+
import java.util.List;
5+
import java.util.Map;
6+
import java.util.Objects;
7+
import java.util.function.Consumer;
8+
import java.util.stream.Collectors;
9+
import java.util.stream.Stream;
10+
311
import ai.timefold.solver.core.config.solver.EnvironmentMode;
412
import ai.timefold.solver.core.impl.domain.solution.descriptor.InnerGenuineVariableMetaModel;
513
import ai.timefold.solver.core.impl.domain.solution.descriptor.SolutionDescriptor;
@@ -13,15 +21,8 @@
1321
import ai.timefold.solver.core.impl.move.streams.maybeapi.stream.UniDataStream;
1422
import ai.timefold.solver.core.impl.score.director.SessionContext;
1523
import ai.timefold.solver.core.preview.api.domain.metamodel.GenuineVariableMetaModel;
16-
import org.jspecify.annotations.NullMarked;
1724

18-
import java.util.HashMap;
19-
import java.util.List;
20-
import java.util.Map;
21-
import java.util.Objects;
22-
import java.util.function.Consumer;
23-
import java.util.stream.Collectors;
24-
import java.util.stream.Stream;
25+
import org.jspecify.annotations.NullMarked;
2526

2627
@NullMarked
2728
public final class DataStreamFactory<Solution_> {

0 commit comments

Comments
 (0)