
org.optaplanner.openshift.employeerostering.benchmark.OptaShiftEmployeeRosteringBenchmarkApp Maven / Gradle / Ivy
package org.optaplanner.openshift.employeerostering.benchmark;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.optaplanner.benchmark.api.PlannerBenchmark;
import org.optaplanner.benchmark.api.PlannerBenchmarkFactory;
import org.optaplanner.core.api.solver.SolverFactory;
import org.optaplanner.openshift.employeerostering.server.roster.RosterGenerator;
import org.optaplanner.openshift.employeerostering.server.rotation.ShiftGenerator;
import org.optaplanner.openshift.employeerostering.shared.roster.Roster;
public class OptaShiftEmployeeRosteringBenchmarkApp {
public static void main(String[] args) {
List rosterList = generateRosters();
SolverFactory solverFactory = SolverFactory.createFromXmlResource(
"org/optaplanner/openshift/employeerostering/server/solver/employeeRosteringSolverConfig.xml");
PlannerBenchmarkFactory benchmarkFactory = PlannerBenchmarkFactory.createFromSolverFactory(solverFactory);
PlannerBenchmark plannerBenchmark = benchmarkFactory.buildPlannerBenchmark(rosterList);
plannerBenchmark.benchmark();
}
private static List generateRosters() {
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(
"optashift-employee-rostering-persistence-unit");
EntityManager entityManager = entityManagerFactory.createEntityManager();
RosterGenerator rosterGenerator = new RosterGenerator(entityManager, new ShiftGenerator());
List rosterList = new ArrayList<>();
rosterList.add(rosterGenerator.generateRoster(10, 7, false, false));
rosterList.add(rosterGenerator.generateRoster(80, (28 * 4), false, true));
entityManager.close();
entityManagerFactory.close();
return rosterList;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy