diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/DeactivateTimeWindowsTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/DeactivateTimeWindowsTest.java index b8bcf1c3..ff5a9970 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/DeactivateTimeWindowsTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/DeactivateTimeWindowsTest.java @@ -19,6 +19,7 @@ package jsprit.core.algorithm; import jsprit.core.algorithm.state.StateManager; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.constraint.ConstraintManager; import jsprit.core.problem.job.Service; @@ -26,7 +27,6 @@ import jsprit.core.problem.solution.VehicleRoutingProblemSolution; import jsprit.core.problem.solution.route.VehicleRoute; import jsprit.core.problem.solution.route.activity.TimeWindow; import jsprit.core.problem.vehicle.VehicleImpl; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import org.junit.Assert; import org.junit.Test; @@ -37,9 +37,9 @@ public class DeactivateTimeWindowsTest { @Test public void activityTimesShouldIgnoreTimeWindows(){ - Service service = Service.Builder.newInstance("s").setCoord(Coordinate.newInstance(20, 0)) - .setTimeWindow(TimeWindow.newInstance(40,50)).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); + Service service = Service.Builder.newInstance("s").setLocation(Location.newInstance(20, 0)) + .setTimeWindow(TimeWindow.newInstance(40, 50)).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0, 0)).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(service).addVehicle(vehicle).build(); VehicleRoutingAlgorithmBuilder vraBuilder = new VehicleRoutingAlgorithmBuilder(vrp,"src/test/resources/algorithmConfig.xml"); vraBuilder.addDefaultCostCalculators(); @@ -53,9 +53,9 @@ public class DeactivateTimeWindowsTest { @Test public void whenNotActivatingViaStateManager_activityTimesShouldConsiderTimeWindows(){ - Service service = Service.Builder.newInstance("s").setCoord(Coordinate.newInstance(20, 0)) - .setTimeWindow(TimeWindow.newInstance(40,50)).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); + Service service = Service.Builder.newInstance("s").setLocation(Location.newInstance(20, 0)) + .setTimeWindow(TimeWindow.newInstance(40, 50)).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0, 0)).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(service).addVehicle(vehicle).build(); VehicleRoutingAlgorithmBuilder vraBuilder = new VehicleRoutingAlgorithmBuilder(vrp,"src/test/resources/algorithmConfig.xml"); vraBuilder.addDefaultCostCalculators(); @@ -72,9 +72,9 @@ public class DeactivateTimeWindowsTest { @Test public void activityTimesShouldConsiderTimeWindows(){ - Service service = Service.Builder.newInstance("s").setCoord(Coordinate.newInstance(20, 0)) - .setTimeWindow(TimeWindow.newInstance(40,50)).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); + Service service = Service.Builder.newInstance("s").setLocation(Location.newInstance(20, 0)) + .setTimeWindow(TimeWindow.newInstance(40, 50)).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0, 0)).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(service).addVehicle(vehicle).build(); VehicleRoutingAlgorithmBuilder vraBuilder = new VehicleRoutingAlgorithmBuilder(vrp,"src/test/resources/algorithmConfig.xml"); vraBuilder.addCoreConstraints(); @@ -89,9 +89,9 @@ public class DeactivateTimeWindowsTest { @Test public void whenActivatingViaStateManager_activityTimesShouldConsiderTimeWindows(){ - Service service = Service.Builder.newInstance("s").setCoord(Coordinate.newInstance(20, 0)) - .setTimeWindow(TimeWindow.newInstance(40,50)).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); + Service service = Service.Builder.newInstance("s").setLocation(Location.newInstance(20, 0)) + .setTimeWindow(TimeWindow.newInstance(40, 50)).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0, 0)).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(service).addVehicle(vehicle).build(); VehicleRoutingAlgorithmBuilder vraBuilder = new VehicleRoutingAlgorithmBuilder(vrp,"src/test/resources/algorithmConfig.xml"); vraBuilder.addDefaultCostCalculators(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/ExternalInitialSolutionIsInValidTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/ExternalInitialSolutionIsInValidTest.java index 69abc213..5189a665 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/ExternalInitialSolutionIsInValidTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/ExternalInitialSolutionIsInValidTest.java @@ -1,37 +1,34 @@ package jsprit.core.algorithm; import jsprit.core.algorithm.io.VehicleRoutingAlgorithms; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.job.Service; import jsprit.core.problem.solution.VehicleRoutingProblemSolution; import jsprit.core.problem.solution.route.VehicleRoute; import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import org.junit.Test; import java.util.Arrays; import java.util.Collection; -/** - * Created by schroeder on 24.07.14. - */ + public class ExternalInitialSolutionIsInValidTest { @Test public void itShouldSolveProblemWithIniSolutionExternallyCreated(){ - Service s1 = Service.Builder.newInstance("s1").setCoord(Coordinate.newInstance(10,0)).build(); - Service s2 = Service.Builder.newInstance("s2").setCoord(Coordinate.newInstance(0,10)).build(); + Service s1 = Service.Builder.newInstance("s1").setLocation(Location.newInstance(10, 0)).build(); + Service s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance(0,10)).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v1").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v1").setStartLocation(Location.newInstance(0,0)).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(s1).addJob(s2).addVehicle(vehicle).build(); VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "src/test/resources/algorithm_without_construction.xml"); - VehicleImpl vehicle2 = VehicleImpl.Builder.newInstance("v1").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); /* create ini sol */ diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT.java index a4b9eea1..70929dd3 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT.java @@ -18,6 +18,7 @@ package jsprit.core.algorithm; import jsprit.core.algorithm.box.GreedySchrimpfFactory; import jsprit.core.algorithm.termination.IterationWithoutImprovementTermination; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.job.Service; @@ -169,7 +170,8 @@ public class RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_IT { /* * build service */ - Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])).setLocationId(lineTokens[0]).build(); + Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])) + .setLocation(Location.newInstance(lineTokens[0])).build(); /* * and add it to problem */ diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndDistanceCosts_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndDistanceCosts_IT.java index 7ae1e261..8da0978d 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndDistanceCosts_IT.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndDistanceCosts_IT.java @@ -18,6 +18,7 @@ package jsprit.core.algorithm; import jsprit.core.algorithm.box.GreedySchrimpfFactory; import jsprit.core.algorithm.termination.IterationWithoutImprovementTermination; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.job.Service; @@ -169,7 +170,8 @@ public class RefuseCollectionWithCostsHigherThanTimesAndFiniteFleet_withTimeAndD /* * build service */ - Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])).setLocationId(lineTokens[0]).build(); + Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])) + .setLocation(Location.newInstance(lineTokens[0])).build(); /* * and add it to problem */ diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollection_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollection_IT.java index 7bb05287..3e10ca4a 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollection_IT.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/RefuseCollection_IT.java @@ -287,7 +287,8 @@ public class RefuseCollection_IT { /* * build service */ - Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])).setLocationId(lineTokens[0]).build(); + Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])) + .setLocation(Location.newInstance(lineTokens[0])).build(); /* * and add it to problem */ @@ -319,7 +320,8 @@ public class RefuseCollection_IT { /* * build service */ - Pickup service = (Pickup) Pickup.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])).setLocationId(lineTokens[0]).build(); + Pickup service = (Pickup) Pickup.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])) + .setLocation(Location.newInstance(lineTokens[0])).build(); /* * and add it to problem */ @@ -341,7 +343,8 @@ public class RefuseCollection_IT { /* * build service */ - Delivery service = (Delivery) Delivery.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])).setLocationId(lineTokens[0]).build(); + Delivery service = (Delivery) Delivery.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])) + .setLocation(Location.newInstance(lineTokens[0])).build(); /* * and add it to problem */ diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/UnassignedJobListTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/UnassignedJobListTest.java index a22f3064..6fafc90b 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/UnassignedJobListTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/UnassignedJobListTest.java @@ -1,12 +1,12 @@ package jsprit.core.algorithm; import jsprit.core.algorithm.box.GreedySchrimpfFactory; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.job.Service; import jsprit.core.problem.solution.VehicleRoutingProblemSolution; import jsprit.core.problem.solution.route.activity.TimeWindow; import jsprit.core.problem.vehicle.VehicleImpl; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import org.junit.Test; @@ -19,10 +19,10 @@ public class UnassignedJobListTest { @Test public void job2ShouldBeInBadJobList_dueToTimeWindow(){ VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); - builder.addVehicle(VehicleImpl.Builder.newInstance("v1").setEarliestStart(0).setLatestArrival(12).setStartLocationCoordinate(Coordinate.newInstance(1, 1)).build()); - Service job1 = Service.Builder.newInstance("job1").setCoord(Coordinate.newInstance(0, 0)).setTimeWindow(TimeWindow.newInstance(0, 12)).setServiceTime(1).build(); + builder.addVehicle(VehicleImpl.Builder.newInstance("v1").setEarliestStart(0).setLatestArrival(12).setStartLocation(Location.newInstance(1, 1)).build()); + Service job1 = Service.Builder.newInstance("job1").setLocation(Location.newInstance(0, 0)).setTimeWindow(TimeWindow.newInstance(0, 12)).setServiceTime(1).build(); builder.addJob(job1); - Service job2 = Service.Builder.newInstance("job2").setCoord(Coordinate.newInstance(2, 2)).setTimeWindow(TimeWindow.newInstance(12, 24)).setServiceTime(1).build(); + Service job2 = Service.Builder.newInstance("job2").setLocation(Location.newInstance(2, 2)).setTimeWindow(TimeWindow.newInstance(12, 24)).setServiceTime(1).build(); builder.addJob(job2); VehicleRoutingProblem vrp = builder.build(); @@ -38,10 +38,10 @@ public class UnassignedJobListTest { @Test public void job2ShouldBeInBadJobList_dueToSize(){ VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); - builder.addVehicle(VehicleImpl.Builder.newInstance("v1").setEarliestStart(0).setLatestArrival(12).setStartLocationCoordinate(Coordinate.newInstance(1, 1)).build()); - Service job1 = Service.Builder.newInstance("job1").setCoord(Coordinate.newInstance(0, 0)).setTimeWindow(TimeWindow.newInstance(0, 12)).setServiceTime(1).build(); + builder.addVehicle(VehicleImpl.Builder.newInstance("v1").setEarliestStart(0).setLatestArrival(12).setStartLocation(Location.newInstance(1, 1)).build()); + Service job1 = Service.Builder.newInstance("job1").setLocation(Location.newInstance(0, 0)).setTimeWindow(TimeWindow.newInstance(0, 12)).setServiceTime(1).build(); builder.addJob(job1); - Service job2 = Service.Builder.newInstance("job2").setCoord(Coordinate.newInstance(2, 2)).addSizeDimension(0,10).setTimeWindow(TimeWindow.newInstance(0, 12)).setServiceTime(1).build(); + Service job2 = Service.Builder.newInstance("job2").setLocation(Location.newInstance(2, 2)).addSizeDimension(0,10).setTimeWindow(TimeWindow.newInstance(0, 12)).setServiceTime(1).build(); builder.addJob(job2); VehicleRoutingProblem vrp = builder.build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/CalcWithTimeSchedulingTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/CalcWithTimeSchedulingTest.java index df88bb59..abafb5ce 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/CalcWithTimeSchedulingTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/CalcWithTimeSchedulingTest.java @@ -32,6 +32,7 @@ import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.util.Coordinate; import jsprit.core.util.CrowFlyCosts; import jsprit.core.util.Solutions; +import jsprit.core.util.TestUtils; import java.util.Collection; @@ -43,11 +44,12 @@ public class CalcWithTimeSchedulingTest { public void timeScheduler(){ VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("myVehicle").setEarliestStart(0.0).setLatestArrival(100.0). - setStartLocationCoordinate(Coordinate.newInstance(0, 0)).setStartLocationId("0,0") + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("myVehicle").setEarliestStart(0.0).setLatestArrival(100.0). + setStartLocation(TestUtils.loc("0,0", Coordinate.newInstance(0, 0))) .setType(VehicleTypeImpl.Builder.newInstance("myType").addCapacityDimension(0, 20).setCostPerDistance(1.0).build()).build(); vrpBuilder.addVehicle(vehicle); - vrpBuilder.addJob(Service.Builder.newInstance("myService").addSizeDimension(0, 2).setLocationId("0,20").setCoord(Coordinate.newInstance(0, 20)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("myService").addSizeDimension(0, 2) + .setLocation(TestUtils.loc("0,20",Coordinate.newInstance(0, 20))).build()); vrpBuilder.setFleetSize(FleetSize.INFINITE); vrpBuilder.setRoutingCost(getTpCosts(new CrowFlyCosts(vrpBuilder.getLocations()))); VehicleRoutingProblem vrp = vrpBuilder.build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/RegretInsertionTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/RegretInsertionTest.java index 224147b3..8f88e146 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/RegretInsertionTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/RegretInsertionTest.java @@ -39,10 +39,10 @@ public class RegretInsertionTest { @Test public void noRoutesShouldBeCorrect(){ - Service s1 = Service.Builder.newInstance("s1").setCoord(Coordinate.newInstance(0,10)).build(); - Service s2 = Service.Builder.newInstance("s2").setCoord(Coordinate.newInstance(0,5)).build(); + Service s1 = Service.Builder.newInstance("s1").setLocation(Location.newInstance(0, 10)).build(); + Service s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance(0, 5)).build(); - VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0, 0)).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(s1).addJob(s2).addVehicle(v).build(); JobInsertionCostsCalculator calculator = getCalculator(vrp); @@ -55,10 +55,10 @@ public class RegretInsertionTest { @Test public void noJobsInRouteShouldBeCorrect(){ - Service s1 = Service.Builder.newInstance("s1").setCoord(Coordinate.newInstance(0,10)).build(); - Service s2 = Service.Builder.newInstance("s2").setCoord(Coordinate.newInstance(0,5)).build(); + Service s1 = Service.Builder.newInstance("s1").setLocation(Location.newInstance(0, 10)).build(); + Service s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance(0, 5)).build(); - VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0, 0)).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(s1).addJob(s2).addVehicle(v).build(); JobInsertionCostsCalculator calculator = getCalculator(vrp); @@ -71,10 +71,10 @@ public class RegretInsertionTest { @Test public void s1ShouldBeAddedFirst(){ - Service s1 = Service.Builder.newInstance("s1").setCoord(Coordinate.newInstance(0,10)).build(); - Service s2 = Service.Builder.newInstance("s2").setCoord(Coordinate.newInstance(0,5)).build(); + Service s1 = Service.Builder.newInstance("s1").setLocation(Location.newInstance(0, 10)).build(); + Service s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance(0, 5)).build(); - VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocationCoordinate(Coordinate.newInstance(0,0)).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance(0,0)).build(); final VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(s1).addJob(s2).addVehicle(v).build(); JobInsertionCostsCalculator calculator = getCalculator(vrp); @@ -164,7 +164,7 @@ public class RegretInsertionTest { public InsertionData getInsertionData(VehicleRoute currentRoute, Job newJob, Vehicle newVehicle, double newVehicleDepartureTime, Driver newDriver, double bestKnownCosts) { Service service = (Service)newJob; Vehicle vehicle = vrp.getVehicles().iterator().next(); - InsertionData iData = null; + InsertionData iData; if(currentRoute.isEmpty()){ double mc = getCost(service.getLocation(), vehicle.getStartLocation()); iData = new InsertionData(2*mc,-1,0,vehicle,newDriver); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/ServiceInsertionAndLoadConstraintsTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/ServiceInsertionAndLoadConstraintsTest.java index 3885bbd5..6863c279 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/ServiceInsertionAndLoadConstraintsTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/ServiceInsertionAndLoadConstraintsTest.java @@ -20,6 +20,7 @@ import jsprit.core.algorithm.recreate.listener.InsertionListeners; import jsprit.core.algorithm.state.StateManager; import jsprit.core.problem.AbstractActivity; import jsprit.core.problem.JobActivityFactory; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.constraint.ConstraintManager; import jsprit.core.problem.constraint.HardActivityConstraint; @@ -107,8 +108,8 @@ public class ServiceInsertionAndLoadConstraintsTest { @Test public void whenInsertingServiceWhileNoCapIsAvailable_itMustReturnTheCorrectInsertionIndex(){ - Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").addSizeDimension(0, 41).setLocationId("10,10").build(); - Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").addSizeDimension(0, 15).setLocationId("0,10").build(); + Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").addSizeDimension(0, 41).setLocation(Location.newInstance("10,10")).build(); + Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").addSizeDimension(0, 15).setLocation(Location.newInstance("0,10")).build(); VehicleType type = VehicleTypeImpl.Builder.newInstance("t").addCapacityDimension(0, 50).setCostPerDistance(1).build(); VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("0,0").setType(type).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/ShipmentInsertionCalculatorTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/ShipmentInsertionCalculatorTest.java index 47a8d389..6f03548a 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/ShipmentInsertionCalculatorTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/ShipmentInsertionCalculatorTest.java @@ -301,7 +301,7 @@ public class ShipmentInsertionCalculatorTest { switcher.put(Shipment.class, insertionCalculator); // Service service = Service.Builder.newInstance("pick", 1).setLocationId("5,5").build(); - Pickup service = (Pickup)Pickup.Builder.newInstance("pick").addSizeDimension(0, 1).setLocationId("5,5").build(); + Pickup service = (Pickup)Pickup.Builder.newInstance("pick").addSizeDimension(0, 1).setLocation(Location.newInstance("5,5")).build(); JobActivityFactory activityFactory = mock(JobActivityFactory.class); List activities = new ArrayList(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestCalculatesServiceInsertion.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestCalculatesServiceInsertion.java index f789fa9f..874aa14f 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestCalculatesServiceInsertion.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestCalculatesServiceInsertion.java @@ -110,9 +110,9 @@ public class TestCalculatesServiceInsertion { }; - first = Service.Builder.newInstance("1").addSizeDimension(0, 0).setLocationId("0,10").setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); - second = Service.Builder.newInstance("2").addSizeDimension(0, 0).setLocationId("10,10").setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); - third = Service.Builder.newInstance("3").addSizeDimension(0, 0).setLocationId("10,0").setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); + first = Service.Builder.newInstance("1").addSizeDimension(0, 0).setLocation(Location.newInstance("0,10")).setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); + second = Service.Builder.newInstance("2").addSizeDimension(0, 0).setLocation(Location.newInstance("10,10")).setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); + third = Service.Builder.newInstance("3").addSizeDimension(0, 0).setLocation(Location.newInstance("10,0")).setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); Collection jobs = new ArrayList(); jobs.add(first); @@ -207,7 +207,7 @@ public class TestCalculatesServiceInsertion { public void whenInsertingJobAndCurrRouteIsEmpty_accessEggressCalcShouldReturnZero(){ VehicleRoute route = VehicleRoute.Builder.newInstance(VehicleImpl.createNoVehicle(), DriverImpl.noDriver()).build(); AdditionalAccessEgressCalculator accessEgressCalc = new AdditionalAccessEgressCalculator(costs); - Job job = Service.Builder.newInstance("1").addSizeDimension(0, 0).setLocationId("1").setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); + Job job = Service.Builder.newInstance("1").addSizeDimension(0, 0).setLocation(Location.newInstance("1")).setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); JobInsertionContext iContex = new JobInsertionContext(route, job, newVehicle, mock(Driver.class), 0.0); assertEquals(0.0, accessEgressCalc.getCosts(iContex),0.01); } @@ -242,16 +242,16 @@ public class TestCalculatesServiceInsertion { return EuclideanDistanceCalculator.calculateDistance(coords.get(from.getId()), coords.get(to.getId())); } }; - Vehicle oldVehicle = VehicleImpl.Builder.newInstance("oldV").setStartLocationId("oldV").build(); + Vehicle oldVehicle = VehicleImpl.Builder.newInstance("oldV").setStartLocation(Location.newInstance("oldV")).build(); VehicleRoute route = VehicleRoute.Builder.newInstance(oldVehicle, DriverImpl.noDriver()) - .addService(Service.Builder.newInstance("service").addSizeDimension(0, 0).setLocationId("service").build()) + .addService(Service.Builder.newInstance("service").addSizeDimension(0, 0).setLocation(Location.newInstance("service")).build()) .build(); - Vehicle newVehicle = VehicleImpl.Builder.newInstance("newV").setStartLocationId("newV").build(); + Vehicle newVehicle = VehicleImpl.Builder.newInstance("newV").setStartLocation(Location.newInstance("newV")).build(); AdditionalAccessEgressCalculator accessEgressCalc = new AdditionalAccessEgressCalculator(routingCosts); - Job job = Service.Builder.newInstance("service2").addSizeDimension(0, 0).setLocationId("service").build(); + Job job = Service.Builder.newInstance("service2").addSizeDimension(0, 0).setLocation(Location.newInstance("service")).build(); JobInsertionContext iContex = new JobInsertionContext(route, job, newVehicle, mock(Driver.class), 0.0); assertEquals(8.0, accessEgressCalc.getCosts(iContex),0.01); } diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestCalculatesServiceInsertionOnRouteLevel.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestCalculatesServiceInsertionOnRouteLevel.java index 6f401921..c7d87d44 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestCalculatesServiceInsertionOnRouteLevel.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestCalculatesServiceInsertionOnRouteLevel.java @@ -100,9 +100,9 @@ public class TestCalculatesServiceInsertionOnRouteLevel { }; - first = Service.Builder.newInstance("1").setLocationId("0,10").setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); - second = Service.Builder.newInstance("3").setLocationId("10,0").setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); - third = Service.Builder.newInstance("2").setLocationId("10,10").setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); + first = Service.Builder.newInstance("1").setLocation(Location.newInstance("0,10")).setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); + second = Service.Builder.newInstance("3").setLocation(Location.newInstance("10,0")).setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); + third = Service.Builder.newInstance("2").setLocation(Location.newInstance("10,10")).setTimeWindow(TimeWindow.newInstance(0.0, 100.0)).build(); Collection jobs = new ArrayList(); jobs.add(first); jobs.add(second); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestDepartureTimeOpt.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestDepartureTimeOpt.java index d7718f22..2a4ce0bb 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestDepartureTimeOpt.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestDepartureTimeOpt.java @@ -31,6 +31,7 @@ import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; +import jsprit.core.util.TestUtils; import org.junit.Ignore; import org.junit.Test; @@ -44,8 +45,8 @@ public class TestDepartureTimeOpt { @Test public void whenSettingOneCustWithTWAnd_NO_DepTimeChoice_totalCostsShouldBe50(){ TimeWindow timeWindow = TimeWindow.newInstance(40, 45); - Service service = Service.Builder.newInstance("s").setLocationId("servLoc").setCoord(Coordinate.newInstance(0, 10)).setTimeWindow(timeWindow).build(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("vehLoc").setStartLocationCoordinate(Coordinate.newInstance(0, 0)) + Service service = Service.Builder.newInstance("s").setLocation(TestUtils.loc("servLoc",Coordinate.newInstance(0, 10))).setTimeWindow(timeWindow).build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(TestUtils.loc("vehLoc", Coordinate.newInstance(0, 0))) .setType(VehicleTypeImpl.Builder.newInstance("vType").build()).build(); Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); @@ -71,7 +72,8 @@ public class TestDepartureTimeOpt { @Test public void whenSettingOneCustWithTWAnd_NO_DepTimeChoice_depTimeShouldBe0(){ TimeWindow timeWindow = TimeWindow.newInstance(40, 45); - Service service = Service.Builder.newInstance("s").setLocationId("servLoc").setCoord(Coordinate.newInstance(0, 10)).setTimeWindow(timeWindow).build(); + Service service = Service.Builder.newInstance("s") + .setLocation(TestUtils.loc("servLoc",Coordinate.newInstance(0, 10))).setTimeWindow(timeWindow).build(); Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("vehLoc").setStartLocationCoordinate(Coordinate.newInstance(0, 0)) .setType(VehicleTypeImpl.Builder.newInstance("vType").build()).build(); @@ -98,8 +100,8 @@ public class TestDepartureTimeOpt { @Test public void whenSettingOneCustWithTWAndDepTimeChoice_totalCostsShouldBe50(){ TimeWindow timeWindow = TimeWindow.newInstance(40, 45); - Service service = Service.Builder.newInstance("s").setLocationId("servLoc").setCoord(Coordinate.newInstance(0, 10)).setTimeWindow(timeWindow).build(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("vehLoc").setStartLocationCoordinate(Coordinate.newInstance(0, 0)) + Service service = Service.Builder.newInstance("s").setLocation(TestUtils.loc("servLoc",Coordinate.newInstance(0, 10))).setTimeWindow(timeWindow).build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(TestUtils.loc("vehLoc",Coordinate.newInstance(0, 0))) .setType(VehicleTypeImpl.Builder.newInstance("vType").build()).build(); Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); @@ -126,8 +128,8 @@ public class TestDepartureTimeOpt { @Test public void whenSettingOneCustWithTWAndDepTimeChoice_depTimeShouldBe0(){ TimeWindow timeWindow = TimeWindow.newInstance(40, 45); - Service service = Service.Builder.newInstance("s").setLocationId("servLoc").setCoord(Coordinate.newInstance(0, 10)).setTimeWindow(timeWindow).build(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("vehLoc").setStartLocationCoordinate(Coordinate.newInstance(0, 0)) + Service service = Service.Builder.newInstance("s").setLocation(TestUtils.loc("servLoc",Coordinate.newInstance(0, 10))).setTimeWindow(timeWindow).build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(TestUtils.loc("vehLoc",Coordinate.newInstance(0, 0))) .setType(VehicleTypeImpl.Builder.newInstance("vType").build()).build(); Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); @@ -154,12 +156,12 @@ public class TestDepartureTimeOpt { @Test public void whenSettingTwoCustWithTWAndDepTimeChoice_totalCostsShouldBe50(){ TimeWindow timeWindow = TimeWindow.newInstance(40, 45); - Service service = Service.Builder.newInstance("s").setLocationId("servLoc").setCoord(Coordinate.newInstance(0, 10)).setTimeWindow(timeWindow).build(); + Service service = Service.Builder.newInstance("s").setLocation(TestUtils.loc("servLoc",Coordinate.newInstance(0, 10))).setTimeWindow(timeWindow).build(); - Service service2 = Service.Builder.newInstance("s2").setLocationId("servLoc2").setCoord(Coordinate.newInstance(0, 20)). + Service service2 = Service.Builder.newInstance("s2").setLocation(TestUtils.loc("servLoc2",Coordinate.newInstance(0, 20))). setTimeWindow(TimeWindow.newInstance(30, 40)).build(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("vehLoc").setStartLocationCoordinate(Coordinate.newInstance(0, 0)) + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(TestUtils.loc("vehLoc",Coordinate.newInstance(0, 0))) .setType(VehicleTypeImpl.Builder.newInstance("vType").build()).build(); Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); @@ -186,12 +188,12 @@ public class TestDepartureTimeOpt { @Test public void whenSettingTwoCustWithTWAndDepTimeChoice_depTimeShouldBe10(){ TimeWindow timeWindow = TimeWindow.newInstance(40, 45); - Service service = Service.Builder.newInstance("s").setLocationId("servLoc").setCoord(Coordinate.newInstance(0, 10)).setTimeWindow(timeWindow).build(); + Service service = Service.Builder.newInstance("s").setLocation(TestUtils.loc("servLoc",Coordinate.newInstance(0, 10))).setTimeWindow(timeWindow).build(); - Service service2 = Service.Builder.newInstance("s2").setLocationId("servLoc2").setCoord(Coordinate.newInstance(0, 20)). + Service service2 = Service.Builder.newInstance("s2").setLocation(TestUtils.loc("servLoc2",Coordinate.newInstance(0, 20))). setTimeWindow(TimeWindow.newInstance(30, 40)).build(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("vehLoc").setStartLocationCoordinate(Coordinate.newInstance(0, 0)) + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(TestUtils.loc("vehLoc",Coordinate.newInstance(0, 0))) .setType(VehicleTypeImpl.Builder.newInstance("vType").build()).build(); Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestMixedServiceAndShipmentsProblemOnRouteLevel.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestMixedServiceAndShipmentsProblemOnRouteLevel.java index 4ac7d289..1518f0b9 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestMixedServiceAndShipmentsProblemOnRouteLevel.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestMixedServiceAndShipmentsProblemOnRouteLevel.java @@ -19,6 +19,7 @@ package jsprit.core.algorithm.recreate; import jsprit.core.algorithm.state.StateManager; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.constraint.ConstraintManager; import jsprit.core.problem.job.Delivery; @@ -50,7 +51,7 @@ public class TestMixedServiceAndShipmentsProblemOnRouteLevel { * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder.setType(vehicleType); VehicleImpl vehicle = vehicleBuilder.build(); @@ -115,7 +116,7 @@ public class TestMixedServiceAndShipmentsProblemOnRouteLevel { * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder.setType(vehicleType); VehicleImpl vehicle = vehicleBuilder.build(); @@ -127,10 +128,10 @@ public class TestMixedServiceAndShipmentsProblemOnRouteLevel { * 3: (16,8) * 4: (16,12) */ - Delivery delivery1 = (Delivery) Delivery.Builder.newInstance("5").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(4, 8)).build(); - Delivery delivery2 = (Delivery) Delivery.Builder.newInstance("6").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(4, 12)).build(); - Delivery delivery3 = (Delivery) Delivery.Builder.newInstance("7").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(16, 8)).build(); - Delivery delivery4 = (Delivery) Delivery.Builder.newInstance("8").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(16, 12)).build(); + Delivery delivery1 = (Delivery) Delivery.Builder.newInstance("5").addSizeDimension(0, 1).setLocation(Location.newInstance(4, 8)).build(); + Delivery delivery2 = (Delivery) Delivery.Builder.newInstance("6").addSizeDimension(0, 1).setLocation(Location.newInstance(4, 12)).build(); + Delivery delivery3 = (Delivery) Delivery.Builder.newInstance("7").addSizeDimension(0, 1).setLocation(Location.newInstance(16, 8)).build(); + Delivery delivery4 = (Delivery) Delivery.Builder.newInstance("8").addSizeDimension(0, 1).setLocation(Location.newInstance(16, 12)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addVehicle(vehicle) diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestRouteLevelActivityInsertionCostEstimator.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestRouteLevelActivityInsertionCostEstimator.java index 9894c493..e3179609 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestRouteLevelActivityInsertionCostEstimator.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestRouteLevelActivityInsertionCostEstimator.java @@ -22,6 +22,7 @@ import jsprit.core.algorithm.state.StateManager; import jsprit.core.algorithm.state.UpdateVariableCosts; import jsprit.core.problem.AbstractActivity; import jsprit.core.problem.JobActivityFactory; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.cost.VehicleRoutingActivityCosts; import jsprit.core.problem.cost.VehicleRoutingTransportCosts; @@ -73,12 +74,12 @@ public class TestRouteLevelActivityInsertionCostEstimator { } }; - Service s1 = Service.Builder.newInstance("s1").setLocationId("10,0").setTimeWindow(TimeWindow.newInstance(10.,10.)).build(); - Service s2 = Service.Builder.newInstance("s2").setLocationId("20,0").setTimeWindow(TimeWindow.newInstance(20.,20.)).build(); - Service s3 = Service.Builder.newInstance("s3").setLocationId("30,0").setTimeWindow(TimeWindow.newInstance(30.,30.)).build(); + Service s1 = Service.Builder.newInstance("s1").setLocation(Location.newInstance("10,0")).setTimeWindow(TimeWindow.newInstance(10., 10.)).build(); + Service s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance("20,0")).setTimeWindow(TimeWindow.newInstance(20.,20.)).build(); + Service s3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance("30,0")).setTimeWindow(TimeWindow.newInstance(30.,30.)).build(); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocationId("0,0").setType(type).build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocation(Location.newInstance("0,0")).setType(type).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); final VehicleRoutingProblem vrp = vrpBuilder.addJob(s1).addJob(s2).addJob(s3).build(); @@ -98,7 +99,7 @@ public class TestRouteLevelActivityInsertionCostEstimator { @Test public void whenNewActInBetweenFirstAndSecond_and_forwardLookingIs0_itShouldReturnCorrectCosts(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).build(); PickupActivity pickupService = new PickupService(s4); JobInsertionContext context = new JobInsertionContext(route,s4,route.getVehicle(),route.getDriver(),0.); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); @@ -109,7 +110,7 @@ public class TestRouteLevelActivityInsertionCostEstimator { @Test public void whenNewActWithTWInBetweenFirstAndSecond_and_forwardLookingIs0_itShouldReturnCorrectCosts(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); PickupActivity pickupService = new PickupService(s4); JobInsertionContext context = new JobInsertionContext(route,s4,route.getVehicle(),route.getDriver(),0.); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); @@ -120,7 +121,7 @@ public class TestRouteLevelActivityInsertionCostEstimator { @Test public void whenNewActWithTWAndServiceTimeInBetweenFirstAndSecond_and_forwardLookingIs0_itShouldReturnCorrectCosts(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").setServiceTime(10.).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).setServiceTime(10.).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); PickupActivity pickupService = new PickupService(s4); JobInsertionContext context = new JobInsertionContext(route,s4,route.getVehicle(),route.getDriver(),0.); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); @@ -133,7 +134,7 @@ public class TestRouteLevelActivityInsertionCostEstimator { @Test public void whenNewActWithTWAndServiceTimeInBetweenFirstAndSecond_and_forwardLookingIs3_itShouldReturnCorrectCosts(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").setServiceTime(10.).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).setServiceTime(10.).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); PickupActivity pickupService = new PickupService(s4); JobInsertionContext context = new JobInsertionContext(route,s4,route.getVehicle(),route.getDriver(),0.); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); @@ -146,7 +147,7 @@ public class TestRouteLevelActivityInsertionCostEstimator { @Test public void whenNewActInBetweenSecondAndThird_and_forwardLookingIs0_itShouldReturnCorrectCosts(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).build(); PickupActivity pickupService = new PickupService(s4); JobInsertionContext context = new JobInsertionContext(route,s4,route.getVehicle(),route.getDriver(),0.); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); @@ -160,7 +161,7 @@ public class TestRouteLevelActivityInsertionCostEstimator { @Test public void whenNewActInBetweenSecondAndThird_and_forwardLookingIs3_itShouldReturnCorrectCosts(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).build(); PickupActivity pickupService = new PickupService(s4); JobInsertionContext context = new JobInsertionContext(route,s4,route.getVehicle(),route.getDriver(),0.); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); @@ -174,7 +175,7 @@ public class TestRouteLevelActivityInsertionCostEstimator { @Test public void whenNewActWithTWInBetweenSecondAndThird_and_forwardLookingIs3_itShouldReturnCorrectCosts(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); PickupActivity pickupService = new PickupService(s4); JobInsertionContext context = new JobInsertionContext(route,s4,route.getVehicle(),route.getDriver(),0.); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestRouteLevelServiceInsertionCostEstimator.java b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestRouteLevelServiceInsertionCostEstimator.java index 28a495c1..98a19353 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestRouteLevelServiceInsertionCostEstimator.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/recreate/TestRouteLevelServiceInsertionCostEstimator.java @@ -22,6 +22,7 @@ import jsprit.core.algorithm.state.StateManager; import jsprit.core.algorithm.state.UpdateVariableCosts; import jsprit.core.problem.AbstractActivity; import jsprit.core.problem.JobActivityFactory; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.constraint.ConstraintManager; import jsprit.core.problem.cost.VehicleRoutingActivityCosts; @@ -84,13 +85,13 @@ public class TestRouteLevelServiceInsertionCostEstimator { }; vrpBuilder.setActivityCosts(activityCosts); - Service s1 = Service.Builder.newInstance("s1").setLocationId("10,0").setTimeWindow(TimeWindow.newInstance(10.,10.)).build(); - Service s2 = Service.Builder.newInstance("s2").setLocationId("20,0").setTimeWindow(TimeWindow.newInstance(20.,20.)).build(); - Service s3 = Service.Builder.newInstance("s3").setLocationId("30,0").setTimeWindow(TimeWindow.newInstance(30.,30.)).build(); + Service s1 = Service.Builder.newInstance("s1").setLocation(Location.newInstance("10,0")).setTimeWindow(TimeWindow.newInstance(10., 10.)).build(); + Service s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance("20,0")).setTimeWindow(TimeWindow.newInstance(20.,20.)).build(); + Service s3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance("30,0")).setTimeWindow(TimeWindow.newInstance(30.,30.)).build(); vrpBuilder.addJob(s1).addJob(s2).addJob(s3); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocationId("0,0").setType(type).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocation(Location.newInstance("0,0")).setType(type).build(); vrpBuilder.addVehicle(vehicle); vrp = vrpBuilder.build(); @@ -110,7 +111,7 @@ public class TestRouteLevelServiceInsertionCostEstimator { @Test public void whenNewServiceNeedToBeInserted_itShouldReturnCorrectInsertionCosts(){ - final Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); + final Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); estimator.setForwardLooking(0); ServiceInsertionOnRouteLevelCalculator routeInserter = new ServiceInsertionOnRouteLevelCalculator(routingCosts, @@ -132,7 +133,7 @@ public class TestRouteLevelServiceInsertionCostEstimator { @Test public void whenNewServiceNeedToBeInserted_itShouldReturnCorrectInsertionIndex(){ - final Service s4 = Service.Builder.newInstance("s4").setLocationId("5,0").setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); + final Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("5,0")).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); estimator.setForwardLooking(0); final ServiceInsertionOnRouteLevelCalculator routeInserter = new ServiceInsertionOnRouteLevelCalculator(routingCosts, @@ -154,7 +155,7 @@ public class TestRouteLevelServiceInsertionCostEstimator { @Test public void whenNewServiceWithServiceTimeNeedToBeInserted_itShouldReturnCorrectInsertionData(){ - final Service s4 = Service.Builder.newInstance("s4").setServiceTime(10.).setLocationId("5,0").setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); + final Service s4 = Service.Builder.newInstance("s4").setServiceTime(10.).setLocation(Location.newInstance("5,0")).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); estimator.setForwardLooking(0); ServiceInsertionOnRouteLevelCalculator routeInserter = new ServiceInsertionOnRouteLevelCalculator(routingCosts, @@ -178,7 +179,7 @@ public class TestRouteLevelServiceInsertionCostEstimator { @Test public void whenNewServiceWithServiceTimeNeedToBeInsertedAndRouteIsEmpty_itShouldReturnCorrectInsertionData(){ - final Service s4 = Service.Builder.newInstance("s4").setServiceTime(10.).setLocationId("5,0").setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); + final Service s4 = Service.Builder.newInstance("s4").setServiceTime(10.).setLocation(Location.newInstance("5,0")).setTimeWindow(TimeWindow.newInstance(5.,5.)).build(); // PickupActivity pickupService = new PickupService(s4); VehicleRoute emptyroute = VehicleRoute.emptyRoute(); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); @@ -203,7 +204,7 @@ public class TestRouteLevelServiceInsertionCostEstimator { @Test public void whenNewServiceWithServiceTimeAndTWNeedToBeInsertedAndRouteIsEmpty_itShouldReturnCorrectInsertionData(){ - final Service s4 = Service.Builder.newInstance("s4").setServiceTime(10.).setLocationId("5,0").setTimeWindow(TimeWindow.newInstance(3.,3.)).build(); + final Service s4 = Service.Builder.newInstance("s4").setServiceTime(10.).setLocation(Location.newInstance("5,0")).setTimeWindow(TimeWindow.newInstance(3.,3.)).build(); // PickupActivity pickupService = new PickupService(s4); VehicleRoute emptyroute = VehicleRoute.emptyRoute(); RouteLevelActivityInsertionCostsEstimator estimator = new RouteLevelActivityInsertionCostsEstimator(routingCosts,activityCosts,stateManager); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImplTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImplTest.java index ec6082c2..967a50d6 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImplTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/JobNeighborhoodsImplTest.java @@ -20,10 +20,10 @@ package jsprit.core.algorithm.ruin; import jsprit.core.algorithm.ruin.distance.EuclideanServiceDistance; import jsprit.core.algorithm.ruin.distance.JobDistance; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.job.Job; import jsprit.core.problem.job.Service; -import jsprit.core.util.Coordinate; import org.junit.Before; import org.junit.Test; @@ -52,14 +52,14 @@ public class JobNeighborhoodsImplTest { @Before public void doBefore(){ VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); - target = Service.Builder.newInstance("s1").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 5)).build(); - s2 = Service.Builder.newInstance("s2").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 4)).build(); - s3 = Service.Builder.newInstance("s3").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 3)).build(); - s4 = Service.Builder.newInstance("s4").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 2)).build(); + target = Service.Builder.newInstance("s1").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 5)).build(); + s2 = Service.Builder.newInstance("s2").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 4)).build(); + s3 = Service.Builder.newInstance("s3").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 3)).build(); + s4 = Service.Builder.newInstance("s4").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 2)).build(); - s5 = Service.Builder.newInstance("s5").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 6)).build(); - s6 = Service.Builder.newInstance("s6").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 7)).build(); - s7 = Service.Builder.newInstance("s7").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 8)).build(); + s5 = Service.Builder.newInstance("s5").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 6)).build(); + s6 = Service.Builder.newInstance("s6").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 7)).build(); + s7 = Service.Builder.newInstance("s7").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 8)).build(); vrp = builder.addJob(target).addJob(s2).addJob(s3).addJob(s4).addJob(s5).addJob(s6).addJob(s7).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/JobNeighborhoodsWithCapRestrictionImplTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/JobNeighborhoodsWithCapRestrictionImplTest.java index 1d696af7..107aa807 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/JobNeighborhoodsWithCapRestrictionImplTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/JobNeighborhoodsWithCapRestrictionImplTest.java @@ -20,10 +20,10 @@ package jsprit.core.algorithm.ruin; import jsprit.core.algorithm.ruin.distance.EuclideanServiceDistance; import jsprit.core.algorithm.ruin.distance.JobDistance; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.job.Job; import jsprit.core.problem.job.Service; -import jsprit.core.util.Coordinate; import org.junit.Before; import org.junit.Test; @@ -52,14 +52,14 @@ public class JobNeighborhoodsWithCapRestrictionImplTest { @Before public void doBefore(){ VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); - target = Service.Builder.newInstance("s1").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 5)).build(); - s2 = Service.Builder.newInstance("s2").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 4)).build(); - s3 = Service.Builder.newInstance("s3").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 3)).build(); - s4 = Service.Builder.newInstance("s4").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 2)).build(); + target = Service.Builder.newInstance("s1").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 5)).build(); + s2 = Service.Builder.newInstance("s2").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 4)).build(); + s3 = Service.Builder.newInstance("s3").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 3)).build(); + s4 = Service.Builder.newInstance("s4").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 2)).build(); - s5 = Service.Builder.newInstance("s5").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 6)).build(); - s6 = Service.Builder.newInstance("s6").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 7)).build(); - s7 = Service.Builder.newInstance("s7").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(0, 8)).build(); + s5 = Service.Builder.newInstance("s5").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 6)).build(); + s6 = Service.Builder.newInstance("s6").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 7)).build(); + s7 = Service.Builder.newInstance("s7").addSizeDimension(0, 1).setLocation(Location.newInstance(0, 8)).build(); vrp = builder.addJob(target).addJob(s2).addJob(s3).addJob(s4).addJob(s5).addJob(s6).addJob(s7).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/distance/AverageJobDistanceTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/distance/AverageJobDistanceTest.java index 35ab246b..06afaaa6 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/distance/AverageJobDistanceTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/distance/AverageJobDistanceTest.java @@ -53,15 +53,15 @@ public class AverageJobDistanceTest { @Test public void distanceOfTwoEqualShipmentsShouldBeSmallerThanAnyOtherDistance(){ - Shipment s1 = Shipment.Builder.newInstance("s1").addSizeDimension(0, 1).setPickupLocation(Location.Builder.newInstance().setId("0,0").build()).setDeliveryLocationId("10,10").build(); - Shipment s2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 1).setPickupLocation(Location.Builder.newInstance().setId("0,0").build()).setDeliveryLocationId("10,10").build(); + Shipment s1 = Shipment.Builder.newInstance("s1").addSizeDimension(0, 1).setPickupLocation(Location.Builder.newInstance().setId("0,0").build()).setDeliveryLocation(Location.newInstance("10,10")).build(); + Shipment s2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 1).setPickupLocation(Location.Builder.newInstance().setId("0,0").build()).setDeliveryLocation(Location.newInstance("10,10")).build(); double dist = new AvgServiceAndShipmentDistance(routingCosts).getDistance(s1, s2); for(int i=0;i<10;i++){ for(int j=0;j<10;j++){ - Shipment other1 = Shipment.Builder.newInstance("s1").addSizeDimension(0, 1).setPickupLocation(Location.Builder.newInstance().setId("0,0").build()).setDeliveryLocationId(i + "," + j).build(); - Shipment other2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 1).setPickupLocation(Location.Builder.newInstance().setId("0,0").build()).setDeliveryLocationId("10,10").build(); + Shipment other1 = Shipment.Builder.newInstance("s1").addSizeDimension(0, 1).setPickupLocation(Location.Builder.newInstance().setId("0,0").build()).setDeliveryLocation(Location.newInstance(i + "," + j)).build(); + Shipment other2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 1).setPickupLocation(Location.Builder.newInstance().setId("0,0").build()).setDeliveryLocation(Location.newInstance("10,10")).build(); double dist2 = new AvgServiceAndShipmentDistance(routingCosts).getDistance(other1, other2); System.out.println("("+i+","+j+"), dist=" + dist + ", dist2=" + dist2); assertTrue(dist<=dist2+dist2*0.001); @@ -73,8 +73,8 @@ public class AverageJobDistanceTest { @Test public void whenServicesHaveSameLocation_distanceShouldBeZero(){ - Service s1 = Service.Builder.newInstance("s1").addSizeDimension(0, 1).setLocationId("10,0").build(); - Service s2 = Service.Builder.newInstance("s2").addSizeDimension(0, 1).setLocationId("10,0").build(); + Service s1 = Service.Builder.newInstance("s1").addSizeDimension(0, 1).setLocation(Location.newInstance("10,0")).build(); + Service s2 = Service.Builder.newInstance("s2").addSizeDimension(0, 1).setLocation(Location.newInstance("10,0")).build(); double dist = new AvgServiceAndShipmentDistance(routingCosts).getDistance(s1, s2); assertEquals(0.0,dist,0.01); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/distance/TestJobDistanceAvgCosts.java b/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/distance/TestJobDistanceAvgCosts.java index 9c42e165..f4e629b2 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/distance/TestJobDistanceAvgCosts.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/ruin/distance/TestJobDistanceAvgCosts.java @@ -58,7 +58,7 @@ public class TestJobDistanceAvgCosts { } }; AvgServiceDistance c = new AvgServiceDistance(costs); - c.getDistance(Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("foo").build(), Service.Builder.newInstance("2").addSizeDimension(0, 2).setLocationId("foo").build()); + c.getDistance(Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(Location.newInstance("foo")).build(), Service.Builder.newInstance("2").addSizeDimension(0, 2).setLocation(Location.newInstance("foo")).build()); } @Test(expected=NullPointerException.class) @@ -95,7 +95,7 @@ public class TestJobDistanceAvgCosts { } }; AvgServiceDistance c = new AvgServiceDistance(costs); - c.getDistance(Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").build(), Service.Builder.newInstance("2").addSizeDimension(0, 2).setLocationId("loc").build()); + c.getDistance(Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(Location.newInstance("loc")).build(), Service.Builder.newInstance("2").addSizeDimension(0, 2).setLocation(Location.newInstance("loc")).build()); } } diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/HardPickupAndDeliveryShipmentActivityConstraintTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/HardPickupAndDeliveryShipmentActivityConstraintTest.java index 949f1381..d02d0f72 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/state/HardPickupAndDeliveryShipmentActivityConstraintTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/HardPickupAndDeliveryShipmentActivityConstraintTest.java @@ -27,7 +27,6 @@ import jsprit.core.problem.misc.JobInsertionContext; import jsprit.core.problem.solution.route.activity.DeliverShipment; import jsprit.core.problem.solution.route.activity.PickupService; import jsprit.core.problem.solution.route.activity.PickupShipment; -import jsprit.core.problem.vehicle.Vehicle; import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; @@ -39,7 +38,7 @@ import static org.junit.Assert.assertEquals; public class HardPickupAndDeliveryShipmentActivityConstraintTest { - Vehicle vehicle; + VehicleImpl vehicle; StateManager stateManager; @@ -57,14 +56,14 @@ public class HardPickupAndDeliveryShipmentActivityConstraintTest { @Before public void doBefore(){ - s1 = Service.Builder.newInstance("s1").setLocationId("loc").build(); - s2 = Service.Builder.newInstance("s2").setLocationId("loc").build(); - shipment = Shipment.Builder.newInstance("shipment").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).setDeliveryLocationId("delLoc").addSizeDimension(0, 1).build(); + s1 = Service.Builder.newInstance("s1").setLocation(Location.newInstance("loc")).build(); + s2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance("loc")).build(); + shipment = Shipment.Builder.newInstance("shipment").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).setDeliveryLocation(Location.newInstance("delLoc")).addSizeDimension(0, 1).build(); // when(vehicle.getCapacity()).thenReturn(2); VehicleType type = VehicleTypeImpl.Builder.newInstance("t").addCapacityDimension(0,2).build(); - vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocationId("start").build(); + vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocation(Location.newInstance("start")).build(); vrp = VehicleRoutingProblem.Builder.newInstance().addJob(s1).addJob(s2).addJob(shipment).addVehicle(vehicle).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/LoadStateTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/LoadStateTest.java index b95201af..e8f45c29 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/state/LoadStateTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/LoadStateTest.java @@ -54,20 +54,20 @@ public class LoadStateTest { when(vehicle.getType()).thenReturn(type); VehicleRoutingProblem.Builder serviceProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); - Service s1 = Service.Builder.newInstance("s").addSizeDimension(0,10).setLocationId("loc").build(); - Service s2 = Service.Builder.newInstance("s2").addSizeDimension(0,5).setLocationId("loc").build(); + Service s1 = Service.Builder.newInstance("s").addSizeDimension(0,10).setLocation(Location.newInstance("loc")).build(); + Service s2 = Service.Builder.newInstance("s2").addSizeDimension(0,5).setLocation(Location.newInstance("loc")).build(); serviceProblemBuilder.addJob(s1).addJob(s2); final VehicleRoutingProblem serviceProblem = serviceProblemBuilder.build(); final VehicleRoutingProblem.Builder pdProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); - Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").addSizeDimension(0,10).setLocationId("loc").build(); - Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").addSizeDimension(0,5).setLocationId("loc").build(); + Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").addSizeDimension(0,10).setLocation(Location.newInstance("loc")).build(); + Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").addSizeDimension(0,5).setLocation(Location.newInstance("loc")).build(); pdProblemBuilder.addJob(pickup).addJob(delivery); final VehicleRoutingProblem pdProblem = pdProblemBuilder.build(); final VehicleRoutingProblem.Builder shipmentProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); - Shipment shipment1 = Shipment.Builder.newInstance("s1").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocationId("del").build(); - Shipment shipment2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 5).setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocationId("del").build(); + Shipment shipment1 = Shipment.Builder.newInstance("s1").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocation(Location.newInstance("del")).build(); + Shipment shipment2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 5).setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocation(Location.newInstance("del")).build(); shipmentProblemBuilder.addJob(shipment1).addJob(shipment2).build(); final VehicleRoutingProblem shipmentProblem = shipmentProblemBuilder.build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/SolomonSkills_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/SolomonSkills_IT.java index 7b717ab2..7a7c34ee 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/state/SolomonSkills_IT.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/SolomonSkills_IT.java @@ -32,6 +32,7 @@ import jsprit.core.problem.vehicle.Vehicle; import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.util.Solutions; +import jsprit.core.util.TestUtils; import org.junit.Test; import java.util.Collection; @@ -56,11 +57,11 @@ public class SolomonSkills_IT { VehicleRoutingProblem.Builder skillProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); for(int i=0;i<6;i++) { VehicleImpl skill1Vehicle = VehicleImpl.Builder.newInstance("skill1_vehicle_"+i).addSkill("skill1") - .setStartLocationCoordinate(solomonVehicle.getStartLocationCoordinate()).setStartLocationId(solomonVehicle.getStartLocationId()) + .setStartLocation(TestUtils.loc(solomonVehicle.getStartLocation().getId(), solomonVehicle.getStartLocation().getCoordinate())) .setEarliestStart(solomonVehicle.getEarliestDeparture()) .setType(newType).build(); VehicleImpl skill2Vehicle = VehicleImpl.Builder.newInstance("skill2_vehicle_"+i).addSkill("skill2") - .setStartLocationCoordinate(solomonVehicle.getStartLocationCoordinate()).setStartLocationId(solomonVehicle.getStartLocationId()) + .setStartLocation(TestUtils.loc(solomonVehicle.getStartLocation().getId(), solomonVehicle.getStartLocation().getCoordinate())) .setEarliestStart(solomonVehicle.getEarliestDeparture()) .setType(newType).build(); skillProblemBuilder.addVehicle(skill1Vehicle).addVehicle(skill2Vehicle); @@ -68,8 +69,8 @@ public class SolomonSkills_IT { for(Job job : vrp.getJobs().values()){ Service service = (Service) job; Service.Builder skillServiceBuilder = Service.Builder.newInstance(service.getId()).setServiceTime(service.getServiceDuration()) - .setCoord(service.getLocation().getCoordinate()).setLocationId(service.getLocation().getId()).setTimeWindow(service.getTimeWindow()) - .addSizeDimension(0,service.getSize().get(0)); + .setLocation(TestUtils.loc(service.getLocation().getId(), service.getLocation().getCoordinate())).setTimeWindow(service.getTimeWindow()) + .addSizeDimension(0, service.getSize().get(0)); if(service.getLocation().getCoordinate().getY()<50) skillServiceBuilder.addRequiredSkill("skill2"); else skillServiceBuilder.addRequiredSkill("skill1"); skillProblemBuilder.addJob(skillServiceBuilder.build()); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/StateManagerTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/StateManagerTest.java index 0eec1874..ddada4ae 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/state/StateManagerTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/StateManagerTest.java @@ -16,10 +16,7 @@ ******************************************************************************/ package jsprit.core.algorithm.state; -import jsprit.core.problem.AbstractActivity; -import jsprit.core.problem.Capacity; -import jsprit.core.problem.JobActivityFactory; -import jsprit.core.problem.VehicleRoutingProblem; +import jsprit.core.problem.*; import jsprit.core.problem.job.Job; import jsprit.core.problem.job.Service; import jsprit.core.problem.solution.route.VehicleRoute; @@ -53,7 +50,7 @@ public class StateManagerTest { } private VehicleRoute getRoute(Vehicle vehicle) { - return VehicleRoute.Builder.newInstance(vehicle).setJobActivityFactory(new ActFac()).addService(Service.Builder.newInstance("s").setLocationId("loc").build()).build(); + return VehicleRoute.Builder.newInstance(vehicle).setJobActivityFactory(new ActFac()).addService(Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build()).build(); } diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdatePracticalTimeWindowTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdatePracticalTimeWindowTest.java index e492af46..97f8b19f 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdatePracticalTimeWindowTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdatePracticalTimeWindowTest.java @@ -20,6 +20,7 @@ package jsprit.core.algorithm.state; import jsprit.core.problem.AbstractActivity; import jsprit.core.problem.JobActivityFactory; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.cost.VehicleRoutingTransportCosts; import jsprit.core.problem.driver.Driver; @@ -61,11 +62,11 @@ public class UpdatePracticalTimeWindowTest { reverseActivityVisitor = new ReverseRouteActivityVisitor(); reverseActivityVisitor.addActivityVisitor(new UpdatePracticalTimeWindows(stateManager, routingCosts)); - Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").setLocationId("0,20").setTimeWindow(TimeWindow.newInstance(0, 30)).build(); - Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").setLocationId("20,20").setTimeWindow(TimeWindow.newInstance(10, 40)).build(); - Pickup pickup2 = (Pickup) Pickup.Builder.newInstance("pick2").setLocationId("20,0").setTimeWindow(TimeWindow.newInstance(20, 50)).build(); + Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").setLocation(Location.newInstance("0,20")).setTimeWindow(TimeWindow.newInstance(0, 30)).build(); + Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").setLocation(Location.newInstance("20,20")).setTimeWindow(TimeWindow.newInstance(10, 40)).build(); + Pickup pickup2 = (Pickup) Pickup.Builder.newInstance("pick2").setLocation(Location.newInstance("20,0")).setTimeWindow(TimeWindow.newInstance(20, 50)).build(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("0,0").setType(mock(VehicleType.class)).build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("0,0")).setType(mock(VehicleType.class)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); final VehicleRoutingProblem vrp = vrpBuilder.addJob(pickup).addJob(pickup2).addJob(delivery).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateRequiredSkillsTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateRequiredSkillsTest.java index 43242ac7..2837f65d 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateRequiredSkillsTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateRequiredSkillsTest.java @@ -1,5 +1,6 @@ package jsprit.core.algorithm.state; +import jsprit.core.problem.Location; import jsprit.core.problem.Skills; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.job.Service; @@ -28,10 +29,10 @@ public class UpdateRequiredSkillsTest { @Before public void doBefore(){ VehicleType type = VehicleTypeImpl.Builder.newInstance("t").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setType(type).build(); - Service service = Service.Builder.newInstance("s").setLocationId("loc").addRequiredSkill("skill1").build(); - Service service2 = Service.Builder.newInstance("s2").setLocationId("loc").addRequiredSkill("skill1").addRequiredSkill("skill2").addRequiredSkill("skill3").build(); - Service service3 = Service.Builder.newInstance("s3").setLocationId("loc").addRequiredSkill("skill4").addRequiredSkill("skill5").build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")).setType(type).build(); + Service service = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).addRequiredSkill("skill1").build(); + Service service2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance("loc")).addRequiredSkill("skill1").addRequiredSkill("skill2").addRequiredSkill("skill3").build(); + Service service3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance("loc")).addRequiredSkill("skill4").addRequiredSkill("skill5").build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle).addJob(service) .addJob(service2).addJob(service3).build(); route = VehicleRoute.Builder.newInstance(vehicle).setJobActivityFactory(vrp.getJobActivityFactory()).addService(service).addService(service2).addService(service3).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateVehicleDependentTimeWindowTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateVehicleDependentTimeWindowTest.java index 44d66a43..756f63dc 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateVehicleDependentTimeWindowTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/state/UpdateVehicleDependentTimeWindowTest.java @@ -2,6 +2,7 @@ package jsprit.core.algorithm.state; import jsprit.core.problem.AbstractActivity; import jsprit.core.problem.JobActivityFactory; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.cost.VehicleRoutingTransportCosts; import jsprit.core.problem.job.Job; @@ -49,13 +50,13 @@ public class UpdateVehicleDependentTimeWindowTest { routingCosts = CostFactory.createEuclideanCosts(); vrpBuilder.setRoutingCost(routingCosts); - vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("0,0").setEarliestStart(0.).setLatestArrival(100.).build(); + vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("0,0")).setEarliestStart(0.).setLatestArrival(100.).build(); - vehicle2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("0,0").setEarliestStart(0.).setLatestArrival(60.).build(); + vehicle2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(Location.newInstance("0,0")).setEarliestStart(0.).setLatestArrival(60.).build(); - vehicle3 = VehicleImpl.Builder.newInstance("v3").setStartLocationId("40,0").setEarliestStart(0.).setLatestArrival(100.).build(); + vehicle3 = VehicleImpl.Builder.newInstance("v3").setStartLocation(Location.newInstance("40,0")).setEarliestStart(0.).setLatestArrival(100.).build(); - equivalentOf3 = VehicleImpl.Builder.newInstance("v4").setStartLocationId("40,0").setEarliestStart(0.).setLatestArrival(100.).build(); + equivalentOf3 = VehicleImpl.Builder.newInstance("v4").setStartLocation(Location.newInstance("40,0")).setEarliestStart(0.).setLatestArrival(100.).build(); vrpBuilder.addVehicle(vehicle).addVehicle(vehicle2).addVehicle(vehicle3).addVehicle(equivalentOf3); @@ -67,9 +68,9 @@ public class UpdateVehicleDependentTimeWindowTest { fleetManager = new FiniteFleetManagerFactory(vehicles).createFleetManager(); - Service service = Service.Builder.newInstance("s1").setLocationId("10,0").build(); - Service service2 = Service.Builder.newInstance("s2").setLocationId("20,0").build(); - Service service3 = Service.Builder.newInstance("s3").setLocationId("30,0").build(); + Service service = Service.Builder.newInstance("s1").setLocation(Location.newInstance("10,0")).build(); + Service service2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance("20,0")).build(); + Service service3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance("30,0")).build(); vrpBuilder.addJob(service).addJob(service2).addJob(service3); vrp = vrpBuilder.build(); diff --git a/jsprit-core/src/test/java/jsprit/core/analysis/SolutionAnalyserTest.java b/jsprit-core/src/test/java/jsprit/core/analysis/SolutionAnalyserTest.java index 58717b3e..59f66383 100644 --- a/jsprit-core/src/test/java/jsprit/core/analysis/SolutionAnalyserTest.java +++ b/jsprit-core/src/test/java/jsprit/core/analysis/SolutionAnalyserTest.java @@ -21,6 +21,7 @@ package jsprit.core.analysis; import jsprit.core.problem.Capacity; import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; +import jsprit.core.problem.cost.TransportDistance; import jsprit.core.problem.job.Delivery; import jsprit.core.problem.job.Pickup; import jsprit.core.problem.job.Service; @@ -54,28 +55,26 @@ public class SolutionAnalyserTest { private VehicleRoutingProblemSolution solution; - private SolutionAnalyser.DistanceCalculator distanceCalculator; - @Before public void doBefore(){ VehicleType type = VehicleTypeImpl.Builder.newInstance("type").setFixedCost(100.).setCostPerDistance(2.).addCapacityDimension(0, 15).build(); VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v1").setType(type) - .setStartLocationCoordinate(Coordinate.newInstance(-5, 0)) + .setStartLocation(Location.newInstance(-5, 0)) .addSkill("skill1").addSkill("skill2") .build(); VehicleImpl vehicle2 = VehicleImpl.Builder.newInstance("v2").setType(type) - .setStartLocationCoordinate(Coordinate.newInstance(5, 0)).build(); + .setStartLocation(Location.newInstance(5, 0)).build(); Service s1 = Service.Builder.newInstance("s1") .setTimeWindow(TimeWindow.newInstance(10, 20)) - .setCoord(Coordinate.newInstance(-10, 1)).addSizeDimension(0, 2) + .setLocation(Location.newInstance(-10, 1)).addSizeDimension(0, 2) .addRequiredSkill("skill1") .build(); Service s2 = Service.Builder.newInstance("s2") - .setCoord(Coordinate.newInstance(-10, 10)) + .setLocation(Location.newInstance(-10, 10)) .addSizeDimension(0,3) .addRequiredSkill("skill2").addRequiredSkill("skill1") .build(); @@ -117,17 +116,17 @@ public class SolutionAnalyserTest { VehicleType type = VehicleTypeImpl.Builder.newInstance("type").setFixedCost(100.).setCostPerDistance(2.).addCapacityDimension(0, 15).build(); VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v1").setType(type) - .setStartLocationCoordinate(Coordinate.newInstance(-5, 0)) + .setStartLocation(Location.newInstance(-5, 0)) .setLatestArrival(150.) .build(); Pickup s1 = (Pickup) Pickup.Builder.newInstance("s1") .setTimeWindow(TimeWindow.newInstance(10, 20)) - .setCoord(Coordinate.newInstance(-10, 1)) + .setLocation(Location.newInstance(-10, 1)) .addSizeDimension(0, 10) .build(); Delivery s2 = (Delivery) Delivery.Builder.newInstance("s2") - .setCoord(Coordinate.newInstance(-10, 10)) + .setLocation(Location.newInstance(-10, 10)) .setTimeWindow(TimeWindow.newInstance(10, 20)) .addSizeDimension(0, 20) .build(); @@ -143,7 +142,7 @@ public class SolutionAnalyserTest { .setLocation(TestUtils.loc(Coordinate.newInstance(10, 1))) .addSizeDimension(0, 10) .build(); - Delivery s4 = (Delivery) Delivery.Builder.newInstance("s4").setCoord(Coordinate.newInstance(10, 10)) + Delivery s4 = (Delivery) Delivery.Builder.newInstance("s4").setLocation(Location.newInstance(10, 10)) .addSizeDimension(0, 20) .setTimeWindow(TimeWindow.newInstance(10, 20)) .build(); @@ -216,7 +215,7 @@ public class SolutionAnalyserTest { * @param type */ private void testTransportCosts(TransportCostsTestType type) { - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location fromLocationId, Location toLocationId) { return vrp.getTransportCosts().getTransportCost(fromLocationId,toLocationId,0.,null,null); @@ -297,7 +296,7 @@ public class SolutionAnalyserTest { @Test public void constructionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -308,7 +307,7 @@ public class SolutionAnalyserTest { @Test public void loadAtBeginningOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -320,7 +319,7 @@ public class SolutionAnalyserTest { @Test public void loadAtBeginningOfRoute2ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -335,7 +334,7 @@ public class SolutionAnalyserTest { @Test public void loadAtEnd_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -347,7 +346,7 @@ public class SolutionAnalyserTest { @Test public void loadAtEnd_OfRoute2ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -362,7 +361,7 @@ public class SolutionAnalyserTest { @Test public void loadAfterActivity_ofStartActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -374,7 +373,7 @@ public class SolutionAnalyserTest { @Test public void loadAfterActivity_ofAct1ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -386,7 +385,7 @@ public class SolutionAnalyserTest { @Test public void loadAfterActivity_ofAct2ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -398,7 +397,7 @@ public class SolutionAnalyserTest { @Test public void loadAfterActivity_ofAct3ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -410,7 +409,7 @@ public class SolutionAnalyserTest { @Test public void loadAfterActivity_ofAct4ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -422,7 +421,7 @@ public class SolutionAnalyserTest { @Test public void loadAfterActivity_ofEndActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -434,7 +433,7 @@ public class SolutionAnalyserTest { @Test public void loadBeforeActivity_ofStartActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -446,7 +445,7 @@ public class SolutionAnalyserTest { @Test public void loadBeforeActivity_ofAct1ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -458,7 +457,7 @@ public class SolutionAnalyserTest { @Test public void loadBeforeActivity_ofAct2ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -470,7 +469,7 @@ public class SolutionAnalyserTest { @Test public void loadBeforeActivity_ofAct3ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -482,7 +481,7 @@ public class SolutionAnalyserTest { @Test public void loadBeforeActivity_ofAct4ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -494,7 +493,7 @@ public class SolutionAnalyserTest { @Test public void loadBeforeActivity_ofEndActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -506,7 +505,7 @@ public class SolutionAnalyserTest { @Test public void maxLoad_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -518,7 +517,7 @@ public class SolutionAnalyserTest { @Test public void pickupCount_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -530,7 +529,7 @@ public class SolutionAnalyserTest { @Test public void pickupCountAtBeginning_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -543,7 +542,7 @@ public class SolutionAnalyserTest { @Test public void pickupCount_OfRoute1OfAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -556,7 +555,7 @@ public class SolutionAnalyserTest { @Test public void pickupCountAtBeginning_OfRoute1OfAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -568,7 +567,7 @@ public class SolutionAnalyserTest { @Test public void pickupCount_onSolutionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -579,7 +578,7 @@ public class SolutionAnalyserTest { @Test public void pickupCountAtBeginning_onSolutionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -591,7 +590,7 @@ public class SolutionAnalyserTest { @Test public void pickupCount_onAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -603,7 +602,7 @@ public class SolutionAnalyserTest { @Test public void pickupCountAtBeginning_onAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -614,7 +613,7 @@ public class SolutionAnalyserTest { @Test public void pickupLoad_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -626,7 +625,7 @@ public class SolutionAnalyserTest { @Test public void pickupLoadAtBeginning_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -639,7 +638,7 @@ public class SolutionAnalyserTest { @Test public void pickupLoad_OfRoute1OfAnotherShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -652,7 +651,7 @@ public class SolutionAnalyserTest { @Test public void pickupLoadAtBeginning_OfRoute1OfAnotherShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -664,7 +663,7 @@ public class SolutionAnalyserTest { @Test public void pickupLoad_onSolutionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -675,7 +674,7 @@ public class SolutionAnalyserTest { @Test public void pickupLoadAtBeginning_onSolutionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -687,7 +686,7 @@ public class SolutionAnalyserTest { @Test public void pickupLoad_onAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -699,7 +698,7 @@ public class SolutionAnalyserTest { @Test public void pickupLoadAtBeginning_onAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -710,7 +709,7 @@ public class SolutionAnalyserTest { @Test public void deliveryCount_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -722,7 +721,7 @@ public class SolutionAnalyserTest { @Test public void deliveryCountAtEnd_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -735,7 +734,7 @@ public class SolutionAnalyserTest { @Test public void deliveryCount_OfRoute1OfAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -748,7 +747,7 @@ public class SolutionAnalyserTest { @Test public void deliveryCountAtEnd_OfRoute1OfAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -760,7 +759,7 @@ public class SolutionAnalyserTest { @Test public void deliveryCount_onSolutionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -771,7 +770,7 @@ public class SolutionAnalyserTest { @Test public void deliveryCountAtEnd_onSolutionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -783,7 +782,7 @@ public class SolutionAnalyserTest { @Test public void deliveryCount_onAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -795,7 +794,7 @@ public class SolutionAnalyserTest { @Test public void deliveryCountAtEnd_onAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -806,7 +805,7 @@ public class SolutionAnalyserTest { @Test public void deliveryLoad_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -818,7 +817,7 @@ public class SolutionAnalyserTest { @Test public void deliveryLoadAtEnd_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -831,7 +830,7 @@ public class SolutionAnalyserTest { @Test public void deliveryLoad_OfRoute1OfAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -844,7 +843,7 @@ public class SolutionAnalyserTest { @Test public void deliveryLoadAtEnd_OfRoute1OfAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -856,7 +855,7 @@ public class SolutionAnalyserTest { @Test public void deliveryLoad_onSolutionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -867,7 +866,7 @@ public class SolutionAnalyserTest { @Test public void deliveryLoadAtEnd_onSolutionShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -879,7 +878,7 @@ public class SolutionAnalyserTest { @Test public void deliveryLoad_onAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -892,19 +891,18 @@ public class SolutionAnalyserTest { @Test public void deliveryLoadAtEnd_onAnotherSolutionShouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); } }); - VehicleRoute route = solution.getRoutes().iterator().next(); Assert.assertEquals(20, analyser.getLoadAtEnd().get(0), 0.01); } @Test public void operationTime_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -916,7 +914,7 @@ public class SolutionAnalyserTest { @Test public void waitingTime_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -928,7 +926,7 @@ public class SolutionAnalyserTest { @Test public void transportTime_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -940,7 +938,7 @@ public class SolutionAnalyserTest { @Test public void serviceTime_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -952,7 +950,7 @@ public class SolutionAnalyserTest { @Test public void distance_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -964,7 +962,7 @@ public class SolutionAnalyserTest { @Test public void waitingTime_atStartActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -976,7 +974,7 @@ public class SolutionAnalyserTest { @Test public void waitingTime_ofAct1ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -988,7 +986,7 @@ public class SolutionAnalyserTest { @Test public void waitingTime_ofAct2ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1000,7 +998,7 @@ public class SolutionAnalyserTest { @Test public void waitingTime_ofAct3ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1012,7 +1010,7 @@ public class SolutionAnalyserTest { @Test public void waitingTime_ofAct4ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1024,7 +1022,7 @@ public class SolutionAnalyserTest { @Test public void waitingTime_ofEndActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1036,7 +1034,7 @@ public class SolutionAnalyserTest { @Test public void distance_atStartActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1048,7 +1046,7 @@ public class SolutionAnalyserTest { @Test public void distance_ofAct1ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1060,7 +1058,7 @@ public class SolutionAnalyserTest { @Test public void distance_ofAct2ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1072,7 +1070,7 @@ public class SolutionAnalyserTest { @Test public void distance_ofAct3ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1084,7 +1082,7 @@ public class SolutionAnalyserTest { @Test public void distance_ofAct4ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1096,7 +1094,7 @@ public class SolutionAnalyserTest { @Test public void distance_ofEndActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1109,7 +1107,7 @@ public class SolutionAnalyserTest { @Test public void lateArrivalTimes_atStartActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1121,7 +1119,7 @@ public class SolutionAnalyserTest { @Test public void lateArrivalTimes_ofAct1ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1133,7 +1131,7 @@ public class SolutionAnalyserTest { @Test public void lateArrivalTimes_ofAct2ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1145,7 +1143,7 @@ public class SolutionAnalyserTest { @Test public void lateArrivalTimes_ofAct3ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1157,7 +1155,7 @@ public class SolutionAnalyserTest { @Test public void lateArrivalTimes_ofAct4ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1169,7 +1167,7 @@ public class SolutionAnalyserTest { @Test public void lateArrivalTimes_ofEndActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1181,7 +1179,7 @@ public class SolutionAnalyserTest { @Test public void lateArrTimes_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1193,7 +1191,7 @@ public class SolutionAnalyserTest { @Test public void variableTransportCosts_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1205,7 +1203,7 @@ public class SolutionAnalyserTest { @Test public void fixedCosts_OfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1217,7 +1215,7 @@ public class SolutionAnalyserTest { @Test public void transportCosts_atStartActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1229,7 +1227,7 @@ public class SolutionAnalyserTest { @Test public void transportCosts_ofAct1ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1241,7 +1239,7 @@ public class SolutionAnalyserTest { @Test public void transportCosts_ofAct2ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1253,7 +1251,7 @@ public class SolutionAnalyserTest { @Test public void transportCosts_ofAct3ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1265,7 +1263,7 @@ public class SolutionAnalyserTest { @Test public void transportCosts_ofAct4ofRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1277,7 +1275,7 @@ public class SolutionAnalyserTest { @Test public void transportCosts_ofEndActOfRoute1ShouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1289,7 +1287,7 @@ public class SolutionAnalyserTest { @Test public void capacityViolationAtBeginning_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1304,7 +1302,7 @@ public class SolutionAnalyserTest { @Test public void capacityViolationAtEnd_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1322,7 +1320,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1338,7 +1336,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1351,7 +1349,7 @@ public class SolutionAnalyserTest { @Test public void capacityViolationAfterStart_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1371,7 +1369,7 @@ public class SolutionAnalyserTest { public void capacityViolationAtBeginning_shouldWorkWhenViolated(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1388,7 +1386,7 @@ public class SolutionAnalyserTest { public void capacityViolationAfterStart_shouldWorkWhenViolated(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1404,7 +1402,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1420,7 +1418,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1436,7 +1434,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1452,7 +1450,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1468,7 +1466,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1484,7 +1482,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1500,7 +1498,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1516,7 +1514,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1532,7 +1530,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1545,7 +1543,7 @@ public class SolutionAnalyserTest { @Test public void capacityViolationAfterAct1_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1561,7 +1559,7 @@ public class SolutionAnalyserTest { @Test public void capacityViolationAfterAct2_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1577,7 +1575,7 @@ public class SolutionAnalyserTest { @Test public void capacityViolationAfterAct3_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1593,7 +1591,7 @@ public class SolutionAnalyserTest { @Test public void capacityViolationAfterAct4_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1609,7 +1607,7 @@ public class SolutionAnalyserTest { @Test public void capacityViolationAfterEnd_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1625,7 +1623,7 @@ public class SolutionAnalyserTest { @Test public void timeWindowViolation_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1641,7 +1639,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1657,7 +1655,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1673,7 +1671,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1689,7 +1687,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1705,7 +1703,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1721,7 +1719,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1737,7 +1735,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1753,7 +1751,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1769,7 +1767,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1785,7 +1783,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1801,7 +1799,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1817,7 +1815,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1833,7 +1831,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1850,7 +1848,7 @@ public class SolutionAnalyserTest { SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1866,7 +1864,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1882,7 +1880,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1898,7 +1896,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1914,7 +1912,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1930,7 +1928,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1946,7 +1944,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1962,7 +1960,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1978,7 +1976,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -1994,7 +1992,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2010,7 +2008,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2026,7 +2024,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2042,7 +2040,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2058,7 +2056,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2074,7 +2072,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2090,7 +2088,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2106,7 +2104,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2122,7 +2120,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2138,7 +2136,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2154,7 +2152,7 @@ public class SolutionAnalyserTest { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2174,7 +2172,7 @@ public class SolutionAnalyserTest { route.getTourActivities().removeActivity(deliverShipment); // SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2195,7 +2193,7 @@ public class SolutionAnalyserTest { // assertFalse(route.getTourActivities().hasActivity(pickupShipment)); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2216,7 +2214,7 @@ public class SolutionAnalyserTest { assertFalse(route.getTourActivities().hasActivity(deliverShipment)); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2237,7 +2235,7 @@ public class SolutionAnalyserTest { assertFalse(route.getTourActivities().hasActivity(pickupShipment)); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2258,7 +2256,7 @@ public class SolutionAnalyserTest { assertFalse(route.getTourActivities().hasActivity(pickupShipment)); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2279,7 +2277,7 @@ public class SolutionAnalyserTest { assertFalse(route.getTourActivities().hasActivity(pickupShipment)); SolutionPrinter.print(vrp,solution, SolutionPrinter.Print.VERBOSE); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2292,7 +2290,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationOnRoute_shouldWorkWhenViolated(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2305,7 +2303,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationAtStart_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2318,7 +2316,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationAtAct1_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2331,7 +2329,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationAtAct2_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2344,7 +2342,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationAtAct3_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2357,7 +2355,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationAtAct4_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2370,7 +2368,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationAtEnd_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2385,7 +2383,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationOnRoute_shouldWorkWhenNotViolated(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2401,7 +2399,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationOnSolution_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2413,7 +2411,7 @@ public class SolutionAnalyserTest { @Test public void backhaulViolationOnSolution_shouldWork(){ - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2426,7 +2424,7 @@ public class SolutionAnalyserTest { @Test public void backhaulViolationOnSolution_shouldWorkWhenViolated(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2439,7 +2437,7 @@ public class SolutionAnalyserTest { @Test public void shipmentViolationOnSolution_shouldWork(){ buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp,solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to,0.,null,null); @@ -2452,7 +2450,7 @@ public class SolutionAnalyserTest { @Test public void skillViolationOnSolution_shouldWorkWhenNotViolated() { buildAnotherScenarioWithOnlyOneVehicleAndWithoutAnyConstraintsBefore(); - SolutionAnalyser analyser = new SolutionAnalyser(vrp, solution, new SolutionAnalyser.DistanceCalculator() { + SolutionAnalyser analyser = new SolutionAnalyser(vrp, solution, new TransportDistance() { @Override public double getDistance(Location from, Location to) { return vrp.getTransportCosts().getTransportCost(from, to, 0., null, null); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/VehicleRoutingProblemTest.java b/jsprit-core/src/test/java/jsprit/core/problem/VehicleRoutingProblemTest.java index 7f9b5fd8..7b6e3c55 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/VehicleRoutingProblemTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/VehicleRoutingProblemTest.java @@ -32,6 +32,7 @@ import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.util.Coordinate; +import jsprit.core.util.TestUtils; import org.junit.Test; import java.util.ArrayList; @@ -65,10 +66,10 @@ public class VehicleRoutingProblemTest { public void whenBuildingWithFourVehicles_vrpShouldContainTheCorrectNuOfVehicles(){ VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("start").build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("start").build(); - VehicleImpl v3 = VehicleImpl.Builder.newInstance("v3").setStartLocationId("start").build(); - VehicleImpl v4 = VehicleImpl.Builder.newInstance("v4").setStartLocationId("start").build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(Location.newInstance("start")).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(Location.newInstance("start")).build(); + VehicleImpl v3 = VehicleImpl.Builder.newInstance("v3").setStartLocation(Location.newInstance("start")).build(); + VehicleImpl v4 = VehicleImpl.Builder.newInstance("v4").setStartLocation(Location.newInstance("start")).build(); builder.addVehicle(v1).addVehicle(v2).addVehicle(v3).addVehicle(v4); @@ -81,10 +82,10 @@ public class VehicleRoutingProblemTest { public void whenAddingFourVehiclesAllAtOnce_vrpShouldContainTheCorrectNuOfVehicles(){ VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("start").build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("start").build(); - VehicleImpl v3 = VehicleImpl.Builder.newInstance("v3").setStartLocationId("start").build(); - VehicleImpl v4 = VehicleImpl.Builder.newInstance("v4").setStartLocationId("start").build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(Location.newInstance("start")).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(Location.newInstance("start")).build(); + VehicleImpl v3 = VehicleImpl.Builder.newInstance("v3").setStartLocation(Location.newInstance("start")).build(); + VehicleImpl v4 = VehicleImpl.Builder.newInstance("v4").setStartLocation(Location.newInstance("start")).build(); builder.addAllVehicles(Arrays.asList(v1,v2,v3,v4)); @@ -100,10 +101,10 @@ public class VehicleRoutingProblemTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("type1").build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("type2").build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("yo").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("yo").setType(type1).build(); - VehicleImpl v3 = VehicleImpl.Builder.newInstance("v3").setStartLocationId("yo").setType(type2).build(); - VehicleImpl v4 = VehicleImpl.Builder.newInstance("v4").setStartLocationId("yo").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(Location.newInstance("yo")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(Location.newInstance("yo")).setType(type1).build(); + VehicleImpl v3 = VehicleImpl.Builder.newInstance("v3").setStartLocation(Location.newInstance("yo")).setType(type2).build(); + VehicleImpl v4 = VehicleImpl.Builder.newInstance("v4").setStartLocation(Location.newInstance("yo")).setType(type2).build(); builder.addVehicle(v1).addVehicle(v2).addVehicle(v3).addVehicle(v4); @@ -114,8 +115,8 @@ public class VehicleRoutingProblemTest { @Test public void whenShipmentsAreAdded_vrpShouldContainThem(){ - Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("foofoo").build()).setDeliveryLocationId("foo").build(); - Shipment s2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 100).setPickupLocation(Location.Builder.newInstance().setId("foofoo").build()).setDeliveryLocationId("foo").build(); + Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("foofoo").build()).setDeliveryLocation(Location.newInstance("foo")).build(); + Shipment s2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 100).setPickupLocation(Location.Builder.newInstance().setId("foofoo").build()).setDeliveryLocation(Location.newInstance("foo")).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addJob(s); vrpBuilder.addJob(s2); @@ -298,7 +299,7 @@ public class VehicleRoutingProblemTest { public void whenAddingAVehicle_getAddedVehicleTypesShouldReturnItsType(){ VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").setType(type).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("loc")).setType(type).build(); builder.addVehicle(vehicle); assertEquals(1,builder.getAddedVehicleTypes().size()); @@ -310,8 +311,8 @@ public class VehicleRoutingProblemTest { public void whenAddingTwoVehicleWithSameType_getAddedVehicleTypesShouldReturnOnlyOneType(){ VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").setType(type).build(); - VehicleImpl vehicle2 = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").setType(type).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("loc")).setType(type).build(); + VehicleImpl vehicle2 = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("loc")).setType(type).build(); builder.addVehicle(vehicle); builder.addVehicle(vehicle2); @@ -326,8 +327,8 @@ public class VehicleRoutingProblemTest { VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); VehicleType type2 = VehicleTypeImpl.Builder.newInstance("type2").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").setType(type).build(); - VehicleImpl vehicle2 = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").setType(type2).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("loc")).setType(type).build(); + VehicleImpl vehicle2 = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("loc")).setType(type2).build(); builder.addVehicle(vehicle); builder.addVehicle(vehicle2); @@ -339,7 +340,8 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingVehicleWithDiffStartAndEnd_startLocationMustBeRegisteredInLocationMap(){ - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("end").build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")) + .setEndLocation(Location.newInstance("end")).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addVehicle(vehicle); @@ -348,7 +350,8 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingVehicleWithDiffStartAndEnd_endLocationMustBeRegisteredInLocationMap(){ - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("end").build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")) + .setEndLocation(Location.newInstance("end")).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addVehicle(vehicle); @@ -357,7 +360,8 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingInitialRoute_itShouldBeAddedCorrectly(){ - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("end").build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v") + .setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addInitialVehicleRoute(route); @@ -367,10 +371,12 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingInitialRoutes_theyShouldBeAddedCorrectly(){ - VehicleImpl vehicle1 = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("end").build(); + VehicleImpl vehicle1 = VehicleImpl.Builder.newInstance("v") + .setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute route1 = VehicleRoute.Builder.newInstance(vehicle1, DriverImpl.noDriver()).build(); - VehicleImpl vehicle2 = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("end").build(); + VehicleImpl vehicle2 = VehicleImpl.Builder.newInstance("v") + .setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute route2 = VehicleRoute.Builder.newInstance(vehicle2, DriverImpl.noDriver()).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); @@ -382,7 +388,9 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingInitialRoute_locationOfVehicleMustBeMemorized(){ - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setStartLocationCoordinate(Coordinate.newInstance(0, 1)).setEndLocationId("end").build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v") + .setStartLocation(TestUtils.loc("start", Coordinate.newInstance(0, 1))) + .setEndLocation(Location.newInstance("end")).build(); VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addInitialVehicleRoute(route); @@ -393,10 +401,12 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingJobAndInitialRouteWithThatJobAfterwards_thisJobShouldNotBeInFinalJobMap(){ - Service service = Service.Builder.newInstance("myService").setLocationId("loc").build(); + Service service = Service.Builder.newInstance("myService").setLocation(Location.newInstance("loc")).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addJob(service); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setStartLocationCoordinate(Coordinate.newInstance(0, 1)).setEndLocationId("end").build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v") + .setStartLocation(TestUtils.loc("start", Coordinate.newInstance(0, 1))) + .setEndLocation(Location.newInstance("end")).build(); VehicleRoute initialRoute = VehicleRoute.Builder.newInstance(vehicle).addService(service).build(); vrpBuilder.addInitialVehicleRoute(initialRoute); VehicleRoutingProblem vrp = vrpBuilder.build(); @@ -405,8 +415,9 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingTwoJobs_theyShouldHaveProperIndeces(){ - Service service = Service.Builder.newInstance("myService").setLocationId("loc").build(); - Shipment shipment = Shipment.Builder.newInstance("shipment").setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocationId("del").build(); + Service service = Service.Builder.newInstance("myService").setLocation(Location.newInstance("loc")).build(); + Shipment shipment = Shipment.Builder.newInstance("shipment").setPickupLocation(Location.Builder.newInstance().setId("pick").build()) + .setDeliveryLocation(Location.newInstance("del")).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addJob(service); vrpBuilder.addJob(shipment); @@ -419,8 +430,10 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingTwoVehicles_theyShouldHaveProperIndices(){ - VehicleImpl veh1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("start").setStartLocationCoordinate(Coordinate.newInstance(0, 1)).setEndLocationId("end").build(); - VehicleImpl veh2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("start").setStartLocationCoordinate(Coordinate.newInstance(0, 1)).setEndLocationId("end").build(); + VehicleImpl veh1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("start", Coordinate.newInstance(0, 1))) + .setEndLocation(Location.newInstance("end")).build(); + VehicleImpl veh2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("start", Coordinate.newInstance(0, 1))) + .setEndLocation(Location.newInstance("end")).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addVehicle(veh1); @@ -434,8 +447,12 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingTwoVehiclesWithSameTypeIdentifier_typeIdentifiersShouldHaveSameIndices(){ - VehicleImpl veh1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("start").setStartLocationCoordinate(Coordinate.newInstance(0, 1)).setEndLocationId("end").build(); - VehicleImpl veh2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("start").setStartLocationCoordinate(Coordinate.newInstance(0, 1)).setEndLocationId("end").build(); + VehicleImpl veh1 = VehicleImpl.Builder.newInstance("v1") + .setStartLocation(TestUtils.loc("start", Coordinate.newInstance(0, 1))) + .setEndLocation(Location.newInstance("end")).build(); + VehicleImpl veh2 = VehicleImpl.Builder.newInstance("v2") + .setStartLocation(TestUtils.loc("start", Coordinate.newInstance(0, 1))) + .setEndLocation(Location.newInstance("end")).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addVehicle(veh1); @@ -449,8 +466,12 @@ public class VehicleRoutingProblemTest { @Test public void whenAddingTwoVehiclesDifferentTypeIdentifier_typeIdentifiersShouldHaveDifferentIndices(){ - VehicleImpl veh1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("start").setStartLocationCoordinate(Coordinate.newInstance(0, 1)).setEndLocationId("end").build(); - VehicleImpl veh2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("startLoc").setStartLocationCoordinate(Coordinate.newInstance(0, 1)).setEndLocationId("end").build(); + VehicleImpl veh1 = VehicleImpl.Builder.newInstance("v1") + .setStartLocation(TestUtils.loc("start", Coordinate.newInstance(0, 1))) + .setEndLocation(Location.newInstance("end")).build(); + VehicleImpl veh2 = VehicleImpl.Builder.newInstance("v2") + .setStartLocation(TestUtils.loc("startLoc",Coordinate.newInstance(0, 1))) + .setEndLocation(Location.newInstance("end")).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addVehicle(veh1); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/constraint/LoadConstraintTest.java b/jsprit-core/src/test/java/jsprit/core/problem/constraint/LoadConstraintTest.java index dfbde427..1874f592 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/constraint/LoadConstraintTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/constraint/LoadConstraintTest.java @@ -57,20 +57,20 @@ public class LoadConstraintTest { when(vehicle.getType()).thenReturn(type); VehicleRoutingProblem.Builder serviceProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); - Service s1 = Service.Builder.newInstance("s").addSizeDimension(0,10).setLocationId("loc").build(); - Service s2 = Service.Builder.newInstance("s2").addSizeDimension(0,5).setLocationId("loc").build(); + Service s1 = Service.Builder.newInstance("s").addSizeDimension(0, 10).setLocation(Location.newInstance("loc")).build(); + Service s2 = Service.Builder.newInstance("s2").addSizeDimension(0,5).setLocation(Location.newInstance("loc")).build(); serviceProblemBuilder.addJob(s1).addJob(s2); final VehicleRoutingProblem serviceProblem = serviceProblemBuilder.build(); final VehicleRoutingProblem.Builder pdProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); - Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").addSizeDimension(0,10).setLocationId("loc").build(); - Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").addSizeDimension(0,5).setLocationId("loc").build(); + Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").addSizeDimension(0,10).setLocation(Location.newInstance("loc")).build(); + Delivery delivery = (Delivery) Delivery.Builder.newInstance("del").addSizeDimension(0,5).setLocation(Location.newInstance("loc")).build(); pdProblemBuilder.addJob(pickup).addJob(delivery); final VehicleRoutingProblem pdProblem = pdProblemBuilder.build(); final VehicleRoutingProblem.Builder shipmentProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); - Shipment shipment1 = Shipment.Builder.newInstance("s1").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocationId("del").build(); - Shipment shipment2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 5).setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocationId("del").build(); + Shipment shipment1 = Shipment.Builder.newInstance("s1").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocation(Location.newInstance("del")).build(); + Shipment shipment2 = Shipment.Builder.newInstance("s2").addSizeDimension(0, 5).setPickupLocation(Location.Builder.newInstance().setId("pick").build()).setDeliveryLocation(Location.newInstance("del")).build(); shipmentProblemBuilder.addJob(shipment1).addJob(shipment2).build(); final VehicleRoutingProblem shipmentProblem = shipmentProblemBuilder.build(); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/constraint/ServiceLoadRouteLevelConstraintTest.java b/jsprit-core/src/test/java/jsprit/core/problem/constraint/ServiceLoadRouteLevelConstraintTest.java index 603d10c1..7a976da0 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/constraint/ServiceLoadRouteLevelConstraintTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/constraint/ServiceLoadRouteLevelConstraintTest.java @@ -21,9 +21,6 @@ import jsprit.core.algorithm.state.StateManager; import jsprit.core.problem.Capacity; import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; -import jsprit.core.problem.cost.AbstractForwardVehicleRoutingTransportCosts; -import jsprit.core.problem.cost.VehicleRoutingTransportCosts; -import jsprit.core.problem.driver.Driver; import jsprit.core.problem.job.Delivery; import jsprit.core.problem.job.Pickup; import jsprit.core.problem.job.Service; @@ -51,24 +48,9 @@ public class ServiceLoadRouteLevelConstraintTest { private VehicleRoute route; RouteAndActivityStateGetter stateGetter; - - JobInsertionContext iContext; - + ServiceLoadRouteLevelConstraint constraint; - - VehicleRoutingTransportCosts routingCosts = new AbstractForwardVehicleRoutingTransportCosts() { - - @Override - public double getTransportTime(Location from, Location to,double departureTime, Driver driver, Vehicle vehicle) { - return 0; - } - - @Override - public double getTransportCost(Location from, Location to,double departureTime, Driver driver, Vehicle vehicle) { - return 0; - } - }; - + StateManager stateManager; @Before @@ -338,7 +320,7 @@ public class ServiceLoadRouteLevelConstraintTest { final Service pickup2 = createPickup("pick2",3); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").addCapacityDimension(0,3).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocationId("loc").build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocation(Location.newInstance("loc")).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle).addJob(pickup).addJob(pickup2).build(); @@ -354,7 +336,7 @@ public class ServiceLoadRouteLevelConstraintTest { Pickup service = (Pickup) createPickup("pick",2); Service serviceInRoute = createPickup("pick1",3); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").addCapacityDimension(0,3).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocationId("loc").build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocation(Location.newInstance("loc")).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle).addJob(service).addJob(serviceInRoute).build(); VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle).setJobActivityFactory(vrp.getJobActivityFactory()).addService(serviceInRoute).build(); stateManager.informInsertionStarts(Arrays.asList(route), null); @@ -366,12 +348,8 @@ public class ServiceLoadRouteLevelConstraintTest { private Service createPickup(String string, int i) { - return Pickup.Builder.newInstance(string).addSizeDimension(0, i).setLocationId("loc").build(); + return Pickup.Builder.newInstance(string).addSizeDimension(0, i).setLocation(Location.newInstance("loc")).build(); } - private Service createDelivery(String string, int i) { - return Delivery.Builder.newInstance(string).addSizeDimension(0, i).setLocationId("loc").build(); - } - } diff --git a/jsprit-core/src/test/java/jsprit/core/problem/constraint/SkillConstraintTest.java b/jsprit-core/src/test/java/jsprit/core/problem/constraint/SkillConstraintTest.java index 75de4f6c..79ec5a58 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/constraint/SkillConstraintTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/constraint/SkillConstraintTest.java @@ -18,6 +18,7 @@ package jsprit.core.problem.constraint; import jsprit.core.algorithm.state.StateManager; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.job.Service; import jsprit.core.problem.misc.JobInsertionContext; @@ -49,14 +50,14 @@ public class SkillConstraintTest { @Before public void doBefore(){ VehicleType type = VehicleTypeImpl.Builder.newInstance("t").build(); - vehicle = VehicleImpl.Builder.newInstance("v").addSkill("skill1").addSkill("skill2").addSkill("skill3").addSkill("skill4").setStartLocationId("start").setType(type).build(); - vehicle2 = VehicleImpl.Builder.newInstance("v").addSkill("skill4").addSkill("skill5").setStartLocationId("start").setType(type).build(); + vehicle = VehicleImpl.Builder.newInstance("v").addSkill("skill1").addSkill("skill2").addSkill("skill3").addSkill("skill4").setStartLocation(Location.newInstance("start")).setType(type).build(); + vehicle2 = VehicleImpl.Builder.newInstance("v").addSkill("skill4").addSkill("skill5").setStartLocation(Location.newInstance("start")).setType(type).build(); - Service service = Service.Builder.newInstance("s").setLocationId("loc").addRequiredSkill("skill1").build(); - Service service2 = Service.Builder.newInstance("s2").setLocationId("loc").addRequiredSkill("skill1").addRequiredSkill("skill2").addRequiredSkill("skill3").build(); + Service service = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).addRequiredSkill("skill1").build(); + Service service2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance("loc")).addRequiredSkill("skill1").addRequiredSkill("skill2").addRequiredSkill("skill3").build(); - Service service3 = Service.Builder.newInstance("s3").setLocationId("loc").addRequiredSkill("skill4").addRequiredSkill("skill5").build(); - Service service4 = Service.Builder.newInstance("s4").setLocationId("loc").addRequiredSkill("skill1").build(); + Service service3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance("loc")).addRequiredSkill("skill4").addRequiredSkill("skill5").build(); + Service service4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("loc")).addRequiredSkill("skill1").build(); vrp = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle).addVehicle(vehicle2).addJob(service) .addJob(service2).addJob(service3).addJob(service4).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/constraint/VehicleDependentTimeWindowTest.java b/jsprit-core/src/test/java/jsprit/core/problem/constraint/VehicleDependentTimeWindowTest.java index 13c5d806..41f0499d 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/constraint/VehicleDependentTimeWindowTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/constraint/VehicleDependentTimeWindowTest.java @@ -21,10 +21,7 @@ import jsprit.core.algorithm.state.InternalStates; import jsprit.core.algorithm.state.StateManager; import jsprit.core.algorithm.state.UpdateActivityTimes; import jsprit.core.algorithm.state.UpdateVehicleDependentPracticalTimeWindows; -import jsprit.core.problem.AbstractActivity; -import jsprit.core.problem.AbstractVehicle; -import jsprit.core.problem.JobActivityFactory; -import jsprit.core.problem.VehicleRoutingProblem; +import jsprit.core.problem.*; import jsprit.core.problem.cost.VehicleRoutingTransportCosts; import jsprit.core.problem.job.Job; import jsprit.core.problem.job.Service; @@ -55,8 +52,6 @@ public class VehicleDependentTimeWindowTest { private VehicleRoutingTransportCosts routingCosts; - private VehicleRoutingProblem vrp; - private VehicleImpl v3; private VehicleImpl v4; private VehicleImpl v5; @@ -69,29 +64,29 @@ public class VehicleDependentTimeWindowTest { vrpBuilder.setRoutingCost(routingCosts); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); - vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocationId("0,0") + vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(0.).setLatestArrival(100.).build(); - v2 = VehicleImpl.Builder.newInstance("v2").setType(type).setStartLocationId("0,0") + v2 = VehicleImpl.Builder.newInstance("v2").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(0.).setLatestArrival(60.).build(); - v3 = VehicleImpl.Builder.newInstance("v3").setType(type).setStartLocationId("0,0") + v3 = VehicleImpl.Builder.newInstance("v3").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(0.).setLatestArrival(50.).build(); - v4 = VehicleImpl.Builder.newInstance("v4").setType(type).setStartLocationId("0,0") + v4 = VehicleImpl.Builder.newInstance("v4").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(0.).setLatestArrival(10.).build(); - v5 = VehicleImpl.Builder.newInstance("v5").setType(type).setStartLocationId("0,0") + v5 = VehicleImpl.Builder.newInstance("v5").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(60.).setLatestArrival(100.).build(); - v6 = VehicleImpl.Builder.newInstance("v6").setType(type).setStartLocationId("0,0") - .setEndLocationId("40,0").setEarliestStart(0.).setLatestArrival(40.).build(); + v6 = VehicleImpl.Builder.newInstance("v6").setType(type).setStartLocation(Location.newInstance("0,0")) + .setEndLocation(Location.newInstance("40,0")).setEarliestStart(0.).setLatestArrival(40.).build(); vrpBuilder.addVehicle(vehicle).addVehicle(v2).addVehicle(v3).addVehicle(v4).addVehicle(v5).addVehicle(v6); - Service service = Service.Builder.newInstance("s1").setLocationId("10,0").build(); - Service service2 = Service.Builder.newInstance("s2").setLocationId("20,0").build(); - Service service3 = Service.Builder.newInstance("s3").setLocationId("30,0").build(); + Service service = Service.Builder.newInstance("s1").setLocation(Location.newInstance("10,0")).build(); + Service service2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance("20,0")).build(); + Service service3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance("30,0")).build(); vrpBuilder.addJob(service).addJob(service2).addJob(service3); final VehicleRoutingProblem vrp = vrpBuilder.build(); @@ -116,7 +111,7 @@ public class VehicleDependentTimeWindowTest { vehicles.add(v6); final VehicleFleetManager fleetManager = new FiniteFleetManagerFactory(vehicles).createFleetManager(); -// stateManager.updateTimeWindowStates(); + UpdateVehicleDependentPracticalTimeWindows timeWindow_updater = new UpdateVehicleDependentPracticalTimeWindows(stateManager, routingCosts); timeWindow_updater.setVehiclesToUpdate(new UpdateVehicleDependentPracticalTimeWindows.VehiclesToUpdate() { @@ -155,7 +150,7 @@ public class VehicleDependentTimeWindowTest { @Test public void whenNewJobIsInsertedWithOldVeh_itJustShouldReturnTrue(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("50,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("50,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,vehicle,route.getDriver(),0.); @@ -170,7 +165,7 @@ public class VehicleDependentTimeWindowTest { @Test public void whenNewJobIsInsertedWithOldVeh_itJustShouldReturnFalse(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("1000,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("1000,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,vehicle,route.getDriver(),0.); @@ -185,7 +180,7 @@ public class VehicleDependentTimeWindowTest { @Test public void whenNewJobIsInsertedInBetweenAct1And2WithOldVeh_itJustShouldReturnTrue(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("50,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("50,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,vehicle,route.getDriver(),0.); @@ -203,7 +198,7 @@ public class VehicleDependentTimeWindowTest { @Test public void whenNewJobIsInsertedInBetweenAct1And2WithOldVeh_itJustShouldReturnFalse(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("51,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("51,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,vehicle,route.getDriver(),0.); @@ -225,7 +220,7 @@ public class VehicleDependentTimeWindowTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v2,route.getDriver(),0.); @@ -244,7 +239,7 @@ public class VehicleDependentTimeWindowTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v3,route.getDriver(),0.); @@ -262,7 +257,7 @@ public class VehicleDependentTimeWindowTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v4,route.getDriver(),0.); @@ -280,7 +275,7 @@ public class VehicleDependentTimeWindowTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v6,route.getDriver(),0.); @@ -298,7 +293,7 @@ public class VehicleDependentTimeWindowTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v6,route.getDriver(),0.); @@ -316,7 +311,7 @@ public class VehicleDependentTimeWindowTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v6,route.getDriver(),0.); @@ -332,7 +327,7 @@ public class VehicleDependentTimeWindowTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v5,route.getDriver(),60.); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/constraint/VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest.java b/jsprit-core/src/test/java/jsprit/core/problem/constraint/VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest.java index 6c8e2cfb..fb9a27e0 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/constraint/VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/constraint/VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest.java @@ -21,10 +21,7 @@ import jsprit.core.algorithm.state.InternalStates; import jsprit.core.algorithm.state.StateManager; import jsprit.core.algorithm.state.UpdateActivityTimes; import jsprit.core.algorithm.state.UpdateVehicleDependentPracticalTimeWindows; -import jsprit.core.problem.AbstractActivity; -import jsprit.core.problem.AbstractVehicle; -import jsprit.core.problem.JobActivityFactory; -import jsprit.core.problem.VehicleRoutingProblem; +import jsprit.core.problem.*; import jsprit.core.problem.cost.VehicleRoutingTransportCosts; import jsprit.core.problem.job.Job; import jsprit.core.problem.job.Service; @@ -55,8 +52,6 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { private VehicleRoutingTransportCosts routingCosts; - private VehicleRoutingProblem vrp; - private VehicleImpl v3; private VehicleImpl v4; private VehicleImpl v5; @@ -69,29 +64,29 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { vrpBuilder.setRoutingCost(routingCosts); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); - vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocationId("0,0") + vehicle = VehicleImpl.Builder.newInstance("v").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(0.).setLatestArrival(100.).build(); - v2 = VehicleImpl.Builder.newInstance("v2").setType(type).setStartLocationId("0,0") + v2 = VehicleImpl.Builder.newInstance("v2").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(0.).setLatestArrival(60.).build(); - v3 = VehicleImpl.Builder.newInstance("v3").setType(type).setStartLocationId("0,0") + v3 = VehicleImpl.Builder.newInstance("v3").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(0.).setLatestArrival(50.).build(); - v4 = VehicleImpl.Builder.newInstance("v4").setType(type).setStartLocationId("0,0") + v4 = VehicleImpl.Builder.newInstance("v4").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(0.).setLatestArrival(10.).build(); - v5 = VehicleImpl.Builder.newInstance("v5").setType(type).setStartLocationId("0,0") + v5 = VehicleImpl.Builder.newInstance("v5").setType(type).setStartLocation(Location.newInstance("0,0")) .setEarliestStart(60.).setLatestArrival(100.).build(); - v6 = VehicleImpl.Builder.newInstance("v6").setType(type).setStartLocationId("0,0") - .setEndLocationId("40,0").setEarliestStart(0.).setLatestArrival(40.).build(); + v6 = VehicleImpl.Builder.newInstance("v6").setType(type).setStartLocation(Location.newInstance("0,0")) + .setEndLocation(Location.newInstance("40,0")).setEarliestStart(0.).setLatestArrival(40.).build(); vrpBuilder.addVehicle(vehicle).addVehicle(v2).addVehicle(v3).addVehicle(v4).addVehicle(v5).addVehicle(v6); - Service service = Service.Builder.newInstance("s1").setLocationId("10,0").build(); - Service service2 = Service.Builder.newInstance("s2").setLocationId("20,0").build(); - Service service3 = Service.Builder.newInstance("s3").setLocationId("30,0").build(); + Service service = Service.Builder.newInstance("s1").setLocation(Location.newInstance("10,0")).build(); + Service service2 = Service.Builder.newInstance("s2").setLocation(Location.newInstance("20,0")).build(); + Service service3 = Service.Builder.newInstance("s3").setLocation(Location.newInstance("30,0")).build(); vrpBuilder.addJob(service).addJob(service2).addJob(service3); final VehicleRoutingProblem vrp = vrpBuilder.build(); @@ -155,7 +150,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { @Test public void whenNewJobIsInsertedWithOldVeh_itJustShouldReturnTrue(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("50,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("50,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,vehicle,route.getDriver(),0.); @@ -170,7 +165,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { @Test public void whenNewJobIsInsertedWithOldVeh_itJustShouldReturnFalse(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("1000,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("1000,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,vehicle,route.getDriver(),0.); @@ -185,7 +180,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { @Test public void whenNewJobIsInsertedInBetweenAct1And2WithOldVeh_itJustShouldReturnTrue(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("50,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("50,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,vehicle,route.getDriver(),0.); @@ -203,7 +198,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { @Test public void whenNewJobIsInsertedInBetweenAct1And2WithOldVeh_itJustShouldReturnFalse(){ - Service s4 = Service.Builder.newInstance("s4").setLocationId("51,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("51,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,vehicle,route.getDriver(),0.); @@ -225,7 +220,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v2,route.getDriver(),0.); @@ -244,7 +239,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v3,route.getDriver(),0.); @@ -262,7 +257,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v4,route.getDriver(),0.); @@ -280,7 +275,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v6,route.getDriver(),0.); @@ -298,7 +293,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v6,route.getDriver(),0.); @@ -316,7 +311,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v6,route.getDriver(),0.); @@ -332,7 +327,7 @@ public class VehicleDependentTimeWindowWithStartTimeAndMaxOperationTimeTest { System.out.println("actualEndTime " + route.getEnd().getArrTime()); assertEquals(60.,route.getEnd().getArrTime(),0.01); - Service s4 = Service.Builder.newInstance("s4").setLocationId("40,0").build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(Location.newInstance("40,0")).build(); PickupService serviceAct = new PickupService(s4); JobInsertionContext insertionContext = new JobInsertionContext(route,s4,v5,route.getDriver(),60.); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/job/DeliveryTest.java b/jsprit-core/src/test/java/jsprit/core/problem/job/DeliveryTest.java index 2b78c87a..6019060d 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/job/DeliveryTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/job/DeliveryTest.java @@ -16,6 +16,7 @@ ******************************************************************************/ package jsprit.core.problem.job; +import jsprit.core.problem.Location; import org.junit.Test; import static org.junit.Assert.*; @@ -29,9 +30,9 @@ public class DeliveryTest { @Test public void whenAddingTwoCapDimension_nuOfDimsShouldBeTwo(){ - Delivery one = (Delivery)Delivery.Builder.newInstance("s").setLocationId("foofoo") - .addSizeDimension(0,2) - .addSizeDimension(1,4) + Delivery one = (Delivery)Delivery.Builder.newInstance("s").setLocation(Location.newInstance("foofoo")) + .addSizeDimension(0, 2) + .addSizeDimension(1, 4) .build(); assertEquals(2,one.getSize().getNuOfDimensions()); assertEquals(2,one.getSize().get(0)); @@ -41,7 +42,7 @@ public class DeliveryTest { @Test public void whenPickupIsBuiltWithoutSpecifyingCapacity_itShouldHvCapWithOneDimAndDimValOfZero(){ - Delivery one = (Delivery)Delivery.Builder.newInstance("s").setLocationId("foofoo") + Delivery one = (Delivery)Delivery.Builder.newInstance("s").setLocation(Location.newInstance("foofoo")) .build(); assertEquals(1,one.getSize().getNuOfDimensions()); assertEquals(0,one.getSize().get(0)); @@ -49,7 +50,7 @@ public class DeliveryTest { @Test public void whenPickupIsBuiltWithConstructorWhereSizeIsSpecified_capacityShouldBeSetCorrectly(){ - Delivery one = (Delivery)Delivery.Builder.newInstance("s").addSizeDimension(0, 1).setLocationId("foofoo") + Delivery one = (Delivery)Delivery.Builder.newInstance("s").addSizeDimension(0, 1).setLocation(Location.newInstance("foofoo")) .build(); assertEquals(1,one.getSize().getNuOfDimensions()); assertEquals(1,one.getSize().get(0)); @@ -57,7 +58,7 @@ public class DeliveryTest { @Test public void whenAddingSkills_theyShouldBeAddedCorrectly(){ - Delivery s = (Delivery) Delivery.Builder.newInstance("s").setLocationId("loc") + Delivery s = (Delivery) Delivery.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("drill").addRequiredSkill("screwdriver").build(); assertTrue(s.getRequiredSkills().containsSkill("drill")); assertTrue(s.getRequiredSkills().containsSkill("ScrewDriver")); @@ -65,7 +66,7 @@ public class DeliveryTest { @Test public void whenAddingSkillsCaseSens_theyShouldBeAddedCorrectly(){ - Delivery s = (Delivery) Delivery.Builder.newInstance("s").setLocationId("loc") + Delivery s = (Delivery) Delivery.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("DriLl").addRequiredSkill("screwDriver").build(); assertTrue(s.getRequiredSkills().containsSkill("drill")); assertTrue(s.getRequiredSkills().containsSkill("drilL")); @@ -73,7 +74,7 @@ public class DeliveryTest { @Test public void whenAddingSkillsCaseSensV2_theyShouldBeAddedCorrectly(){ - Delivery s = (Delivery) Delivery.Builder.newInstance("s").setLocationId("loc") + Delivery s = (Delivery) Delivery.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("screwDriver").build(); assertFalse(s.getRequiredSkills().containsSkill("drill")); assertFalse(s.getRequiredSkills().containsSkill("drilL")); @@ -81,7 +82,7 @@ public class DeliveryTest { @Test public void nameShouldBeAssigned(){ - Delivery s = (Delivery) Delivery.Builder.newInstance("s").setLocationId("loc") + Delivery s = (Delivery) Delivery.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .setName("name").build(); assertEquals("name", s.getName()); } diff --git a/jsprit-core/src/test/java/jsprit/core/problem/job/PickupTest.java b/jsprit-core/src/test/java/jsprit/core/problem/job/PickupTest.java index f8a936cc..09b95f92 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/job/PickupTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/job/PickupTest.java @@ -16,6 +16,7 @@ ******************************************************************************/ package jsprit.core.problem.job; +import jsprit.core.problem.Location; import org.junit.Test; import static org.junit.Assert.*; @@ -29,9 +30,9 @@ public class PickupTest { @Test public void whenAddingTwoCapDimension_nuOfDimsShouldBeTwo(){ - Pickup one = (Pickup)Pickup.Builder.newInstance("s").setLocationId("foofoo") - .addSizeDimension(0,2) - .addSizeDimension(1,4) + Pickup one = (Pickup)Pickup.Builder.newInstance("s").setLocation(Location.newInstance("foofoo")) + .addSizeDimension(0, 2) + .addSizeDimension(1, 4) .build(); assertEquals(2,one.getSize().getNuOfDimensions()); assertEquals(2,one.getSize().get(0)); @@ -41,7 +42,7 @@ public class PickupTest { @Test public void whenPickupIsBuiltWithoutSpecifyingCapacity_itShouldHvCapWithOneDimAndDimValOfZero(){ - Pickup one = (Pickup)Pickup.Builder.newInstance("s").setLocationId("foofoo") + Pickup one = (Pickup)Pickup.Builder.newInstance("s").setLocation(Location.newInstance("foofoo")) .build(); assertEquals(1,one.getSize().getNuOfDimensions()); assertEquals(0,one.getSize().get(0)); @@ -49,7 +50,7 @@ public class PickupTest { @Test public void whenPickupIsBuiltWithConstructorWhereSizeIsSpecified_capacityShouldBeSetCorrectly(){ - Pickup one = (Pickup)Pickup.Builder.newInstance("s").addSizeDimension(0, 1).setLocationId("foofoo") + Pickup one = (Pickup)Pickup.Builder.newInstance("s").addSizeDimension(0, 1).setLocation(Location.newInstance("foofoo")) .build(); assertEquals(1,one.getSize().getNuOfDimensions()); assertEquals(1,one.getSize().get(0)); @@ -57,7 +58,7 @@ public class PickupTest { @Test public void whenAddingSkills_theyShouldBeAddedCorrectly(){ - Pickup s = (Pickup) Pickup.Builder.newInstance("s").setLocationId("loc") + Pickup s = (Pickup) Pickup.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("drill").addRequiredSkill("screwdriver").build(); assertTrue(s.getRequiredSkills().containsSkill("drill")); assertTrue(s.getRequiredSkills().containsSkill("drill")); @@ -66,7 +67,7 @@ public class PickupTest { @Test public void whenAddingSkillsCaseSens_theyShouldBeAddedCorrectly(){ - Pickup s = (Pickup) Pickup.Builder.newInstance("s").setLocationId("loc") + Pickup s = (Pickup) Pickup.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("DriLl").addRequiredSkill("screwDriver").build(); assertTrue(s.getRequiredSkills().containsSkill("drill")); assertTrue(s.getRequiredSkills().containsSkill("drilL")); @@ -74,7 +75,7 @@ public class PickupTest { @Test public void whenAddingSkillsCaseSensV2_theyShouldBeAddedCorrectly(){ - Pickup s = (Pickup) Pickup.Builder.newInstance("s").setLocationId("loc") + Pickup s = (Pickup) Pickup.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("screwDriver").build(); assertFalse(s.getRequiredSkills().containsSkill("drill")); assertFalse(s.getRequiredSkills().containsSkill("drilL")); @@ -82,7 +83,7 @@ public class PickupTest { @Test public void nameShouldBeAssigned(){ - Pickup s = (Pickup) Pickup.Builder.newInstance("s").setLocationId("loc") + Pickup s = (Pickup) Pickup.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .setName("name").build(); assertEquals("name",s.getName()); } diff --git a/jsprit-core/src/test/java/jsprit/core/problem/job/ServiceTest.java b/jsprit-core/src/test/java/jsprit/core/problem/job/ServiceTest.java index 3c08c373..1ab54452 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/job/ServiceTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/job/ServiceTest.java @@ -18,7 +18,6 @@ package jsprit.core.problem.job; import jsprit.core.problem.Location; import jsprit.core.problem.solution.route.activity.TimeWindow; -import jsprit.core.util.Coordinate; import org.junit.Test; import java.util.HashSet; @@ -30,16 +29,16 @@ public class ServiceTest { @Test public void whenTwoServicesHaveTheSameId_theirReferencesShouldBeUnEqual(){ - Service one = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("foo").build(); - Service two = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("fo").build(); + Service one = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocation(Location.newInstance("foo")).build(); + Service two = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocation(Location.newInstance("fo")).build(); assertTrue(one != two); } @Test public void whenTwoServicesHaveTheSameId_theyShouldBeEqual(){ - Service one = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("foo").build(); - Service two = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("fo").build(); + Service one = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocation(Location.newInstance("foo")).build(); + Service two = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocation(Location.newInstance("fo")).build(); assertTrue(one.equals(two)); } @@ -47,8 +46,8 @@ public class ServiceTest { @Test public void noName(){ Set serviceSet = new HashSet(); - Service one = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("foo").build(); - Service two = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocationId("fo").build(); + Service one = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocation(Location.newInstance("foo")).build(); + Service two = Service.Builder.newInstance("service").addSizeDimension(0, 10).setLocation(Location.newInstance("fo")).build(); serviceSet.add(one); // assertTrue(serviceSet.contains(two)); serviceSet.remove(two); @@ -58,12 +57,12 @@ public class ServiceTest { @Test(expected=IllegalArgumentException.class) public void whenCapacityDimValueIsNegative_throwIllegalStateExpception(){ @SuppressWarnings("unused") - Service s = Service.Builder.newInstance("s").setLocationId("foo").addSizeDimension(0, -10).build(); + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("foo")).addSizeDimension(0, -10).build(); } @Test public void whenAddingTwoCapDimension_nuOfDimsShouldBeTwo(){ - Service one = Service.Builder.newInstance("s").setLocationId("foofoo") + Service one = Service.Builder.newInstance("s").setLocation(Location.newInstance("foofoo")) .addSizeDimension(0,2) .addSizeDimension(1,4) .build(); @@ -72,7 +71,7 @@ public class ServiceTest { @Test public void whenShipmentIsBuiltWithoutSpecifyingCapacity_itShouldHvCapWithOneDimAndDimValOfZero(){ - Service one = Service.Builder.newInstance("s").setLocationId("foofoo") + Service one = Service.Builder.newInstance("s").setLocation(Location.newInstance("foofoo")) .build(); assertEquals(1,one.getSize().getNuOfDimensions()); assertEquals(0,one.getSize().get(0)); @@ -80,7 +79,7 @@ public class ServiceTest { @Test public void whenShipmentIsBuiltWithConstructorWhereSizeIsSpecified_capacityShouldBeSetCorrectly(){ - Service one = Service.Builder.newInstance("s").addSizeDimension(0, 1).setLocationId("foofoo") + Service one = Service.Builder.newInstance("s").addSizeDimension(0, 1).setLocation(Location.newInstance("foofoo")) .build(); assertEquals(1,one.getSize().getNuOfDimensions()); assertEquals(1,one.getSize().get(0)); @@ -90,18 +89,17 @@ public class ServiceTest { public void whenCallingForNewInstanceOfBuilder_itShouldReturnBuilderCorrectly(){ Service.Builder builder = Service.Builder.newInstance("s"); assertNotNull(builder); - assertTrue(builder instanceof Service.Builder); } @Test public void whenSettingNoType_itShouldReturn_service(){ - Service s = Service.Builder.newInstance("s").setLocationId("loc").build(); + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build(); assertEquals("service",s.getType()); } @Test public void whenSettingLocation_itShouldBeSetCorrectly(){ - Service s = Service.Builder.newInstance("s").setLocationId("loc").build(); + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build(); assertEquals("loc",s.getLocation().getId()); assertEquals("loc",s.getLocation().getId()); } @@ -116,7 +114,7 @@ public class ServiceTest { @Test public void whenSettingLocationCoord_itShouldBeSetCorrectly(){ - Service s = Service.Builder.newInstance("s").setCoord(Coordinate.newInstance(1, 2)).build(); + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance(1, 2)).build(); assertEquals(1.0,s.getLocation().getCoordinate().getX(),0.01); assertEquals(2.0,s.getLocation().getCoordinate().getY(),0.01); assertEquals(1.0,s.getLocation().getCoordinate().getX(),0.01); @@ -132,31 +130,31 @@ public class ServiceTest { @Test(expected=IllegalArgumentException.class) public void whenServiceTimeSmallerZero_throwIllegalStateException(){ @SuppressWarnings("unused") - Service s = Service.Builder.newInstance("s").setLocationId("loc").setServiceTime(-1).build(); + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).setServiceTime(-1).build(); } @Test public void whenSettingServiceTime_itShouldBeSetCorrectly(){ - Service s = Service.Builder.newInstance("s").setLocationId("loc").setServiceTime(1).build(); + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).setServiceTime(1).build(); assertEquals(1.0,s.getServiceDuration(),0.01); } @Test(expected=IllegalArgumentException.class) public void whenTimeWindowIsNull_throwException(){ @SuppressWarnings("unused") - Service s = Service.Builder.newInstance("s").setLocationId("loc").setTimeWindow(null).build(); + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).setTimeWindow(null).build(); } @Test public void whenSettingTimeWindow_itShouldBeSetCorrectly(){ - Service s = Service.Builder.newInstance("s").setLocationId("loc").setTimeWindow(TimeWindow.newInstance(1.0, 2.0)).build(); + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).setTimeWindow(TimeWindow.newInstance(1.0, 2.0)).build(); assertEquals(1.0,s.getTimeWindow().getStart(),0.01); assertEquals(2.0,s.getTimeWindow().getEnd(),0.01); } @Test public void whenAddingSkills_theyShouldBeAddedCorrectly(){ - Service s = Service.Builder.newInstance("s").setLocationId("loc") + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("drill").addRequiredSkill("screwdriver").build(); assertTrue(s.getRequiredSkills().containsSkill("drill")); assertTrue(s.getRequiredSkills().containsSkill("drill")); @@ -165,7 +163,7 @@ public class ServiceTest { @Test public void whenAddingSkillsCaseSens_theyShouldBeAddedCorrectly(){ - Service s = Service.Builder.newInstance("s").setLocationId("loc") + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("DriLl").addRequiredSkill("screwDriver").build(); assertTrue(s.getRequiredSkills().containsSkill("drill")); assertTrue(s.getRequiredSkills().containsSkill("drilL")); @@ -173,7 +171,7 @@ public class ServiceTest { @Test public void whenAddingSkillsCaseSensV2_theyShouldBeAddedCorrectly(){ - Service s = Service.Builder.newInstance("s").setLocationId("loc") + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .addRequiredSkill("screwDriver").build(); assertFalse(s.getRequiredSkills().containsSkill("drill")); assertFalse(s.getRequiredSkills().containsSkill("drilL")); @@ -181,7 +179,7 @@ public class ServiceTest { @Test public void nameShouldBeAssigned(){ - Service s = (Service) Service.Builder.newInstance("s").setLocationId("loc") + Service s = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")) .setName("name").build(); assertEquals("name",s.getName()); } diff --git a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/TestVehicleRoute.java b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/TestVehicleRoute.java index 4e3f1f44..3003cb53 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/TestVehicleRoute.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/TestVehicleRoute.java @@ -16,6 +16,7 @@ ******************************************************************************/ package jsprit.core.problem.solution.route; +import jsprit.core.problem.Location; import jsprit.core.problem.driver.DriverImpl; import jsprit.core.problem.driver.DriverImpl.NoDriver; import jsprit.core.problem.job.Delivery; @@ -44,7 +45,7 @@ public class TestVehicleRoute { @Before public void doBefore(){ - vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("loc").setType(VehicleTypeImpl.Builder.newInstance("yo").build()).build(); + vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("loc")).setType(VehicleTypeImpl.Builder.newInstance("yo").build()).build(); driver = DriverImpl.noDriver(); } @@ -81,7 +82,7 @@ public class TestVehicleRoute { @Test public void whenBuildingANonEmptyTour2Times_tourIterIteratesOverActivitiesCorrectly(){ VehicleRoute.Builder routeBuilder = VehicleRoute.Builder.newInstance(vehicle, driver); - routeBuilder.addService(Service.Builder.newInstance("2").addSizeDimension(0, 30).setLocationId("1").build()); + routeBuilder.addService(Service.Builder.newInstance("2").addSizeDimension(0, 30).setLocation(Location.newInstance("1")).build()); VehicleRoute route = routeBuilder.build(); { @@ -95,7 +96,7 @@ public class TestVehicleRoute { assertEquals(1,count); } { - route.getTourActivities().addActivity(ServiceActivity.newInstance(Service.Builder.newInstance("3").addSizeDimension(0, 30).setLocationId("1").build())); + route.getTourActivities().addActivity(ServiceActivity.newInstance(Service.Builder.newInstance("3").addSizeDimension(0, 30).setLocation(Location.newInstance("1")).build())); Iterator iter = route.getTourActivities().iterator(); int count = 0; while(iter.hasNext()){ @@ -123,7 +124,7 @@ public class TestVehicleRoute { @Test public void whenBuildingANonEmptyTourV2_tourReverseIterIteratesOverActivitiesCorrectly(){ VehicleRoute.Builder routeBuilder = VehicleRoute.Builder.newInstance(vehicle, driver); - routeBuilder.addService(Service.Builder.newInstance("2").addSizeDimension(0, 30).setLocationId("1").build()); + routeBuilder.addService(Service.Builder.newInstance("2").addSizeDimension(0, 30).setLocation(Location.newInstance("1")).build()); VehicleRoute route = routeBuilder.build(); Iterator iter = route.getTourActivities().reverseActivityIterator(); int count = 0; @@ -138,8 +139,8 @@ public class TestVehicleRoute { @Test public void whenBuildingANonEmptyTour2Times_tourReverseIterIteratesOverActivitiesCorrectly(){ VehicleRoute.Builder routeBuilder = VehicleRoute.Builder.newInstance(vehicle, driver); - routeBuilder.addService(Service.Builder.newInstance("2").addSizeDimension(0, 30).setLocationId("1").build()); - routeBuilder.addService(Service.Builder.newInstance("3").addSizeDimension(0, 30).setLocationId("2").build()); + routeBuilder.addService(Service.Builder.newInstance("2").addSizeDimension(0, 30).setLocation(Location.newInstance("1")).build()); + routeBuilder.addService(Service.Builder.newInstance("3").addSizeDimension(0, 30).setLocation(Location.newInstance("2")).build()); VehicleRoute route = routeBuilder.build(); { Iterator iter = route.getTourActivities().reverseActivityIterator(); @@ -169,49 +170,49 @@ public class TestVehicleRoute { @Test public void whenBuildingRouteWithVehicleThatHasDifferentStartAndEndLocation_routeMustHaveCorrectStartLocation(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); assertTrue(vRoute.getStart().getLocation().getId().equals("start")); } @Test public void whenBuildingRouteWithVehicleThatHasDifferentStartAndEndLocation_routeMustHaveCorrectEndLocation(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); assertTrue(vRoute.getEnd().getLocation().getId().equals("end")); } @Test public void whenBuildingRouteWithVehicleThatHasSameStartAndEndLocation_routeMustHaveCorrectStartLocation(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("start").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); assertTrue(vRoute.getStart().getLocation().getId().equals("start")); } @Test public void whenBuildingRouteWithVehicleThatHasSameStartAndEndLocation_routeMustHaveCorrectEndLocation(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("start").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("start")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); assertTrue(vRoute.getEnd().getLocation().getId().equals("start")); } @Test public void whenBuildingRouteWithVehicleThatHasSameStartAndEndLocation_routeMustHaveCorrectStartLocationV2(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("start").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); assertTrue(vRoute.getStart().getLocation().getId().equals("start")); } @Test public void whenBuildingRouteWithVehicleThatHasSameStartAndEndLocation_routeMustHaveCorrectEndLocationV2(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocationId("start").setEndLocationId("start").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("start")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); assertTrue(vRoute.getEnd().getLocation().getId().equals("start")); } @Test public void whenBuildingRouteWithVehicleThatHasDifferentStartAndEndLocation_routeMustHaveCorrectDepartureTime(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setStartLocationId("start").setEndLocationId("end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); assertEquals(vRoute.getDepartureTime(),100.0,0.01); assertEquals(vRoute.getStart().getEndTime(),100.0,0.01); @@ -219,14 +220,14 @@ public class TestVehicleRoute { @Test public void whenBuildingRouteWithVehicleThatHasDifferentStartAndEndLocation_routeMustHaveCorrectEndTime(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocationId("start").setEndLocationId("end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); assertEquals(200.0,vRoute.getEnd().getTheoreticalLatestOperationStartTime(),0.01); } @Test public void whenSettingDepartureTimeInBetweenEarliestStartAndLatestArr_routeMustHaveCorrectDepartureTime(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocationId("start").setEndLocationId("end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); vRoute.setVehicleAndDepartureTime(vehicle, 150.0); assertEquals(vRoute.getStart().getEndTime(),150.0,0.01); @@ -235,7 +236,7 @@ public class TestVehicleRoute { @Test public void whenSettingDepartureEarlierThanEarliestStart_routeMustHaveEarliestDepTimeAsDepTime(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocationId("start").setEndLocationId("end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); vRoute.setVehicleAndDepartureTime(vehicle, 50.0); assertEquals(vRoute.getStart().getEndTime(),100.0,0.01); @@ -244,7 +245,7 @@ public class TestVehicleRoute { @Test public void whenSettingDepartureTimeLaterThanLatestArrival_routeMustHaveThisDepTime(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocationId("start").setEndLocationId("end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); vRoute.setVehicleAndDepartureTime(vehicle, 50.0); assertEquals(vRoute.getStart().getEndTime(),100.0,0.01); @@ -260,8 +261,8 @@ public class TestVehicleRoute { @Test public void whenIniRouteWithNewVehicle_startLocationMustBeCorrect(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocationId("start").setEndLocationId("end").build(); - Vehicle new_vehicle = VehicleImpl.Builder.newInstance("new_v").setEarliestStart(1000).setLatestArrival(2000).setStartLocationId("new_start").setEndLocationId("new_end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); + Vehicle new_vehicle = VehicleImpl.Builder.newInstance("new_v").setEarliestStart(1000).setLatestArrival(2000).setStartLocation(Location.newInstance("new_start")).setEndLocation(Location.newInstance("new_end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); vRoute.setVehicleAndDepartureTime(new_vehicle, 50.0); assertEquals("new_start",vRoute.getStart().getLocation().getId()); @@ -269,8 +270,8 @@ public class TestVehicleRoute { @Test public void whenIniRouteWithNewVehicle_endLocationMustBeCorrect(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocationId("start").setEndLocationId("end").build(); - Vehicle new_vehicle = VehicleImpl.Builder.newInstance("new_v").setEarliestStart(1000).setLatestArrival(2000).setStartLocationId("new_start").setEndLocationId("new_end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); + Vehicle new_vehicle = VehicleImpl.Builder.newInstance("new_v").setEarliestStart(1000).setLatestArrival(2000).setStartLocation(Location.newInstance("new_start")).setEndLocation(Location.newInstance("new_end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); vRoute.setVehicleAndDepartureTime(new_vehicle, 50.0); assertEquals("new_end",vRoute.getEnd().getLocation().getId()); @@ -278,8 +279,8 @@ public class TestVehicleRoute { @Test public void whenIniRouteWithNewVehicle_depTimeMustBeEarliestDepTimeOfNewVehicle(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocationId("start").setEndLocationId("end").build(); - Vehicle new_vehicle = VehicleImpl.Builder.newInstance("new_v").setEarliestStart(1000).setLatestArrival(2000).setStartLocationId("new_start").setEndLocationId("new_end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); + Vehicle new_vehicle = VehicleImpl.Builder.newInstance("new_v").setEarliestStart(1000).setLatestArrival(2000).setStartLocation(Location.newInstance("new_start")).setEndLocation(Location.newInstance("new_end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); vRoute.setVehicleAndDepartureTime(new_vehicle, 50.0); assertEquals(1000.0,vRoute.getDepartureTime(),0.01); @@ -287,8 +288,8 @@ public class TestVehicleRoute { @Test public void whenIniRouteWithNewVehicle_depTimeMustBeSetDepTime(){ - Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocationId("start").setEndLocationId("end").build(); - Vehicle new_vehicle = VehicleImpl.Builder.newInstance("new_v").setEarliestStart(1000).setLatestArrival(2000).setStartLocationId("new_start").setEndLocationId("new_end").build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setEarliestStart(100).setLatestArrival(200).setStartLocation(Location.newInstance("start")).setEndLocation(Location.newInstance("end")).build(); + Vehicle new_vehicle = VehicleImpl.Builder.newInstance("new_v").setEarliestStart(1000).setLatestArrival(2000).setStartLocation(Location.newInstance("new_start")).setEndLocation(Location.newInstance("new_end")).build(); VehicleRoute vRoute = VehicleRoute.Builder.newInstance(vehicle, DriverImpl.noDriver()).build(); vRoute.setVehicleAndDepartureTime(new_vehicle, 1500.0); assertEquals(1500.0,vRoute.getDepartureTime(),0.01); @@ -297,8 +298,8 @@ public class TestVehicleRoute { @Test public void whenAddingPickup_itShouldBeTreatedAsPickup(){ - Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").setLocationId("pickLoc").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocationId("startLoc").build(); + Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").setLocation(Location.newInstance("pickLoc")).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocation(Location.newInstance("startLoc")).build(); VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle).addService(pickup).build(); TourActivity act = route.getActivities().get(0); @@ -311,8 +312,8 @@ public class TestVehicleRoute { @Test public void whenAddingPickup_itShouldBeAdded(){ - Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").setLocationId("pickLoc").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocationId("startLoc").build(); + Pickup pickup = (Pickup) Pickup.Builder.newInstance("pick").setLocation(Location.newInstance("pickLoc")).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocation(Location.newInstance("startLoc")).build(); VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle).addPickup(pickup).build(); TourActivity act = route.getActivities().get(0); @@ -325,8 +326,8 @@ public class TestVehicleRoute { @Test public void whenAddingDelivery_itShouldBeTreatedAsDelivery(){ - Delivery delivery = (Delivery) Delivery.Builder.newInstance("delivery").setLocationId("deliveryLoc").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocationId("startLoc").build(); + Delivery delivery = (Delivery) Delivery.Builder.newInstance("delivery").setLocation(Location.newInstance("deliveryLoc")).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocation(Location.newInstance("startLoc")).build(); VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle).addService(delivery).build(); TourActivity act = route.getActivities().get(0); @@ -339,8 +340,8 @@ public class TestVehicleRoute { @Test public void whenAddingDelivery_itShouldBeAdded(){ - Delivery delivery = (Delivery) Delivery.Builder.newInstance("delivery").setLocationId("deliveryLoc").build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocationId("startLoc").build(); + Delivery delivery = (Delivery) Delivery.Builder.newInstance("delivery").setLocation(Location.newInstance("deliveryLoc")).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocation(Location.newInstance("startLoc")).build(); VehicleRoute route = VehicleRoute.Builder.newInstance(vehicle).addDelivery(delivery).build(); TourActivity act = route.getActivities().get(0); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/DefaultTourActivityFactoryTest.java b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/DefaultTourActivityFactoryTest.java index db9e5899..21828380 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/DefaultTourActivityFactoryTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/DefaultTourActivityFactoryTest.java @@ -18,6 +18,7 @@ ******************************************************************************/ package jsprit.core.problem.solution.route.activity; +import jsprit.core.problem.Location; import jsprit.core.problem.job.Delivery; import jsprit.core.problem.job.Pickup; import jsprit.core.problem.job.Service; @@ -31,7 +32,7 @@ public class DefaultTourActivityFactoryTest { @Test public void whenCreatingActivityWithService_itShouldReturnPickupService(){ DefaultTourActivityFactory factory = new DefaultTourActivityFactory(); - Service service = Service.Builder.newInstance("service").setLocationId("loc").build(); + Service service = Service.Builder.newInstance("service").setLocation(Location.newInstance("loc")).build(); TourActivity act = factory.createActivity(service); assertNotNull(act); assertTrue(act instanceof PickupService); @@ -40,7 +41,7 @@ public class DefaultTourActivityFactoryTest { @Test public void whenCreatingActivityWithPickup_itShouldReturnPickupService(){ DefaultTourActivityFactory factory = new DefaultTourActivityFactory(); - Pickup service = (Pickup) Pickup.Builder.newInstance("service").setLocationId("loc").build(); + Pickup service = (Pickup) Pickup.Builder.newInstance("service").setLocation(Location.newInstance("loc")).build(); TourActivity act = factory.createActivity(service); assertNotNull(act); assertTrue(act instanceof PickupService); @@ -49,7 +50,7 @@ public class DefaultTourActivityFactoryTest { @Test public void whenCreatingActivityWithDelivery_itShouldReturnDeliverService(){ DefaultTourActivityFactory factory = new DefaultTourActivityFactory(); - Delivery service = (Delivery) Delivery.Builder.newInstance("service").setLocationId("loc").build(); + Delivery service = (Delivery) Delivery.Builder.newInstance("service").setLocation(Location.newInstance("loc")).build(); TourActivity act = factory.createActivity(service); assertNotNull(act); assertTrue(act instanceof DeliverService); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/DeliverServiceTest.java b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/DeliverServiceTest.java index 59457f3d..b26b3c76 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/DeliverServiceTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/DeliverServiceTest.java @@ -16,6 +16,7 @@ ******************************************************************************/ package jsprit.core.problem.solution.route.activity; +import jsprit.core.problem.Location; import jsprit.core.problem.job.Delivery; import org.junit.Before; import org.junit.Test; @@ -31,7 +32,7 @@ public class DeliverServiceTest { @Before public void doBefore(){ - service = (Delivery) Delivery.Builder.newInstance("service").setLocationId("loc"). + service = (Delivery) Delivery.Builder.newInstance("service").setLocation(Location.newInstance("loc")). setTimeWindow(TimeWindow.newInstance(1., 2.)). addSizeDimension(0, 10).addSizeDimension(1, 100).addSizeDimension(2, 1000).build(); deliver = new DeliverService(service); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/PickupServiceTest.java b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/PickupServiceTest.java index d39de756..3f34730e 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/PickupServiceTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/PickupServiceTest.java @@ -16,6 +16,7 @@ ******************************************************************************/ package jsprit.core.problem.solution.route.activity; +import jsprit.core.problem.Location; import jsprit.core.problem.job.Service; import org.junit.Before; import org.junit.Test; @@ -31,7 +32,7 @@ public class PickupServiceTest { @Before public void doBefore(){ - service = Service.Builder.newInstance("service").setLocationId("loc"). + service = Service.Builder.newInstance("service").setLocation(Location.newInstance("loc")). setTimeWindow(TimeWindow.newInstance(1., 2.)). addSizeDimension(0, 10).addSizeDimension(1, 100).addSizeDimension(2, 1000).build(); pickup = new PickupService(service); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/ServiceActivityTest.java b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/ServiceActivityTest.java index ea4c206a..85a28177 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/ServiceActivityTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/ServiceActivityTest.java @@ -16,6 +16,7 @@ ******************************************************************************/ package jsprit.core.problem.solution.route.activity; +import jsprit.core.problem.Location; import jsprit.core.problem.job.Service; import org.junit.Before; import org.junit.Test; @@ -31,7 +32,7 @@ public class ServiceActivityTest { @Before public void doBefore(){ - service = Service.Builder.newInstance("service").setLocationId("loc"). + service = Service.Builder.newInstance("service").setLocation(Location.newInstance("loc")). setTimeWindow(TimeWindow.newInstance(1., 2.)). addSizeDimension(0, 10).addSizeDimension(1, 100).addSizeDimension(2, 1000).build(); serviceActivity = ServiceActivity.newInstance(service); @@ -84,8 +85,8 @@ public class ServiceActivityTest { @Test public void whenTwoDeliveriesHaveTheSameUnderlyingJob_theyAreEqual(){ - Service s1 = Service.Builder.newInstance("s").setLocationId("loc").build(); - Service s2 = Service.Builder.newInstance("s").setLocationId("loc").build(); + Service s1 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build(); + Service s2 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build(); ServiceActivity d1 = ServiceActivity.newInstance(s1); ServiceActivity d2 = ServiceActivity.newInstance(s2); @@ -95,8 +96,8 @@ public class ServiceActivityTest { @Test public void whenTwoDeliveriesHaveTheDifferentUnderlyingJob_theyAreNotEqual(){ - Service s1 = Service.Builder.newInstance("s").setLocationId("loc").build(); - Service s2 = Service.Builder.newInstance("s1").setLocationId("loc").build(); + Service s1 = Service.Builder.newInstance("s").setLocation(Location.newInstance("loc")).build(); + Service s2 = Service.Builder.newInstance("s1").setLocation(Location.newInstance("loc")).build(); ServiceActivity d1 = ServiceActivity.newInstance(s1); ServiceActivity d2 = ServiceActivity.newInstance(s2); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/TestTourActivities.java b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/TestTourActivities.java index 567ab157..3202177a 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/TestTourActivities.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/solution/route/activity/TestTourActivities.java @@ -34,7 +34,7 @@ public class TestTourActivities { @Before public void doBefore(){ - service = Service.Builder.newInstance("yo").addSizeDimension(0, 10).setLocationId("loc").build(); + service = Service.Builder.newInstance("yo").addSizeDimension(0, 10).setLocation(Location.newInstance("loc")).build(); act = ServiceActivity.newInstance(service); tour = new TourActivities(); } @@ -67,7 +67,7 @@ public class TestTourActivities { assertEquals(0, tour.getActivities().size()); tour.addActivity(act); assertEquals(1, tour.getActivities().size()); - Service anotherServiceInstance = Service.Builder.newInstance("yo").addSizeDimension(0, 10).setLocationId("loc").build(); + Service anotherServiceInstance = Service.Builder.newInstance("yo").addSizeDimension(0, 10).setLocation(Location.newInstance("loc")).build(); assertTrue(service.equals(anotherServiceInstance)); boolean removed = tour.removeJob(anotherServiceInstance); assertTrue(removed); @@ -76,7 +76,8 @@ public class TestTourActivities { @Test public void whenAddingAShipmentActivity_tourShouldServeShipment(){ - Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocationId("delLoc").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); + Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocation(Location.newInstance("delLoc")) + .setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); TourShipmentActivityFactory fac = new DefaultShipmentActivityFactory(); TourActivity pickupShipment = fac.createPickup(s); TourActivity deliverShipment = fac.createDelivery(s); @@ -90,7 +91,7 @@ public class TestTourActivities { @Test public void whenRemovingShipment_tourShouldNotServiceItAnymore(){ - Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocationId("delLoc").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); + Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocation(Location.newInstance("delLoc")).setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); TourShipmentActivityFactory fac = new DefaultShipmentActivityFactory(); TourActivity pickupShipment = fac.createPickup(s); TourActivity deliverShipment = fac.createDelivery(s); @@ -104,7 +105,9 @@ public class TestTourActivities { @Test public void whenRemovingShipment_theirCorrespondingActivitiesShouldBeRemoved(){ - Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocationId("delLoc").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); + Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1) + .setDeliveryLocation(Location.newInstance("delLoc")) + .setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); TourShipmentActivityFactory fac = new DefaultShipmentActivityFactory(); TourActivity pickupShipment = fac.createPickup(s); TourActivity deliverShipment = fac.createDelivery(s); @@ -145,7 +148,9 @@ public class TestTourActivities { @Test public void removingShipmentActivityShouldWork(){ - Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocationId("delLoc").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); + Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1) + .setDeliveryLocation(Location.newInstance("delLoc")) + .setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); TourShipmentActivityFactory fac = new DefaultShipmentActivityFactory(); TourActivity pickupShipment = fac.createPickup(s); TourActivity deliverShipment = fac.createDelivery(s); @@ -170,7 +175,9 @@ public class TestTourActivities { @Test public void whenCopyingShipmentActivitySeq_jobSizeShouldBeCorrect(){ - Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocationId("delLoc").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); + Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1) + .setDeliveryLocation(Location.newInstance("delLoc")) + .setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); TourShipmentActivityFactory fac = new DefaultShipmentActivityFactory(); TourActivity pickupShipment = fac.createPickup(s); TourActivity deliverShipment = fac.createDelivery(s); @@ -190,7 +197,8 @@ public class TestTourActivities { @Test public void whenCopyingShipmentActivitySeq_noActivitiesShouldBeCorrect(){ - Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocationId("delLoc").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); + Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1) + .setDeliveryLocation(Location.newInstance("delLoc")).setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); TourShipmentActivityFactory fac = new DefaultShipmentActivityFactory(); TourActivity pickupShipment = fac.createPickup(s); TourActivity deliverShipment = fac.createDelivery(s); @@ -210,7 +218,8 @@ public class TestTourActivities { @Test public void whenCopyingShipmentActivitySeq_itShouldContaintPickupAct(){ - Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1).setDeliveryLocationId("delLoc").setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); + Shipment s = Shipment.Builder.newInstance("s").addSizeDimension(0, 1) + .setDeliveryLocation(Location.newInstance("delLoc")).setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).build(); TourShipmentActivityFactory fac = new DefaultShipmentActivityFactory(); TourActivity pickupShipment = fac.createPickup(s); TourActivity deliverShipment = fac.createDelivery(s); diff --git a/jsprit-core/src/test/resources/infiniteWriterV2Test.xml b/jsprit-core/src/test/resources/infiniteWriterV2Test.xml index 07c5406a..2d9058ab 100644 --- a/jsprit-core/src/test/resources/infiniteWriterV2Test.xml +++ b/jsprit-core/src/test/resources/infiniteWriterV2Test.xml @@ -2,24 +2,9 @@ - FINITE + INFINITE - - v2 - vehType2 - - loc - - - loc - - - 0.0 - 1.7976931348623157E308 - - true - v1 vehType @@ -48,16 +33,58 @@ - - vehType2 - - 200 - - - 0.0 - 1.0 - - - + + + + loc + + + 1 + + 2.0 + + + 0.0 + 1.7976931348623157E308 + + + + + + loc2 + + + 1 + + 4.0 + + + 0.0 + 1.7976931348623157E308 + + + + + + + 10.0 + + + noDriver + v1 + 0.0 + + 1 + 0.0 + 0.0 + + 0.0 + + + + + + + diff --git a/jsprit-examples/src/main/java/jsprit/examples/ConfigureAlgorithmInCodeInsteadOfPerXml.java b/jsprit-examples/src/main/java/jsprit/examples/ConfigureAlgorithmInCodeInsteadOfPerXml.java index f1e186e8..d10f3ef1 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/ConfigureAlgorithmInCodeInsteadOfPerXml.java +++ b/jsprit-examples/src/main/java/jsprit/examples/ConfigureAlgorithmInCodeInsteadOfPerXml.java @@ -20,6 +20,7 @@ import jsprit.analysis.toolbox.Plotter; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.io.AlgorithmConfig; import jsprit.core.algorithm.io.VehicleRoutingAlgorithms; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.io.VrpXMLWriter; import jsprit.core.problem.job.Service; @@ -29,7 +30,6 @@ import jsprit.core.problem.vehicle.VehicleImpl.Builder; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import jsprit.util.Examples; import org.apache.commons.configuration.XMLConfiguration; @@ -55,18 +55,18 @@ public class ConfigureAlgorithmInCodeInsteadOfPerXml { * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder.setType(vehicleType); VehicleImpl vehicle = vehicleBuilder.build(); /* * build services at the required locations, each with a capacity-demand of 1. */ - Service service1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 7)).build(); - Service service2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 13)).build(); + Service service1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 7)).build(); + Service service2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 13)).build(); - Service service3 = Service.Builder.newInstance("3").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 7)).build(); - Service service4 = Service.Builder.newInstance("4").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 13)).build(); + Service service3 = Service.Builder.newInstance("3").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 7)).build(); + Service service4 = Service.Builder.newInstance("4").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 13)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); @@ -104,12 +104,13 @@ public class ConfigureAlgorithmInCodeInsteadOfPerXml { private static AlgorithmConfig getAlgorithmConfig() { AlgorithmConfig config = new AlgorithmConfig(); XMLConfiguration xmlConfig = config.getXMLConfiguration(); - xmlConfig.setProperty("iterations", 2000); + xmlConfig.setProperty("iterations", "2000"); xmlConfig.setProperty("construction.insertion[@name]","bestInsertion"); xmlConfig.setProperty("strategy.memory", 1); String searchStrategy = "strategy.searchStrategies.searchStrategy"; - + + xmlConfig.setProperty(searchStrategy + "(0)[@name]","random_best"); xmlConfig.setProperty(searchStrategy + "(0).selector[@name]","selectBest"); xmlConfig.setProperty(searchStrategy + "(0).acceptor[@name]","acceptNewRemoveWorst"); xmlConfig.setProperty(searchStrategy + "(0).modules.module(0)[@name]","ruin_and_recreate"); @@ -117,7 +118,8 @@ public class ConfigureAlgorithmInCodeInsteadOfPerXml { xmlConfig.setProperty(searchStrategy + "(0).modules.module(0).ruin.share","0.3"); xmlConfig.setProperty(searchStrategy + "(0).modules.module(0).insertion[@name]","bestInsertion"); xmlConfig.setProperty(searchStrategy + "(0).probability","0.5"); - + + xmlConfig.setProperty(searchStrategy + "(1)[@name]","radial_best"); xmlConfig.setProperty(searchStrategy + "(1).selector[@name]","selectBest"); xmlConfig.setProperty(searchStrategy + "(1).acceptor[@name]","acceptNewRemoveWorst"); xmlConfig.setProperty(searchStrategy + "(1).modules.module(0)[@name]","ruin_and_recreate"); diff --git a/jsprit-examples/src/main/java/jsprit/examples/CostMatrixExample.java b/jsprit-examples/src/main/java/jsprit/examples/CostMatrixExample.java index 1d83d0fc..17bc0d74 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/CostMatrixExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/CostMatrixExample.java @@ -19,6 +19,7 @@ package jsprit.examples; import jsprit.analysis.toolbox.Plotter; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.io.VehicleRoutingAlgorithms; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.cost.VehicleRoutingTransportCosts; @@ -50,11 +51,12 @@ public class CostMatrixExample { Examples.createOutputFolder(); VehicleType type = VehicleTypeImpl.Builder.newInstance("type").addCapacityDimension(0, 2).setCostPerDistance(1).setCostPerTime(2).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle").setStartLocationId("0").setType(type).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("vehicle") + .setStartLocation(Location.newInstance("0")).setType(type).build(); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("1").build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("2").build(); - Service s3 = Service.Builder.newInstance("3").addSizeDimension(0, 1).setLocationId("3").build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(Location.newInstance("1")).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(Location.newInstance("2")).build(); + Service s3 = Service.Builder.newInstance("3").addSizeDimension(0, 1).setLocation(Location.newInstance("3")).build(); /* diff --git a/jsprit-examples/src/main/java/jsprit/examples/HVRPExample.java b/jsprit-examples/src/main/java/jsprit/examples/HVRPExample.java index 9c8d7428..c69dfe76 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/HVRPExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/HVRPExample.java @@ -19,6 +19,7 @@ package jsprit.examples; import jsprit.analysis.toolbox.GraphStreamViewer; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.io.VehicleRoutingAlgorithms; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.job.Service; @@ -27,7 +28,6 @@ import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import java.util.Collection; @@ -71,42 +71,42 @@ public class HVRPExample { VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); //add customers - vrpBuilder.addJob(Service.Builder.newInstance("1").addSizeDimension(0, 18).setCoord(Coordinate.newInstance(22, 22)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("2").addSizeDimension(0, 26).setCoord(Coordinate.newInstance(36, 26)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("3").addSizeDimension(0, 11).setCoord(Coordinate.newInstance(21, 45)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("4").addSizeDimension(0, 30).setCoord(Coordinate.newInstance(45, 35)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("5").addSizeDimension(0, 21).setCoord(Coordinate.newInstance(55, 20)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("6").addSizeDimension(0, 19).setCoord(Coordinate.newInstance(33, 34)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("7").addSizeDimension(0, 15).setCoord(Coordinate.newInstance(50, 50)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("8").addSizeDimension(0, 16).setCoord(Coordinate.newInstance(55, 45)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("9").addSizeDimension(0, 29).setCoord(Coordinate.newInstance(26, 59)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("10").addSizeDimension(0, 26).setCoord(Coordinate.newInstance(40, 66)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("11").addSizeDimension(0, 37).setCoord(Coordinate.newInstance(55, 56)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("12").addSizeDimension(0, 16).setCoord(Coordinate.newInstance(35, 51)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("13").addSizeDimension(0, 12).setCoord(Coordinate.newInstance(62, 35)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("14").addSizeDimension(0, 31).setCoord(Coordinate.newInstance(62, 57)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("15").addSizeDimension(0, 8).setCoord(Coordinate.newInstance(62, 24)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("16").addSizeDimension(0, 19).setCoord(Coordinate.newInstance(21, 36)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("17").addSizeDimension(0, 20).setCoord(Coordinate.newInstance(33, 44)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("18").addSizeDimension(0, 13).setCoord(Coordinate.newInstance(9, 56)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("19").addSizeDimension(0, 15).setCoord(Coordinate.newInstance(62, 48)).build()); - vrpBuilder.addJob(Service.Builder.newInstance("20").addSizeDimension(0, 22).setCoord(Coordinate.newInstance(66, 14)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("1").addSizeDimension(0, 18).setLocation(Location.newInstance(22, 22)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("2").addSizeDimension(0, 26).setLocation(Location.newInstance(36, 26)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("3").addSizeDimension(0, 11).setLocation(Location.newInstance(21, 45)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("4").addSizeDimension(0, 30).setLocation(Location.newInstance(45, 35)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("5").addSizeDimension(0, 21).setLocation(Location.newInstance(55, 20)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("6").addSizeDimension(0, 19).setLocation(Location.newInstance(33, 34)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("7").addSizeDimension(0, 15).setLocation(Location.newInstance(50, 50)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("8").addSizeDimension(0, 16).setLocation(Location.newInstance(55, 45)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("9").addSizeDimension(0, 29).setLocation(Location.newInstance(26, 59)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("10").addSizeDimension(0, 26).setLocation(Location.newInstance(40, 66)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("11").addSizeDimension(0, 37).setLocation(Location.newInstance(55, 56)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("12").addSizeDimension(0, 16).setLocation(Location.newInstance(35, 51)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("13").addSizeDimension(0, 12).setLocation(Location.newInstance(62, 35)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("14").addSizeDimension(0, 31).setLocation(Location.newInstance(62, 57)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("15").addSizeDimension(0, 8).setLocation(Location.newInstance(62, 24)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("16").addSizeDimension(0, 19).setLocation(Location.newInstance(21, 36)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("17").addSizeDimension(0, 20).setLocation(Location.newInstance(33, 44)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("18").addSizeDimension(0, 13).setLocation(Location.newInstance(9, 56)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("19").addSizeDimension(0, 15).setLocation(Location.newInstance(62, 48)).build()); + vrpBuilder.addJob(Service.Builder.newInstance("20").addSizeDimension(0, 22).setLocation(Location.newInstance(66, 14)).build()); //add vehicle - finite fleet //2xtype1 VehicleType type1 = VehicleTypeImpl.Builder.newInstance("type_1").addCapacityDimension(0, 120).setCostPerDistance(1.0).build(); - VehicleImpl vehicle1_1 = VehicleImpl.Builder.newInstance("1_1").setStartLocationCoordinate(Coordinate.newInstance(40, 40)).setType(type1).build(); + VehicleImpl vehicle1_1 = VehicleImpl.Builder.newInstance("1_1").setStartLocation(Location.newInstance(40, 40)).setType(type1).build(); vrpBuilder.addVehicle(vehicle1_1); - VehicleImpl vehicle1_2 = VehicleImpl.Builder.newInstance("1_2").setStartLocationCoordinate(Coordinate.newInstance(40, 40)).setType(type1).build(); + VehicleImpl vehicle1_2 = VehicleImpl.Builder.newInstance("1_2").setStartLocation(Location.newInstance(40, 40)).setType(type1).build(); vrpBuilder.addVehicle(vehicle1_2); //1xtype2 VehicleType type2 = VehicleTypeImpl.Builder.newInstance("type_2").addCapacityDimension(0, 160).setCostPerDistance(1.1).build(); - VehicleImpl vehicle2_1 = VehicleImpl.Builder.newInstance("2_1").setStartLocationCoordinate(Coordinate.newInstance(40, 40)).setType(type2).build(); + VehicleImpl vehicle2_1 = VehicleImpl.Builder.newInstance("2_1").setStartLocation(Location.newInstance(40, 40)).setType(type2).build(); vrpBuilder.addVehicle(vehicle2_1); //1xtype3 VehicleType type3 = VehicleTypeImpl.Builder.newInstance("type_3").addCapacityDimension(0, 300).setCostPerDistance(1.3).build(); - VehicleImpl vehicle3_1 = VehicleImpl.Builder.newInstance("3_1").setStartLocationCoordinate(Coordinate.newInstance(40, 40)).setType(type3).build(); + VehicleImpl vehicle3_1 = VehicleImpl.Builder.newInstance("3_1").setStartLocation(Location.newInstance(40, 40)).setType(type3).build(); vrpBuilder.addVehicle(vehicle3_1); //add penaltyVehicles to allow invalid solutions temporarily diff --git a/jsprit-examples/src/main/java/jsprit/examples/JobAndActivityDependenciesExample.java b/jsprit-examples/src/main/java/jsprit/examples/JobAndActivityDependenciesExample.java index 63b61b8b..b0872790 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/JobAndActivityDependenciesExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/JobAndActivityDependenciesExample.java @@ -24,6 +24,7 @@ import jsprit.core.algorithm.VehicleRoutingAlgorithmBuilder; import jsprit.core.algorithm.state.StateId; import jsprit.core.algorithm.state.StateManager; import jsprit.core.algorithm.state.StateUpdater; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.constraint.ConstraintManager; import jsprit.core.problem.constraint.HardActivityConstraint; @@ -36,7 +37,6 @@ import jsprit.core.problem.solution.route.activity.ActivityVisitor; import jsprit.core.problem.solution.route.activity.TourActivity; import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import java.util.Collection; @@ -210,45 +210,45 @@ public class JobAndActivityDependenciesExample { VehicleImpl driver1 = VehicleImpl.Builder.newInstance("driver1") .addSkill("driver1") - .setStartLocationCoordinate(Coordinate.newInstance(0, 0)).setReturnToDepot(false).build(); + .setStartLocation(Location.newInstance(0, 0)).setReturnToDepot(false).build(); VehicleImpl driver3 = VehicleImpl.Builder.newInstance("driver3") .addSkill("driver3") - .setStartLocationCoordinate(Coordinate.newInstance(-3, 5)).setReturnToDepot(true).build(); + .setStartLocation(Location.newInstance(-3, 5)).setReturnToDepot(true).build(); Service s1 = Service.Builder.newInstance("s1") .addRequiredSkill("driver1") .setName("install new device") - .setCoord(Coordinate.newInstance(2, 2)).build(); + .setLocation(Location.newInstance(2, 2)).build(); Service s2 = Service.Builder.newInstance("s2") .addRequiredSkill("driver3") .setName("deliver key") - .setCoord(Coordinate.newInstance(2, 4)).build(); + .setLocation(Location.newInstance(2, 4)).build(); Service s3 = Service.Builder.newInstance("s3") .addRequiredSkill("driver1") .setName("repair heater") - .setCoord(Coordinate.newInstance(-2, 2)).build(); + .setLocation(Location.newInstance(-2, 2)).build(); Service s4 = Service.Builder.newInstance("s4") .addRequiredSkill("driver3") .setName("get key") - .setCoord(Coordinate.newInstance(-2.3, 4)).build(); + .setLocation(Location.newInstance(-2.3, 4)).build(); Service s5 = Service.Builder.newInstance("s5") .addRequiredSkill("driver1") .setName("cleaning") - .setCoord(Coordinate.newInstance(1, 5)).build(); + .setLocation(Location.newInstance(1, 5)).build(); Service s6 = Service.Builder.newInstance("s6") .addRequiredSkill("driver3") .setName("use key") - .setCoord(Coordinate.newInstance(-2, 3)).build(); + .setLocation(Location.newInstance(-2, 3)).build(); Service s7 = Service.Builder.newInstance("s7") .addRequiredSkill("driver3") .setName("maintenance") - .setCoord(Coordinate.newInstance(-1.7, 3.5)).build(); + .setLocation(Location.newInstance(-1.7, 3.5)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance().setFleetSize(VehicleRoutingProblem.FleetSize.FINITE) .addJob(s1).addJob(s2).addJob(s3).addJob(s4).addJob(s5).addJob(s6).addJob(s7) diff --git a/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionExample.java b/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionExample.java index 0794a330..97e45109 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/RefuseCollectionExample.java @@ -19,6 +19,7 @@ package jsprit.examples; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.box.GreedySchrimpfFactory; import jsprit.core.algorithm.termination.IterationWithoutImprovementTermination; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.io.VrpXMLWriter; @@ -49,55 +50,6 @@ import java.util.Collection; */ public class RefuseCollectionExample { - static class RelationKey { - - final String from; - final String to; - - public RelationKey(String from, String to) { - super(); - this.from = from; - this.to = to; - } - - /* (non-Javadoc) - * @see java.lang.Object#hashCode() - */ - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((from == null) ? 0 : from.hashCode()); - result = prime * result + ((to == null) ? 0 : to.hashCode()); - return result; - } - - /* (non-Javadoc) - * @see java.lang.Object#equals(java.lang.Object) - */ - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - RelationKey other = (RelationKey) obj; - if (from == null) { - if (other.from != null) - return false; - } else if (!from.equals(other.from)) - return false; - if (to == null) { - if (other.to != null) - return false; - } else if (!to.equals(other.to)) - return false; - return true; - } - } - public static void main(String[] args) throws IOException { /* * some preparation - create output folder @@ -112,7 +64,7 @@ public class RefuseCollectionExample { VehicleTypeImpl bigType = typeBuilder.build(); VehicleImpl.Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationId("1"); + vehicleBuilder.setStartLocation(Location.newInstance("1")); vehicleBuilder.setType(bigType); VehicleImpl bigVehicle = vehicleBuilder.build(); @@ -162,7 +114,7 @@ public class RefuseCollectionExample { /* * build service */ - Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])).setLocationId(lineTokens[0]).build(); + Service service = Service.Builder.newInstance(lineTokens[0]).addSizeDimension(0, Integer.parseInt(lineTokens[1])).setLocation(Location.newInstance(lineTokens[0])).build(); /* * and add it to problem */ diff --git a/jsprit-examples/src/main/java/jsprit/examples/ServicePickupsWithMultipleDepotsExample.java b/jsprit-examples/src/main/java/jsprit/examples/ServicePickupsWithMultipleDepotsExample.java index b953d326..b3834971 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/ServicePickupsWithMultipleDepotsExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/ServicePickupsWithMultipleDepotsExample.java @@ -21,6 +21,7 @@ import jsprit.analysis.toolbox.GraphStreamViewer.Label; import jsprit.analysis.toolbox.Plotter; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.io.VehicleRoutingAlgorithms; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.io.VrpXMLWriter; import jsprit.core.problem.job.Service; @@ -30,7 +31,6 @@ import jsprit.core.problem.vehicle.VehicleImpl.Builder; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import jsprit.util.Examples; @@ -57,12 +57,12 @@ public class ServicePickupsWithMultipleDepotsExample { * define two depots, i.e. two vehicle locations ([10,10],[50,50]) and equip them with an infinite number of vehicles of type 'vehicleType' */ Builder vehicleBuilder1 = VehicleImpl.Builder.newInstance("vehicles@[10,10]"); - vehicleBuilder1.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder1.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder1.setType(vehicleType); VehicleImpl vehicle1 = vehicleBuilder1.build(); Builder vehicleBuilder2 = VehicleImpl.Builder.newInstance("vehicles@[50,50]"); - vehicleBuilder2.setStartLocationCoordinate(Coordinate.newInstance(50, 50)); + vehicleBuilder2.setStartLocation(Location.newInstance(50, 50)); vehicleBuilder2.setType(vehicleType); VehicleImpl vehicle2 = vehicleBuilder2.build(); @@ -76,17 +76,17 @@ public class ServicePickupsWithMultipleDepotsExample { * 4: (15,13)->(14,11) */ - Service shipment1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 7)).build(); - Service shipment2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 13)).build(); + Service shipment1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 7)).build(); + Service shipment2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 13)).build(); - Service shipment3 = Service.Builder.newInstance("3").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 7)).build(); - Service shipment4 = Service.Builder.newInstance("4").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 13)).build(); + Service shipment3 = Service.Builder.newInstance("3").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 7)).build(); + Service shipment4 = Service.Builder.newInstance("4").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 13)).build(); - Service shipment5 = Service.Builder.newInstance("5").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(55, 57)).build(); - Service shipment6 = Service.Builder.newInstance("6").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(55, 63)).build(); + Service shipment5 = Service.Builder.newInstance("5").addSizeDimension(0, 1).setLocation(Location.newInstance(55, 57)).build(); + Service shipment6 = Service.Builder.newInstance("6").addSizeDimension(0, 1).setLocation(Location.newInstance(55, 63)).build(); - Service shipment7 = Service.Builder.newInstance("7").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(65, 57)).build(); - Service shipment8 = Service.Builder.newInstance("8").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(65, 63)).build(); + Service shipment7 = Service.Builder.newInstance("7").addSizeDimension(0, 1).setLocation(Location.newInstance(65, 57)).build(); + Service shipment8 = Service.Builder.newInstance("8").addSizeDimension(0, 1).setLocation(Location.newInstance(65, 63)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleDepotBoundedPickupAndDeliveryExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleDepotBoundedPickupAndDeliveryExample.java index 1b06d866..db6e884a 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleDepotBoundedPickupAndDeliveryExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleDepotBoundedPickupAndDeliveryExample.java @@ -20,6 +20,7 @@ import jsprit.analysis.toolbox.Plotter; import jsprit.analysis.toolbox.Plotter.Label; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.box.SchrimpfFactory; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.io.VrpXMLWriter; import jsprit.core.problem.job.Delivery; @@ -30,7 +31,6 @@ import jsprit.core.problem.vehicle.VehicleImpl.Builder; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import jsprit.util.Examples; @@ -55,18 +55,18 @@ public class SimpleDepotBoundedPickupAndDeliveryExample { * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder.setType(vehicleType); VehicleImpl vehicle = vehicleBuilder.build(); /* * build pickups and deliveries at the required locations, each with a capacity-demand of 1. */ - Pickup pickup1 = (Pickup) Pickup.Builder.newInstance("1").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 7)).build(); - Delivery delivery1 = (Delivery) Delivery.Builder.newInstance("2").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 13)).build(); + Pickup pickup1 = (Pickup) Pickup.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 7)).build(); + Delivery delivery1 = (Delivery) Delivery.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 13)).build(); - Pickup pickup2 = (Pickup) Pickup.Builder.newInstance("3").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 7)).build(); - Delivery delivery2 = (Delivery) Delivery.Builder.newInstance("4").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 13)).build(); + Pickup pickup2 = (Pickup) Pickup.Builder.newInstance("3").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 7)).build(); + Delivery delivery2 = (Delivery) Delivery.Builder.newInstance("4").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 13)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleExample.java index 650f5145..029d3947 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleExample.java @@ -20,6 +20,7 @@ import jsprit.analysis.toolbox.GraphStreamViewer; import jsprit.analysis.toolbox.GraphStreamViewer.Label; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.box.SchrimpfFactory; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.io.VrpXMLWriter; import jsprit.core.problem.job.Service; @@ -29,7 +30,6 @@ import jsprit.core.problem.vehicle.VehicleImpl.Builder; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import java.io.File; @@ -63,18 +63,18 @@ public class SimpleExample { * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder.setType(vehicleType); VehicleImpl vehicle = vehicleBuilder.build(); /* * build services at the required locations, each with a capacity-demand of 1. */ - Service service1 = Service.Builder.newInstance("1").addSizeDimension(WEIGHT_INDEX, 1).setCoord(Coordinate.newInstance(5, 7)).build(); - Service service2 = Service.Builder.newInstance("2").addSizeDimension(WEIGHT_INDEX, 1).setCoord(Coordinate.newInstance(5, 13)).build(); + Service service1 = Service.Builder.newInstance("1").addSizeDimension(WEIGHT_INDEX, 1).setLocation(Location.newInstance(5, 7)).build(); + Service service2 = Service.Builder.newInstance("2").addSizeDimension(WEIGHT_INDEX, 1).setLocation(Location.newInstance(5, 13)).build(); - Service service3 = Service.Builder.newInstance("3").addSizeDimension(WEIGHT_INDEX, 1).setCoord(Coordinate.newInstance(15, 7)).build(); - Service service4 = Service.Builder.newInstance("4").addSizeDimension(WEIGHT_INDEX, 1).setCoord(Coordinate.newInstance(15, 13)).build(); + Service service3 = Service.Builder.newInstance("3").addSizeDimension(WEIGHT_INDEX, 1).setLocation(Location.newInstance(15, 7)).build(); + Service service4 = Service.Builder.newInstance("4").addSizeDimension(WEIGHT_INDEX, 1).setLocation(Location.newInstance(15, 13)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleOpenRoutes.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleOpenRoutes.java index 1a246308..23257b90 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleOpenRoutes.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleOpenRoutes.java @@ -19,6 +19,7 @@ package jsprit.examples; import jsprit.analysis.toolbox.Plotter; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.io.VehicleRoutingAlgorithms; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.io.VrpXMLWriter; import jsprit.core.problem.job.Service; @@ -28,7 +29,6 @@ import jsprit.core.problem.vehicle.VehicleImpl.Builder; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import jsprit.util.Examples; @@ -54,7 +54,7 @@ public class SimpleExampleOpenRoutes { * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder.setType(vehicleType); vehicleBuilder.setReturnToDepot(false); @@ -63,11 +63,11 @@ public class SimpleExampleOpenRoutes { /* * build services at the required locations, each with a capacity-demand of 1. */ - Service service1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 7)).build(); - Service service2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 13)).build(); + Service service1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 7)).build(); + Service service2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 13)).build(); - Service service3 = Service.Builder.newInstance("3").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 7)).build(); - Service service4 = Service.Builder.newInstance("4").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 13)).build(); + Service service3 = Service.Builder.newInstance("3").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 7)).build(); + Service service4 = Service.Builder.newInstance("4").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 13)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleWithSkills.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleWithSkills.java index a55655ba..d64d0ee1 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleWithSkills.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleExampleWithSkills.java @@ -21,6 +21,7 @@ import jsprit.analysis.toolbox.GraphStreamViewer.Label; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.VehicleRoutingAlgorithmBuilder; import jsprit.core.algorithm.state.StateManager; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.constraint.ConstraintManager; import jsprit.core.problem.io.VrpXMLWriter; @@ -31,7 +32,6 @@ import jsprit.core.problem.vehicle.VehicleImpl.Builder; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import java.io.File; @@ -65,12 +65,12 @@ public class SimpleExampleWithSkills { * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder.setType(vehicleType); VehicleImpl vehicle = vehicleBuilder.build(); Builder vehicle2Builder = Builder.newInstance("vehicle2"); - vehicle2Builder.setStartLocationCoordinate(Coordinate.newInstance(1, 1)); + vehicle2Builder.setStartLocation(Location.newInstance(1, 1)); vehicle2Builder.setType(vehicleType); vehicle2Builder.addSkill("drill"); VehicleImpl vehicle2 = vehicle2Builder.build(); @@ -78,12 +78,12 @@ public class SimpleExampleWithSkills { /* * build services at the required locations, each with a capacity-demand of 1. */ - Service service1 = Service.Builder.newInstance("1").addSizeDimension(WEIGHT_INDEX, 1).setCoord(Coordinate.newInstance(5, 7)).build(); - Service service2 = Service.Builder.newInstance("2").addSizeDimension(WEIGHT_INDEX, 1).setCoord(Coordinate.newInstance(5, 13)).build(); + Service service1 = Service.Builder.newInstance("1").addSizeDimension(WEIGHT_INDEX, 1).setLocation(Location.newInstance(5, 7)).build(); + Service service2 = Service.Builder.newInstance("2").addSizeDimension(WEIGHT_INDEX, 1).setLocation(Location.newInstance(5, 13)).build(); - Service service3 = Service.Builder.newInstance("3").addSizeDimension(WEIGHT_INDEX, 1).setCoord(Coordinate.newInstance(15, 7)).build(); + Service service3 = Service.Builder.newInstance("3").addSizeDimension(WEIGHT_INDEX, 1).setLocation(Location.newInstance(15, 7)).build(); - Service service4 = Service.Builder.newInstance("4").addSizeDimension(WEIGHT_INDEX, 1).addRequiredSkill("drill").setCoord(Coordinate.newInstance(15, 13)).build(); + Service service4 = Service.Builder.newInstance("4").addSizeDimension(WEIGHT_INDEX, 1).addRequiredSkill("drill").setLocation(Location.newInstance(15, 13)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SimpleVRPWithBackhaulsExample.java b/jsprit-examples/src/main/java/jsprit/examples/SimpleVRPWithBackhaulsExample.java index af770ed4..99eb6413 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SimpleVRPWithBackhaulsExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SimpleVRPWithBackhaulsExample.java @@ -21,6 +21,7 @@ import jsprit.analysis.toolbox.Plotter.Label; import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.VehicleRoutingAlgorithmBuilder; import jsprit.core.algorithm.state.StateManager; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.constraint.ConstraintManager; import jsprit.core.problem.constraint.ServiceDeliveriesFirstConstraint; @@ -33,7 +34,6 @@ import jsprit.core.problem.vehicle.VehicleImpl.Builder; import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; -import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; import jsprit.util.Examples; @@ -58,18 +58,18 @@ public class SimpleVRPWithBackhaulsExample { * get a vehicle-builder and build a vehicle located at (10,10) with type "vehicleType" */ Builder vehicleBuilder = VehicleImpl.Builder.newInstance("vehicle"); - vehicleBuilder.setStartLocationCoordinate(Coordinate.newInstance(10, 10)); + vehicleBuilder.setStartLocation(Location.newInstance(10, 10)); vehicleBuilder.setType(vehicleType); VehicleImpl vehicle = vehicleBuilder.build(); /* * build pickups and deliveries at the required locations, each with a capacity-demand of 1. */ - Pickup pickup1 = (Pickup) Pickup.Builder.newInstance("1").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 7)).build(); - Delivery delivery1 = (Delivery) Delivery.Builder.newInstance("2").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(5, 13)).build(); + Pickup pickup1 = (Pickup) Pickup.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 7)).build(); + Delivery delivery1 = (Delivery) Delivery.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(Location.newInstance(5, 13)).build(); - Pickup pickup2 = (Pickup) Pickup.Builder.newInstance("3").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 7)).build(); - Delivery delivery2 = (Delivery) Delivery.Builder.newInstance("4").addSizeDimension(0, 1).setCoord(Coordinate.newInstance(15, 13)).build(); + Pickup pickup2 = (Pickup) Pickup.Builder.newInstance("3").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 7)).build(); + Delivery delivery2 = (Delivery) Delivery.Builder.newInstance("4").addSizeDimension(0, 1).setLocation(Location.newInstance(15, 13)).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); diff --git a/jsprit-examples/src/main/java/jsprit/examples/SolomonWithSkillsExample.java b/jsprit-examples/src/main/java/jsprit/examples/SolomonWithSkillsExample.java index 39b35d3c..ab38de8f 100644 --- a/jsprit-examples/src/main/java/jsprit/examples/SolomonWithSkillsExample.java +++ b/jsprit-examples/src/main/java/jsprit/examples/SolomonWithSkillsExample.java @@ -23,6 +23,7 @@ import jsprit.core.algorithm.VehicleRoutingAlgorithm; import jsprit.core.algorithm.VehicleRoutingAlgorithmBuilder; import jsprit.core.algorithm.box.Jsprit; import jsprit.core.algorithm.state.StateManager; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.constraint.ConstraintManager; import jsprit.core.problem.io.VrpXMLWriter; @@ -51,12 +52,13 @@ public class SolomonWithSkillsExample { VehicleType newType = solomonVehicle.getType(); VehicleRoutingProblem.Builder skillProblemBuilder = VehicleRoutingProblem.Builder.newInstance(); for(int i=0;i<5;i++) { - VehicleImpl skill1Vehicle = VehicleImpl.Builder.newInstance("skill1_vehicle_"+i).addSkill("skill1") - .setStartLocationCoordinate(solomonVehicle.getStartLocationCoordinate()).setStartLocationId(solomonVehicle.getStartLocationId()) + VehicleImpl skill1Vehicle = VehicleImpl.Builder.newInstance("skill1_vehicle_" + i).addSkill("skill1") + .setStartLocation(Location.Builder.newInstance().setId(solomonVehicle.getStartLocation().getId()).setCoordinate(solomonVehicle.getStartLocation().getCoordinate()).build()) .setEarliestStart(solomonVehicle.getEarliestDeparture()) .setType(newType).build(); - VehicleImpl skill2Vehicle = VehicleImpl.Builder.newInstance("skill2_vehicle_"+i).addSkill("skill2") - .setStartLocationCoordinate(solomonVehicle.getStartLocationCoordinate()).setStartLocationId(solomonVehicle.getStartLocationId()) + VehicleImpl skill2Vehicle = VehicleImpl.Builder.newInstance("skill2_vehicle_" + i).addSkill("skill2") + .setStartLocation(Location.Builder.newInstance().setId(solomonVehicle.getStartLocation().getId()) + .setCoordinate(solomonVehicle.getStartLocation().getCoordinate()).build()) .setEarliestStart(solomonVehicle.getEarliestDeparture()) .setType(newType).build(); skillProblemBuilder.addVehicle(skill1Vehicle).addVehicle(skill2Vehicle); @@ -65,14 +67,18 @@ public class SolomonWithSkillsExample { Service service = (Service) job; Service.Builder skillServiceBuilder; if(service.getLocation().getCoordinate().getY()<50.){ - skillServiceBuilder = Service.Builder.newInstance(service.getId()+"_skill2").setServiceTime(service.getServiceDuration()) - .setCoord(service.getLocation().getCoordinate()).setLocationId(service.getLocation().getId()).setTimeWindow(service.getTimeWindow()) - .addSizeDimension(0,service.getSize().get(0)); + skillServiceBuilder = Service.Builder.newInstance(service.getId() + "_skill2").setServiceTime(service.getServiceDuration()) + .setLocation(Location.Builder.newInstance().setId(service.getLocation().getId()) + .setCoordinate(service.getLocation().getCoordinate()).build()).setTimeWindow(service.getTimeWindow()) + .addSizeDimension(0, service.getSize().get(0)); skillServiceBuilder.addRequiredSkill("skill2"); } else { skillServiceBuilder = Service.Builder.newInstance(service.getId()+"_skill1").setServiceTime(service.getServiceDuration()) - .setCoord(service.getLocation().getCoordinate()).setLocationId(service.getLocation().getId()).setTimeWindow(service.getTimeWindow()) + .setLocation( + Location.Builder.newInstance().setId(service.getLocation().getId()) + .setCoordinate(service.getLocation().getCoordinate()).build() + ).setTimeWindow(service.getTimeWindow()) .addSizeDimension(0,service.getSize().get(0)); skillServiceBuilder.addRequiredSkill("skill1"); } diff --git a/jsprit-instances/src/main/java/jsprit/instance/reader/ChristofidesReader.java b/jsprit-instances/src/main/java/jsprit/instance/reader/ChristofidesReader.java index c45f1df3..c6bda3ed 100644 --- a/jsprit-instances/src/main/java/jsprit/instance/reader/ChristofidesReader.java +++ b/jsprit-instances/src/main/java/jsprit/instance/reader/ChristofidesReader.java @@ -17,10 +17,10 @@ package jsprit.instance.reader; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.job.Service; -import jsprit.core.problem.vehicle.Vehicle; import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.util.Coordinate; @@ -52,7 +52,7 @@ public class ChristofidesReader { /** * Constructs the reader. * - * @param vrpBuilder + * @param vrpBuilder the builder */ public ChristofidesReader(VehicleRoutingProblem.Builder vrpBuilder) { super(); @@ -63,7 +63,7 @@ public class ChristofidesReader { * Reads instance-file and memorizes vehicles, customers and so forth in * {@link VehicleRoutingProblem.Builder}. * - * @param fileName + * @param fileName the filename to read */ public void read(String fileName){ vrpBuilder.setFleetSize(FleetSize.INFINITE); @@ -72,7 +72,7 @@ public class ChristofidesReader { double serviceTime = 0.0; double endTime = Double.MAX_VALUE; int counter = 0; - String line = null; + String line; while((line = readLine(reader)) != null){ line = line.replace("\r", ""); line = line.trim(); @@ -86,7 +86,7 @@ public class ChristofidesReader { Coordinate depotCoord = makeCoord(tokens[0].trim(),tokens[1].trim()); VehicleTypeImpl vehicleType = VehicleTypeImpl.Builder.newInstance("christophidesType").addCapacityDimension(0, vehicleCapacity). setCostPerDistance(1.0).build(); - Vehicle vehicle = VehicleImpl.Builder.newInstance("christophidesVehicle").setLatestArrival(endTime).setStartLocationCoordinate(depotCoord). + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("christophidesVehicle").setLatestArrival(endTime).setStartLocation(Location.newInstance(depotCoord.getX(), depotCoord.getY())). setType(vehicleType).build(); vrpBuilder.addVehicle(vehicle); } @@ -94,7 +94,7 @@ public class ChristofidesReader { Coordinate customerCoord = makeCoord(tokens[0].trim(),tokens[1].trim()); int demand = Integer.parseInt(tokens[2].trim()); String customer = Integer.valueOf(counter-1).toString(); - Service service = Service.Builder.newInstance(customer).addSizeDimension(0, demand).setServiceTime(serviceTime).setCoord(customerCoord).build(); + Service service = Service.Builder.newInstance(customer).addSizeDimension(0, demand).setServiceTime(serviceTime).setLocation(Location.newInstance(customerCoord.getX(), customerCoord.getY())).build(); vrpBuilder.addJob(service); } counter++; diff --git a/jsprit-instances/src/main/java/jsprit/instance/reader/CordeauReader.java b/jsprit-instances/src/main/java/jsprit/instance/reader/CordeauReader.java index 31dc1cac..e85fd224 100644 --- a/jsprit-instances/src/main/java/jsprit/instance/reader/CordeauReader.java +++ b/jsprit-instances/src/main/java/jsprit/instance/reader/CordeauReader.java @@ -17,6 +17,7 @@ package jsprit.instance.reader; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.job.Service; @@ -53,8 +54,7 @@ public class CordeauReader { private final VehicleRoutingProblem.Builder vrpBuilder; private double coordProjectionFactor = 1; - - private boolean addPenaltyVehicles = false; + public CordeauReader(VehicleRoutingProblem.Builder vrpBuilder) { super(); @@ -65,7 +65,6 @@ public class CordeauReader { public CordeauReader(VehicleRoutingProblem.Builder vrpBuilder, boolean penaltyVehicles) { super(); this.vrpBuilder = vrpBuilder; - this.addPenaltyVehicles = penaltyVehicles; } public void read(String fileName){ @@ -111,14 +110,15 @@ public class CordeauReader { Coordinate customerCoord = makeCoord(tokens[1].trim(),tokens[2].trim()); double serviceTime = Double.parseDouble(tokens[3].trim()); int demand = Integer.parseInt(tokens[4].trim()); - Service service = Service.Builder.newInstance(id).addSizeDimension(0, demand).setServiceTime(serviceTime).setLocationId(id).setCoord(customerCoord).build(); + Service service = Service.Builder.newInstance(id).addSizeDimension(0, demand).setServiceTime(serviceTime) + .setLocation(Location.Builder.newInstance().setId(id).setCoordinate(customerCoord).build()).build(); vrpBuilder.addJob(service); } else if(counter <= (nOfCustomers+nOfDepots+nOfDepots)){ Coordinate depotCoord = makeCoord(tokens[1].trim(),tokens[2].trim()); List vBuilders = vehiclesAtDepot.get(depotCounter); for(Builder vBuilder : vBuilders){ - vBuilder.setStartLocationCoordinate(depotCoord); + vBuilder.setStartLocation(Location.newInstance(depotCoord.getX(),depotCoord.getY())); VehicleImpl vehicle = vBuilder.build(); vrpBuilder.addVehicle(vehicle); } diff --git a/jsprit-instances/src/main/java/jsprit/instance/reader/LuiShenReader.java b/jsprit-instances/src/main/java/jsprit/instance/reader/LuiShenReader.java index fd1d9553..70be4b95 100644 --- a/jsprit-instances/src/main/java/jsprit/instance/reader/LuiShenReader.java +++ b/jsprit-instances/src/main/java/jsprit/instance/reader/LuiShenReader.java @@ -17,6 +17,7 @@ package jsprit.instance.reader; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.job.Service; @@ -86,7 +87,8 @@ public class LuiShenReader { createVehicles(vehicleFile,costScenario,customerId,coord,start,end); } else{ - Service service = Service.Builder.newInstance("" + counter).addSizeDimension(0, demand).setCoord(coord).setLocationId(customerId).setServiceTime(serviceTime) + Service service = Service.Builder.newInstance("" + counter).addSizeDimension(0, demand) + .setLocation(Location.Builder.newInstance().setCoordinate(coord).setId(customerId).build()).setServiceTime(serviceTime) .setTimeWindow(TimeWindow.newInstance(start, end)).build(); vrpBuilder.addJob(service); } diff --git a/jsprit-instances/src/main/java/jsprit/instance/reader/SolomonReader.java b/jsprit-instances/src/main/java/jsprit/instance/reader/SolomonReader.java index 2a8cff57..d3ac83d5 100644 --- a/jsprit-instances/src/main/java/jsprit/instance/reader/SolomonReader.java +++ b/jsprit-instances/src/main/java/jsprit/instance/reader/SolomonReader.java @@ -17,6 +17,7 @@ package jsprit.instance.reader; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.job.Service; @@ -104,12 +105,14 @@ public class SolomonReader { VehicleTypeImpl vehicleType = typeBuilder.build(); VehicleImpl vehicle = VehicleImpl.Builder.newInstance("solomonVehicle").setEarliestStart(start).setLatestArrival(end) - .setStartLocationId(customerId).setStartLocationCoordinate(coord).setType(vehicleType).build(); + .setStartLocation(Location.Builder.newInstance().setId(customerId) + .setCoordinate(coord).build()).setType(vehicleType).build(); vrpBuilder.addVehicle(vehicle); } else{ - Service service = Service.Builder.newInstance(customerId).addSizeDimension(0, demand).setCoord(coord).setLocationId(customerId).setServiceTime(serviceTime) + Service service = Service.Builder.newInstance(customerId).addSizeDimension(0, demand) + .setLocation(Location.Builder.newInstance().setCoordinate(coord).setId(customerId).build()).setServiceTime(serviceTime) .setTimeWindow(TimeWindow.newInstance(start, end)).build(); vrpBuilder.addJob(service); } diff --git a/jsprit-instances/src/main/java/jsprit/instance/reader/VrphGoldenReader.java b/jsprit-instances/src/main/java/jsprit/instance/reader/VrphGoldenReader.java index c3b1e8ba..95a4714b 100644 --- a/jsprit-instances/src/main/java/jsprit/instance/reader/VrphGoldenReader.java +++ b/jsprit-instances/src/main/java/jsprit/instance/reader/VrphGoldenReader.java @@ -17,12 +17,12 @@ package jsprit.instance.reader; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.VehicleRoutingProblem.Builder; import jsprit.core.problem.VehicleRoutingProblem.FleetSize; import jsprit.core.problem.io.VrpXMLWriter; import jsprit.core.problem.job.Service; -import jsprit.core.problem.vehicle.Vehicle; import jsprit.core.problem.vehicle.VehicleImpl; import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.util.Coordinate; @@ -72,7 +72,7 @@ public class VrphGoldenReader { public void read(String filename){ BufferedReader reader = getReader(filename); - String line = null; + String line; boolean firstline = true; Coordinate depotCoord = null; int customerCount=0; @@ -92,7 +92,7 @@ public class VrphGoldenReader { } else{ Service.Builder serviceBuilder = Service.Builder.newInstance(tokens[0]).addSizeDimension(0, Integer.parseInt(tokens[3])); - serviceBuilder.setCoord(Coordinate.newInstance(Double.parseDouble(tokens[1]), Double.parseDouble(tokens[2]))); + serviceBuilder.setLocation(Location.newInstance(Double.parseDouble(tokens[1]), Double.parseDouble(tokens[2]))); vrpBuilder.addJob(serviceBuilder.build()); } customerCount++; @@ -135,8 +135,8 @@ public class VrphGoldenReader { } for(int i=0;i