mirror of
https://github.com/graphhopper/jsprit.git
synced 2020-01-24 07:45:05 +01:00
Extract method to write and re-read the XML
Also combine skill check tests into one with multiple assertions
This commit is contained in:
parent
dc52d9b2d8
commit
6d0f0c38b3
1 changed files with 57 additions and 196 deletions
|
|
@ -84,22 +84,19 @@ public class VrpXMLWriterTest {
|
||||||
VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build();
|
VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build();
|
||||||
builder.addVehicle(v1);
|
builder.addVehicle(v1);
|
||||||
builder.addVehicle(v2);
|
builder.addVehicle(v2);
|
||||||
VehicleRoutingProblem vrp = builder.build();
|
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
VehicleRoutingProblem vrp = builder.build();
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
writeAndRereadXml(vrp);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenWritingServices_itWritesThemCorrectly() {
|
public void whenWritingServices_itWritesThemCorrectly() {
|
||||||
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
||||||
|
|
||||||
VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build();
|
VehicleTypeImpl type1 = VehicleTypeImpl.Builder.newInstance("vehType").addCapacityDimension(0, 20).build();
|
||||||
VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build();
|
VehicleTypeImpl type2 = VehicleTypeImpl.Builder.newInstance("vehType2").addCapacityDimension(0, 200).build();
|
||||||
VehicleImpl v1 = VehicleImpl.Builder.newInstance("v1").setStartLocation(TestUtils.loc("loc")).setType(type1).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();
|
VehicleImpl v2 = VehicleImpl.Builder.newInstance("v2").setStartLocation(TestUtils.loc("loc")).setType(type2).build();
|
||||||
|
|
||||||
builder.addVehicle(v1);
|
builder.addVehicle(v1);
|
||||||
builder.addVehicle(v2);
|
builder.addVehicle(v2);
|
||||||
|
|
||||||
|
|
@ -108,11 +105,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
assertEquals(2, readVrp.getJobs().size());
|
assertEquals(2, readVrp.getJobs().size());
|
||||||
|
|
||||||
Service s1_read = (Service) vrp.getJobs().get("1");
|
Service s1_read = (Service) vrp.getJobs().get("1");
|
||||||
|
|
@ -128,11 +121,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s1 = Service.Builder.newInstance("1").setName("cleaning").addSizeDimension(0, 1).setLocation(TestUtils.loc("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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
Service s1_read = (Service) readVrp.getJobs().get("1");
|
Service s1_read = (Service) readVrp.getJobs().get("1");
|
||||||
assertTrue(s1_read.getName().equals("cleaning"));
|
assertTrue(s1_read.getName().equals("cleaning"));
|
||||||
}
|
}
|
||||||
|
|
@ -146,11 +135,7 @@ public class VrpXMLWriterTest {
|
||||||
.setDeliveryLocation(TestUtils.loc("del")).build();
|
.setDeliveryLocation(TestUtils.loc("del")).build();
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s1).build();
|
VehicleRoutingProblem vrp = builder.addJob(s1).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
Shipment s1_read = (Shipment) readVrp.getJobs().get("1");
|
Shipment s1_read = (Shipment) readVrp.getJobs().get("1");
|
||||||
assertTrue(s1_read.getName().equals("cleaning"));
|
assertTrue(s1_read.getName().equals("cleaning"));
|
||||||
Assert.assertEquals(1, s1_read.getPickupLocation().getIndex());
|
Assert.assertEquals(1, s1_read.getPickupLocation().getIndex());
|
||||||
|
|
@ -167,11 +152,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
assertEquals(2, readVrp.getJobs().size());
|
assertEquals(2, readVrp.getJobs().size());
|
||||||
|
|
||||||
Service s1_read = (Service) vrp.getJobs().get("1");
|
Service s1_read = (Service) vrp.getJobs().get("1");
|
||||||
|
|
@ -205,11 +186,7 @@ public class VrpXMLWriterTest {
|
||||||
|
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
assertEquals(2, readVrp.getJobs().size());
|
assertEquals(2, readVrp.getJobs().size());
|
||||||
|
|
||||||
Assert.assertEquals("pickLoc", ((Shipment) readVrp.getJobs().get("1")).getPickupLocation().getId());
|
Assert.assertEquals("pickLoc", ((Shipment) readVrp.getJobs().get("1")).getPickupLocation().getId());
|
||||||
|
|
@ -240,11 +217,7 @@ public class VrpXMLWriterTest {
|
||||||
|
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
assertEquals(2, readVrp.getJobs().size());
|
assertEquals(2, readVrp.getJobs().size());
|
||||||
|
|
||||||
Assert.assertEquals(1.0, ((Shipment) readVrp.getJobs().get("1")).getPickupTimeWindow().getStart(), 0.01);
|
Assert.assertEquals(1.0, ((Shipment) readVrp.getJobs().get("1")).getPickupTimeWindow().getStart(), 0.01);
|
||||||
|
|
@ -276,11 +249,7 @@ public class VrpXMLWriterTest {
|
||||||
|
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
assertEquals(2, readVrp.getJobs().size());
|
assertEquals(2, readVrp.getJobs().size());
|
||||||
|
|
||||||
Assert.assertEquals(3.0, ((Shipment) readVrp.getJobs().get("1")).getDeliveryTimeWindow().getStart(), 0.01);
|
Assert.assertEquals(3.0, ((Shipment) readVrp.getJobs().get("1")).getDeliveryTimeWindow().getStart(), 0.01);
|
||||||
|
|
@ -311,11 +280,7 @@ public class VrpXMLWriterTest {
|
||||||
|
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
assertEquals(2, readVrp.getJobs().size());
|
assertEquals(2, readVrp.getJobs().size());
|
||||||
|
|
||||||
assertEquals(100.0, ((Shipment) readVrp.getJobs().get("1")).getPickupServiceTime(), 0.01);
|
assertEquals(100.0, ((Shipment) readVrp.getJobs().get("1")).getPickupServiceTime(), 0.01);
|
||||||
|
|
@ -345,11 +310,7 @@ public class VrpXMLWriterTest {
|
||||||
|
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
assertEquals(2, readVrp.getJobs().size());
|
assertEquals(2, readVrp.getJobs().size());
|
||||||
|
|
||||||
Assert.assertEquals("[x=1.0][y=2.0]", ((Shipment) readVrp.getJobs().get("1")).getPickupLocation().getId());
|
Assert.assertEquals("[x=1.0][y=2.0]", ((Shipment) readVrp.getJobs().get("1")).getPickupLocation().getId());
|
||||||
|
|
@ -364,11 +325,7 @@ public class VrpXMLWriterTest {
|
||||||
builder.addVehicle(v);
|
builder.addVehicle(v);
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.build();
|
VehicleRoutingProblem vrp = builder.build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
Vehicle veh1 = getVehicle("v1", readVrp);
|
Vehicle veh1 = getVehicle("v1", readVrp);
|
||||||
|
|
||||||
Assert.assertEquals(3, veh1.getSkills().values().size());
|
Assert.assertEquals(3, veh1.getSkills().values().size());
|
||||||
|
|
@ -383,11 +340,7 @@ public class VrpXMLWriterTest {
|
||||||
builder.addVehicle(v);
|
builder.addVehicle(v);
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.build();
|
VehicleRoutingProblem vrp = builder.build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
Vehicle veh1 = getVehicle("v1", readVrp);
|
Vehicle veh1 = getVehicle("v1", readVrp);
|
||||||
|
|
||||||
assertTrue(veh1.getSkills().containsSkill("skill5"));
|
assertTrue(veh1.getSkills().containsSkill("skill5"));
|
||||||
|
|
@ -402,11 +355,7 @@ public class VrpXMLWriterTest {
|
||||||
builder.addVehicle(v);
|
builder.addVehicle(v);
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.build();
|
VehicleRoutingProblem vrp = builder.build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
Vehicle veh1 = getVehicle("v1", readVrp);
|
Vehicle veh1 = getVehicle("v1", readVrp);
|
||||||
|
|
||||||
assertTrue(veh1.getSkills().containsSkill("skill1"));
|
assertTrue(veh1.getSkills().containsSkill("skill1"));
|
||||||
|
|
@ -421,11 +370,7 @@ public class VrpXMLWriterTest {
|
||||||
builder.addVehicle(v);
|
builder.addVehicle(v);
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.build();
|
VehicleRoutingProblem vrp = builder.build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
Vehicle veh1 = getVehicle("v1", readVrp);
|
Vehicle veh1 = getVehicle("v1", readVrp);
|
||||||
|
|
||||||
assertTrue(veh1.getSkills().containsSkill("skill2"));
|
assertTrue(veh1.getSkills().containsSkill("skill2"));
|
||||||
|
|
@ -439,11 +384,7 @@ public class VrpXMLWriterTest {
|
||||||
builder.addVehicle(v);
|
builder.addVehicle(v);
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.build();
|
VehicleRoutingProblem vrp = builder.build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
Vehicle veh = getVehicle("v1", readVrp);
|
Vehicle veh = getVehicle("v1", readVrp);
|
||||||
|
|
||||||
Assert.assertEquals(0, veh.getSkills().values().size());
|
Assert.assertEquals(0, veh.getSkills().values().size());
|
||||||
|
|
@ -468,11 +409,7 @@ public class VrpXMLWriterTest {
|
||||||
.setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build();
|
.setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build();
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Assert.assertEquals(3, readVrp.getJobs().get("1").getRequiredSkills().values().size());
|
Assert.assertEquals(3, readVrp.getJobs().get("1").getRequiredSkills().values().size());
|
||||||
}
|
}
|
||||||
|
|
@ -489,11 +426,7 @@ public class VrpXMLWriterTest {
|
||||||
.setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build();
|
.setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build();
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill1"));
|
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill1"));
|
||||||
}
|
}
|
||||||
|
|
@ -510,11 +443,7 @@ public class VrpXMLWriterTest {
|
||||||
.setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build();
|
.setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build();
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill2"));
|
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill2"));
|
||||||
}
|
}
|
||||||
|
|
@ -531,11 +460,7 @@ public class VrpXMLWriterTest {
|
||||||
.setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build();
|
.setDeliveryTimeWindow(TimeWindow.newInstance(3, 4)).setPickupServiceTime(100).setDeliveryServiceTime(50).build();
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill3"));
|
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill3"));
|
||||||
}
|
}
|
||||||
|
|
@ -564,11 +489,7 @@ public class VrpXMLWriterTest {
|
||||||
|
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
assertEquals(2, readVrp.getJobs().size());
|
assertEquals(2, readVrp.getJobs().size());
|
||||||
|
|
||||||
Assert.assertEquals(1.0, ((Shipment) readVrp.getJobs().get("1")).getPickupLocation().getCoordinate().getX(), 0.01);
|
Assert.assertEquals(1.0, ((Shipment) readVrp.getJobs().get("1")).getPickupLocation().getCoordinate().getX(), 0.01);
|
||||||
|
|
@ -597,11 +518,7 @@ public class VrpXMLWriterTest {
|
||||||
.setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build();
|
.setDeliveryTimeWindow(TimeWindow.newInstance(7, 8)).build();
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Assert.assertEquals(3, (readVrp.getJobs().get("1")).getSize().getNuOfDimensions());
|
Assert.assertEquals(3, (readVrp.getJobs().get("1")).getSize().getNuOfDimensions());
|
||||||
Assert.assertEquals(10, (readVrp.getJobs().get("1")).getSize().get(0));
|
Assert.assertEquals(10, (readVrp.getJobs().get("1")).getSize().get(0));
|
||||||
|
|
@ -628,11 +545,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Vehicle v = getVehicle("v1", readVrp.getVehicles());
|
Vehicle v = getVehicle("v1", readVrp.getVehicles());
|
||||||
Assert.assertEquals("loc", v.getStartLocation().getId());
|
Assert.assertEquals("loc", v.getStartLocation().getId());
|
||||||
|
|
@ -641,56 +554,23 @@ public class VrpXMLWriterTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenWritingService_itShouldHaveTheCorrectNuSkills() {
|
public void whenWritingService_itShouldContain_bothSkills() {
|
||||||
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
||||||
|
|
||||||
Service s = Service.Builder.newInstance("1").addRequiredSkill("sKill1").addRequiredSkill("skill2").addSizeDimension(0, 1)
|
//skill names are case-insensitive
|
||||||
|
Service s = Service.Builder.newInstance("1").addRequiredSkill("skill1").addRequiredSkill("SKILL2").addSizeDimension(0, 1)
|
||||||
.setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build();
|
.setLocation(TestUtils.loc("loc")).setServiceTime(2.0).build();
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
VehicleRoutingProblem vrp = builder.addJob(s).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Assert.assertEquals(2, readVrp.getJobs().get("1").getRequiredSkills().values().size());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void whenWritingService_itShouldContain_skill1() {
|
|
||||||
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
|
assertEquals(2, readVrp.getJobs().get("1").getRequiredSkills().values().size());
|
||||||
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill1"));
|
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill1"));
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void whenWritingService_itShouldContain_skill2() {
|
|
||||||
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill2"));
|
assertTrue(readVrp.getJobs().get("1").getRequiredSkills().containsSkill("skill2"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenWritingVehicleV1_itDoesNotReturnToDepotMustBeWrittenCorrectly() {
|
public void whenWritingVehicleV1_itDoesNotReturnToDepotMustBeWrittenCorrectly() {
|
||||||
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
|
||||||
|
|
@ -708,11 +588,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Vehicle v = getVehicle("v1", readVrp.getVehicles());
|
Vehicle v = getVehicle("v1", readVrp.getVehicles());
|
||||||
assertFalse(v.isReturnToDepot());
|
assertFalse(v.isReturnToDepot());
|
||||||
|
|
@ -734,11 +610,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Vehicle v = getVehicle("v1", readVrp.getVehicles());
|
Vehicle v = getVehicle("v1", readVrp.getVehicles());
|
||||||
assertEquals("vehType", v.getType().getTypeId());
|
assertEquals("vehType", v.getType().getTypeId());
|
||||||
|
|
@ -760,11 +632,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Vehicle v = getVehicle("v2", readVrp.getVehicles());
|
Vehicle v = getVehicle("v2", readVrp.getVehicles());
|
||||||
assertEquals("vehType2", v.getType().getTypeId());
|
assertEquals("vehType2", v.getType().getTypeId());
|
||||||
|
|
@ -780,11 +648,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Vehicle v = getVehicle("v2", readVrp.getVehicles());
|
Vehicle v = getVehicle("v2", readVrp.getVehicles());
|
||||||
Assert.assertEquals("startLoc", v.getStartLocation().getId());
|
Assert.assertEquals("startLoc", v.getStartLocation().getId());
|
||||||
|
|
@ -799,11 +663,7 @@ public class VrpXMLWriterTest {
|
||||||
Service s2 = Service.Builder.newInstance("2").addSizeDimension(0, 1).setLocation(TestUtils.loc("loc2")).setServiceTime(4.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();
|
VehicleRoutingProblem vrp = builder.addJob(s1).addJob(s2).build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Vehicle v = getVehicle("v2", readVrp.getVehicles());
|
Vehicle v = getVehicle("v2", readVrp.getVehicles());
|
||||||
Assert.assertEquals(1.0, v.getStartLocation().getCoordinate().getX(), 0.01);
|
Assert.assertEquals(1.0, v.getStartLocation().getCoordinate().getX(), 0.01);
|
||||||
|
|
@ -845,11 +705,7 @@ public class VrpXMLWriterTest {
|
||||||
builder.addVehicle(v2);
|
builder.addVehicle(v2);
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.build();
|
VehicleRoutingProblem vrp = builder.build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Vehicle v = getVehicle("v", readVrp.getVehicles());
|
Vehicle v = getVehicle("v", readVrp.getVehicles());
|
||||||
Assert.assertEquals(3, v.getType().getCapacityDimensions().getNuOfDimensions());
|
Assert.assertEquals(3, v.getType().getCapacityDimensions().getNuOfDimensions());
|
||||||
|
|
@ -874,11 +730,7 @@ public class VrpXMLWriterTest {
|
||||||
builder.addVehicle(v2);
|
builder.addVehicle(v2);
|
||||||
|
|
||||||
VehicleRoutingProblem vrp = builder.build();
|
VehicleRoutingProblem vrp = builder.build();
|
||||||
new VrpXMLWriter(vrp, null).write(infileName);
|
VehicleRoutingProblem readVrp = writeAndRereadXml(vrp);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
|
||||||
VehicleRoutingProblem readVrp = vrpToReadBuilder.build();
|
|
||||||
|
|
||||||
Vehicle v = getVehicle("v", readVrp.getVehicles());
|
Vehicle v = getVehicle("v", readVrp.getVehicles());
|
||||||
Assert.assertEquals(11, v.getType().getCapacityDimensions().getNuOfDimensions());
|
Assert.assertEquals(11, v.getType().getCapacityDimensions().getNuOfDimensions());
|
||||||
|
|
@ -911,11 +763,7 @@ public class VrpXMLWriterTest {
|
||||||
List<VehicleRoutingProblemSolution> solutions = new ArrayList<VehicleRoutingProblemSolution>();
|
List<VehicleRoutingProblemSolution> solutions = new ArrayList<VehicleRoutingProblemSolution>();
|
||||||
solutions.add(solution);
|
solutions.add(solution);
|
||||||
|
|
||||||
new VrpXMLWriter(vrp, solutions).write(infileName);
|
List<VehicleRoutingProblemSolution> solutionsToRead = writeAndRereadXmlWithSolutions(vrp, solutions);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
List<VehicleRoutingProblemSolution> solutionsToRead = new ArrayList<VehicleRoutingProblemSolution>();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, solutionsToRead).read(infileName);
|
|
||||||
|
|
||||||
assertEquals(1, solutionsToRead.size());
|
assertEquals(1, solutionsToRead.size());
|
||||||
Assert.assertEquals(10., Solutions.bestOf(solutionsToRead).getCost(), 0.01);
|
Assert.assertEquals(10., Solutions.bestOf(solutionsToRead).getCost(), 0.01);
|
||||||
|
|
@ -943,11 +791,7 @@ public class VrpXMLWriterTest {
|
||||||
List<VehicleRoutingProblemSolution> solutions = new ArrayList<VehicleRoutingProblemSolution>();
|
List<VehicleRoutingProblemSolution> solutions = new ArrayList<VehicleRoutingProblemSolution>();
|
||||||
solutions.add(solution);
|
solutions.add(solution);
|
||||||
|
|
||||||
new VrpXMLWriter(vrp, solutions).write(infileName);
|
List<VehicleRoutingProblemSolution> solutionsToRead = writeAndRereadXmlWithSolutions(vrp, solutions);
|
||||||
|
|
||||||
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
|
||||||
List<VehicleRoutingProblemSolution> solutionsToRead = new ArrayList<VehicleRoutingProblemSolution>();
|
|
||||||
new VrpXMLReader(vrpToReadBuilder, solutionsToRead).read(infileName);
|
|
||||||
|
|
||||||
assertEquals(1, solutionsToRead.size());
|
assertEquals(1, solutionsToRead.size());
|
||||||
Assert.assertEquals(10., Solutions.bestOf(solutionsToRead).getCost(), 0.01);
|
Assert.assertEquals(10., Solutions.bestOf(solutionsToRead).getCost(), 0.01);
|
||||||
|
|
@ -955,4 +799,21 @@ public class VrpXMLWriterTest {
|
||||||
Assert.assertEquals("2", Solutions.bestOf(solutionsToRead).getUnassignedJobs().iterator().next().getId());
|
Assert.assertEquals("2", Solutions.bestOf(solutionsToRead).getUnassignedJobs().iterator().next().getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private VehicleRoutingProblem writeAndRereadXml(VehicleRoutingProblem vrp) {
|
||||||
|
new VrpXMLWriter(vrp, null).write(infileName);
|
||||||
|
|
||||||
|
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
||||||
|
new VrpXMLReader(vrpToReadBuilder, null).read(infileName);
|
||||||
|
return vrpToReadBuilder.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<VehicleRoutingProblemSolution> writeAndRereadXmlWithSolutions(VehicleRoutingProblem vrp, List<VehicleRoutingProblemSolution> solutions) {
|
||||||
|
new VrpXMLWriter(vrp, solutions).write(infileName);
|
||||||
|
|
||||||
|
VehicleRoutingProblem.Builder vrpToReadBuilder = VehicleRoutingProblem.Builder.newInstance();
|
||||||
|
List<VehicleRoutingProblemSolution> solutionsToRead = new ArrayList<VehicleRoutingProblemSolution>();
|
||||||
|
new VrpXMLReader(vrpToReadBuilder, solutionsToRead).read(infileName);
|
||||||
|
return solutionsToRead;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue