From e1e231ce92809b6a6920a8f517e76bc1ef718530 Mon Sep 17 00:00:00 2001 From: Kandel Irina Date: Mon, 29 Jan 2018 12:36:05 +0200 Subject: [PATCH] remove fixed cost back --- .../VehicleTypeDependentJobInsertionCalculator.java | 5 +++++ .../CalcVehicleTypeDependentServiceInsertionTest.java | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/VehicleTypeDependentJobInsertionCalculator.java b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/VehicleTypeDependentJobInsertionCalculator.java index 8a4dba3f..9eb7ec28 100644 --- a/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/VehicleTypeDependentJobInsertionCalculator.java +++ b/jsprit-core/src/main/java/com/graphhopper/jsprit/core/algorithm/recreate/VehicleTypeDependentJobInsertionCalculator.java @@ -124,6 +124,11 @@ final class VehicleTypeDependentJobInsertionCalculator implements JobInsertionCo bestKnownCost_ = iData.getInsertionCost(); } } + + if (bestIData.getSelectedVehicle() != null) { + bestIData.setInsertionCost(bestIData.getInsertionCost() - bestIData.getSelectedVehicle().getType().getVehicleCostParams().fix); + } + return bestIData; } diff --git a/jsprit-core/src/test/java/com/graphhopper/jsprit/core/algorithm/recreate/CalcVehicleTypeDependentServiceInsertionTest.java b/jsprit-core/src/test/java/com/graphhopper/jsprit/core/algorithm/recreate/CalcVehicleTypeDependentServiceInsertionTest.java index b7c57ad4..e2ee80c5 100644 --- a/jsprit-core/src/test/java/com/graphhopper/jsprit/core/algorithm/recreate/CalcVehicleTypeDependentServiceInsertionTest.java +++ b/jsprit-core/src/test/java/com/graphhopper/jsprit/core/algorithm/recreate/CalcVehicleTypeDependentServiceInsertionTest.java @@ -31,6 +31,7 @@ import java.util.Collections; import java.util.Random; import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -111,13 +112,16 @@ public class CalcVehicleTypeDependentServiceInsertionTest { JobInsertionCostsCalculator calc = mock(JobInsertionCostsCalculator.class); InsertionData iDataVeh1 = new InsertionData(insertionCost1, InsertionData.NO_INDEX, 1, veh1, null); InsertionData iDataVeh2 = new InsertionData(insertionCost2, InsertionData.NO_INDEX, 1, veh2, null); + InsertionData iDataVeh1PlusFixed = new InsertionData(insertionCost1 + fixed1, InsertionData.NO_INDEX, 1, veh1, null); when(calc.getInsertionData(vehicleRoute, service, veh1, veh1.getEarliestDeparture(), null, Double.MAX_VALUE)).thenReturn(iDataVeh1); when(calc.getInsertionData(vehicleRoute, service, veh2, veh2.getEarliestDeparture(), null, Double.MAX_VALUE)).thenReturn(iDataVeh2); - when(calc.getInsertionData(vehicleRoute, service, veh2, veh2.getEarliestDeparture(), null, insertionCost1 + fixed1)).thenReturn(iDataVeh1); + when(calc.getInsertionData(vehicleRoute, service, veh2, veh2.getEarliestDeparture(), null, iDataVeh1PlusFixed.getInsertionCost())).thenReturn(iDataVeh1PlusFixed); VehicleRoutingProblem vrp = mock(VehicleRoutingProblem.class); when(vrp.getInitialVehicleRoutes()).thenReturn(Collections.emptyList()); VehicleTypeDependentJobInsertionCalculator insertion = new VehicleTypeDependentJobInsertionCalculator(vrp, fleetManager, calc); InsertionData iData = insertion.getInsertionData(vehicleRoute, service, null, 0.0, null, Double.MAX_VALUE); + + assertEquals(iData.getInsertionCost(), insertionCost1, 0.001); assertThat(iData.getSelectedVehicle(), is(veh1)); }