From 21e4bb09f5d057854c1a4e03bcdbdab9bcbfd2a7 Mon Sep 17 00:00:00 2001 From: oblonski <4sschroeder@gmail.com> Date: Wed, 19 Feb 2014 09:08:15 +0100 Subject: [PATCH] added non-negative restriction --- .../src/main/java/jsprit/core/problem/job/Service.java | 2 ++ .../src/main/java/jsprit/core/problem/job/Shipment.java | 4 +++- .../java/jsprit/core/problem/vehicle/VehicleTypeImpl.java | 2 ++ .../src/test/java/jsprit/core/problem/job/ServiceTest.java | 2 +- .../src/test/java/jsprit/core/problem/job/ShipmentTest.java | 6 ++++++ .../jsprit/core/problem/vehicle/VehicleTypeImplTest.java | 2 +- 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/jsprit-core/src/main/java/jsprit/core/problem/job/Service.java b/jsprit-core/src/main/java/jsprit/core/problem/job/Service.java index a802604a..8ba8327d 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/job/Service.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/job/Service.java @@ -160,8 +160,10 @@ public class Service implements Job { * @param dimensionIndex * @param dimensionValue * @return the builder + * @throws IllegalArgumentException if dimensionValue < 0 */ public Builder addCapacityDimension(int dimensionIndex, int dimensionValue){ + if(dimensionValue<0) throw new IllegalArgumentException("capacity value cannot be negative"); capacityBuilder.addDimension(dimensionIndex, dimensionValue); return this; } diff --git a/jsprit-core/src/main/java/jsprit/core/problem/job/Shipment.java b/jsprit-core/src/main/java/jsprit/core/problem/job/Shipment.java index e2b7adb0..8e53f2a7 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/job/Shipment.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/job/Shipment.java @@ -212,9 +212,11 @@ public class Shipment implements Job{ * * @param dimIndex * @param dimVal - * @return + * @return builder + * @throws IllegalArgumentException if dimVal < 0 */ public Builder addCapacityDimension(int dimIndex, int dimVal) { + if(dimVal<0) throw new IllegalArgumentException("capacity value cannot be negative"); capacityBuilder.addDimension(dimIndex, dimVal); return this; } diff --git a/jsprit-core/src/main/java/jsprit/core/problem/vehicle/VehicleTypeImpl.java b/jsprit-core/src/main/java/jsprit/core/problem/vehicle/VehicleTypeImpl.java index f0c6cae3..44352506 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/vehicle/VehicleTypeImpl.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/vehicle/VehicleTypeImpl.java @@ -193,8 +193,10 @@ public class VehicleTypeImpl implements VehicleType { * @param dimIndex * @param dimVal * @return the builder + * @throws IllegalArgumentException if dimVal < 0 */ public Builder addCapacityDimension(int dimIndex, int dimVal) { + if(dimVal<0) throw new IllegalArgumentException("capacity value cannot be negative"); capacityBuilder.addDimension(dimIndex,dimVal); return this; } diff --git a/jsprit-core/src/test/java/jsprit/core/problem/job/ServiceTest.java b/jsprit-core/src/test/java/jsprit/core/problem/job/ServiceTest.java index 14d7bb68..1debf0ac 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/job/ServiceTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/job/ServiceTest.java @@ -60,7 +60,7 @@ public class ServiceTest { assertTrue(serviceSet.isEmpty()); } - @Test(expected=IllegalStateException.class) + @Test(expected=IllegalArgumentException.class) public void whenCapacityDimValueIsNegative_throwIllegalStateExpception(){ @SuppressWarnings("unused") Service s = Service.Builder.newInstance("s").setLocationId("foo").addCapacityDimension(0, -10).build(); diff --git a/jsprit-core/src/test/java/jsprit/core/problem/job/ShipmentTest.java b/jsprit-core/src/test/java/jsprit/core/problem/job/ShipmentTest.java index 138b3695..1cc95988 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/job/ShipmentTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/job/ShipmentTest.java @@ -44,6 +44,12 @@ public class ShipmentTest { Shipment one = Shipment.Builder.newInstance("s", -10).setPickupLocation("foo").setDeliveryLocation("foofoo").build(); } + @Test(expected=IllegalArgumentException.class) + public void whenShipmentIsBuiltWithNegativeDemand_itShouldThrowException_v2(){ + @SuppressWarnings("unused") + Shipment one = Shipment.Builder.newInstance("s").addCapacityDimension(0, -10).setPickupLocation("foo").setDeliveryLocation("foofoo").build(); + } + @Test(expected=IllegalArgumentException.class) public void whenIdIsNull_itShouldThrowException(){ @SuppressWarnings("unused") diff --git a/jsprit-core/src/test/java/jsprit/core/problem/vehicle/VehicleTypeImplTest.java b/jsprit-core/src/test/java/jsprit/core/problem/vehicle/VehicleTypeImplTest.java index 5bb562d0..7f5adb4f 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/vehicle/VehicleTypeImplTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/vehicle/VehicleTypeImplTest.java @@ -7,7 +7,7 @@ import org.junit.Test; public class VehicleTypeImplTest { - @Test(expected=IllegalStateException.class) + @Test(expected=IllegalArgumentException.class) public void whenTypeHasNegativeCapacityVal_throwIllegalStateExpception(){ @SuppressWarnings("unused") VehicleTypeImpl type = VehicleTypeImpl.Builder.newInstance("t").addCapacityDimension(0,-10).build();