Point getParcelPos(RoadUser obj) { if (!containsObject(obj) && obj instanceof Parcel) { final ParcelState state = pdpModel.get().getParcelState( (Parcel) obj); checkArgument( state == ParcelState.IN_CARGO, "Can only move to parcels which are either on the map or in cargo, " + "state is %s, obj is %s.", state, obj); return ((Parcel) obj).getDeliveryLocation(); } return getPosition(obj); }
Point getParcelPos(RoadUser obj) { if (!containsObject(obj) && obj instanceof Parcel) { final ParcelState state = pdpModel.get().getParcelState( (Parcel) obj); checkArgument( state == ParcelState.IN_CARGO, "Can only move to parcels which are either on the map or in cargo, " + "state is %s, obj is %s.", state, obj); return ((Parcel) obj).getDeliveryLocation(); } return getPosition(obj); }
if (destinationRoadUser instanceof Parcel) { final Parcel dp = (Parcel) destinationRoadUser; final DestType type = containsObject(dp) ? DestType.PICKUP : DestType.DELIVERY; final Point pos = getParcelPos(destinationRoadUser);
if (destinationRoadUser instanceof Parcel) { final Parcel dp = (Parcel) destinationRoadUser; final DestType type = containsObject(dp) ? DestType.PICKUP : DestType.DELIVERY; final Point pos = getParcelPos(destinationRoadUser);
@Test public void twoVehiclesGoToSame() { // this is allowed rm.moveTo(dv1, dp1, time(10)); rm.moveTo(dv2, dp1, time(10)); assertEquals(rm.getPosition(dv1), rm.getPosition(dp1)); assertEquals(rm.getPosition(dv2), rm.getPosition(dp1)); pm.pickup(dv2, dp1, time(1)); assertFalse(rm.containsObject(dp1)); assertEquals(ParcelState.IN_CARGO, pm.getParcelState(dp1)); rm.moveTo(dv1, dp2, time(3)); }
assertFalse(rm.containsObject(dp1)); assertEquals(ParcelState.PICKING_UP, pm.getParcelState(dp1)); dv1.tick(time(1));