.setPlaneTravelTimes(new Point(0, 0), new Point(10, 10)) .addAvailableParcels(p1) .addVehicle(vehicleBuilder() .build()) .addVehicle(vehicleBuilder() .build()) .build(); .addVehicle(vehicleBuilder().setRoute(route()).build()).build();
GlobalStateObjectBuilder.vehicleBuilder().setVehicleDTO(vehicle.getDTO()) .setDestination(parcel).setRoute(availableParcels.asList()).build(); final GlobalStateObject globalState =
/** * 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))); }
/** * 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)); }
/** * 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())); }
.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())
.addVehicle(GlobalStateObjectBuilder.vehicleBuilder() .setLocation(new Point(5, 5)) .setRoute(ImmutableList.<Parcel>of(A, A)) .addVehicle(GlobalStateObjectBuilder.vehicleBuilder() .setLocation(new Point(5, 5)) .setRoute(ImmutableList.<Parcel>of(A, A))
/** * 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())); }