static Scenario createScenario(long... delays) {
final long endTime = 15 * 60 * 1000;
final VehicleDTO vehicle = VehicleDTO.builder()
.startPosition(new Point(5, 5))
.availabilityTimeWindow(TimeWindow.create(0, endTime))
.build();
final Scenario.Builder scenario = Scenario.builder()
.addEvent(AddDepotEvent.create(-1, new Point(5, 5)))
.addEvent(AddVehicleEvent.create(-1, vehicle))
.addEvent(AddVehicleEvent.create(-1, vehicle))
.addEvent(TimeOutEvent.create(endTime))
.addModel(PDPRoadModel.builder(RoadModelBuilders.plane())
.withAllowVehicleDiversion(true))
.addModel(DefaultPDPModel.builder())
.addModel(TimeModel.builder().withTickLength(250))
.setStopCondition(StopConditions.and(
StatsStopConditions.vehiclesDoneAndBackAtDepot(),
StatsStopConditions.timeOutEvent()));
final long[] dls = new long[3];
System.arraycopy(delays, 0, dls, 0, delays.length);
scenario
.addEvent(createParcel(0, dls[0], new Point(1, 1), new Point(9, 1)));
scenario
.addEvent(createParcel(1, dls[1], new Point(1, 2), new Point(9, 2)));
scenario
.addEvent(createParcel(2, dls[2], new Point(9, 9), new Point(1, 9)));
return scenario.build();
}