Esempio n. 1
0
 @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));
 }
Esempio n. 2
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));
 }
Esempio n. 3
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));
 }
Esempio n. 4
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));
 }
Esempio n. 5
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);
 }
Esempio n. 6
0
 /**
  * @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);
 }
Esempio n. 7
0
 /**
  * @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);
 }
Esempio n. 8
0
 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);
 }
Esempio n. 9
0
 /**
  * @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);
 }
Esempio n. 10
0
 @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);
 }
Esempio n. 12
0
 @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));
 }
Esempio n. 13
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;
 }