From 200294f30b2f547859eba8c0905f34852548b67c Mon Sep 17 00:00:00 2001 From: oblonski Date: Mon, 18 Jul 2016 13:51:27 +0200 Subject: [PATCH] reproduce bug #259 --- .../UpdateVehicleDependentTimeWindowTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/jsprit-core/src/test/java/com/graphhopper/jsprit/core/algorithm/state/UpdateVehicleDependentTimeWindowTest.java b/jsprit-core/src/test/java/com/graphhopper/jsprit/core/algorithm/state/UpdateVehicleDependentTimeWindowTest.java index 93a62f5e..522358d5 100644 --- a/jsprit-core/src/test/java/com/graphhopper/jsprit/core/algorithm/state/UpdateVehicleDependentTimeWindowTest.java +++ b/jsprit-core/src/test/java/com/graphhopper/jsprit/core/algorithm/state/UpdateVehicleDependentTimeWindowTest.java @@ -15,7 +15,9 @@ import com.graphhopper.jsprit.core.problem.vehicle.FiniteFleetManagerFactory; import com.graphhopper.jsprit.core.problem.vehicle.Vehicle; import com.graphhopper.jsprit.core.problem.vehicle.VehicleFleetManager; import com.graphhopper.jsprit.core.problem.vehicle.VehicleImpl; +import com.graphhopper.jsprit.core.util.Coordinate; import com.graphhopper.jsprit.core.util.CostFactory; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -220,5 +222,33 @@ public class UpdateVehicleDependentTimeWindowTest { InternalStates.LATEST_OPERATION_START_TIME, Double.class),0.01); } + @Test + public void updateOfOpenRoutesShouldBeDoneCorrectly(){ + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v") + .setReturnToDepot(false) + .setStartLocation(Location.Builder.newInstance().setCoordinate(Coordinate.newInstance(0, 0)).build()) + .setLatestArrival(51) + .build(); + + Service service = Service.Builder.newInstance("s") + .setLocation(Location.Builder.newInstance().setCoordinate(Coordinate.newInstance(50, 0)).build()).build(); + + VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance() + .addJob(service).addVehicle(vehicle).setFleetSize(VehicleRoutingProblem.FleetSize.FINITE) + .build(); + + VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle) + .setJobActivityFactory(vrp.getJobActivityFactory()).addService(service).build(); + + stateManager = new StateManager(vrp); + UpdateVehicleDependentPracticalTimeWindows updater = new UpdateVehicleDependentPracticalTimeWindows(stateManager, vrp.getTransportCosts(), vrp.getActivityCosts()); + stateManager.addStateUpdater(updater); + stateManager.reCalculateStates(route); + + Double activityState = stateManager.getActivityState(route.getActivities().get(0),route.getVehicle(), InternalStates.LATEST_OPERATION_START_TIME, Double.class); + Assert.assertEquals(51d, activityState, 0.01); + + } + }