public static GlobalStateObjectBuilder globalBuilder() { return new GlobalStateObjectBuilder(); }
public GlobalStateObject build() { return SolverValidator.validateInputs(buildUnsafe()); }
final GlobalStateObject state = globalBuilder() .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addAvailableParcels(p1) .addVehicle(vehicleBuilder() .build()) .addVehicle(vehicleBuilder() .build()) .build(); final GlobalStateObject wrongState = globalBuilder() .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addVehicle(vehicleBuilder().setRoute(route()).build()).build();
/** * Tests that parcel that is being picked up is added to the route if it is * missing. */ @Test public void testFixSchedule1() { final GlobalStateObject state = globalBuilder() .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addAvailableParcel(p1) .addVehicle(vehicleBuilder() .setDestination(p1) .setRemainingServiceTime(10L) .build()) .build(); // parcel is being picked up, but appears only n times in route assertThat(fix(schedule(route()), state)).containsExactly(route(p1, p1)); assertThat(fix(schedule(route(p1)), state)).containsExactly(route(p1, p1)); assertThat(fix(schedule(route(p1, p1)), state)) .containsExactly(route(p1, p1)); }
GlobalStateObjectBuilder.vehicleBuilder().setVehicleDTO(vehicle.getDTO()) .setDestination(parcel).setRoute(availableParcels.asList()).build(); final GlobalStateObject globalState = GlobalStateObjectBuilder.globalBuilder().addAvailableParcel(parcel) .addVehicle(vehicelState).setSnapshot(graphRm.getSnapshot()) .buildUnsafe();
/** * Tests situation where first item in route is not the actual destination of * the vehicle. */ @Test public void testFixSchedule5() { final GlobalStateObject state = globalBuilder() .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addAvailableParcels(p1) .addVehicle(vehicleBuilder() .addToContents(p2) .setDestination(p2) .setRemainingServiceTime(10L) .build()) .addVehicle(vehicleBuilder() .addToContents(p3) .build()) .build(); assertThat(fix(schedule(route(p3, p2, p1), route(p3, p2)), state)) .isEqualTo(schedule(route(p2, p1), route(p3))); }
.build(); final GlobalStateObject gso = GlobalStateObjectBuilder.globalBuilder() .addAvailableParcel(A) .addVehicle(GlobalStateObjectBuilder.vehicleBuilder() .setLocation(new Point(5, 5)) .setRoute(ImmutableList.<Parcel>of(A, A)) .setDestination(A) .build()) .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .build(); new Point(5, 5)); final GlobalStateObject gso2 = GlobalStateObjectBuilder.globalBuilder() .addAvailableParcel(A) .addVehicle(GlobalStateObjectBuilder.vehicleBuilder() .setLocation(new Point(5, 5)) .setRoute(ImmutableList.<Parcel>of(A, A)) .setDestination(A) .build()) .setSnapshot(RoadModelSnapshotTestUtil.createGraphRoadModelSnapshot(g, SI.KILOMETER)) .build();
/** * Situation with two available parcels, one is being picked up. */ @Test public void testFixSchedule3() { final GlobalStateObject state = globalBuilder() .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addAvailableParcels(p1) .addVehicle(vehicleBuilder() .addToContents(p2) .setRemainingServiceTime(10L) .build()) .addVehicle(vehicleBuilder().build()) .build(); assertThat(fix(schedule(route(), route()), state)) .isEqualTo(schedule(route(p2), route())); assertThat(fix(schedule(route(p2, p2), route(p1, p3, p1)), state)) .isEqualTo(schedule(route(p2), route(p1, p1))); assertThat(fix(schedule(route(p1, p2, p3, p1, p2), route()), state)) .isEqualTo(schedule(route(p1, p1, p2), route())); }
/** * Situations where a parcel occurs in multiple routes. */ @Test public void testFixSchedule4() { final GlobalStateObject state = globalBuilder() .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addAvailableParcels(p1) .addVehicle(vehicleBuilder() .addToContents(p2) .setRemainingServiceTime(10L) .build()) .addVehicle(vehicleBuilder().build()) .build(); assertThat(fix(schedule(route(p2, p1), route(p3, p2)), state)) .isEqualTo(schedule(route(p2, p1), route())); assertThat(fix(schedule(route(p2, p1), route(p3, p2, p2)), state)) .isEqualTo(schedule(route(p2, p1), route())); assertThat(fix(schedule(route(p2, p1, p2), route(p3, p2, p2)), state)) .isEqualTo(schedule(route(p1, p2), route())); }
final GlobalStateObject state = globalBuilder() .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addAvailableParcels(p1, p5) .addVehicle(vehicleBuilder() .addToContents(p2) .setDestination(p2) .setRemainingServiceTime(10L) .build()) .addVehicle(vehicleBuilder() .addToContents(p3) .build()) .addVehicle(vehicleBuilder() .addToContents(p4) .build()) .build();
/** * Situation with two available parcels, one is being picked up. */ @Test public void testFixSchedule2() { final GlobalStateObject state = globalBuilder() .setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addAvailableParcels(p1, p2) .addVehicle(vehicleBuilder() .setDestination(p1) .setRemainingServiceTime(10L) .build()) .addVehicle(vehicleBuilder().build()) .build(); assertThat(fix(schedule(route(), route()), state)) .isEqualTo(schedule(route(p1, p1), route())); assertThat(fix(schedule(route(), route(p1)), state)) .isEqualTo(schedule(route(p1, p1), route())); assertThat(fix(schedule(route(), route(p1, p1)), state)) .isEqualTo(schedule(route(p1, p1), route())); assertThat(fix(schedule(route(), route(p1, p2, p1)), state)) .isEqualTo(schedule(route(p1, p1), route(p2))); assertThat(fix(schedule(route(), route(p1, p2, p3, p1)), state)) .isEqualTo(schedule(route(p1, p1), route(p2))); assertThat(fix(schedule(route(p2), route(p1, p3, p1)), state)) .isEqualTo(schedule(route(p1, p2, p1), route())); }