From 08a51c6a76d2a9ce1d3325708587d079213c2ce3 Mon Sep 17 00:00:00 2001 From: oblonski <4sschroeder@gmail.com> Date: Thu, 20 Feb 2014 08:19:51 +0100 Subject: [PATCH] added tests --- .../core/algorithm/state/UpdateLoads.java | 5 -- .../core/algorithm/state/UpdateLoadsTest.java | 57 +++++++++++++++++++ 2 files changed, 57 insertions(+), 5 deletions(-) create mode 100644 jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateLoadsTest.java diff --git a/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateLoads.java b/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateLoads.java index 6e9a6df5..394ed994 100644 --- a/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateLoads.java +++ b/jsprit-core/src/main/java/jsprit/core/algorithm/state/UpdateLoads.java @@ -64,7 +64,6 @@ class UpdateLoads implements ActivityVisitor, StateUpdater, InsertionStartsListe @Override public void finish() { -// stateManager.putRouteState(route, StateFactory., state) currentLoad = 0; } @@ -90,16 +89,12 @@ class UpdateLoads implements ActivityVisitor, StateUpdater, InsertionStartsListe @Override public void informJobInserted(Job job2insert, VehicleRoute inRoute, double additionalCosts, double additionalTime) { -// log.debug("insert("+job2insert+").into("+inRoute+")"); -// log(inRoute); if(job2insert instanceof Delivery){ int loadAtDepot = (int) stateManager.getRouteState(inRoute, StateFactory.LOAD_AT_BEGINNING).toDouble(); -// log.info("loadAtDepot="+loadAtDepot); stateManager.putInternalRouteState(inRoute, StateFactory.LOAD_AT_BEGINNING, StateFactory.createState(loadAtDepot + job2insert.getCapacityDemand())); } else if(job2insert instanceof Pickup || job2insert instanceof Service){ int loadAtEnd = (int) stateManager.getRouteState(inRoute, StateFactory.LOAD_AT_END).toDouble(); -// log.info("loadAtEnd="+loadAtEnd); stateManager.putInternalRouteState(inRoute, StateFactory.LOAD_AT_END, StateFactory.createState(loadAtEnd + job2insert.getCapacityDemand())); } } diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateLoadsTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateLoadsTest.java new file mode 100644 index 00000000..363f1912 --- /dev/null +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateLoadsTest.java @@ -0,0 +1,57 @@ +package jsprit.core.algorithm.state; + +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.Arrays; +import java.util.Collections; + +import jsprit.core.problem.Capacity; +import jsprit.core.problem.VehicleRoutingProblem; +import jsprit.core.problem.driver.Driver; +import jsprit.core.problem.job.Job; +import jsprit.core.problem.job.Service; +import jsprit.core.problem.solution.route.VehicleRoute; +import jsprit.core.problem.solution.route.state.StateFactory; +import jsprit.core.problem.vehicle.Vehicle; + +import org.junit.Test; + +public class UpdateLoadsTest { + + @Test + public void whenVehicleRouteIsEmpty_loadsAtBeginningAndEndShouldBeZero(){ + StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class)); +// RouteActivityVisitor routeActivityVisitor = new RouteActivityVisitor(); + UpdateLoads updateLoads = new UpdateLoads(stateManager); +// routeActivityVisitor.addActivityVisitor(updateLoads); + + VehicleRoute route = VehicleRoute.emptyRoute(); +// routeActivityVisitor.(route); + updateLoads.informInsertionStarts(Arrays.asList(route), Collections.emptyList()); + assertEquals(0.,stateManager.getRouteState(route, StateFactory.LOAD_AT_BEGINNING).toDouble(),0.1); + assertEquals(0.,stateManager.getRouteState(route, StateFactory.LOAD_AT_END).toDouble(),0.1); + } + + @SuppressWarnings("deprecation") + @Test + public void whenVehcicleRouteIsNotEmpty_loadsAtBeginningAndEndShouldBeCalculatedCorrectly(){ + StateManager stateManager = new StateManager(mock(VehicleRoutingProblem.class)); + UpdateLoads updateLoads = new UpdateLoads(stateManager); + + Service service = mock(Service.class); + + when(service.getCapacityDemand()).thenReturn(1); + Capacity capacity = Capacity.Builder.newInstance().addDimension(0, 1).build(); + when(service.getSize()).thenReturn(capacity); + + VehicleRoute route = VehicleRoute.Builder.newInstance(mock(Vehicle.class), mock(Driver.class)) + .addService(service).build(); + + updateLoads.informInsertionStarts(Arrays.asList(route), Collections.emptyList()); + assertEquals(0.,stateManager.getRouteState(route, StateFactory.LOAD_AT_BEGINNING).toDouble(),0.1); + assertEquals(1.,stateManager.getRouteState(route, StateFactory.LOAD_AT_END).toDouble(),0.1); + } + +}