diff --git a/jsprit-core/src/test/java/jsprit/core/algorithm/FiniteVehicleFleetManagerIdentifiesDistinctVehicle_IT.java b/jsprit-core/src/test/java/jsprit/core/algorithm/FiniteVehicleFleetManagerIdentifiesDistinctVehicle_IT.java new file mode 100644 index 00000000..5ce610aa --- /dev/null +++ b/jsprit-core/src/test/java/jsprit/core/algorithm/FiniteVehicleFleetManagerIdentifiesDistinctVehicle_IT.java @@ -0,0 +1,41 @@ +package jsprit.core.algorithm; + +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import jsprit.core.algorithm.box.SchrimpfFactory; +import jsprit.core.algorithm.recreate.NoSolutionFoundException; +import jsprit.core.problem.VehicleRoutingProblem; +import jsprit.core.problem.io.VrpXMLReader; +import jsprit.core.problem.solution.VehicleRoutingProblemSolution; + +import org.junit.Test; + +public class FiniteVehicleFleetManagerIdentifiesDistinctVehicle_IT { + + @Test + public void whenEmployingVehicleWhereOnlyOneDistinctVehicleCanServeAParticularJob_algorithmShouldFoundDistinctSolution(){ + final List testFailed = new ArrayList(); + for(int i=0;i<10;i++){ + VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance(); + new VrpXMLReader(vrpBuilder).read("src/test/resources/biggerProblem.xml"); + VehicleRoutingProblem vrp = vrpBuilder.build(); + + VehicleRoutingAlgorithm vra = new SchrimpfFactory().createAlgorithm(vrp); + vra.setNuOfIterations(10); + try{ + @SuppressWarnings("unused") + Collection solutions = vra.searchSolutions(); + } + catch(NoSolutionFoundException e){ + testFailed.add(true); + } + } + System.out.println("failed: " + testFailed.size()); + assertTrue(testFailed.isEmpty()); + } + +} diff --git a/jsprit-core/src/test/resources/biggerProblem.xml b/jsprit-core/src/test/resources/biggerProblem.xml new file mode 100644 index 00000000..c784a699 --- /dev/null +++ b/jsprit-core/src/test/resources/biggerProblem.xml @@ -0,0 +1,643 @@ + + + + FINITE + HOMOGENEOUS + + + + 18 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 19 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 39600.0 + 64800.0 + + true + + + 20 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 7 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 23 + 5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 11 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 3 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 1 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 12 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 22 + 5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 15 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 16 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 9 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 4 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 2 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 24 + 5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 5 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 17 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 25 + 5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 13 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 27 + 8T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 6 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 10 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 8 + 1.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 26 + 8T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 14 + 3.5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + 21 + 5T + + [x=0.0][y=0.0] + + + + [x=0.0][y=0.0] + + + + 14400.0 + 46800.0 + + true + + + + + 1.5T + + 0 + + + 0.0 + 1.0 + + + + + 3.5T + + 0 + + + 0.0 + 1.0 + + + + + 5T + + 0 + + + 0.0 + 1.0 + + + + + 8T + + 0 + + + 0.0 + 1.0 + + + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 21600.0 + 36000.0 + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 21600.0 + 36000.0 + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 19800.0 + 21600.0 + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 21600.0 + 43200.0 + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 21600.0 + 43200.0 + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 21600.0 + 36000.0 + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 21600.0 + 36000.0 + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 54000.0 + 64800.0 + + + + + [x=1000.0][y=1000.0] + + + 0 + + 0.0 + + + 21600.0 + 50400.0 + + + + +