Skip to content

Commit 6507949

Browse files
committed
chore: add more tests
1 parent f356985 commit 6507949

11 files changed

+514
-3
lines changed

core/src/test/java/ai/timefold/solver/core/impl/score/director/ValueRangeManagerTest.java

Lines changed: 281 additions & 0 deletions
Large diffs are not rendered by default.

core/src/test/java/ai/timefold/solver/core/testdomain/composite/TestdataCompositeSolution.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static TestdataCompositeSolution generateSolution(int valueListSize, int
2929
}
3030
List<TestdataValue> otherValueList = new ArrayList<>(valueListSize);
3131
for (int i = 0; i < valueListSize; i++) {
32-
TestdataValue value = new TestdataValue("Generated Value " + (valueListSize + i - 1));
32+
TestdataValue value = new TestdataValue("Generated Value " + (valueListSize + i));
3333
otherValueList.add(value);
3434
}
3535
solution.setValueList(valueList);

core/src/test/java/ai/timefold/solver/core/testdomain/list/valuerange/TestdataListEntityProvidingSolution.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ai.timefold.solver.core.testdomain.list.valuerange;
22

3+
import java.util.ArrayList;
34
import java.util.List;
45

56
import ai.timefold.solver.core.api.domain.solution.PlanningEntityCollectionProperty;
@@ -16,6 +17,31 @@ public static SolutionDescriptor<TestdataListEntityProvidingSolution> buildSolut
1617
TestdataListEntityProvidingEntity.class, TestdataListEntityProvidingValue.class);
1718
}
1819

20+
public static TestdataListEntityProvidingSolution generateSolution(int valueListSize, int entityListSize) {
21+
var solution = new TestdataListEntityProvidingSolution();
22+
var valueList = new ArrayList<TestdataListEntityProvidingValue>(valueListSize);
23+
for (var i = 0; i < valueListSize; i++) {
24+
var value = new TestdataListEntityProvidingValue("Generated Value " + i);
25+
valueList.add(value);
26+
}
27+
var entityList = new ArrayList<TestdataListEntityProvidingEntity>(entityListSize);
28+
var idx = 0;
29+
for (var i = 0; i < entityListSize; i++) {
30+
var expectedCount = Math.max(1, valueListSize / entityListSize);
31+
var valueRange = new ArrayList<TestdataListEntityProvidingValue>();
32+
for (var j = 0; j < expectedCount; j++) {
33+
if (idx >= valueListSize) {
34+
break;
35+
}
36+
valueRange.add(valueList.get(idx++));
37+
}
38+
var entity = new TestdataListEntityProvidingEntity("Generated Entity " + i, valueRange);
39+
entityList.add(entity);
40+
}
41+
solution.setEntityList(entityList);
42+
return solution;
43+
}
44+
1945
public static TestdataListEntityProvidingSolution generateSolution() {
2046
var solution = new TestdataListEntityProvidingSolution();
2147
var value1 = new TestdataListEntityProvidingValue("v1");

core/src/test/java/ai/timefold/solver/core/testdomain/list/valuerange/composite/TestdataListCompositeEntityProvidingSolution.java

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ai.timefold.solver.core.testdomain.list.valuerange.composite;
22

3+
import java.util.ArrayList;
34
import java.util.List;
45

56
import ai.timefold.solver.core.api.domain.solution.PlanningEntityCollectionProperty;
@@ -17,6 +18,39 @@ public static SolutionDescriptor<TestdataListCompositeEntityProvidingSolution> b
1718
TestdataListCompositeEntityProvidingEntity.class);
1819
}
1920

21+
public static TestdataListCompositeEntityProvidingSolution generateSolution(int valueListSize, int entityListSize) {
22+
var solution = new TestdataListCompositeEntityProvidingSolution();
23+
var valueList = new ArrayList<TestdataListEntityProvidingValue>(valueListSize);
24+
for (var i = 0; i < valueListSize; i++) {
25+
var value = new TestdataListEntityProvidingValue("Generated Value " + i);
26+
valueList.add(value);
27+
}
28+
var entityList = new ArrayList<TestdataListCompositeEntityProvidingEntity>(entityListSize);
29+
for (var i = 0; i < entityListSize; i++) {
30+
var idx = 0;
31+
var expectedCount = Math.max(1, valueListSize / 2);
32+
var valueRange = new ArrayList<TestdataListEntityProvidingValue>();
33+
var secondValueRange = new ArrayList<TestdataListEntityProvidingValue>();
34+
for (var j = 0; j < expectedCount; j++) {
35+
if (idx >= valueListSize) {
36+
break;
37+
}
38+
valueRange.add(valueList.get(idx++));
39+
}
40+
for (var j = 0; j < expectedCount; j++) {
41+
if (idx >= valueListSize) {
42+
break;
43+
}
44+
secondValueRange.add(valueList.get(idx++));
45+
}
46+
var entity = new TestdataListCompositeEntityProvidingEntity("Generated Entity " + i, valueRange,
47+
secondValueRange);
48+
entityList.add(entity);
49+
}
50+
solution.setEntityList(entityList);
51+
return solution;
52+
}
53+
2054
public static TestdataListCompositeEntityProvidingSolution generateSolution() {
2155
var solution = new TestdataListCompositeEntityProvidingSolution();
2256
var value1 = new TestdataListEntityProvidingValue("v1");

core/src/test/java/ai/timefold/solver/core/testdomain/list/valuerange/unassignedvar/TestdataListUnassignedEntityProvidingSolution.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ai.timefold.solver.core.testdomain.list.valuerange.unassignedvar;
22

3+
import java.util.ArrayList;
34
import java.util.List;
45

56
import ai.timefold.solver.core.api.domain.solution.PlanningEntityCollectionProperty;
@@ -18,6 +19,31 @@ public static SolutionDescriptor<TestdataListUnassignedEntityProvidingSolution>
1819
TestdataListUnassignedEntityProvidingEntity.class);
1920
}
2021

22+
public static TestdataListUnassignedEntityProvidingSolution generateSolution(int valueListSize, int entityListSize) {
23+
var solution = new TestdataListUnassignedEntityProvidingSolution();
24+
var valueList = new ArrayList<TestdataValue>(valueListSize);
25+
for (var i = 0; i < valueListSize; i++) {
26+
var value = new TestdataValue("Generated Value " + i);
27+
valueList.add(value);
28+
}
29+
var entityList = new ArrayList<TestdataListUnassignedEntityProvidingEntity>(entityListSize);
30+
var idx = 0;
31+
for (var i = 0; i < entityListSize; i++) {
32+
var expectedCount = Math.max(1, valueListSize / entityListSize);
33+
var valueRange = new ArrayList<TestdataValue>();
34+
for (var j = 0; j < expectedCount; j++) {
35+
if (idx >= valueListSize) {
36+
break;
37+
}
38+
valueRange.add(valueList.get(idx++));
39+
}
40+
var entity = new TestdataListUnassignedEntityProvidingEntity("Generated Entity " + i, valueRange);
41+
entityList.add(entity);
42+
}
43+
solution.setEntityList(entityList);
44+
return solution;
45+
}
46+
2147
public static TestdataListUnassignedEntityProvidingSolution generateSolution() {
2248
var solution = new TestdataListUnassignedEntityProvidingSolution();
2349
var value1 = new TestdataValue("v1");

core/src/test/java/ai/timefold/solver/core/testdomain/list/valuerange/unassignedvar/composite/TestdataListUnassignedCompositeEntityProvidingSolution.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ai.timefold.solver.core.testdomain.list.valuerange.unassignedvar.composite;
22

3+
import java.util.ArrayList;
34
import java.util.List;
45

56
import ai.timefold.solver.core.api.domain.solution.PlanningEntityCollectionProperty;
@@ -17,6 +18,40 @@ public static SolutionDescriptor<TestdataListUnassignedCompositeEntityProvidingS
1718
TestdataListUnassignedCompositeEntityProvidingEntity.class);
1819
}
1920

21+
public static TestdataListUnassignedCompositeEntityProvidingSolution generateSolution(int valueListSize,
22+
int entityListSize) {
23+
var solution = new TestdataListUnassignedCompositeEntityProvidingSolution();
24+
var valueList = new ArrayList<TestdataListEntityProvidingValue>(valueListSize);
25+
for (var i = 0; i < valueListSize; i++) {
26+
var value = new TestdataListEntityProvidingValue("Generated Value " + i);
27+
valueList.add(value);
28+
}
29+
var entityList = new ArrayList<TestdataListUnassignedCompositeEntityProvidingEntity>(entityListSize);
30+
for (var i = 0; i < entityListSize; i++) {
31+
var idx = 0;
32+
var expectedCount = Math.max(1, valueListSize / 2);
33+
var valueRange = new ArrayList<TestdataListEntityProvidingValue>();
34+
var secondValueRange = new ArrayList<TestdataListEntityProvidingValue>();
35+
for (var j = 0; j < expectedCount; j++) {
36+
if (idx >= valueListSize) {
37+
break;
38+
}
39+
valueRange.add(valueList.get(idx++));
40+
}
41+
for (var j = 0; j < expectedCount; j++) {
42+
if (idx >= valueListSize) {
43+
break;
44+
}
45+
secondValueRange.add(valueList.get(idx++));
46+
}
47+
var entity = new TestdataListUnassignedCompositeEntityProvidingEntity("Generated Entity " + i, valueRange,
48+
secondValueRange);
49+
entityList.add(entity);
50+
}
51+
solution.setEntityList(entityList);
52+
return solution;
53+
}
54+
2055
public static TestdataListUnassignedCompositeEntityProvidingSolution generateSolution() {
2156
var solution = new TestdataListUnassignedCompositeEntityProvidingSolution();
2257
var value1 = new TestdataListEntityProvidingValue("v1");

core/src/test/java/ai/timefold/solver/core/testdomain/valuerange/entityproviding/TestdataEntityProvidingSolution.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,11 +51,19 @@ private static TestdataEntityProvidingSolution generateSolution(int valueListSiz
5151
valueList.add(value);
5252
}
5353
var entityList = new ArrayList<TestdataEntityProvidingEntity>(entityListSize);
54+
var idx = 0;
5455
for (var i = 0; i < entityListSize; i++) {
5556
var expectedCount = Math.max(1, valueListSize / entityListSize);
5657
var valueRange = new ArrayList<TestdataValue>();
5758
for (var j = 0; j < expectedCount; j++) {
58-
valueRange.add(valueList.get((i * j) % valueListSize));
59+
if (initialized) {
60+
valueRange.add(valueList.get((i * j) % valueListSize));
61+
} else {
62+
if (idx >= valueListSize) {
63+
break;
64+
}
65+
valueRange.add(valueList.get(idx++));
66+
}
5967
}
6068
var entity = new TestdataEntityProvidingEntity("Generated Entity " + i, valueRange);
6169
entity.setValue(initialized ? valueList.get(i % valueListSize) : null);

core/src/test/java/ai/timefold/solver/core/testdomain/valuerange/entityproviding/composite/TestdataCompositeEntityProvidingSolution.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ai.timefold.solver.core.testdomain.valuerange.entityproviding.composite;
22

3+
import java.util.ArrayList;
34
import java.util.Collection;
45
import java.util.HashSet;
56
import java.util.List;
@@ -22,6 +23,40 @@ public static SolutionDescriptor<TestdataCompositeEntityProvidingSolution> build
2223
TestdataCompositeEntityProvidingEntity.class);
2324
}
2425

26+
public static TestdataCompositeEntityProvidingSolution generateSolution(int valueListSize,
27+
int entityListSize) {
28+
var solution = new TestdataCompositeEntityProvidingSolution("Generated Solution 0");
29+
var valueList = new ArrayList<TestdataValue>(valueListSize);
30+
for (var i = 0; i < valueListSize; i++) {
31+
var value = new TestdataValue("Generated Value " + i);
32+
valueList.add(value);
33+
}
34+
var entityList = new ArrayList<TestdataCompositeEntityProvidingEntity>(entityListSize);
35+
for (var i = 0; i < entityListSize; i++) {
36+
var idx = 0;
37+
var expectedCount = Math.max(1, valueListSize / 2);
38+
var valueRange = new ArrayList<TestdataValue>();
39+
var secondValueRange = new ArrayList<TestdataValue>();
40+
for (var j = 0; j < expectedCount; j++) {
41+
if (idx >= valueListSize) {
42+
break;
43+
}
44+
valueRange.add(valueList.get(idx++));
45+
}
46+
for (var j = 0; j < expectedCount; j++) {
47+
if (idx >= valueListSize) {
48+
break;
49+
}
50+
secondValueRange.add(valueList.get(idx++));
51+
}
52+
var entity = new TestdataCompositeEntityProvidingEntity("Generated Entity " + i, valueRange,
53+
secondValueRange);
54+
entityList.add(entity);
55+
}
56+
solution.setEntityList(entityList);
57+
return solution;
58+
}
59+
2560
public static TestdataCompositeEntityProvidingSolution generateSolution() {
2661
var solution = new TestdataCompositeEntityProvidingSolution("s1");
2762
var value1 = new TestdataValue("v1");

core/src/test/java/ai/timefold/solver/core/testdomain/valuerange/entityproviding/unassignedvar/TestdataAllowsUnassignedEntityProvidingSolution.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,19 @@ private static TestdataAllowsUnassignedEntityProvidingSolution generateSolution(
5252
valueList.add(value);
5353
}
5454
var entityList = new ArrayList<TestdataAllowsUnassignedEntityProvidingEntity>(entityListSize);
55+
var idx = 0;
5556
for (var i = 0; i < entityListSize; i++) {
5657
var expectedCount = Math.max(1, valueListSize / entityListSize);
5758
var valueRange = new ArrayList<TestdataValue>();
5859
for (var j = 0; j < expectedCount; j++) {
59-
valueRange.add(valueList.get((i * j) % valueListSize));
60+
if (initialized) {
61+
valueRange.add(valueList.get((i * j) % valueListSize));
62+
} else {
63+
if (idx >= valueListSize) {
64+
break;
65+
}
66+
valueRange.add(valueList.get(idx++));
67+
}
6068
}
6169
var entity = new TestdataAllowsUnassignedEntityProvidingEntity("Generated Entity " + i, valueRange);
6270
entity.setValue(initialized ? valueList.get(i % valueListSize) : null);

core/src/test/java/ai/timefold/solver/core/testdomain/valuerange/entityproviding/unassignedvar/composite/TestdataAllowsUnassignedCompositeEntityProvidingSolution.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package ai.timefold.solver.core.testdomain.valuerange.entityproviding.unassignedvar.composite;
22

3+
import java.util.ArrayList;
34
import java.util.Collection;
45
import java.util.HashSet;
56
import java.util.List;
@@ -22,6 +23,40 @@ public static SolutionDescriptor<TestdataAllowsUnassignedCompositeEntityProvidin
2223
TestdataAllowsUnassignedCompositeEntityProvidingEntity.class);
2324
}
2425

26+
public static TestdataAllowsUnassignedCompositeEntityProvidingSolution generateSolution(int valueListSize,
27+
int entityListSize) {
28+
var solution = new TestdataAllowsUnassignedCompositeEntityProvidingSolution("Generated Solution 0");
29+
var valueList = new ArrayList<TestdataValue>(valueListSize);
30+
for (var i = 0; i < valueListSize; i++) {
31+
var value = new TestdataValue("Generated Value " + i);
32+
valueList.add(value);
33+
}
34+
var entityList = new ArrayList<TestdataAllowsUnassignedCompositeEntityProvidingEntity>(entityListSize);
35+
for (var i = 0; i < entityListSize; i++) {
36+
var idx = 0;
37+
var expectedCount = Math.max(1, valueListSize / 2);
38+
var valueRange = new ArrayList<TestdataValue>();
39+
var secondValueRange = new ArrayList<TestdataValue>();
40+
for (var j = 0; j < expectedCount; j++) {
41+
if (idx >= valueListSize) {
42+
break;
43+
}
44+
valueRange.add(valueList.get(idx++));
45+
}
46+
for (var j = 0; j < expectedCount; j++) {
47+
if (idx >= valueListSize) {
48+
break;
49+
}
50+
secondValueRange.add(valueList.get(idx++));
51+
}
52+
var entity = new TestdataAllowsUnassignedCompositeEntityProvidingEntity("Generated Entity " + i, valueRange,
53+
secondValueRange);
54+
entityList.add(entity);
55+
}
56+
solution.setEntityList(entityList);
57+
return solution;
58+
}
59+
2560
public static TestdataAllowsUnassignedCompositeEntityProvidingSolution generateSolution() {
2661
var solution = new TestdataAllowsUnassignedCompositeEntityProvidingSolution("s1");
2762
var value1 = new TestdataValue("v1");

0 commit comments

Comments
 (0)