* solver.
* @throws IOException In case file loading fails.
*/
@Test
public void testOffline() throws IOException {
final Gendreau06Scenario scenario = Gendreau06Parser.parser()
.addFile("files/test/gendreau06/req_rapide_1_240_24")
.offline()
.parse()
.get(0);
final RandomGenerator rng = new MersenneTwister(123);
for (int i = 0; i < 5; i++) {
final long seed = rng.nextLong();
final DebugSolverCreator dsc = new DebugSolverCreator(seed,
scenario.getTimeUnit());
final Gendreau06ObjectiveFunction obj = new Gendreau06ObjectiveFunction();
final ExperimentResults results = Experiment.build(obj)
.addConfiguration(Central.solverConfiguration(dsc))
.addScenario(scenario).perform();
assertEquals(1, results.results.size());
assertEquals(1, dsc.arraysSolver.getInputs().size());
assertEquals(1, dsc.arraysSolver.getOutputs().size());
final SolutionObject[] sols = dsc.arraysSolver.getOutputs().get(0);
int objVal = 0;
for (final SolutionObject sol : sols) {
objVal += sol.objectiveValue;
}
// convert the objective values computed by the solver to the unit of the
// gendreau benchmark (minutes).
final UnitConverter converter = scenario.getTimeUnit().getConverterTo(
NonSI.MINUTE);
final double objValInMinutes = converter.convert(objVal);
final GlobalStateObject solverInput = dsc.solver.getInputs().get(0);
final ImmutableList<ImmutableList<ParcelDTO>> solverOutput = dsc.solver