diff --git a/jsprit-io/pom.xml b/jsprit-io/pom.xml
new file mode 100644
index 00000000..2bd9884b
--- /dev/null
+++ b/jsprit-io/pom.xml
@@ -0,0 +1,40 @@
+
+
+
+ jsprit
+ jsprit
+ 1.6.3-SNAPSHOT
+
+ 4.0.0
+
+ jsprit-io
+
+
+
+ ${project.groupId}
+ jsprit-core
+ ${project.version}
+ jar
+ provided
+
+
+
+ commons-configuration
+ commons-configuration
+ 1.9
+ jar
+ compile
+
+
+
+ xerces
+ xercesImpl
+ 2.11.0
+ compile
+
+
+
+
+
diff --git a/jsprit-core/src/main/resources/algorithm_schema.xsd b/jsprit-io/src/main/resources/algorithm_schema.xsd
similarity index 100%
rename from jsprit-core/src/main/resources/algorithm_schema.xsd
rename to jsprit-io/src/main/resources/algorithm_schema.xsd
diff --git a/jsprit-core/src/main/resources/config.xml b/jsprit-io/src/main/resources/config.xml
similarity index 100%
rename from jsprit-core/src/main/resources/config.xml
rename to jsprit-io/src/main/resources/config.xml
diff --git a/jsprit-core/src/main/resources/greedySchrimpf.xml b/jsprit-io/src/main/resources/greedySchrimpf.xml
similarity index 100%
rename from jsprit-core/src/main/resources/greedySchrimpf.xml
rename to jsprit-io/src/main/resources/greedySchrimpf.xml
diff --git a/jsprit-core/src/main/resources/randomWalk.xml b/jsprit-io/src/main/resources/randomWalk.xml
similarity index 100%
rename from jsprit-core/src/main/resources/randomWalk.xml
rename to jsprit-io/src/main/resources/randomWalk.xml
diff --git a/jsprit-core/src/main/resources/schrimpf.xml b/jsprit-io/src/main/resources/schrimpf.xml
similarity index 100%
rename from jsprit-core/src/main/resources/schrimpf.xml
rename to jsprit-io/src/main/resources/schrimpf.xml
diff --git a/jsprit-core/src/main/resources/vrp_xml_schema.xsd b/jsprit-io/src/main/resources/vrp_xml_schema.xsd
similarity index 100%
rename from jsprit-core/src/main/resources/vrp_xml_schema.xsd
rename to jsprit-io/src/main/resources/vrp_xml_schema.xsd
diff --git a/jsprit-io/src/test/java/com/graphhopper/jsprit/io/algorithm/TestAlgorithmReader.java b/jsprit-io/src/test/java/com/graphhopper/jsprit/io/algorithm/TestAlgorithmReader.java
index 42e5f5ac..f9676b3d 100644
--- a/jsprit-io/src/test/java/com/graphhopper/jsprit/io/algorithm/TestAlgorithmReader.java
+++ b/jsprit-io/src/test/java/com/graphhopper/jsprit/io/algorithm/TestAlgorithmReader.java
@@ -60,16 +60,16 @@ public class TestAlgorithmReader {
@Before
public void doBefore() throws ConfigurationException {
config = new AlgorithmConfig();
- new AlgorithmConfigXmlReader(config).setSchemaValidation(false).read("src/test/resources/testConfig.xml");
+ new AlgorithmConfigXmlReader(config).setSchemaValidation(false).read(getClass().getResource("testConfig.xml"));
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
solutions = new ArrayList();
- new VrpXMLReader(vrpBuilder, solutions).read("src/test/resources/finiteVrp.xml");
+ new VrpXMLReader(vrpBuilder, solutions).read(getClass().getResourceAsStream("finiteVrp.xml"));
vrp = vrpBuilder.build();
}
@Test
public void itShouldReadMaxIterations() {
- VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "src/test/resources/algorithmConfigForReaderTest.xml");
+ VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, getClass().getResource("algorithmConfigForReaderTest.xml"));
Assert.assertEquals(2000, vra.getMaxIterations());
}
@@ -86,7 +86,7 @@ public class TestAlgorithmReader {
@Test
public void whenSettingPrematureBreak_itShouldReadTermination() {
- VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "src/test/resources/algorithmConfigForReaderTest2.xml");
+ VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, getClass().getResource("algorithmConfigForReaderTest2.xml"));
IterationCounter iCounter = new IterationCounter();
vra.addListener(iCounter);
vra.searchSolutions();
@@ -95,7 +95,7 @@ public class TestAlgorithmReader {
@Test
public void itShouldReadTermination() {
- VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, "src/test/resources/algorithmConfigForReaderTest.xml");
+ VehicleRoutingAlgorithm vra = VehicleRoutingAlgorithms.readAndCreateAlgorithm(vrp, getClass().getResource("algorithmConfigForReaderTest.xml"));
IterationCounter iCounter = new IterationCounter();
vra.addListener(iCounter);
vra.searchSolutions();
@@ -271,14 +271,14 @@ public class TestAlgorithmReader {
@Test
public void readerTest_whenReadingAlgoWithSchemaValidation_itReadsCorrectly() {
AlgorithmConfig algoConfig = new AlgorithmConfig();
- new AlgorithmConfigXmlReader(algoConfig).read("src/test/resources/algorithmConfig.xml");
+ new AlgorithmConfigXmlReader(algoConfig).read(getClass().getResource("algorithmConfig.xml"));
}
@Test
public void readerTest_whenReadingAlgoWithSchemaValidationWithoutIterations_itReadsCorrectly() {
AlgorithmConfig algoConfig = new AlgorithmConfig();
- new AlgorithmConfigXmlReader(algoConfig).read("src/test/resources/algorithmConfig_withoutIterations.xml");
+ new AlgorithmConfigXmlReader(algoConfig).read(getClass().getResource("algorithmConfig_withoutIterations.xml"));
}
diff --git a/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/InitialRoutesTest.java b/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/InitialRoutesTest.java
index f1f05de4..fd1f0d6e 100644
--- a/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/InitialRoutesTest.java
+++ b/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/InitialRoutesTest.java
@@ -37,7 +37,7 @@ public class InitialRoutesTest {
public void whenReading_jobMapShouldOnlyContainJob2() {
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(vrpBuilder).read("src/test/resources/simpleProblem_iniRoutes.xml");
+ new VrpXMLReader(vrpBuilder).read(getClass().getResourceAsStream("simpleProblem_iniRoutes.xml"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(1, getNuServices(vrp));
@@ -48,7 +48,7 @@ public class InitialRoutesTest {
public void whenReadingProblem2_jobMapShouldContain_service2() {
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(vrpBuilder).read("src/test/resources/simpleProblem_inclShipments_iniRoutes.xml");
+ new VrpXMLReader(vrpBuilder).read(getClass().getResourceAsStream("simpleProblem_inclShipments_iniRoutes.xml"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(1, getNuServices(vrp));
@@ -59,7 +59,7 @@ public class InitialRoutesTest {
public void whenReading_jobMapShouldContain_shipment4() {
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(vrpBuilder).read("src/test/resources/simpleProblem_inclShipments_iniRoutes.xml");
+ new VrpXMLReader(vrpBuilder).read(getClass().getResourceAsStream("simpleProblem_inclShipments_iniRoutes.xml"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(1, getNuShipments(vrp));
@@ -86,7 +86,7 @@ public class InitialRoutesTest {
public void whenReading_thereShouldBeOnlyOneActAssociatedToJob2() {
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(vrpBuilder).read("src/test/resources/simpleProblem_iniRoutes.xml");
+ new VrpXMLReader(vrpBuilder).read(getClass().getResourceAsStream("simpleProblem_iniRoutes.xml"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(1, vrp.getActivities(vrp.getJobs().get("2")).size());
@@ -96,7 +96,7 @@ public class InitialRoutesTest {
public void whenReading_thereShouldBeOnlyOneActAssociatedToJob2_v2() {
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(vrpBuilder).read("src/test/resources/simpleProblem_inclShipments_iniRoutes.xml");
+ new VrpXMLReader(vrpBuilder).read(getClass().getResourceAsStream("simpleProblem_inclShipments_iniRoutes.xml"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(1, vrp.getActivities(vrp.getJobs().get("2")).size());
@@ -106,7 +106,7 @@ public class InitialRoutesTest {
public void whenReading_thereShouldBeTwoActsAssociatedToShipment4() {
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(vrpBuilder).read("src/test/resources/simpleProblem_inclShipments_iniRoutes.xml");
+ new VrpXMLReader(vrpBuilder).read(getClass().getResourceAsStream("simpleProblem_inclShipments_iniRoutes.xml"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Job job = vrp.getJobs().get("4");
diff --git a/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/VrpXMLReaderTest.java b/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/VrpXMLReaderTest.java
index 48401022..b4b02795 100644
--- a/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/VrpXMLReaderTest.java
+++ b/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/VrpXMLReaderTest.java
@@ -31,6 +31,7 @@ import com.graphhopper.jsprit.core.util.Solutions;
import org.junit.Before;
import org.junit.Test;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -41,17 +42,17 @@ import static org.junit.Assert.*;
public class VrpXMLReaderTest {
- private String inFileName;
+ private InputStream inputStream;
@Before
public void doBefore() {
- inFileName = "src/test/resources/finiteVrpForReaderTest.xml";
+ inputStream = getClass().getResourceAsStream("finiteVrpForReaderTest.xml");
}
@Test
public void shouldReadNameOfService() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s = (Service) vrp.getJobs().get("1");
assertTrue(s.getName().equals("cleaning"));
@@ -60,7 +61,7 @@ public class VrpXMLReaderTest {
@Test
public void shouldReadNameOfShipment() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertTrue(s.getName().equals("deliver-smth"));
@@ -69,7 +70,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVrp_problemTypeIsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
assertEquals(FleetSize.FINITE, vrp.getFleetSize());
}
@@ -77,7 +78,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVrp_vehiclesAreReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
assertEquals(5, vrp.getVehicles().size());
assertTrue(idsInCollection(Arrays.asList("v1", "v2"), vrp.getVehicles()));
@@ -86,7 +87,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVrp_vehiclesAreReadCorrectly2() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v1 = getVehicle("v1", vrp.getVehicles());
assertEquals(20, v1.getType().getCapacityDimensions().get(0));
@@ -103,7 +104,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVehicles_skill1ShouldBeAssigned() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v1 = getVehicle("v1", vrp.getVehicles());
assertTrue(v1.getSkills().containsSkill("skill1"));
@@ -112,7 +113,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVehicles_skill2ShouldBeAssigned() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v1 = getVehicle("v1", vrp.getVehicles());
assertTrue(v1.getSkills().containsSkill("skill2"));
@@ -121,7 +122,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVehicles_nuSkillsShouldBeCorrect() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v1 = getVehicle("v1", vrp.getVehicles());
assertEquals(2, v1.getSkills().values().size());
@@ -130,7 +131,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVehicles_nuSkillsOfV2ShouldBeCorrect() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v2", vrp.getVehicles());
assertEquals(0, v.getSkills().values().size());
@@ -152,7 +153,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVrp_vehicleTypesAreReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
assertEquals(3, vrp.getTypes().size());
}
@@ -160,7 +161,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingVrpWithInfiniteSize_itReadsCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
assertEquals(FleetSize.FINITE, vrp.getFleetSize());
}
@@ -168,7 +169,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_nuOfJobsIsReadThemCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
assertEquals(4, vrp.getJobs().size());
}
@@ -176,7 +177,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingServices_itReadsThemCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
int servCounter = 0;
for (Job j : vrp.getJobs().values()) {
@@ -188,7 +189,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingService1_skill1ShouldBeAssigned() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s = (Service) vrp.getJobs().get("1");
assertTrue(s.getRequiredSkills().containsSkill("skill1"));
@@ -197,7 +198,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingService1_skill2ShouldBeAssigned() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s = (Service) vrp.getJobs().get("1");
assertTrue(s.getRequiredSkills().containsSkill("skill2"));
@@ -206,7 +207,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingService1_nuSkillsShouldBeCorrect() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s = (Service) vrp.getJobs().get("1");
assertEquals(2, s.getRequiredSkills().values().size());
@@ -215,7 +216,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingService2_nuSkillsOfV2ShouldBeCorrect() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s = (Service) vrp.getJobs().get("2");
assertEquals(0, s.getRequiredSkills().values().size());
@@ -224,7 +225,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingShipments_itReadsThemCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
int shipCounter = 0;
for (Job j : vrp.getJobs().values()) {
@@ -236,7 +237,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingShipment3_skill1ShouldBeAssigned() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertTrue(s.getRequiredSkills().containsSkill("skill1"));
@@ -245,7 +246,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingShipment3_skill2ShouldBeAssigned() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertTrue(s.getRequiredSkills().containsSkill("skill2"));
@@ -254,7 +255,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingShipment3_nuSkillsShouldBeCorrect() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals(2, s.getRequiredSkills().values().size());
@@ -263,7 +264,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingShipment4_nuSkillsOfV2ShouldBeCorrect() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("4");
assertEquals(0, s.getRequiredSkills().values().size());
@@ -272,7 +273,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingServices_capOfService1IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s1 = (Service) vrp.getJobs().get("1");
assertEquals(1, s1.getSize().get(0));
@@ -281,7 +282,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingServices_durationOfService1IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s1 = (Service) vrp.getJobs().get("1");
assertEquals(10.0, s1.getServiceDuration(), 0.01);
@@ -290,7 +291,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingServices_twOfService1IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s1 = (Service) vrp.getJobs().get("1");
assertEquals(0.0, s1.getTimeWindow().getStart(), 0.01);
@@ -300,7 +301,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingServices_typeOfService1IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Service s1 = (Service) vrp.getJobs().get("1");
assertEquals("service", s1.getType());
@@ -309,7 +310,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v2MustNotReturnToDepot() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v2", vrp.getVehicles());
assertFalse(v.isReturnToDepot());
@@ -318,7 +319,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v3HasTheCorrectStartLocation() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v3 = getVehicle("v3", vrp.getVehicles());
assertEquals("startLoc", v3.getStartLocation().getId());
@@ -329,7 +330,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v3HasTheCorrectEndLocation() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v3 = getVehicle("v3", vrp.getVehicles());
assertEquals("endLoc", v3.getEndLocation().getId());
@@ -338,7 +339,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v3HasTheCorrectEndLocationCoordinate() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v3 = getVehicle("v3", vrp.getVehicles());
assertEquals(1000.0, v3.getEndLocation().getCoordinate().getX(), 0.01);
@@ -348,7 +349,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v3HasTheCorrectStartLocationCoordinate() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v3 = getVehicle("v3", vrp.getVehicles());
assertEquals(10.0, v3.getStartLocation().getCoordinate().getX(), 0.01);
@@ -358,7 +359,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v3HasTheCorrectLocationCoordinate() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v3 = getVehicle("v3", vrp.getVehicles());
assertEquals(10.0, v3.getStartLocation().getCoordinate().getX(), 0.01);
@@ -368,7 +369,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v3HasTheCorrectLocationId() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v3 = getVehicle("v3", vrp.getVehicles());
assertEquals("startLoc", v3.getStartLocation().getId());
@@ -377,7 +378,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v4HasTheCorrectStartLocation() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v4", vrp.getVehicles());
assertEquals("startLoc", v.getStartLocation().getId());
@@ -386,7 +387,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v4HasTheCorrectEndLocation() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v4", vrp.getVehicles());
assertEquals("endLoc", v.getEndLocation().getId());
@@ -395,7 +396,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v4HasTheCorrectEndLocationCoordinate() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v4", vrp.getVehicles());
assertEquals(1000.0, v.getEndLocation().getCoordinate().getX(), 0.01);
@@ -405,7 +406,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v4HasTheCorrectStartLocationCoordinate() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v4", vrp.getVehicles());
assertEquals(10.0, v.getStartLocation().getCoordinate().getX(), 0.01);
@@ -415,7 +416,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v4HasTheCorrectLocationCoordinate() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v4", vrp.getVehicles());
assertEquals(10.0, v.getStartLocation().getCoordinate().getX(), 0.01);
@@ -425,7 +426,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v4HasTheCorrectLocationId() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v4", vrp.getVehicles());
assertEquals("startLoc", v.getStartLocation().getId());
@@ -434,7 +435,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_capOfShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals(10, s.getSize().get(0));
@@ -443,7 +444,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_pickupServiceTimeOfShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals(10.0, s.getPickupServiceTime(), 0.01);
@@ -452,7 +453,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_pickupTimeWindowOfShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals(1000.0, s.getPickupTimeWindow().getStart(), 0.01);
@@ -462,7 +463,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_deliveryTimeWindowOfShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals(6000.0, s.getDeliveryTimeWindow().getStart(), 0.01);
@@ -472,7 +473,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_deliveryServiceTimeOfShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals(100.0, s.getDeliveryServiceTime(), 0.01);
@@ -481,7 +482,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_deliveryCoordShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals(10.0, s.getDeliveryLocation().getCoordinate().getX(), 0.01);
@@ -491,7 +492,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_pickupCoordShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals(10.0, s.getPickupLocation().getCoordinate().getX(), 0.01);
@@ -501,7 +502,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_deliveryIdShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals("i(9,9)", s.getDeliveryLocation().getId());
@@ -510,7 +511,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_pickupIdShipment3IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("3");
assertEquals("i(3,9)", s.getPickupLocation().getId());
@@ -519,7 +520,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_pickupLocationIdShipment4IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("4");
assertEquals("[x=10.0][y=10.0]", s.getPickupLocation().getId());
@@ -528,7 +529,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_deliveryLocationIdShipment4IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("4");
assertEquals("[x=10.0][y=0.0]", s.getDeliveryLocation().getId());
@@ -537,7 +538,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_pickupServiceTimeOfShipment4IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("4");
assertEquals(0.0, s.getPickupServiceTime(), 0.01);
@@ -546,7 +547,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingJobs_deliveryServiceTimeOfShipment4IsReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Shipment s = (Shipment) vrp.getJobs().get("4");
assertEquals(100.0, s.getDeliveryServiceTime(), 0.01);
@@ -555,7 +556,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingFile_v5AndItsTypeHasTheCorrectCapacityDimensionValues() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read(inFileName);
+ new VrpXMLReader(builder, null).read(inputStream);
VehicleRoutingProblem vrp = builder.build();
Vehicle v = getVehicle("v5", vrp.getVehicles());
assertEquals(100, v.getType().getCapacityDimensions().get(0));
@@ -569,7 +570,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingInitialRouteWithShipment4_thisShipmentShouldNotAppearInJobMap() { //since it is not part of the problem anymore
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder).read("src/test/resources/finiteVrpWithInitialSolutionForReaderTest.xml");
+ new VrpXMLReader(builder).read(getClass().getResourceAsStream("finiteVrpWithInitialSolutionForReaderTest.xml"));
VehicleRoutingProblem vrp = builder.build();
assertFalse(vrp.getJobs().containsKey("4"));
}
@@ -577,7 +578,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingInitialRouteWithDepTime10_departureTimeOfRouteShouldBeReadCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder).read("src/test/resources/finiteVrpWithInitialSolutionForReaderTest.xml");
+ new VrpXMLReader(builder).read(getClass().getResourceAsStream("finiteVrpWithInitialSolutionForReaderTest.xml"));
VehicleRoutingProblem vrp = builder.build();
assertEquals(10., vrp.getInitialVehicleRoutes().iterator().next().getDepartureTime(), 0.01);
}
@@ -585,7 +586,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingInitialRoute_nuInitialRoutesShouldBeCorrect() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read("src/test/resources/finiteVrpWithInitialSolutionForReaderTest.xml");
+ new VrpXMLReader(builder, null).read(getClass().getResourceAsStream("finiteVrpWithInitialSolutionForReaderTest.xml"));
VehicleRoutingProblem vrp = builder.build();
assertEquals(1, vrp.getInitialVehicleRoutes().size());
}
@@ -593,7 +594,7 @@ public class VrpXMLReaderTest {
@Test
public void whenReadingInitialRoute_nuActivitiesShouldBeCorrect() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read("src/test/resources/finiteVrpWithInitialSolutionForReaderTest.xml");
+ new VrpXMLReader(builder, null).read(getClass().getResourceAsStream("finiteVrpWithInitialSolutionForReaderTest.xml"));
VehicleRoutingProblem vrp = builder.build();
assertEquals(2, vrp.getInitialVehicleRoutes().iterator().next().getActivities().size());
}
@@ -602,7 +603,7 @@ public class VrpXMLReaderTest {
public void testRead_ifReaderIsCalled_itReadsSuccessfullyV2() {
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
ArrayList solutions = new ArrayList();
- new VrpXMLReader(vrpBuilder, solutions).read("src/test/resources/finiteVrpWithShipmentsAndSolution.xml");
+ new VrpXMLReader(vrpBuilder, solutions).read(getClass().getResourceAsStream("finiteVrpWithShipmentsAndSolution.xml"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(4, vrp.getJobs().size());
assertEquals(1, solutions.size());
@@ -618,7 +619,7 @@ public class VrpXMLReaderTest {
@Test
public void testRead_ifReaderIsCalled_itReadsSuccessfully() {
- new VrpXMLReader(VehicleRoutingProblem.Builder.newInstance(), new ArrayList()).read("src/test/resources/lui-shen-solution.xml");
+ new VrpXMLReader(VehicleRoutingProblem.Builder.newInstance(), new ArrayList()).read(getClass().getResourceAsStream("lui-shen-solution.xml"));
assertTrue(true);
}
@@ -627,18 +628,12 @@ public class VrpXMLReaderTest {
public void unassignedJobShouldBeRead() {
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
ArrayList solutions = new ArrayList();
- new VrpXMLReader(vrpBuilder, solutions).read("src/test/resources/finiteVrpWithShipmentsAndSolution.xml");
+ new VrpXMLReader(vrpBuilder, solutions).read(getClass().getResourceAsStream("finiteVrpWithShipmentsAndSolution.xml"));
VehicleRoutingProblemSolution solution = Solutions.bestOf(solutions);
assertEquals(1, solution.getUnassignedJobs().size());
assertEquals("4", solution.getUnassignedJobs().iterator().next().getId());
}
-
-// @Test
-// public void solutionListShouldBeEmpty(){
-// VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
-// ArrayList solutions = new ArrayList();
-// new VrpXMLReader(vrpBuilder, solutions).read("src/test/resources/finiteVrpforReaderTest.xml");
-// assertTrue(solutions.isEmpty());
-// }
}
+
+//
diff --git a/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/VrpXMLWriterTest.java b/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/VrpXMLWriterTest.java
index 15fd7259..6819a469 100644
--- a/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/VrpXMLWriterTest.java
+++ b/jsprit-io/src/test/java/com/graphhopper/jsprit/io/problem/VrpXMLWriterTest.java
@@ -895,68 +895,6 @@ public class VrpXMLWriterTest {
return null;
}
- @Test
- public void whenWritingAndReadingInitialRouteWithShipment4_thisShipmentShouldNotAppearInJobMap() { //since it is not part of the problem anymore
- VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder).read("src/test/resources/finiteVrpWithInitialSolutionForReaderTest.xml");
- VehicleRoutingProblem vrp = builder.build();
-
- new VrpXMLWriter(vrp).write("src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml");
-
- VehicleRoutingProblem.Builder newBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(newBuilder).read("src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml");
- VehicleRoutingProblem newVrp = newBuilder.build();
-
- assertFalse(newVrp.getJobs().containsKey("4"));
- }
-
- @Test
- public void whenReadingInitialRouteWithDepTime10_departureTimeOfRouteShouldBeReadCorrectly() {
- VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder).read("src/test/resources/finiteVrpWithInitialSolutionForReaderTest.xml");
- VehicleRoutingProblem vrp = builder.build();
-
- new VrpXMLWriter(vrp).write("src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml");
-
- VehicleRoutingProblem.Builder newBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(newBuilder).read("src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml");
- VehicleRoutingProblem newVrp = newBuilder.build();
-
- Assert.assertEquals(10., newVrp.getInitialVehicleRoutes().iterator().next().getDepartureTime(), 0.01);
- }
-
- @Test
- public void whenReadingInitialRoute_nuInitialRoutesShouldBeCorrect() {
- VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read("src/test/resources/finiteVrpWithInitialSolutionForReaderTest.xml");
- VehicleRoutingProblem vrp = builder.build();
-
- new VrpXMLWriter(vrp).write("src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml");
-
- VehicleRoutingProblem.Builder newBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(newBuilder).read("src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml");
- VehicleRoutingProblem newVrp = newBuilder.build();
-
-
- assertEquals(1, newVrp.getInitialVehicleRoutes().size());
- }
-
- @Test
- public void whenReadingInitialRoute_nuActivitiesShouldBeCorrect() {
- VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(builder, null).read("src/test/resources/finiteVrpWithInitialSolutionForReaderTest.xml");
- VehicleRoutingProblem vrp = builder.build();
-
- new VrpXMLWriter(vrp).write("src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml");
-
- VehicleRoutingProblem.Builder newBuilder = VehicleRoutingProblem.Builder.newInstance();
- new VrpXMLReader(newBuilder).read("src/test/resources/finiteVrpWithInitialSolutionForWriterTest.xml");
- VehicleRoutingProblem newVrp = newBuilder.build();
-
-
- Assert.assertEquals(2, newVrp.getInitialVehicleRoutes().iterator().next().getActivities().size());
- }
-
@Test
public void solutionWithoutUnassignedJobsShouldBeWrittenCorrectly() {
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfig.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfig.xml
new file mode 100755
index 00000000..913984db
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfig.xml
@@ -0,0 +1,48 @@
+
+
+
+ 2000
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfigForReaderTest.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfigForReaderTest.xml
new file mode 100755
index 00000000..ac2789b6
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfigForReaderTest.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+ 2000
+
+
+
+ 100
+
+
+ 25
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfigForReaderTest2.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfigForReaderTest2.xml
new file mode 100755
index 00000000..edd0065c
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfigForReaderTest2.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+ 2000
+
+
+ 100
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfig_withoutIterations.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfig_withoutIterations.xml
new file mode 100755
index 00000000..eccee9f6
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/algorithmConfig_withoutIterations.xml
@@ -0,0 +1,48 @@
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+
+ 0.5
+
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/finiteVrp.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/finiteVrp.xml
new file mode 100644
index 00000000..c44b46a1
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/finiteVrp.xml
@@ -0,0 +1,88 @@
+
+
+
+
+ FINITE
+ HETEROGENEOUS
+
+
+
+
+ v1
+
+ depotLoc2
+
+
+ vehType
+
+ 0.0
+ 1000.0
+
+
+
+ v2
+
+ depotLoc
+
+
+ vehType2
+
+ 0.0
+ 1000.0
+
+
+
+
+
+ vehType
+ 20
+
+ 0.0
+ 0.0
+
+
+
+
+ vehType2
+ 200
+
+ 0.0
+ 0.0
+
+
+
+
+
+
+
+ j(1,5)
+
+ 1
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+
+ i(3,9)
+
+ 1
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/testConfig.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/testConfig.xml
new file mode 100755
index 00000000..084e0a4c
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/algorithm/testConfig.xml
@@ -0,0 +1,70 @@
+
+
+
+
+ 10
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+ 0.5
+
+
+
+
+ 0.4
+
+
+
+
+
+
+
+
+ 0.1
+
+
+
+
+ 0.4
+
+
+
+
+
+
+
+
+ 0.3
+
+
+
+
+ 0.2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpForReaderTest.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpForReaderTest.xml
new file mode 100644
index 00000000..6d3ba822
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpForReaderTest.xml
@@ -0,0 +1,237 @@
+
+
+
+
+
+
+ FINITE
+ HETEROGENEOUS
+
+
+
+
+ v1
+
+ depotLoc2
+
+ 1
+
+ vehType
+
+ 0.0
+ 1000.0
+
+ skill1; SKill2
+
+
+ v2
+
+ depotLoc
+
+ 2
+
+ false
+ vehType2
+
+ 0.0
+ 1000.0
+
+
+
+ v3
+
+ startLoc
+
+ 3
+
+
+ endLoc
+
+ 4
+
+ vehType2
+
+ 0.0
+ 1000.0
+
+
+
+ v4
+
+ startLoc
+
+
+
+ endLoc
+
+
+ vehType2
+
+ 0.0
+ 1000.0
+
+
+
+ v5
+
+ startLoc
+
+
+
+ endLoc
+
+
+ vehType3
+
+ 0.0
+ 1000.0
+
+
+
+
+
+ vehType
+
+ 20
+
+
+ 0.0
+ 0.0
+
+
+
+
+ vehType2
+ 200
+
+ 0.0
+ 0.0
+
+
+
+
+ vehType3
+
+ 100
+ 1000
+ 10000
+ 100000
+
+
+ 0.0
+ 0.0
+
+
+
+
+
+
+
+ j(1,5)
+ cleaning
+
+
+ 1
+
+ 10.0
+
+
+ 0.0
+ 4000.0
+
+
+ skill1, Skill2
+
+
+
+ i(3,9)
+ cleaning
+
+ 1
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+
+
+
+
+ deliver-smth
+
+ i(3,9)
+
+ 10.0
+
+
+ 1000.0
+ 4000.0
+
+
+
+
+ i(9,9)
+
+ 100.0
+
+
+ 6000.0
+ 10000.0
+
+
+
+
+ 10
+
+ skill1, Skill2
+
+
+
+
+
+
+
+ 1000.0
+ 4000.0
+
+
+
+
+
+ 100.0
+
+
+ 6000.0
+ 10000.0
+
+
+
+
+ 10
+
+ deliver-smth
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpWithInitialSolutionForReaderTest.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpWithInitialSolutionForReaderTest.xml
new file mode 100644
index 00000000..22e367a8
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpWithInitialSolutionForReaderTest.xml
@@ -0,0 +1,223 @@
+
+
+
+
+ FINITE
+ HETEROGENEOUS
+
+
+
+
+ v1
+
+ depotLoc2
+
+
+ vehType
+
+ 0.0
+ 1000.0
+
+
+
+ v2
+
+ depotLoc
+
+
+ false
+ vehType2
+
+ 0.0
+ 1000.0
+
+
+
+ v3
+
+ startLoc
+
+
+
+ endLoc
+
+
+ vehType2
+
+ 0.0
+ 1000.0
+
+
+
+ v4
+
+ startLoc
+
+
+
+ endLoc
+
+
+ vehType2
+
+ 0.0
+ 1000.0
+
+
+
+ v5
+
+ startLoc
+
+
+
+ endLoc
+
+
+ vehType3
+
+ 0.0
+ 1000.0
+
+
+
+
+
+ vehType
+
+ 20
+
+
+ 0.0
+ 0.0
+
+
+
+
+ vehType2
+ 200
+
+ 0.0
+ 0.0
+
+
+
+
+ vehType3
+
+ 100
+ 1000
+ 10000
+ 100000
+
+
+ 0.0
+ 0.0
+
+
+
+
+
+
+
+ j(1,5)
+
+
+ 1
+
+ 10.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+
+ i(3,9)
+
+ 1
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+
+
+
+
+
+ i(3,9)
+
+ 10.0
+
+
+ 1000.0
+ 4000.0
+
+
+
+
+ i(9,9)
+
+ 100.0
+
+
+ 6000.0
+ 10000.0
+
+
+
+ 10
+
+
+
+
+
+
+
+ 1000.0
+ 4000.0
+
+
+
+
+
+ 100.0
+
+
+ 6000.0
+ 10000.0
+
+
+
+
+ 10
+
+
+
+
+
+
+
+ noDriver
+ v1
+ 10.
+
+ 4
+
+
+ 4
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpWithShipmentsAndSolution.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpWithShipmentsAndSolution.xml
new file mode 100644
index 00000000..89889383
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/finiteVrpWithShipmentsAndSolution.xml
@@ -0,0 +1,165 @@
+
+
+
+
+ FINITE
+ HETEROGENEOUS
+
+
+
+
+ v1
+
+ depotLoc2
+
+
+ vehType
+
+ 0.0
+ 1000.0
+
+
+
+ v2
+
+ depotLoc
+
+
+ vehType2
+
+ 0.0
+ 1000.0
+
+
+
+
+
+ vehType
+ 20
+
+ 0.0
+ 0.0
+
+
+
+
+ vehType2
+ 200
+
+ 0.0
+ 0.0
+
+
+
+
+
+
+
+ j(1,5)
+
+ 1
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+
+ i(3,9)
+
+ 1
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+
+ i(3,9)
+
+ 1
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+
+
+
+
+ i(3,9)
+
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+
+ i(9,9)
+
+ 0.0
+
+
+ 0.0
+ 4000.0
+
+
+
+ 1
+
+
+
+
+
+ 100.0
+
+
+ 0.0
+ noDriver
+ v1
+ 10.0
+
+ 1
+ 20.0
+ 30.0
+
+
+ 2
+ 40.0
+ 80.0
+
+
+ 3
+ 40.0
+ 80.0
+
+
+ 3
+ 40.0
+ 80.0
+
+ 100.0
+
+
+
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/lui-shen-solution.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/lui-shen-solution.xml
new file mode 100644
index 00000000..46adb244
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/lui-shen-solution.xml
@@ -0,0 +1,1919 @@
+
+
+
+
+ INFINITE
+ HETEROGENEOUS
+
+
+
+ A
+ A
+
+ 0
+
+
+
+ 0.0
+ 1236.0
+
+
+
+ B
+ B
+
+ 0
+
+
+
+ 0.0
+ 1236.0
+
+
+
+ C
+ C
+
+ 0
+
+
+
+ 0.0
+ 1236.0
+
+
+
+
+
+ A
+ 100
+
+ 300.0
+ 1.0
+
+
+
+
+ B
+ 200
+
+ 800.0
+ 1.0
+
+
+
+
+ C
+ 300
+
+ 1350.0
+ 1.0
+
+
+
+
+
+
+ 25
+
+ 40
+ 90.0
+
+
+ 169.0
+ 224.0
+
+
+
+
+ 26
+
+ 10
+ 90.0
+
+
+ 622.0
+ 701.0
+
+
+
+
+ 23
+
+ 10
+ 90.0
+
+
+ 732.0
+ 777.0
+
+
+
+
+ 24
+
+ 10
+ 90.0
+
+
+ 65.0
+ 144.0
+
+
+
+
+ 29
+
+ 10
+ 90.0
+
+
+ 358.0
+ 405.0
+
+
+
+
+ 27
+
+ 10
+ 90.0
+
+
+ 261.0
+ 316.0
+
+
+
+
+ 28
+
+ 20
+ 90.0
+
+
+ 546.0
+ 593.0
+
+
+
+
+ 33
+
+ 40
+ 90.0
+
+
+ 87.0
+ 158.0
+
+
+
+
+ 32
+
+ 30
+ 90.0
+
+
+ 31.0
+ 100.0
+
+
+
+
+ 31
+
+ 20
+ 90.0
+
+
+ 200.0
+ 237.0
+
+
+
+
+ 30
+
+ 10
+ 90.0
+
+
+ 449.0
+ 504.0
+
+
+
+
+ 12
+
+ 20
+ 90.0
+
+
+ 652.0
+ 721.0
+
+
+
+
+ 13
+
+ 30
+ 90.0
+
+
+ 30.0
+ 92.0
+
+
+
+
+ 14
+
+ 10
+ 90.0
+
+
+ 567.0
+ 620.0
+
+
+
+
+ 15
+
+ 40
+ 90.0
+
+
+ 384.0
+ 429.0
+
+
+
+
+ 16
+
+ 40
+ 90.0
+
+
+ 475.0
+ 528.0
+
+
+
+
+ 17
+
+ 20
+ 90.0
+
+
+ 99.0
+ 148.0
+
+
+
+
+ 18
+
+ 20
+ 90.0
+
+
+ 179.0
+ 254.0
+
+
+
+
+ 19
+
+ 10
+ 90.0
+
+
+ 278.0
+ 345.0
+
+
+
+
+ 20
+
+ 10
+ 90.0
+
+
+ 10.0
+ 73.0
+
+
+
+
+ 22
+
+ 20
+ 90.0
+
+
+ 812.0
+ 883.0
+
+
+
+
+ 21
+
+ 20
+ 90.0
+
+
+ 914.0
+ 965.0
+
+
+
+
+ 9
+
+ 10
+ 90.0
+
+
+ 534.0
+ 605.0
+
+
+
+
+ 7
+
+ 20
+ 90.0
+
+
+ 170.0
+ 225.0
+
+
+
+
+ 8
+
+ 20
+ 90.0
+
+
+ 255.0
+ 324.0
+
+
+
+
+ 5
+
+ 10
+ 90.0
+
+
+ 15.0
+ 67.0
+
+
+
+
+ 6
+
+ 20
+ 90.0
+
+
+ 621.0
+ 702.0
+
+
+
+
+ 3
+
+ 10
+ 90.0
+
+
+ 65.0
+ 146.0
+
+
+
+
+ 4
+
+ 10
+ 90.0
+
+
+ 727.0
+ 782.0
+
+
+
+
+ 1
+
+ 10
+ 90.0
+
+
+ 912.0
+ 967.0
+
+
+
+
+ 2
+
+ 30
+ 90.0
+
+
+ 825.0
+ 870.0
+
+
+
+
+ 11
+
+ 10
+ 90.0
+
+
+ 448.0
+ 505.0
+
+
+
+
+ 10
+
+ 10
+ 90.0
+
+
+ 357.0
+ 410.0
+
+
+
+
+ 99
+
+ 10
+ 90.0
+
+
+ 743.0
+ 820.0
+
+
+
+
+ 98
+
+ 20
+ 90.0
+
+
+ 30.0
+ 84.0
+
+
+
+
+ 97
+
+ 30
+ 90.0
+
+
+ 561.0
+ 622.0
+
+
+
+
+ 96
+
+ 10
+ 90.0
+
+
+ 95.0
+ 156.0
+
+
+
+
+ 95
+
+ 30
+ 90.0
+
+
+ 196.0
+ 239.0
+
+
+
+
+ 94
+
+ 10
+ 90.0
+
+
+ 285.0
+ 336.0
+
+
+
+
+ 93
+
+ 40
+ 90.0
+
+
+ 475.0
+ 518.0
+
+
+
+
+ 89
+
+ 10
+ 90.0
+
+
+ 737.0
+ 802.0
+
+
+
+
+ 92
+
+ 20
+ 90.0
+
+
+ 368.0
+ 441.0
+
+
+
+
+ 91
+
+ 10
+ 90.0
+
+
+ 836.0
+ 889.0
+
+
+
+
+ 90
+
+ 10
+ 90.0
+
+
+ 20.0
+ 84.0
+
+
+
+
+ 88
+
+ 30
+ 90.0
+
+
+ 645.0
+ 708.0
+
+
+
+
+ 87
+
+ 20
+ 90.0
+
+
+ 85.0
+ 144.0
+
+
+
+
+ 86
+
+ 10
+ 90.0
+
+
+ 173.0
+ 238.0
+
+
+
+
+ 85
+
+ 30
+ 90.0
+
+
+ 555.0
+ 612.0
+
+
+
+
+ 84
+
+ 20
+ 90.0
+
+
+ 458.0
+ 523.0
+
+
+
+
+ 83
+
+ 10
+ 90.0
+
+
+ 265.0
+ 338.0
+
+
+
+
+ 82
+
+ 20
+ 90.0
+
+
+ 369.0
+ 420.0
+
+
+
+
+ 81
+
+ 30
+ 90.0
+
+
+ 47.0
+ 124.0
+
+
+
+
+ 80
+
+ 10
+ 90.0
+
+
+ 769.0
+ 820.0
+
+
+
+
+ 78
+
+ 20
+ 90.0
+
+
+ 109.0
+ 170.0
+
+
+
+
+ 79
+
+ 10
+ 90.0
+
+
+ 668.0
+ 731.0
+
+
+
+
+ 69
+
+ 10
+ 90.0
+
+
+ 916.0
+ 969.0
+
+
+
+
+ 68
+
+ 10
+ 90.0
+
+
+ 734.0
+ 777.0
+
+
+
+
+ 67
+
+ 10
+ 90.0
+
+
+ 12.0
+ 77.0
+
+
+
+
+ 100
+
+ 20
+ 90.0
+
+
+ 647.0
+ 726.0
+
+
+
+
+ 72
+
+ 10
+ 90.0
+
+
+ 450.0
+ 505.0
+
+
+
+
+ 73
+
+ 10
+ 90.0
+
+
+ 478.0
+ 551.0
+
+
+
+
+ 70
+
+ 30
+ 90.0
+
+
+ 387.0
+ 456.0
+
+
+
+
+ 71
+
+ 20
+ 90.0
+
+
+ 293.0
+ 360.0
+
+
+
+
+ 76
+
+ 10
+ 90.0
+
+
+ 203.0
+ 260.0
+
+
+
+
+ 77
+
+ 10
+ 90.0
+
+
+ 574.0
+ 643.0
+
+
+
+
+ 74
+
+ 50
+ 90.0
+
+
+ 353.0
+ 412.0
+
+
+
+
+ 75
+
+ 20
+ 90.0
+
+
+ 997.0
+ 1068.0
+
+
+
+
+ 57
+
+ 40
+ 90.0
+
+
+ 35.0
+ 87.0
+
+
+
+
+ 56
+
+ 30
+ 90.0
+
+
+ 385.0
+ 436.0
+
+
+
+
+ 59
+
+ 10
+ 90.0
+
+
+ 651.0
+ 740.0
+
+
+
+
+ 58
+
+ 30
+ 90.0
+
+
+ 471.0
+ 534.0
+
+
+
+
+ 60
+
+ 20
+ 90.0
+
+
+ 562.0
+ 629.0
+
+
+
+
+ 61
+
+ 10
+ 90.0
+
+
+ 531.0
+ 610.0
+
+
+
+
+ 62
+
+ 20
+ 90.0
+
+
+ 262.0
+ 317.0
+
+
+
+
+ 63
+
+ 50
+ 90.0
+
+
+ 171.0
+ 218.0
+
+
+
+
+ 64
+
+ 10
+ 90.0
+
+
+ 632.0
+ 693.0
+
+
+
+
+ 65
+
+ 10
+ 90.0
+
+
+ 76.0
+ 129.0
+
+
+
+
+ 66
+
+ 10
+ 90.0
+
+
+ 826.0
+ 875.0
+
+
+
+
+ 49
+
+ 10
+ 90.0
+
+
+ 1001.0
+ 1066.0
+
+
+
+
+ 48
+
+ 10
+ 90.0
+
+
+ 632.0
+ 693.0
+
+
+
+
+ 47
+
+ 10
+ 90.0
+
+
+ 1054.0
+ 1127.0
+
+
+
+
+ 46
+
+ 30
+ 90.0
+
+
+ 448.0
+ 509.0
+
+
+
+
+ 45
+
+ 10
+ 90.0
+
+
+ 541.0
+ 600.0
+
+
+
+
+ 54
+
+ 40
+ 90.0
+
+
+ 186.0
+ 257.0
+
+
+
+
+ 55
+
+ 10
+ 90.0
+
+
+ 95.0
+ 158.0
+
+
+
+
+ 52
+
+ 10
+ 90.0
+
+
+ 912.0
+ 969.0
+
+
+
+
+ 53
+
+ 20
+ 90.0
+
+
+ 286.0
+ 347.0
+
+
+
+
+ 50
+
+ 10
+ 90.0
+
+
+ 815.0
+ 880.0
+
+
+
+
+ 51
+
+ 10
+ 90.0
+
+
+ 725.0
+ 786.0
+
+
+
+
+ 39
+
+ 20
+ 90.0
+
+
+ 567.0
+ 624.0
+
+
+
+
+ 38
+
+ 30
+ 90.0
+
+
+ 479.0
+ 522.0
+
+
+
+
+ 35
+
+ 10
+ 90.0
+
+
+ 283.0
+ 344.0
+
+
+
+
+ 34
+
+ 20
+ 90.0
+
+
+ 751.0
+ 816.0
+
+
+
+
+ 37
+
+ 20
+ 90.0
+
+
+ 383.0
+ 434.0
+
+
+
+
+ 36
+
+ 10
+ 90.0
+
+
+ 665.0
+ 716.0
+
+
+
+
+ 41
+
+ 10
+ 90.0
+
+
+ 166.0
+ 235.0
+
+
+
+
+ 42
+
+ 20
+ 90.0
+
+
+ 68.0
+ 149.0
+
+
+
+
+ 43
+
+ 10
+ 90.0
+
+
+ 16.0
+ 80.0
+
+
+
+
+ 44
+
+ 10
+ 90.0
+
+
+ 359.0
+ 412.0
+
+
+
+
+ 40
+
+ 10
+ 90.0
+
+
+ 264.0
+ 321.0
+
+
+
+
+
+
+ 7482.673139970934
+
+
+ 370.48433957246027
+ noDriver
+ A
+ 0.0
+
+ 77
+ 12.206555615733702
+ 102.2065556157337
+
+
+ 75
+ 103.2065556157337
+ 193.2065556157337
+
+
+ 72
+ 198.5917204228682
+ 352.0
+
+
+ 82
+ 357.8309518948453
+ 540.0
+
+
+ 71
+ 543.0
+ 633.0
+
+
+ 74
+ 635.0
+ 725.0
+
+
+ 78
+ 728.0
+ 824.0
+
+
+ 76
+ 829.3851648071345
+ 919.3851648071345
+
+
+ 79
+ 921.3851648071345
+ 1011.3851648071345
+
+ 1027.1965531079763
+
+
+ 360.9658621457393
+ noDriver
+ A
+ 0.0
+
+ 73
+ 14.142135623730951
+ 261.0
+
+
+ 84
+ 266.8309518948453
+ 443.0
+
+ 462.8494332412792
+
+
+ 336.11724276862367
+ noDriver
+ A
+ 0.0
+
+ 30
+ 10.0
+ 100.0
+
+
+ 34
+ 105.0
+ 195.0
+
+
+ 35
+ 197.0
+ 287.0
+
+
+ 37
+ 289.0
+ 379.0
+
+ 396.11724276862367
+
+
+ 396.97072464514815
+ noDriver
+ A
+ 0.0
+
+ 67
+ 35.0
+ 125.0
+
+
+ 64
+ 130.38516480713452
+ 276.0
+
+
+ 63
+ 281.3851648071345
+ 376.0
+
+ 421.1774279923061
+
+
+ 420.72702457661836
+ noDriver
+ A
+ 0.0
+
+ 65
+ 35.05709628591621
+ 185.0
+
+
+ 66
+ 195.19803902718556
+ 475.0
+
+
+ 68
+ 477.0
+ 567.0
+
+
+ 70
+ 570.0
+ 660.0
+
+
+ 69
+ 670.4403065089106
+ 760.4403065089106
+
+ 795.4974027948268
+
+
+ 382.09803902718556
+ noDriver
+ A
+ 0.0
+
+ 39
+ 20.0
+ 448.0
+
+
+ 40
+ 453.0
+ 543.0
+
+
+ 38
+ 546.0
+ 636.0
+
+
+ 36
+ 638.0
+ 728.0
+
+
+ 33
+ 731.0
+ 822.0
+
+
+ 32
+ 825.0
+ 915.0
+
+
+ 31
+ 917.0
+ 1007.0
+
+ 1017.1980390271856
+
+
+ 382.08680693813784
+ noDriver
+ A
+ 0.0
+
+ 42
+ 31.622776601683793
+ 121.6227766016838
+
+
+ 43
+ 123.6227766016838
+ 213.6227766016838
+
+
+ 41
+ 219.0079414088183
+ 309.0079414088183
+
+
+ 45
+ 314.0079414088183
+ 404.0079414088183
+
+ 442.08680693813784
+
+
+ 421.4526583493026
+ noDriver
+ A
+ 0.0
+
+ 47
+ 39.293765408777
+ 473.0
+
+
+ 48
+ 475.0
+ 569.0
+
+
+ 49
+ 574.0
+ 664.0
+
+
+ 46
+ 669.0
+ 759.0
+
+
+ 44
+ 762.0
+ 852.0
+
+ 884.3882694814033
+
+
+ 396.9751783773217
+ noDriver
+ A
+ 0.0
+
+ 108
+ 30.805843601498726
+ 120.80584360149872
+
+
+ 106
+ 126.19100840863322
+ 216.19100840863322
+
+
+ 104
+ 221.57617321576774
+ 375.0
+
+
+ 102
+ 378.605551275464
+ 468.605551275464
+
+
+ 103
+ 470.605551275464
+ 565.0
+
+ 608.0116263352131
+
+
+ 442.4061783214535
+ noDriver
+ A
+ 0.0
+
+ 86
+ 52.20153254455275
+ 293.0
+
+
+ 81
+ 298.0
+ 388.0
+
+
+ 80
+ 393.0
+ 483.0
+
+
+ 83
+ 486.0
+ 576.0
+
+
+ 87
+ 580.0
+ 670.0
+
+
+ 89
+ 671.0
+ 761.0
+
+
+ 90
+ 766.3851648071345
+ 859.0
+
+ 910.478150704935
+
+
+ 348.0936045857849
+ noDriver
+ A
+ 0.0
+
+ 53
+ 16.55294535724685
+ 106.55294535724684
+
+
+ 52
+ 109.55294535724684
+ 199.55294535724684
+
+
+ 51
+ 201.55294535724684
+ 291.5529453572468
+
+
+ 50
+ 293.5529453572468
+ 383.5529453572468
+
+
+ 54
+ 386.5529453572468
+ 476.5529453572468
+
+ 498.0936045857848
+
+
+ 398.9184017049979
+ noDriver
+ A
+ 0.0
+
+ 56
+ 20.591260281974
+ 538.0
+
+
+ 55
+ 540.0
+ 631.0
+
+
+ 58
+ 633.0
+ 723.0
+
+
+ 61
+ 726.0
+ 816.0
+
+
+ 60
+ 818.2360679774998
+ 908.2360679774998
+
+
+ 62
+ 911.3983456376682
+ 1002.0
+
+
+ 59
+ 1005.0
+ 1095.0
+
+
+ 57
+ 1097.0
+ 1187.0
+
+ 1205.02775637732
+
+
+ 390.48077199598873
+ noDriver
+ A
+ 0.0
+
+ 23
+ 30.805843601498726
+ 120.80584360149872
+
+
+ 28
+ 127.80584360149872
+ 269.0
+
+
+ 29
+ 274.0
+ 368.0
+
+
+ 25
+ 373.0
+ 474.0
+
+ 510.0555127546399
+
+
+ 440.799048628923
+ noDriver
+ A
+ 0.0
+
+ 27
+ 33.301651610693426
+ 189.0
+
+
+ 26
+ 199.19803902718556
+ 565.0
+
+
+ 24
+ 567.0
+ 657.0
+
+
+ 22
+ 660.0
+ 750.0
+
+
+ 109
+ 780.4138126514911
+ 870.4138126514911
+
+ 903.9548323139879
+
+
+ 417.70181023477153
+ noDriver
+ A
+ 0.0
+
+ 91
+ 47.43416490252569
+ 137.43416490252568
+
+
+ 88
+ 140.43416490252568
+ 230.43416490252568
+
+
+ 93
+ 256.0466618522571
+ 355.0
+
+
+ 92
+ 358.0
+ 459.0
+
+
+ 94
+ 464.8309518948453
+ 554.8309518948454
+
+ 585.8793012873655
+
+
+ 347.21360705502025
+ noDriver
+ A
+ 0.0
+
+ 15
+ 15.132745950421556
+ 105.13274595042155
+
+
+ 13
+ 106.13274595042155
+ 196.13274595042157
+
+
+ 17
+ 198.13274595042157
+ 288.13274595042157
+
+
+ 18
+ 290.9611730751678
+ 380.9611730751678
+
+
+ 20
+ 384.5667243506318
+ 474.5667243506318
+
+
+ 21
+ 477.5667243506318
+ 567.5667243506318
+
+ 587.2136070550204
+
+
+ 398.51014755711293
+ noDriver
+ A
+ 0.0
+
+ 19
+ 20.09975124224178
+ 624.0
+
+
+ 16
+ 626.2360679774998
+ 716.2360679774998
+
+
+ 14
+ 718.4721359549997
+ 817.0
+
+
+ 12
+ 820.605551275464
+ 915.0
+
+
+ 11
+ 917.0
+ 1007.0
+
+
+ 85
+ 1010.0
+ 1100.0
+
+ 1115.8113883008418
+
+
+ 386.9734483703083
+ noDriver
+ A
+ 0.0
+
+ 100
+ 20.615528128088304
+ 110.6155281280883
+
+
+ 97
+ 115.6155281280883
+ 205.6155281280883
+
+
+ 96
+ 206.6155281280883
+ 296.6155281280883
+
+
+ 95
+ 302.0006929352228
+ 645.0
+
+
+ 98
+ 648.0
+ 738.0
+
+ 764.9258240356726
+
+
+ 443.6982451160345
+ noDriver
+ A
+ 0.0
+
+ 105
+ 37.20215047547655
+ 286.0
+
+
+ 107
+ 291.3851648071345
+ 651.0
+
+
+ 110
+ 656.0
+ 746.0
+
+
+ 99
+ 774.1602556806574
+ 864.1602556806574
+
+
+ 101
+ 867.7658069561214
+ 957.7658069561214
+
+ 980.1264867311194
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_inclShipments_iniRoutes.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_inclShipments_iniRoutes.xml
new file mode 100644
index 00000000..2b646d33
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_inclShipments_iniRoutes.xml
@@ -0,0 +1,132 @@
+
+
+
+ FINITE
+ HOMOGENEOUS
+
+
+
+ veh1
+ type1
+
+ [x=0.0][y=0.0]
+
+
+
+ [x=0.0][y=0.0]
+
+
+
+ 0.0
+ 46800.0
+
+ true
+
+
+ veh2
+ type1
+
+ [x=0.0][y=0.0]
+
+
+
+ [x=0.0][y=0.0]
+
+
+
+ 0.0
+ 64800.0
+
+ true
+
+
+
+
+ type1
+
+ 0
+
+
+ 0.0
+ 1.0
+
+
+
+
+
+
+ loc_s2
+
+
+ 0
+
+ 0.0
+
+
+ loc_s1
+
+
+ 0
+
+ 0.0
+
+
+
+
+
+
+ loc_pickup_shipment_3
+
+
+
+ loc_deliver_shipment_3
+
+
+
+ 0
+
+
+
+
+
+ loc_pickup_shipment_4
+
+
+
+ loc_deliver_shipment_4
+
+
+
+ 0
+
+
+
+
+
+
+
+ noDriver
+ veh1
+ 0.
+
+ 1
+
+
+
+
+
+ noDriver
+ veh2
+ 0.
+
+ 3
+
+
+ 3
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes.xml
new file mode 100644
index 00000000..a0b8ae6f
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes.xml
@@ -0,0 +1,88 @@
+
+
+
+ FINITE
+ HOMOGENEOUS
+
+
+
+ veh1
+ type1
+
+ [x=0.0][y=0.0]
+
+
+
+ [x=0.0][y=0.0]
+
+
+
+ 0.0
+ 46800.0
+
+ true
+
+
+ 2
+ type1
+
+ [x=0.0][y=0.0]
+
+
+
+ [x=0.0][y=0.0]
+
+
+
+ 0.0
+ 64800.0
+
+ true
+
+
+
+
+ type1
+
+ 0
+
+
+ 0.0
+ 1.0
+
+
+
+
+
+
+ loc_s2
+
+
+ 0
+
+ 0.0
+
+
+ loc_s3
+
+
+ 0
+
+ 0.0
+
+
+
+
+ noDriver
+ veh1
+ 0.
+
+ 1
+
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes_2.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes_2.xml
new file mode 100644
index 00000000..1705ba96
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes_2.xml
@@ -0,0 +1,87 @@
+
+
+
+ FINITE
+ HOMOGENEOUS
+
+
+
+ veh1
+ type1
+
+ [x=0.0][y=0.0]
+
+
+
+ [x=0.0][y=0.0]
+
+
+
+ 0.0
+ 46800.0
+
+ true
+
+
+
+
+ type1
+
+ 100
+
+
+ 0.0
+ 1.0
+
+
+
+
+
+
+
+
+ loc_pickup_shipment_3
+
+
+
+ loc_deliver_shipment_3
+
+
+
+ 100
+
+
+
+
+
+ loc_pickup_shipment_4
+
+
+
+ loc_deliver_shipment_4
+
+
+
+ 50
+
+
+
+
+
+
+
+ noDriver
+ veh1
+ 0.
+
+ 3
+
+
+ 3
+
+
+
+
+
diff --git a/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes_3.xml b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes_3.xml
new file mode 100644
index 00000000..c2602237
--- /dev/null
+++ b/jsprit-io/src/test/resources/com/graphhopper/jsprit/io/problem/simpleProblem_iniRoutes_3.xml
@@ -0,0 +1,80 @@
+
+
+
+ FINITE
+ HOMOGENEOUS
+
+
+
+ veh1
+ type1
+
+ [x=5000.0][y=5000.0]
+
+
+
+ 0.0
+ 46800.0
+
+ true
+
+
+ veh2
+ type1
+
+ [x=0.0][y=0.0]
+
+
+
+ 0.0
+ 64800.0
+
+ true
+
+
+
+
+ type1
+
+ 0
+
+
+ 0.0
+ 1.0
+
+
+
+
+
+
+ loc_s2
+
+
+ 0
+
+ 0.0
+
+
+ loc_s3
+
+
+ 0
+
+ 0.0
+
+
+
+
+ noDriver
+ veh1
+ 0.
+
+ 1
+
+
+
+
+
+