@Override public VehicleDTO doDeserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) { final Iterator<JsonElement> it = json.getAsJsonArray().iterator(); return VehicleDTO.builder() .availabilityTimeWindow( (TimeWindow) context.deserialize(it.next(), TimeWindow.class)) .capacity(it.next().getAsInt()).speed(it.next().getAsDouble()) .startPosition((Point) context.deserialize(it.next(), Point.class)) .build(); }
@Override public VehicleDTO doDeserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) { final Iterator<JsonElement> it = json.getAsJsonArray().iterator(); return VehicleDTO.builder() .availabilityTimeWindow( (TimeWindow) context.deserialize(it.next(), TimeWindow.class)) .capacity(it.next().getAsInt()).speed(it.next().getAsDouble()) .startPosition((Point) context.deserialize(it.next(), Point.class)) .build(); }
.speed(1d) .capacity(capacity) .availabilityTimeWindow(timeWindow) .build();
.speed(30d) .capacity(0) .availabilityTimeWindow(TimeWindow.create(100L, 100000L)) .build();
.speed(50d) .capacity(10) .availabilityTimeWindow(TimeWindow.create(0, 1000000)) .build(), false);
.speed(30d) .capacity(1) .availabilityTimeWindow(TimeWindow.create(0, minute(30))) .build(); d = new RouteFollowingVehicle(v, allowDelayedRouteChanges, routeAdjuster);
.speed(7d) .capacity(2) .availabilityTimeWindow(TimeWindow.create(0, 1000L)) .build())) .addEvent(AddDepotEvent.create(76, new Point(3, 3))) .speed(3d) .capacity(1) .availabilityTimeWindow(TimeWindow.create(500, 10000L)) .build())) .addEvent(AddParcelEvent.create(
.speed(speed) .capacity(capacity) .availabilityTimeWindow(tw) .build(); builder.add(AddVehicleEvent.create(time, dto));
.speed(truckSpeed) .capacity(0) .availabilityTimeWindow(TimeWindow.create(0, totalTime)) .build()));
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(); }
/** * Tests a subclass that changes the state machine. */ @Test public void testExtension() { final VehicleDTO v = VehicleDTO.builder() .startPosition(new Point(1, 1)) .speed(30d) .capacity(1) .availabilityTimeWindow(TimeWindow.create(0, minute(30))) .build(); final SubVehicle vehicle = new SubVehicle(v, allowDelayedRouteChanges); d = vehicle; PDPTWTestUtil.register(rm, pm, vehicle); tick(0, 1); assertEquals(vehicle.waitState, vehicle.stateMachine.getCurrentState()); vehicle.stateMachine.handle(ExtraEvent.TEST_EVENT, vehicle); assertEquals(vehicle.extraState, vehicle.stateMachine.getCurrentState()); tick(1, 2); assertEquals(vehicle.waitState, vehicle.stateMachine.getCurrentState()); }
static Gendreau06Scenario create(int numVehicles, long endTime, AddParcelEvent... parcelEvents) { final List<TimedEvent> events = newArrayList(); final Point depotPosition = new Point(2.0, 2.5); final double truckSpeed = 30; events.add(AddDepotEvent.create(-1, depotPosition)); for (int i = 0; i < numVehicles; i++) { events.add(AddVehicleEvent.create(-1, VehicleDTO.builder() .startPosition(depotPosition) .speed(truckSpeed) .capacity(0) .availabilityTimeWindow(TimeWindow.always()) .build())); } events.addAll(asList(parcelEvents)); events.add(TimeOutEvent.create(endTime)); return Gendreau06Scenario.create(events, 1000L, GendreauProblemClass.LONG_LOW_FREQ, 1, false, false); }
static VehicleDTO vdto() { return VehicleDTO.builder() .startPosition(new Point(0, 0)) .speed(1d) .capacity(1) .availabilityTimeWindow(TimeWindow.always()) .build(); }
public TestVehicle(Point start) { super(VehicleDTO.builder() .startPosition(start) .speed(10d) .capacity(0) .availabilityTimeWindow(DEFAULT_TW) .build()); }
TestVehicle(Point start) { super(VehicleDTO.builder() .startPosition(start) .speed(30d) .capacity(1) .availabilityTimeWindow(TimeWindow.create(0, 1000)) .build(), false); }
/** * Copy the value of the specified vehicle into this builder. * @param dto The dto to copy values from. * @return This, as per the builder pattern. */ public Builder use(VehicleDTO dto) { return startPosition(dto.getStartPosition()) .availabilityTimeWindow(dto.getAvailabilityTimeWindow()) .speed(dto.getSpeed()) .capacity(dto.getCapacity()); }
MovingTestVehicle(Point start, Point destination, PDPRoadModel m) { super(VehicleDTO.builder() .startPosition(start) .speed(1) .capacity(1) .availabilityTimeWindow(TW) .build()); dto = getDTO(); target = destination; model = m; }
Agent() { super(VehicleDTO.builder() .startPosition(new Point(1, 1)) .availabilityTimeWindow(TimeWindow.create(0, 1 * 60 * 60 * 1000)) .build(), true); solver = Optional.absent(); }
TestVehicle(Point start) { super(VehicleDTO.builder() .startPosition(start) .speed(.1) .capacity(1) .availabilityTimeWindow(TW) .build()); dto = getDTO(); }