Turn into a unit test to avoid main()
This commit is contained in:
parent
5df3c5711a
commit
2e60ba5007
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>timefold-solver</artifactId>
|
<artifactId>timefold-solver</artifactId>
|
||||||
<name>timefold-solver</name>
|
<name>timefold-solver</name>
|
||||||
|
@ -24,6 +24,7 @@ class ShiftScheduleConstraintProviderUnitTest {
|
|||||||
// To avoid that, use forEachUniquePair() in the constraint instead.
|
// To avoid that, use forEachUniquePair() in the constraint instead.
|
||||||
.penalizesBy(2);
|
.penalizesBy(2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void whenTwoShiftsOnDifferentDays_thenDoNotPenalize() {
|
void whenTwoShiftsOnDifferentDays_thenDoNotPenalize() {
|
||||||
Employee ann = new Employee("Ann", null);
|
Employee ann = new Employee("Ann", null);
|
||||||
|
@ -5,18 +5,21 @@ import java.time.LocalDate;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import ai.timefold.solver.core.api.solver.Solver;
|
import ai.timefold.solver.core.api.solver.Solver;
|
||||||
import ai.timefold.solver.core.api.solver.SolverFactory;
|
import ai.timefold.solver.core.api.solver.SolverFactory;
|
||||||
import ai.timefold.solver.core.config.solver.SolverConfig;
|
import ai.timefold.solver.core.config.solver.SolverConfig;
|
||||||
|
import ai.timefold.solver.core.config.solver.termination.TerminationConfig;
|
||||||
|
|
||||||
public class ShiftScheduleApp {
|
public class ShiftScheduleSolverUnitTest {
|
||||||
|
|
||||||
private static final Logger logger = LoggerFactory.getLogger(ShiftScheduleApp.class);
|
private static final Logger logger = LoggerFactory.getLogger(ShiftScheduleSolverUnitTest.class);
|
||||||
|
|
||||||
public static void main(String[] args) {
|
@Test
|
||||||
|
public void solve() {
|
||||||
SolverFactory<ShiftSchedule> solverFactory = SolverFactory.create(new SolverConfig().withSolutionClass(ShiftSchedule.class)
|
SolverFactory<ShiftSchedule> solverFactory = SolverFactory.create(new SolverConfig().withSolutionClass(ShiftSchedule.class)
|
||||||
.withEntityClasses(Shift.class)
|
.withEntityClasses(Shift.class)
|
||||||
.withConstraintProviderClass(ShiftScheduleConstraintProvider.class)
|
.withConstraintProviderClass(ShiftScheduleConstraintProvider.class)
|
||||||
@ -30,7 +33,7 @@ public class ShiftScheduleApp {
|
|||||||
printSolution(solution);
|
printSolution(solution);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ShiftSchedule loadProblem() {
|
private ShiftSchedule loadProblem() {
|
||||||
LocalDate monday = LocalDate.of(2030, 4, 1);
|
LocalDate monday = LocalDate.of(2030, 4, 1);
|
||||||
LocalDate tuesday = LocalDate.of(2030, 4, 2);
|
LocalDate tuesday = LocalDate.of(2030, 4, 2);
|
||||||
return new ShiftSchedule(
|
return new ShiftSchedule(
|
||||||
@ -40,7 +43,7 @@ public class ShiftScheduleApp {
|
|||||||
new Shift(tuesday.atTime(14, 0), tuesday.atTime(22, 0), "Bartender")));
|
new Shift(tuesday.atTime(14, 0), tuesday.atTime(22, 0), "Bartender")));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void printSolution(ShiftSchedule solution) {
|
private void printSolution(ShiftSchedule solution) {
|
||||||
logger.info("Shift assignments");
|
logger.info("Shift assignments");
|
||||||
for (Shift shift : solution.getShifts()) {
|
for (Shift shift : solution.getShifts()) {
|
||||||
logger.info(" " + shift.getStart()
|
logger.info(" " + shift.getStart()
|
Loading…
x
Reference in New Issue
Block a user