1
0
Fork 0
mirror of https://github.com/graphhopper/jsprit.git synced 2020-01-24 07:45:05 +01:00

replace deprecated methods

This commit is contained in:
oblonski 2015-03-09 21:49:30 +01:00
parent db0cdbe310
commit 62e12d5153
23 changed files with 291 additions and 327 deletions

View file

@ -16,30 +16,37 @@
******************************************************************************/
package jsprit.instance.reader;
import static org.junit.Assert.assertEquals;
import jsprit.core.problem.VehicleRoutingProblem;
import jsprit.core.problem.VehicleRoutingProblem.FleetSize;
import jsprit.core.problem.job.Service;
import jsprit.core.problem.vehicle.Vehicle;
import jsprit.instance.reader.ChristofidesReader;
import org.junit.Test;
import java.net.URL;
import static org.junit.Assert.assertEquals;
public class ChristophidesReaderTest {
@Test
public void whenReadingInstance_nuOfCustomersIsCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new ChristofidesReader(builder).read(this.getClass().getClassLoader().getResource("vrpnc1.txt").getPath());
new ChristofidesReader(builder).read(getPath("vrpnc1.txt"));
VehicleRoutingProblem vrp = builder.build();
assertEquals(50,vrp.getJobs().values().size());
}
private String getPath(String string) {
URL resource = this.getClass().getClassLoader().getResource(string);
if(resource == null) throw new IllegalStateException("resource " + string + " does not exist");
return resource.getPath();
}
@Test
public void whenReadingInstance_fleetSizeIsInfinite(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new ChristofidesReader(builder).read(this.getClass().getClassLoader().getResource("vrpnc1.txt").getPath());
new ChristofidesReader(builder).read(getPath("vrpnc1.txt"));
VehicleRoutingProblem vrp = builder.build();
assertEquals(FleetSize.INFINITE,vrp.getFleetSize());
}
@ -47,7 +54,7 @@ public class ChristophidesReaderTest {
@Test
public void whenReadingInstance_vehicleCapacitiesAreCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new ChristofidesReader(builder).read(this.getClass().getClassLoader().getResource("vrpnc1.txt").getPath());
new ChristofidesReader(builder).read(getPath("vrpnc1.txt"));
VehicleRoutingProblem vrp = builder.build();
for(Vehicle v : vrp.getVehicles()){
assertEquals(160,v.getType().getCapacityDimensions().get(0));
@ -57,18 +64,18 @@ public class ChristophidesReaderTest {
@Test
public void whenReadingInstance_vehicleLocationsAreCorrect_and_correspondToDepotLocation(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new ChristofidesReader(builder).read(this.getClass().getClassLoader().getResource("vrpnc1.txt").getPath());
new ChristofidesReader(builder).read(getPath("vrpnc1.txt"));
VehicleRoutingProblem vrp = builder.build();
for(Vehicle v : vrp.getVehicles()){
assertEquals(30.0,v.getStartLocationCoordinate().getX(),0.01);
assertEquals(40.0,v.getStartLocationCoordinate().getY(),0.01);
assertEquals(30.0,v.getStartLocation().getCoordinate().getX(),0.01);
assertEquals(40.0,v.getStartLocation().getCoordinate().getY(),0.01);
}
}
@Test
public void whenReadingInstance_vehicleDurationsAreCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new ChristofidesReader(builder).read(this.getClass().getClassLoader().getResource("vrpnc13.txt").getPath());
new ChristofidesReader(builder).read(getPath("vrpnc13.txt"));
VehicleRoutingProblem vrp = builder.build();
for(Vehicle v : vrp.getVehicles()){
assertEquals(0.0,v.getEarliestDeparture(),0.01);
@ -79,7 +86,7 @@ public class ChristophidesReaderTest {
@Test
public void whenReadingInstance_demandOfCustomerOneIsCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new ChristofidesReader(builder).read(this.getClass().getClassLoader().getResource("vrpnc1.txt").getPath());
new ChristofidesReader(builder).read(getPath("vrpnc1.txt"));
VehicleRoutingProblem vrp = builder.build();
assertEquals(7,vrp.getJobs().get("1").getSize().get(0));
}
@ -87,7 +94,7 @@ public class ChristophidesReaderTest {
@Test
public void whenReadingInstance_serviceDurationOfCustomerTwoIsCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new ChristofidesReader(builder).read(this.getClass().getClassLoader().getResource("vrpnc13.txt").getPath());
new ChristofidesReader(builder).read(getPath("vrpnc13.txt"));
VehicleRoutingProblem vrp = builder.build();
assertEquals(50.0,((Service)vrp.getJobs().get("2")).getServiceDuration(),0.1);
}

View file

@ -22,6 +22,8 @@ import jsprit.core.problem.job.Service;
import jsprit.core.problem.vehicle.Vehicle;
import org.junit.Test;
import java.net.URL;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
@ -31,15 +33,21 @@ public class CordeauReaderTest {
@Test
public void testCordeauReader(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
vrpBuilder.build();
}
private String getPath(String string) {
URL resource = this.getClass().getClassLoader().getResource(string);
if(resource == null) throw new IllegalStateException("resource " + string + " does not exist");
return resource.getPath();
}
@Test
public void whenReadingInstance_fleetSizeIsFinite(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(FleetSize.FINITE, vrp.getFleetSize());
}
@ -47,7 +55,7 @@ public class CordeauReaderTest {
@Test
public void testNuOfVehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(16,vrp.getVehicles().size());
@ -56,7 +64,7 @@ public class CordeauReaderTest {
@Test
public void whenReadingCordeauInstance_vehiclesHaveTheCorrectCapacity(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
for(Vehicle v : vrp.getVehicles()){
assertEquals(80, v.getType().getCapacityDimensions().get(0));
@ -66,7 +74,7 @@ public class CordeauReaderTest {
@Test
public void whenReadingCordeauInstance_vehiclesHaveTheCorrectDuration(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p08").getPath());
new CordeauReader(vrpBuilder).read(getPath("p08"));
VehicleRoutingProblem vrp = vrpBuilder.build();
for(Vehicle v : vrp.getVehicles()){
assertEquals(0.0,v.getEarliestDeparture(),0.1);
@ -77,7 +85,7 @@ public class CordeauReaderTest {
@Test
public void whenReadingCustomersCordeauInstance_customerOneShouldHaveCorrectCoordinates(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Service service = (Service) vrp.getJobs().get("1");
assertEquals(37.0, service.getLocation().getCoordinate().getX(), 0.1);
@ -87,7 +95,7 @@ public class CordeauReaderTest {
@Test
public void whenReadingCustomersCordeauInstance_customerTwoShouldHaveCorrectServiceDuration(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Service service = (Service) vrp.getJobs().get("2");
assertEquals(0.0, service.getServiceDuration(), 0.1);
@ -96,7 +104,7 @@ public class CordeauReaderTest {
@Test
public void whenReadingCustomersCordeauInstance_customerThreeShouldHaveCorrectDemand(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Service service = (Service) vrp.getJobs().get("3");
assertEquals(16.0, service.getSize().get(0), 0.1);
@ -105,7 +113,7 @@ public class CordeauReaderTest {
@Test
public void whenReadingCustomersCordeauInstance_customerFortySevenShouldHaveCorrectDemand(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Service service = (Service) vrp.getJobs().get("47");
assertEquals(25.0, service.getSize().get(0), 0.1);
@ -114,7 +122,7 @@ public class CordeauReaderTest {
@Test
public void testLocationsAndCapOfVehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
boolean capacityOk = true;
boolean loc1ok = false;
@ -123,10 +131,10 @@ public class CordeauReaderTest {
boolean loc4ok = false;
for(Vehicle v : vrp.getVehicles()){
if(v.getType().getCapacityDimensions().get(0) != 80) capacityOk = false;
if(v.getStartLocationCoordinate().getX() == 20.0 && v.getStartLocationCoordinate().getY() == 20.0) loc1ok = true;
if(v.getStartLocationCoordinate().getX() == 30.0 && v.getStartLocationCoordinate().getY() == 40.0) loc2ok = true;
if(v.getStartLocationCoordinate().getX() == 50.0 && v.getStartLocationCoordinate().getY() == 30.0) loc3ok = true;
if(v.getStartLocationCoordinate().getX() == 60.0 && v.getStartLocationCoordinate().getY() == 50.0) loc4ok = true;
if(v.getStartLocation().getCoordinate().getX() == 20.0 && v.getStartLocation().getCoordinate().getY() == 20.0) loc1ok = true;
if(v.getStartLocation().getCoordinate().getX() == 30.0 && v.getStartLocation().getCoordinate().getY() == 40.0) loc2ok = true;
if(v.getStartLocation().getCoordinate().getX() == 50.0 && v.getStartLocation().getCoordinate().getY() == 30.0) loc3ok = true;
if(v.getStartLocation().getCoordinate().getX() == 60.0 && v.getStartLocation().getCoordinate().getY() == 50.0) loc4ok = true;
}
assertTrue(capacityOk);
assertTrue(loc1ok);
@ -138,7 +146,7 @@ public class CordeauReaderTest {
@Test
public void testNuOfCustomers(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new CordeauReader(vrpBuilder).read(this.getClass().getClassLoader().getResource("p01").getPath());
new CordeauReader(vrpBuilder).read(getPath("p01"));
VehicleRoutingProblem vrp = vrpBuilder.build();
assertEquals(50,vrp.getJobs().values().size());
}

View file

@ -25,6 +25,8 @@ import jsprit.core.util.Coordinate;
import jsprit.instance.reader.VrphGoldenReader.VrphType;
import org.junit.Test;
import java.net.URL;
import static org.junit.Assert.*;
public class GoldenReaderTest {
@ -33,21 +35,22 @@ public class GoldenReaderTest {
public void whenReadingInstance_itShouldReadCorrectNuOfVehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int nuOfVehicles = 0;
for(Vehicle v : vrp.getVehicles()){
nuOfVehicles++;
assertEquals(17,vrp.getVehicles().size());
}
}
assertEquals(17,nuOfVehicles);
private String getPath(String string) {
URL resource = this.getClass().getClassLoader().getResource(string);
if(resource == null) throw new IllegalStateException("resource " + string + " does not exist");
return resource.getPath();
}
@Test
public void whenReadingInstance_itShouldReadCorrectNuOfType1Vehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int nuOfType1Vehicles = 0;
for(Vehicle v : vrp.getVehicles()){
@ -62,7 +65,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_theSumOfType1VehicleShouldHvTheCorrectCapacity(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int sumOfType1Cap = 0;
for(Vehicle v : vrp.getVehicles()){
@ -77,7 +80,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_itShouldReadCorrectNuOfType2Vehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int nuOfType1Vehicles = 0;
for(Vehicle v : vrp.getVehicles()){
@ -92,7 +95,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_theSumOfType2VehicleShouldHvTheCorrectCapacity(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int sumOfType1Cap = 0;
for(Vehicle v : vrp.getVehicles()){
@ -107,7 +110,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_itShouldReadCorrectNuOfType3Vehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int nuOfType1Vehicles = 0;
for(Vehicle v : vrp.getVehicles()){
@ -122,7 +125,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_theSumOfType3VehicleShouldHvTheCorrectCapacity(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int sumOfType1Cap = 0;
for(Vehicle v : vrp.getVehicles()){
@ -137,7 +140,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_itShouldReadCorrectNuOfType4Vehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int nuOfType1Vehicles = 0;
for(Vehicle v : vrp.getVehicles()){
@ -152,7 +155,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_theSumOfType4VehicleShouldHvTheCorrectCapacity(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int sumOfType1Cap = 0;
for(Vehicle v : vrp.getVehicles()){
@ -167,7 +170,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_itShouldReadCorrectNuOfType5Vehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int nuOfType1Vehicles = 0;
for(Vehicle v : vrp.getVehicles()){
@ -182,7 +185,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_theSumOfType5VehicleShouldHvTheCorrectCapacity(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int sumOfType1Cap = 0;
for(Vehicle v : vrp.getVehicles()){
@ -197,7 +200,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_itShouldReadCorrectNuOfType6Vehicles(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int nuOfType1Vehicles = 0;
for(Vehicle v : vrp.getVehicles()){
@ -212,7 +215,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_theSumOfType6VehicleShouldHvTheCorrectCapacity(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
int sumOfType1Cap = 0;
for(Vehicle v : vrp.getVehicles()){
@ -227,13 +230,13 @@ public class GoldenReaderTest {
public void whenReadingInstance_vehicleShouldHvTheCorrectCoord(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
for(Vehicle v : vrp.getVehicles()){
if(v.getStartLocationCoordinate().getX() != 40.0){
if(v.getStartLocation().getCoordinate().getX() != 40.0){
assertFalse(true);
}
if(v.getStartLocationCoordinate().getY() != 40.0){
if(v.getStartLocation().getCoordinate().getY() != 40.0){
assertFalse(true);
}
}
@ -244,7 +247,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_service1MustHaveCorrectDemand(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Job job = getJob("1",vrp);
assertEquals(18,job.getSize().get(0));
@ -254,7 +257,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_service1MustHaveCorrectCoordinate(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Coordinate coord = getCoord("1",vrp);
assertEquals(22.0,coord.getX(),0.01);
@ -265,7 +268,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_service15MustHaveCorrectCoordinate(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Coordinate coord = getCoord("15",vrp);
assertEquals(62.0,coord.getX(),0.01);
@ -278,7 +281,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_service50MustHaveCorrectCoordinate(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Coordinate coord = getCoord("50",vrp);
assertEquals(15.0,coord.getX(),0.01);
@ -294,7 +297,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_service4MustHaveCorrectDemand(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Job job = getJob("4",vrp);
assertEquals(30,job.getSize().get(0));
@ -304,7 +307,7 @@ public class GoldenReaderTest {
public void whenReadingInstance_service50MustHaveCorrectDemand(){
VehicleRoutingProblem.Builder vrpBuilder = VehicleRoutingProblem.Builder.newInstance();
new VrphGoldenReader(vrpBuilder, VrphType.HVRPD)
.read(this.getClass().getClassLoader().getResource("cn_13mix.txt").getPath());
.read(getPath("cn_13mix.txt"));
VehicleRoutingProblem vrp = vrpBuilder.build();
Job job = getJob("50",vrp);
assertEquals(22,job.getSize().get(0));

View file

@ -16,30 +16,37 @@
******************************************************************************/
package jsprit.instance.reader;
import static org.junit.Assert.assertEquals;
import jsprit.core.problem.VehicleRoutingProblem;
import jsprit.core.problem.VehicleRoutingProblem.FleetSize;
import jsprit.core.problem.job.Service;
import jsprit.core.problem.vehicle.Vehicle;
import jsprit.instance.reader.SolomonReader;
import org.junit.Test;
import java.net.URL;
import static org.junit.Assert.assertEquals;
public class SolomonReaderTest {
@Test
public void whenReadingSolomonInstance_nuOfCustomersIsCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new SolomonReader(builder).read(this.getClass().getClassLoader().getResource("C101_solomon.txt").getPath());
new SolomonReader(builder).read(getPath());
VehicleRoutingProblem vrp = builder.build();
assertEquals(100,vrp.getJobs().values().size());
}
private String getPath() {
URL resource = getClass().getClassLoader().getResource("C101_solomon.txt");
if(resource == null) throw new IllegalStateException("file C101_solomon.txt does not exist");
return resource.getPath();
}
@Test
public void whenReadingSolomonInstance_fleetSizeIsInfinite(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new SolomonReader(builder).read(this.getClass().getClassLoader().getResource("C101_solomon.txt").getPath());
new SolomonReader(builder).read(getPath());
VehicleRoutingProblem vrp = builder.build();
assertEquals(FleetSize.INFINITE,vrp.getFleetSize());
}
@ -47,7 +54,7 @@ public class SolomonReaderTest {
@Test
public void whenReadingSolomonInstance_vehicleCapacitiesAreCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new SolomonReader(builder).read(this.getClass().getClassLoader().getResource("C101_solomon.txt").getPath());
new SolomonReader(builder).read(getPath());
VehicleRoutingProblem vrp = builder.build();
for(Vehicle v : vrp.getVehicles()){
assertEquals(200,v.getType().getCapacityDimensions().get(0));
@ -57,18 +64,18 @@ public class SolomonReaderTest {
@Test
public void whenReadingSolomonInstance_vehicleLocationsAreCorrect_and_correspondToDepotLocation(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new SolomonReader(builder).read(this.getClass().getClassLoader().getResource("C101_solomon.txt").getPath());
new SolomonReader(builder).read(getPath());
VehicleRoutingProblem vrp = builder.build();
for(Vehicle v : vrp.getVehicles()){
assertEquals(40.0,v.getStartLocationCoordinate().getX(),0.01);
assertEquals(50.0,v.getStartLocationCoordinate().getY(),0.01);
assertEquals(40.0,v.getStartLocation().getCoordinate().getX(),0.01);
assertEquals(50.0,v.getStartLocation().getCoordinate().getY(),0.01);
}
}
@Test
public void whenReadingSolomonInstance_demandOfCustomerOneIsCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new SolomonReader(builder).read(this.getClass().getClassLoader().getResource("C101_solomon.txt").getPath());
new SolomonReader(builder).read(getPath());
VehicleRoutingProblem vrp = builder.build();
assertEquals(10,vrp.getJobs().get("1").getSize().get(0));
}
@ -76,7 +83,7 @@ public class SolomonReaderTest {
@Test
public void whenReadingSolomonInstance_serviceDurationOfCustomerTwoIsCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new SolomonReader(builder).read(this.getClass().getClassLoader().getResource("C101_solomon.txt").getPath());
new SolomonReader(builder).read(getPath());
VehicleRoutingProblem vrp = builder.build();
assertEquals(90,((Service)vrp.getJobs().get("2")).getServiceDuration(),0.1);
}
@ -84,7 +91,7 @@ public class SolomonReaderTest {
@Test
public void whenReadingSolomonInstance_earliestServiceStartTimeOfCustomerSixtyTwoIsCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new SolomonReader(builder).read(this.getClass().getClassLoader().getResource("C101_solomon.txt").getPath());
new SolomonReader(builder).read(getPath());
VehicleRoutingProblem vrp = builder.build();
assertEquals(262.0,((Service)vrp.getJobs().get("62")).getTimeWindow().getStart(),0.1);
}
@ -92,7 +99,7 @@ public class SolomonReaderTest {
@Test
public void whenReadingSolomonInstance_latestServiceStartTimeOfCustomerEightySevenIsCorrect(){
VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance();
new SolomonReader(builder).read(this.getClass().getClassLoader().getResource("C101_solomon.txt").getPath());
new SolomonReader(builder).read(getPath());
VehicleRoutingProblem vrp = builder.build();
assertEquals(144.0,((Service)vrp.getJobs().get("87")).getTimeWindow().getEnd(),0.1);
}