From 13599bae293b04dcec5b3b01148466c7648aa204 Mon Sep 17 00:00:00 2001 From: oblonski Date: Fri, 19 Dec 2014 15:04:45 +0100 Subject: [PATCH] #144 - remove deprecated methods --- .../jsprit/core/algorithm/OpenRoutesTest.java | 26 +- ...erviceAndShipmentsProblemOnRouteLevel.java | 17 +- .../core/analysis/SolutionAnalyserTest.java | 24 +- .../core/problem/io/VrpXMLWriterTest.java | 246 +++++++++++------- .../jsprit/core/problem/job/ShipmentTest.java | 9 +- .../test/java/jsprit/core/util/TestUtils.java | 21 ++ ...iteVrpWithInitialSolutionForWriterTest.xml | 91 +++---- .../test/resources/infiniteWriterV2Test.xml | 47 ++-- jsprit-examples/input/algorithmConfig.xml | 8 +- 9 files changed, 270 insertions(+), 219 deletions(-) create mode 100644 jsprit-core/src/test/java/jsprit/core/util/TestUtils.java diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/OpenRoutesTest.java b/jsprit-core/src/test/java/jsprit/core/algorithm/OpenRoutesTest.java index 3c737bcc..6e129e79 100644 --- a/jsprit-core/src/test/java/jsprit/core/algorithm/OpenRoutesTest.java +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/OpenRoutesTest.java @@ -24,6 +24,7 @@ import java.util.Collection; import jsprit.core.algorithm.box.SchrimpfFactory; import jsprit.core.algorithm.recreate.NoSolutionFoundException; +import jsprit.core.problem.Location; import jsprit.core.problem.VehicleRoutingProblem; import jsprit.core.problem.job.Service; import jsprit.core.problem.job.Shipment; @@ -35,6 +36,7 @@ import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.util.Coordinate; import jsprit.core.util.Solutions; +import jsprit.core.util.TestUtils; import org.junit.Test; public class OpenRoutesTest { @@ -44,10 +46,10 @@ public class OpenRoutesTest { VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setLatestArrival(11.) - .setType(type).setReturnToDepot(false).setStartLocationCoordinate(Coordinate.newInstance(0, 0)).build(); + .setType(type).setReturnToDepot(false).setStartLocation(Location.Builder.newInstance().setCoordinate(Coordinate.newInstance(0, 0)).build()).build(); - Shipment shipment = Shipment.Builder.newInstance("s").setPickupCoord(Coordinate.newInstance(5, 0)) - .setDeliveryCoord(Coordinate.newInstance(10, 0)).build(); + Shipment shipment = Shipment.Builder.newInstance("s").setPickupLocation(TestUtils.loc(Coordinate.newInstance(5, 0))) + .setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(10, 0))).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(shipment).addVehicle(vehicle).build(); @@ -95,15 +97,18 @@ public class OpenRoutesTest { public void whenDealingWithOpenRouteAndShipments_algorithmShouldCalculateCorrectCosts(){ VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setLatestArrival(20.) - .setType(type).setReturnToDepot(false).setStartLocationCoordinate(Coordinate.newInstance(0, 0)).build(); + .setType(type).setReturnToDepot(false).setStartLocation(Location.Builder.newInstance() + .setCoordinate(Coordinate.newInstance(0, 0)).build()).build(); - Shipment shipment = Shipment.Builder.newInstance("s").setPickupCoord(Coordinate.newInstance(5, 0)) - .setDeliveryCoord(Coordinate.newInstance(10, 0)).build(); + Shipment shipment = Shipment.Builder.newInstance("s") + .setPickupLocation(Location.Builder.newInstance().setCoordinate(Coordinate.newInstance(5, 0)).build()) + .setDeliveryLocation(Location.Builder.newInstance().setCoordinate(Coordinate.newInstance(10, 0)).build()) + .build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(shipment).addVehicle(vehicle).build(); VehicleRoutingAlgorithm vra = new SchrimpfFactory().createAlgorithm(vrp); - vra.setNuOfIterations(10); + vra.setMaxIterations(10); Collection solutions = vra.searchSolutions(); @@ -115,14 +120,15 @@ public class OpenRoutesTest { public void whenDealingWithOpenRoute_algorithmShouldCalculateCorrectCosts(){ VehicleType type = VehicleTypeImpl.Builder.newInstance("type").build(); Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setLatestArrival(10.) - .setType(type).setReturnToDepot(false).setStartLocationCoordinate(Coordinate.newInstance(0, 0)).build(); + .setType(type).setReturnToDepot(false).setStartLocation(Location.Builder.newInstance().setCoordinate(Coordinate.newInstance(0, 0)).build()).build(); - Service service = Service.Builder.newInstance("s").setCoord(Coordinate.newInstance(5, 0)).build(); + Service service = Service.Builder.newInstance("s") + .setLocation(Location.Builder.newInstance().setCoordinate(Coordinate.newInstance(5, 0)).build()).build(); VehicleRoutingProblem vrp = VehicleRoutingProblem.Builder.newInstance().addJob(service).addVehicle(vehicle).build(); VehicleRoutingAlgorithm vra = new SchrimpfFactory().createAlgorithm(vrp); - vra.setNuOfIterations(10); + vra.setMaxIterations(10); Collection solutions = vra.searchSolutions(); 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 1c9e089b..3359237b 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 @@ -26,6 +26,7 @@ import jsprit.core.problem.job.Shipment; import jsprit.core.problem.vehicle.*; import jsprit.core.problem.vehicle.VehicleImpl.Builder; import jsprit.core.util.Coordinate; +import jsprit.core.util.TestUtils; import org.junit.Test; import static org.junit.Assert.assertTrue; @@ -62,11 +63,11 @@ public class TestMixedServiceAndShipmentsProblemOnRouteLevel { * 4: (15,13)->(14,11) */ - Shipment shipment1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 1).setPickupCoord(Coordinate.newInstance(5, 7)).setDeliveryCoord(Coordinate.newInstance(6, 9)).build(); - Shipment shipment2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 1).setPickupCoord(Coordinate.newInstance(5, 13)).setDeliveryCoord(Coordinate.newInstance(6, 11)).build(); + Shipment shipment1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 1).setPickupLocation(TestUtils.loc(Coordinate.newInstance(5, 7))).setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(6, 9))).build(); + Shipment shipment2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 1).setPickupLocation(TestUtils.loc(Coordinate.newInstance(5, 13))).setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(6, 11))).build(); - Shipment shipment3 = Shipment.Builder.newInstance("3").addSizeDimension(0, 1).setPickupCoord(Coordinate.newInstance(15, 7)).setDeliveryCoord(Coordinate.newInstance(14, 9)).build(); - Shipment shipment4 = Shipment.Builder.newInstance("4").addSizeDimension(0, 1).setPickupCoord(Coordinate.newInstance(15, 13)).setDeliveryCoord(Coordinate.newInstance(14, 11)).build(); + Shipment shipment3 = Shipment.Builder.newInstance("3").addSizeDimension(0, 1).setPickupLocation(TestUtils.loc(Coordinate.newInstance(15, 7))).setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(14, 9))).build(); + Shipment shipment4 = Shipment.Builder.newInstance("4").addSizeDimension(0, 1).setPickupLocation(TestUtils.loc(Coordinate.newInstance(15, 13))).setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(14, 11))).build(); /* * build deliveries, (implicitly picked up in the depot) @@ -75,10 +76,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(TestUtils.loc(Coordinate.newInstance(4, 8))).build(); + Delivery delivery2 = (Delivery) Delivery.Builder.newInstance("6").addSizeDimension(0, 1).setLocation(TestUtils.loc(Coordinate.newInstance(4, 12))).build(); + Delivery delivery3 = (Delivery) Delivery.Builder.newInstance("7").addSizeDimension(0, 1).setLocation(TestUtils.loc(Coordinate.newInstance(16, 8))).build(); + Delivery delivery4 = (Delivery) Delivery.Builder.newInstance("8").addSizeDimension(0, 1).setLocation(TestUtils.loc(Coordinate.newInstance(16, 12))).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); vrpBuilder.addVehicle(vehicle); 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 5069c4bc..58717b3e 100644 --- a/jsprit-core/src/test/java/jsprit/core/analysis/SolutionAnalyserTest.java +++ b/jsprit-core/src/test/java/jsprit/core/analysis/SolutionAnalyserTest.java @@ -36,6 +36,7 @@ import jsprit.core.problem.vehicle.VehicleTypeImpl; import jsprit.core.reporting.SolutionPrinter; import jsprit.core.util.Coordinate; import jsprit.core.util.ManhattanCosts; +import jsprit.core.util.TestUtils; import junit.framework.Assert; import org.junit.Before; import org.junit.Test; @@ -79,8 +80,8 @@ public class SolutionAnalyserTest { .addRequiredSkill("skill2").addRequiredSkill("skill1") .build(); Shipment shipment1 = Shipment.Builder.newInstance("ship1") - .setPickupCoord(Coordinate.newInstance(-15, 2)) - .setDeliveryCoord(Coordinate.newInstance(-16, 5)) + .setPickupLocation(TestUtils.loc(Coordinate.newInstance(-15, 2))) + .setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(-16, 5))) .addSizeDimension(0,10) .setPickupServiceTime(20.) .setDeliveryServiceTime(20.) @@ -89,11 +90,11 @@ public class SolutionAnalyserTest { Service s3 = Service.Builder.newInstance("s3") .setTimeWindow(TimeWindow.newInstance(10, 20)) - .setCoord(Coordinate.newInstance(10, 1)).addSizeDimension(0,2).build(); - Service s4 = Service.Builder.newInstance("s4").setCoord(Coordinate.newInstance(10, 10)).addSizeDimension(0,3).build(); - Shipment shipment2 = Shipment.Builder.newInstance("ship2").setPickupCoord(Coordinate.newInstance(15, 2)) + .setLocation(TestUtils.loc(Coordinate.newInstance(10, 1))).addSizeDimension(0, 2).build(); + Service s4 = Service.Builder.newInstance("s4").setLocation(TestUtils.loc(Coordinate.newInstance(10, 10))).addSizeDimension(0,3).build(); + Shipment shipment2 = Shipment.Builder.newInstance("ship2").setPickupLocation(TestUtils.loc(Coordinate.newInstance(15, 2))) .setPickupServiceTime(20.).setDeliveryServiceTime(20.) - .setDeliveryCoord(Coordinate.newInstance(16, 5)).addSizeDimension(0,10).build(); + .setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(16, 5))).addSizeDimension(0, 10).build(); VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance().addVehicle(vehicle) .addVehicle(vehicle2) @@ -130,24 +131,25 @@ public class SolutionAnalyserTest { .setTimeWindow(TimeWindow.newInstance(10, 20)) .addSizeDimension(0, 20) .build(); - Shipment shipment1 = Shipment.Builder.newInstance("ship1").setPickupCoord(Coordinate.newInstance(-15, 2)).setDeliveryCoord(Coordinate.newInstance(-16, 5)) + Shipment shipment1 = Shipment.Builder.newInstance("ship1").setPickupLocation(TestUtils.loc(Coordinate.newInstance(-15, 2))) + .setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(-16, 5))) .addSizeDimension(0, 15) .setPickupServiceTime(20.).setDeliveryServiceTime(20.) - .setPickupTimeWindow(TimeWindow.newInstance(10,20)).setDeliveryTimeWindow(TimeWindow.newInstance(10,20)) + .setPickupTimeWindow(TimeWindow.newInstance(10, 20)).setDeliveryTimeWindow(TimeWindow.newInstance(10, 20)) .build(); Pickup s3 = (Pickup) Pickup.Builder.newInstance("s3") .setTimeWindow(TimeWindow.newInstance(10, 20)) - .setCoord(Coordinate.newInstance(10, 1)) + .setLocation(TestUtils.loc(Coordinate.newInstance(10, 1))) .addSizeDimension(0, 10) .build(); Delivery s4 = (Delivery) Delivery.Builder.newInstance("s4").setCoord(Coordinate.newInstance(10, 10)) .addSizeDimension(0, 20) .setTimeWindow(TimeWindow.newInstance(10, 20)) .build(); - Shipment shipment2 = Shipment.Builder.newInstance("ship2").setPickupCoord(Coordinate.newInstance(15, 2)) + Shipment shipment2 = Shipment.Builder.newInstance("ship2").setPickupLocation(TestUtils.loc(Coordinate.newInstance(15, 2))) .setPickupServiceTime(20.).setDeliveryServiceTime(20.) - .setDeliveryCoord(Coordinate.newInstance(16, 5)) + .setDeliveryLocation(TestUtils.loc(Coordinate.newInstance(16, 5))) .setPickupTimeWindow(TimeWindow.newInstance(10, 20)).setDeliveryTimeWindow(TimeWindow.newInstance(10, 20)) .addSizeDimension(0, 15).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/io/VrpXMLWriterTest.java b/jsprit-core/src/test/java/jsprit/core/problem/io/VrpXMLWriterTest.java index 6fc4b325..00fb2bce 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/io/VrpXMLWriterTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/io/VrpXMLWriterTest.java @@ -30,6 +30,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.Before; import org.junit.Test; @@ -53,7 +54,7 @@ public class VrpXMLWriterTest { VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); builder.setFleetSize(FleetSize.INFINITE); VehicleTypeImpl type = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); - VehicleImpl vehicle = VehicleImpl.Builder.newInstance("myVehicle").setStartLocationId("loc").setType(type).build(); + VehicleImpl vehicle = VehicleImpl.Builder.newInstance("myVehicle").setStartLocation(TestUtils.loc("loc")).setType(type).build(); builder.addVehicle(vehicle); VehicleRoutingProblem vrp = builder.build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -65,8 +66,8 @@ public class VrpXMLWriterTest { builder.setFleetSize(FleetSize.FINITE); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); VehicleRoutingProblem vrp = builder.build(); @@ -79,8 +80,8 @@ public class VrpXMLWriterTest { builder.setFleetSize(FleetSize.FINITE); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); VehicleRoutingProblem vrp = builder.build(); @@ -96,15 +97,15 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -124,7 +125,7 @@ public class VrpXMLWriterTest { @Test public void shouldWriteNameOfService(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); - Service s1 = Service.Builder.newInstance("1").setName("cleaning").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); + Service s1 = Service.Builder.newInstance("1").setName("cleaning").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -142,7 +143,7 @@ public class VrpXMLWriterTest { Location pickLocation = Location.Builder.newInstance().setId("pick").setIndex(1).build(); Shipment s1 = Shipment.Builder.newInstance("1").setName("cleaning") .setPickupLocation(pickLocation) - .setDeliveryLocationId("del").build(); + .setDeliveryLocation(TestUtils.loc("del")).build(); VehicleRoutingProblem vrp = builder.addJob(s1).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -162,8 +163,8 @@ public class VrpXMLWriterTest { Service s1 = Service.Builder.newInstance("1") .addSizeDimension(0, 20) .addSizeDimension(1, 200) - .setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + .setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -187,15 +188,19 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10) + .setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()) + .setDeliveryLocation(TestUtils.loc("delLoc")).setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).build(); - Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20).setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()).setDeliveryLocationId("delLocation").setPickupTimeWindow(TimeWindow.newInstance(5, 6)) + Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20) + .setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()) + .setDeliveryLocation(TestUtils.loc("delLocation")).setPickupTimeWindow(TimeWindow.newInstance(5, 6)) .setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build(); @@ -218,15 +223,19 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10) + .setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()) + .setDeliveryLocation(TestUtils.loc("delLoc")).setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).build(); - Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20).setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()).setDeliveryLocationId("delLocation").setPickupTimeWindow(TimeWindow.newInstance(5, 6)) + Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20) + .setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()) + .setDeliveryLocation(TestUtils.loc("delLocation")).setPickupTimeWindow(TimeWindow.newInstance(5, 6)) .setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build(); @@ -250,15 +259,19 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10) + .setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()) + .setDeliveryLocation(TestUtils.loc("delLoc")).setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).build(); - Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20).setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()).setDeliveryLocationId("delLocation").setPickupTimeWindow(TimeWindow.newInstance(5, 6)) + Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20) + .setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()) + .setDeliveryLocation(TestUtils.loc("delLocation")).setPickupTimeWindow(TimeWindow.newInstance(5, 6)) .setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build(); @@ -281,15 +294,19 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10) + .setPickupLocation(Location.Builder.newInstance().setId("pickLoc").build()) + .setDeliveryLocation(TestUtils.loc("delLoc")).setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build(); - Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20).setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()).setDeliveryLocationId("delLocation").setPickupTimeWindow(TimeWindow.newInstance(5, 6)) + Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20) + .setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()) + .setDeliveryLocation(TestUtils.loc("delLocation")).setPickupTimeWindow(TimeWindow.newInstance(5, 6)) .setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build(); @@ -312,15 +329,18 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10).setPickupCoord(Coordinate.newInstance(1, 2)).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10) + .setPickupLocation(TestUtils.loc(Coordinate.newInstance(1, 2))).setDeliveryLocation(TestUtils.loc("delLoc")).setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build(); - Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20).setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()).setDeliveryLocationId("delLocation").setPickupTimeWindow(TimeWindow.newInstance(5, 6)) + Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20) + .setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()) + .setDeliveryLocation(TestUtils.loc("delLocation")).setPickupTimeWindow(TimeWindow.newInstance(5, 6)) .setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build(); @@ -339,7 +359,8 @@ public class VrpXMLWriterTest { public void whenWritingVehicles_vehShouldHave2Skills(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); - VehicleImpl v = VehicleImpl.Builder.newInstance("v1").addSkill("SKILL5").addSkill("skill1").addSkill("Skill2").setStartLocationId("loc").setType(type1).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v1").addSkill("SKILL5").addSkill("skill1").addSkill("Skill2") + .setStartLocation(TestUtils.loc("loc")).setType(type1).build(); builder.addVehicle(v); VehicleRoutingProblem vrp = builder.build(); @@ -357,7 +378,8 @@ public class VrpXMLWriterTest { public void whenWritingVehicles_vehShouldContain_skill5(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); - VehicleImpl v = VehicleImpl.Builder.newInstance("v1").addSkill("SKILL5").addSkill("skill1").addSkill("Skill2").setStartLocationId("loc").setType(type1).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v1").addSkill("SKILL5").addSkill("skill1").addSkill("Skill2") + .setStartLocation(TestUtils.loc("loc")).setType(type1).build(); builder.addVehicle(v); VehicleRoutingProblem vrp = builder.build(); @@ -375,7 +397,8 @@ public class VrpXMLWriterTest { public void whenWritingVehicles_vehShouldContain_skill1(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); - VehicleImpl v = VehicleImpl.Builder.newInstance("v1").addSkill("SKILL5").addSkill("skill1").addSkill("Skill2").setStartLocationId("loc").setType(type1).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v1").addSkill("SKILL5").addSkill("skill1").addSkill("Skill2") + .setStartLocation(TestUtils.loc("loc")).setType(type1).build(); builder.addVehicle(v); VehicleRoutingProblem vrp = builder.build(); @@ -393,7 +416,8 @@ public class VrpXMLWriterTest { public void whenWritingVehicles_vehShouldContain_skill2(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); - VehicleImpl v = VehicleImpl.Builder.newInstance("v1").addSkill("SKILL5").addSkill("skill1").addSkill("Skill2").setStartLocationId("loc").setType(type1).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v1").addSkill("SKILL5").addSkill("skill1").addSkill("Skill2") + .setStartLocation(TestUtils.loc("loc")).setType(type1).build(); builder.addVehicle(v); VehicleRoutingProblem vrp = builder.build(); @@ -411,7 +435,7 @@ public class VrpXMLWriterTest { public void whenWritingVehicles_vehShouldHave0Skills(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); - VehicleImpl v = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); + VehicleImpl v = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); builder.addVehicle(v); VehicleRoutingProblem vrp = builder.build(); @@ -437,7 +461,10 @@ public class VrpXMLWriterTest { Builder builder = VehicleRoutingProblem.Builder.newInstance(); Shipment s = Shipment.Builder.newInstance("1").addRequiredSkill("skill1").addRequiredSkill("skill2").addRequiredSkill("skill3") - .addSizeDimension(0, 10).setPickupCoord(Coordinate.newInstance(1, 2)).setDeliveryCoord(Coordinate.newInstance(5, 6)).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + .addSizeDimension(0, 10) + .setPickupLocation(TestUtils.loc(Coordinate.newInstance(1, 2))) + .setDeliveryLocation(TestUtils.loc("delLoc", Coordinate.newInstance(5, 6))) + .setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build(); VehicleRoutingProblem vrp = builder.addJob(s).build(); @@ -455,7 +482,10 @@ public class VrpXMLWriterTest { Builder builder = VehicleRoutingProblem.Builder.newInstance(); Shipment s = Shipment.Builder.newInstance("1").addRequiredSkill("skill1").addRequiredSkill("skill2").addRequiredSkill("skill3") - .addSizeDimension(0, 10).setPickupCoord(Coordinate.newInstance(1, 2)).setDeliveryCoord(Coordinate.newInstance(5, 6)).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + .addSizeDimension(0, 10) + .setPickupLocation(TestUtils.loc(Coordinate.newInstance(1, 2))) + .setDeliveryLocation(TestUtils.loc("delLoc", Coordinate.newInstance(5, 6))) + .setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build(); VehicleRoutingProblem vrp = builder.addJob(s).build(); @@ -473,7 +503,10 @@ public class VrpXMLWriterTest { Builder builder = VehicleRoutingProblem.Builder.newInstance(); Shipment s = Shipment.Builder.newInstance("1").addRequiredSkill("skill1").addRequiredSkill("Skill2").addRequiredSkill("skill3") - .addSizeDimension(0, 10).setPickupCoord(Coordinate.newInstance(1, 2)).setDeliveryCoord(Coordinate.newInstance(5, 6)).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + .addSizeDimension(0, 10) + .setPickupLocation(TestUtils.loc(Coordinate.newInstance(1, 2))) + .setDeliveryLocation(TestUtils.loc("delLoc", Coordinate.newInstance(5, 6))) + .setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build(); VehicleRoutingProblem vrp = builder.addJob(s).build(); @@ -491,7 +524,10 @@ public class VrpXMLWriterTest { Builder builder = VehicleRoutingProblem.Builder.newInstance(); Shipment s = Shipment.Builder.newInstance("1").addRequiredSkill("skill1").addRequiredSkill("Skill2").addRequiredSkill("skill3") - .addSizeDimension(0, 10).setPickupCoord(Coordinate.newInstance(1, 2)).setDeliveryCoord(Coordinate.newInstance(5, 6)).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + .addSizeDimension(0, 10) + .setPickupLocation(TestUtils.loc(Coordinate.newInstance(1, 2))) + .setDeliveryLocation(TestUtils.loc("delLoc", Coordinate.newInstance(5, 6))) + .setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build(); VehicleRoutingProblem vrp = builder.addJob(s).build(); @@ -505,20 +541,25 @@ public class VrpXMLWriterTest { } @Test - public void whenWritingShipments_readingThemAgainMustReturnTheWrittenLocationCoordOfS1(){ + public void whenWritingShipments_readingThemAgainMustReturnTheWrittenLocationCoordinateOfS1(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10).setPickupCoord(Coordinate.newInstance(1, 2)).setDeliveryCoord(Coordinate.newInstance(5, 6)).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + Shipment s1 = Shipment.Builder.newInstance("1").addSizeDimension(0, 10).setPickupLocation(TestUtils.loc(Coordinate.newInstance(1, 2))) + .setDeliveryLocation(TestUtils.loc("delLoc",Coordinate.newInstance(5, 6))) + .setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build(); - Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20).setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()).setDeliveryLocationId("delLocation").setPickupTimeWindow(TimeWindow.newInstance(5, 6)) + Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20) + .setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()) + .setDeliveryLocation(TestUtils.loc("delLocation")) + .setPickupTimeWindow(TimeWindow.newInstance(5, 6)) .setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build(); @@ -542,13 +583,17 @@ public class VrpXMLWriterTest { Builder builder = VehicleRoutingProblem.Builder.newInstance(); Shipment s1 = Shipment.Builder.newInstance("1") - .setPickupCoord(Coordinate.newInstance(1, 2)).setDeliveryCoord(Coordinate.newInstance(5, 6)).setDeliveryLocationId("delLoc").setPickupTimeWindow(TimeWindow.newInstance(1, 2)) + .setPickupLocation(TestUtils.loc(Coordinate.newInstance(1, 2))) + .setDeliveryLocation(TestUtils.loc("delLoc",Coordinate.newInstance(5, 6))) + .setPickupTimeWindow(TimeWindow.newInstance(1, 2)) .setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50) .addSizeDimension(0, 10) .addSizeDimension(2, 100) .build(); - Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20).setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()).setDeliveryLocationId("delLocation").setPickupTimeWindow(TimeWindow.newInstance(5, 6)) + Shipment s2 = Shipment.Builder.newInstance("2").addSizeDimension(0, 20) + .setPickupLocation(Location.Builder.newInstance().setId("pickLocation").build()) + .setDeliveryLocation(TestUtils.loc("delLocation")).setPickupTimeWindow(TimeWindow.newInstance(5, 6)) .setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); @@ -573,14 +618,14 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -590,8 +635,8 @@ public class VrpXMLWriterTest { VehicleRoutingProblem readVrp = vrpToReadBuilder.build(); Vehicle v = getVehicle("v1",readVrp.getVehicles()); - assertEquals("loc",v.getStartLocationId()); - assertEquals("loc",v.getEndLocationId()); + assertEquals("loc",v.getStartLocation().getId()); + assertEquals("loc",v.getEndLocation().getId()); } @@ -599,7 +644,8 @@ public class VrpXMLWriterTest { public void whenWritingService_itShouldHaveTheCorrectNuSkills(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); - Service s = Service.Builder.newInstance("1").addRequiredSkill("sKill1").addRequiredSkill("skill2").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); + Service s = Service.Builder.newInstance("1").addRequiredSkill("sKill1").addRequiredSkill("skill2").addSizeDimension(0, 1) + .setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); VehicleRoutingProblem vrp = builder.addJob(s).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -615,7 +661,8 @@ public class VrpXMLWriterTest { public void whenWritingService_itShouldContain_skill1(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); - Service s = Service.Builder.newInstance("1").addRequiredSkill("sKill1").addRequiredSkill("skill2").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); + Service s = Service.Builder.newInstance("1").addRequiredSkill("sKill1").addRequiredSkill("skill2").addSizeDimension(0, 1) + .setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); VehicleRoutingProblem vrp = builder.addJob(s).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -631,7 +678,8 @@ public class VrpXMLWriterTest { public void whenWritingService_itShouldContain_skill2(){ Builder builder = VehicleRoutingProblem.Builder.newInstance(); - Service s = Service.Builder.newInstance("1").addRequiredSkill("sKill1").addRequiredSkill("skill2").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); + Service s = Service.Builder.newInstance("1").addRequiredSkill("sKill1").addRequiredSkill("skill2").addSizeDimension(0, 1) + .setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); VehicleRoutingProblem vrp = builder.addJob(s).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -649,14 +697,15 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocation(TestUtils.loc("loc")) + .setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -675,14 +724,14 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -701,14 +750,14 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("loc").setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -729,15 +778,16 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("startLoc").setStartLocationCoordinate(Coordinate.newInstance(1, 2)) - .setEndLocationId("endLoc").setEndLocationCoordinate(Coordinate.newInstance(4, 5)).setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2") + .setStartLocation(TestUtils.loc("startLoc", Coordinate.newInstance(1, 2))) + .setEndLocation(TestUtils.loc("endLoc", Coordinate.newInstance(4, 5))).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -747,8 +797,8 @@ public class VrpXMLWriterTest { VehicleRoutingProblem readVrp = vrpToReadBuilder.build(); Vehicle v = getVehicle("v2",readVrp.getVehicles()); - assertEquals("startLoc",v.getStartLocationId()); - assertEquals("endLoc",v.getEndLocationId()); + assertEquals("startLoc",v.getStartLocation().getId()); + assertEquals("endLoc",v.getEndLocation().getId()); } @Test @@ -757,15 +807,17 @@ public class VrpXMLWriterTest { VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false).setStartLocationId("loc").setType(type1).build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocationId("startLoc").setStartLocationCoordinate(Coordinate.newInstance(1, 2)) - .setEndLocationId("endLoc").setEndLocationCoordinate(Coordinate.newInstance(4, 5)).setType(type2).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setReturnToDepot(false) + .setStartLocation(TestUtils.loc("loc")).setType(type1).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2") + .setStartLocation(TestUtils.loc("startLoc", Coordinate.newInstance(1, 2))) + .setEndLocation(TestUtils.loc("endLoc",Coordinate.newInstance(4, 5))).setType(type2).build(); builder.addVehicle(v1); builder.addVehicle(v2); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); new VrpXMLWriter(vrp, null).write(infileName); @@ -775,11 +827,11 @@ public class VrpXMLWriterTest { VehicleRoutingProblem readVrp = vrpToReadBuilder.build(); Vehicle v = getVehicle("v2",readVrp.getVehicles()); - assertEquals(1.0,v.getStartLocationCoordinate().getX(),0.01); - assertEquals(2.0,v.getStartLocationCoordinate().getY(),0.01); + assertEquals(1.0,v.getStartLocation().getCoordinate().getX(),0.01); + assertEquals(2.0,v.getStartLocation().getCoordinate().getY(),0.01); - assertEquals(4.0,v.getEndLocationCoordinate().getX(),0.01); - assertEquals(5.0,v.getEndLocationCoordinate().getY(),0.01); + assertEquals(4.0,v.getEndLocation().getCoordinate().getX(),0.01); + assertEquals(5.0,v.getEndLocation().getCoordinate().getY(),0.01); } @Test @@ -792,8 +844,9 @@ public class VrpXMLWriterTest { .addCapacityDimension(2, 10000) .build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v").setStartLocationId("startLoc").setStartLocationCoordinate(Coordinate.newInstance(1, 2)) - .setEndLocationId("endLoc").setEndLocationCoordinate(Coordinate.newInstance(4, 5)).setType(type2).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v") + .setStartLocation(TestUtils.loc("startLoc",Coordinate.newInstance(1, 2))) + .setEndLocation(TestUtils.loc("endLoc", Coordinate.newInstance(4, 5))).setType(type2).build(); builder.addVehicle(v2); VehicleRoutingProblem vrp = builder.build(); @@ -820,8 +873,9 @@ public class VrpXMLWriterTest { .addCapacityDimension(10, 10000) .build(); - VehicleImpl v2 = VehicleImpl.Builder.newInstance("v").setStartLocationId("startLoc").setStartLocationCoordinate(Coordinate.newInstance(1, 2)) - .setEndLocationId("endLoc").setEndLocationCoordinate(Coordinate.newInstance(4, 5)).setType(type2).build(); + VehicleImpl v2 = VehicleImpl.Builder.newInstance("v") + .setStartLocation(TestUtils.loc("startLoc",Coordinate.newInstance(1, 2))) + .setEndLocation(TestUtils.loc("endLoc", Coordinate.newInstance(4, 5))).setType(type2).build(); builder.addVehicle(v2); VehicleRoutingProblem vrp = builder.build(); @@ -909,11 +963,11 @@ public class VrpXMLWriterTest { Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); builder.addVehicle(v1); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); @@ -940,11 +994,11 @@ public class VrpXMLWriterTest { Builder builder = VehicleRoutingProblem.Builder.newInstance(); VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build(); - VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocationId("loc").setType(type1).build(); + VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).build(); builder.addVehicle(v1); - Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocationId("loc").setServiceTime(2.0).build(); - Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocationId("loc2").setServiceTime(4.0).build(); + Service s1 = Service.Builder.newInstance("1").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build(); + Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.0).build(); VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/job/ShipmentTest.java b/jsprit-core/src/test/java/jsprit/core/problem/job/ShipmentTest.java index 4ed9a11f..9ca6e748 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/job/ShipmentTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/job/ShipmentTest.java @@ -19,6 +19,7 @@ package jsprit.core.problem.job; import jsprit.core.problem.Location; import jsprit.core.problem.solution.route.activity.TimeWindow; import jsprit.core.util.Coordinate; +import jsprit.core.util.TestUtils; import org.junit.Test; import static org.junit.Assert.*; @@ -28,9 +29,9 @@ public class ShipmentTest { @Test public void whenTwoShipmentsHaveTheSameId_theyReferencesShouldBeUnEqual(){ Shipment one = Shipment.Builder.newInstance("s").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("foo").build()). - setDeliveryLocationId("foofoo").setPickupServiceTime(10).setDeliveryServiceTime(20).build(); + setDeliveryLocation(TestUtils.loc("foofoo")).setPickupServiceTime(10).setDeliveryServiceTime(20).build(); Shipment two = Shipment.Builder.newInstance("s").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("foo").build()). - setDeliveryLocationId("foofoo").setPickupServiceTime(10).setDeliveryServiceTime(20).build(); + setDeliveryLocation(TestUtils.loc("foofoo")).setPickupServiceTime(10).setDeliveryServiceTime(20).build(); assertTrue(one != two); } @@ -38,9 +39,9 @@ public class ShipmentTest { @Test public void whenTwoShipmentsHaveTheSameId_theyShouldBeEqual(){ Shipment one = Shipment.Builder.newInstance("s").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("foo").build()). - setDeliveryLocationId("foofoo").setPickupServiceTime(10).setDeliveryServiceTime(20).build(); + setDeliveryLocation(TestUtils.loc("foofoo")).setPickupServiceTime(10).setDeliveryServiceTime(20).build(); Shipment two = Shipment.Builder.newInstance("s").addSizeDimension(0, 10).setPickupLocation(Location.Builder.newInstance().setId("foo").build()). - setDeliveryLocationId("foofoo").setPickupServiceTime(10).setDeliveryServiceTime(20).build(); + setDeliveryLocation(TestUtils.loc("foofoo")).setPickupServiceTime(10).setDeliveryServiceTime(20).build(); assertTrue(one.equals(two)); } diff --git a/jsprit-core/src/test/java/jsprit/core/util/TestUtils.java b/jsprit-core/src/test/java/jsprit/core/util/TestUtils.java new file mode 100644 index 00000000..f284b116 --- /dev/null +++ b/jsprit-core/src/test/java/jsprit/core/util/TestUtils.java @@ -0,0 +1,21 @@ +package jsprit.core.util; + +import jsprit.core.problem.Location; + +/** + * Created by schroeder on 19/12/14. + */ +public class TestUtils { + + public static Location loc(String id, Coordinate coordinate){ + return Location.Builder.newInstance().setId(id).setCoordinate(coordinate).build(); + } + + public static Location loc(String id){ + return Location.Builder.newInstance().setId(id).build(); + } + + public static Location loc(Coordinate coordinate){ + return Location.Builder.newInstance().setCoordinate(coordinate).build(); + } +} diff --git a/jsprit-core/src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml b/jsprit-core/src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml index 5400b9ab..ef4c344b 100644 --- a/jsprit-core/src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml +++ b/jsprit-core/src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml @@ -1,44 +1,10 @@ - - FINITE - - v2 - vehType2 - - depotLoc - - - - depotLoc - - - - 0.0 - 1000.0 - - false - v3 vehType2 @@ -57,8 +23,25 @@ true - v5 - vehType3 + v2 + vehType2 + + depotLoc + + + + depotLoc + + + + 0.0 + 1000.0 + + false + + + v4 + vehType2 startLoc @@ -74,8 +57,8 @@ true - v4 - vehType2 + v5 + vehType3 startLoc @@ -154,22 +137,6 @@ - - - i(3,9) - - - - 1 - - 0.0 - - - 0.0 - 4000.0 - - - j(1,5) @@ -186,6 +153,22 @@ + + + i(3,9) + + + + 1 + + 0.0 + + + 0.0 + 4000.0 + + + diff --git a/jsprit-core/src/test/resources/infiniteWriterV2Test.xml b/jsprit-core/src/test/resources/infiniteWriterV2Test.xml index 567ec0d6..2d9058ab 100644 --- a/jsprit-core/src/test/resources/infiniteWriterV2Test.xml +++ b/jsprit-core/src/test/resources/infiniteWriterV2Test.xml @@ -1,21 +1,4 @@ - - @@ -52,21 +35,6 @@ - - - loc2 - - - 1 - - 4.0 - - - 0.0 - 1.7976931348623157E308 - - - loc @@ -82,6 +50,21 @@ + + + loc2 + + + 1 + + 4.0 + + + 0.0 + 1.7976931348623157E308 + + + diff --git a/jsprit-examples/input/algorithmConfig.xml b/jsprit-examples/input/algorithmConfig.xml index 764bd6b6..4fff948f 100755 --- a/jsprit-examples/input/algorithmConfig.xml +++ b/jsprit-examples/input/algorithmConfig.xml @@ -23,7 +23,7 @@ 2000 - + @@ -42,7 +42,7 @@ 0.5 - + @@ -58,7 +58,7 @@ 0.3 - + @@ -73,7 +73,7 @@ 0.05 - +