@Test public void when_shipmentroute_loadAtAct3ShouldBe10() { stateManager.informInsertionStarts(Arrays.asList(shipment_route), Collections.<Job>emptyList()); Capacity atAct = stateManager.getActivityState( shipment_route.getActivities().get(2), InternalStates.LOAD, Capacity.class); assertEquals(10, atAct.get(0)); }
@Test public void when_shipmentroute_pastMaxLoatAtAct4ShouldBe15() { stateManager.informInsertionStarts(Arrays.asList(shipment_route), Collections.<Job>emptyList()); Capacity atAct = stateManager.getActivityState( shipment_route.getActivities().get(3), InternalStates.PAST_MAXLOAD, Capacity.class); assertEquals(15, atAct.get(0)); }
@Test public void futureMaxLoatAtAct1ShouldBe15() { stateManager.informInsertionStarts(Arrays.asList(serviceRoute), Collections.<Job>emptyList()); Capacity atAct1 = stateManager.getActivityState( serviceRoute.getActivities().get(0), InternalStates.FUTURE_MAXLOAD, Capacity.class); assertEquals(15, atAct1.get(0)); }
@Test public void pastMaxLoatAtAct2ShouldBe10() { stateManager.informInsertionStarts(Arrays.asList(serviceRoute), Collections.<Job>emptyList()); Capacity atAct2 = stateManager.getActivityState( serviceRoute.getActivities().get(1), InternalStates.PAST_MAXLOAD, Capacity.class); assertEquals(15, atAct2.get(0)); }
/** * @param activity to check skill constraint * @param route that must contain specified activity * @return true if vehicle does not have the skills to conduct specified activity, false * otherwise. Returns null if specified route or activity is null or if route does not contain * specified activity or if skill state connot be found. If specified activity is Start or * End, it returns false. */ public Boolean hasSkillConstraintViolationAtActivity(TourActivity activity, VehicleRoute route) { if (route == null) throw new IllegalArgumentException("route is missing."); if (activity == null) throw new IllegalArgumentException("activity is missing."); if (activity instanceof Start) return false; if (activity instanceof End) return false; verifyThatRouteContainsAct(activity, route); return stateManager.getActivityState(activity, skill_id, Boolean.class); }
/** * @param activity to get the load from (after activity) * @return load right after the specified activity. If act is Start, it returns the load * atBeginning of the specified route. If act is End, it returns the load atEnd of specified * route. Returns null if no load can be found. */ public Capacity getLoadRightAfterActivity(TourActivity activity, VehicleRoute route) { if (route == null) throw new IllegalArgumentException("route is missing."); if (activity == null) throw new IllegalArgumentException("activity is missing."); if (activity instanceof Start) return getLoadAtBeginning(route); if (activity instanceof End) return getLoadAtEnd(route); verifyThatRouteContainsAct(activity, route); return stateManager.getActivityState(activity, InternalStates.LOAD, Capacity.class); }
/** * @param activity at which is distance of the current route is measured * @return distance at activity */ public Double getDistanceAtActivity(TourActivity activity, VehicleRoute route) { if (route == null) throw new IllegalArgumentException("route is missing."); if (activity == null) throw new IllegalArgumentException("activity is missing."); if (activity instanceof Start) return 0.; if (activity instanceof End) return getDistance(route); verifyThatRouteContainsAct(activity, route); return stateManager.getActivityState(activity, distance_id, Double.class); }
private Double getLastTransport(TourActivity activity, VehicleRoute route, StateId id) { if (route == null) throw new IllegalArgumentException("route is missing."); if (activity == null) throw new IllegalArgumentException("activity is missing."); if (activity instanceof Start) return 0.; if (activity instanceof End) return stateManager.getRouteState(route, id, Double.class); verifyThatRouteContainsAct(activity, route); return stateManager.getActivityState(activity, id, Double.class); }
/** * @param activity to get the variable transport costs from * @param route where the activity should be part of * @return variable transport costs at activity, i.e. sum of transport costs from start of route * to the specified activity If activity is start, it returns 0.. If it is end, it returns * .getVariableTransportCosts(route). */ public Double getVariableTransportCostsAtActivity(TourActivity activity, VehicleRoute route) { if (route == null) throw new IllegalArgumentException("route is missing."); if (activity == null) throw new IllegalArgumentException("activity is missing."); if (activity instanceof Start) return 0.; if (activity instanceof End) return getVariableTransportCosts(route); verifyThatRouteContainsAct(activity, route); return stateManager.getActivityState(activity, InternalStates.COSTS, Double.class); }
@Test public void when_pdroute_loadAtAct2ShouldBe10() { stateManager.informInsertionStarts( Arrays.asList(pickup_delivery_route), Collections.<Job>emptyList()); Capacity atAct2 = stateManager.getActivityState( pickup_delivery_route.getActivities().get(1), InternalStates.LOAD, Capacity.class); assertEquals(10, atAct2.get(0)); }
@Test public void whenVehicleRouteHasPickupAndDeliveryAndPickup_latestStartTimeOfAct1MustBeCorrect() { assertEquals(30., route.getActivities().get(0).getTheoreticalLatestOperationStartTime(), 0.01); assertEquals( 10., stateManager.getActivityState( route.getActivities().get(0), InternalStates.LATEST_OPERATION_START_TIME, Double.class), 0.01); }
@Test public void when_pdroute_pastMaxLoatAtAct1ShouldBe15() { stateManager.informInsertionStarts( Arrays.asList(pickup_delivery_route), Collections.<Job>emptyList()); Capacity atAct1 = stateManager.getActivityState( pickup_delivery_route.getActivities().get(0), InternalStates.PAST_MAXLOAD, Capacity.class); assertEquals(15, atAct1.get(0)); }
/** * @param activity to get the load from (before activity) * @return load just before the specified activity. If act is Start, it returns the load * atBeginning of the specified route. If act is End, it returns the load atEnd of specified * route. */ public Capacity getLoadJustBeforeActivity(TourActivity activity, VehicleRoute route) { if (route == null) throw new IllegalArgumentException("route is missing."); if (activity == null) throw new IllegalArgumentException("activity is missing."); if (activity instanceof Start) return getLoadAtBeginning(route); if (activity instanceof End) return getLoadAtEnd(route); verifyThatRouteContainsAct(activity, route); Capacity afterAct = stateManager.getActivityState(activity, InternalStates.LOAD, Capacity.class); if (afterAct != null && activity.getSize() != null) { return Capacity.subtract(afterAct, activity.getSize()); } else if (afterAct != null) return afterAct; else return null; }