From 8272554e8e6b5a9cc7890da2272a5b4d3f7716ef Mon Sep 17 00:00:00 2001 From: oblonski <4sschroeder@gmail.com> Date: Tue, 14 Jan 2014 09:44:38 -0500 Subject: [PATCH] add and test .getAddedVehicleTypes() --- .../core/problem/VehicleRoutingProblem.java | 9 ++++ .../problem/VehicleRoutingProblemTest.java | 42 +++++++++++++++++++ 2 files changed, 51 insertions(+) diff --git a/jsprit-core/src/main/java/jsprit/core/problem/VehicleRoutingProblem.java b/jsprit-core/src/main/java/jsprit/core/problem/VehicleRoutingProblem.java index 2ba256cb..4e98f7ca 100644 --- a/jsprit-core/src/main/java/jsprit/core/problem/VehicleRoutingProblem.java +++ b/jsprit-core/src/main/java/jsprit/core/problem/VehicleRoutingProblem.java @@ -339,6 +339,15 @@ public class VehicleRoutingProblem { return Collections.unmodifiableCollection(vehicles); } + /** + * Gets an unmodifiable collection of already added vehicle-types. + * + * @returns collection of vehicle-types + */ + public Collection getAddedVehicleTypes(){ + return Collections.unmodifiableCollection(vehicleTypes); + } + /** * Adds constraint to problem. * diff --git a/jsprit-core/src/test/java/jsprit/core/problem/VehicleRoutingProblemTest.java b/jsprit-core/src/test/java/jsprit/core/problem/VehicleRoutingProblemTest.java index f2038953..f9030222 100644 --- a/jsprit-core/src/test/java/jsprit/core/problem/VehicleRoutingProblemTest.java +++ b/jsprit-core/src/test/java/jsprit/core/problem/VehicleRoutingProblemTest.java @@ -36,6 +36,7 @@ import jsprit.core.problem.job.Shipment; import jsprit.core.problem.solution.route.activity.TourActivity; import jsprit.core.problem.vehicle.Vehicle; import jsprit.core.problem.vehicle.VehicleImpl; +import jsprit.core.problem.vehicle.VehicleType; import jsprit.core.problem.vehicle.VehicleTypeImpl; import org.junit.Test; @@ -278,5 +279,46 @@ public class VehicleRoutingProblemTest { VehicleRoutingProblem problem = builder.build(); assertEquals(4.0,problem.getTransportCosts().getTransportCost("", "", 0.0, null, null),0.01); } + + @Test + public void whenAddingAVehicle_getAddedVehicleTypesShouldReturnItsType(){ + VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); + VehicleType type = VehicleTypeImpl.Builder.newInstance("type", 0).build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setLocationId("loc").setType(type).build(); + builder.addVehicle(vehicle); + + assertEquals(1,builder.getAddedVehicleTypes().size()); + assertEquals(type,builder.getAddedVehicleTypes().iterator().next()); + + } + + @Test + public void whenAddingTwoVehicleWithSameType_getAddedVehicleTypesShouldReturnOnlyOneType(){ + VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); + VehicleType type = VehicleTypeImpl.Builder.newInstance("type", 0).build(); + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setLocationId("loc").setType(type).build(); + Vehicle vehicle2 = VehicleImpl.Builder.newInstance("v").setLocationId("loc").setType(type).build(); + + builder.addVehicle(vehicle); + builder.addVehicle(vehicle2); + + assertEquals(1,builder.getAddedVehicleTypes().size()); + assertEquals(type,builder.getAddedVehicleTypes().iterator().next()); + } + @Test + public void whenAddingTwoVehicleWithDiffType_getAddedVehicleTypesShouldReturnTheseType(){ + VehicleRoutingProblem.Builder builder = VehicleRoutingProblem.Builder.newInstance(); + VehicleType type = VehicleTypeImpl.Builder.newInstance("type", 0).build(); + VehicleType type2 = VehicleTypeImpl.Builder.newInstance("type2", 0).build(); + + Vehicle vehicle = VehicleImpl.Builder.newInstance("v").setLocationId("loc").setType(type).build(); + Vehicle vehicle2 = VehicleImpl.Builder.newInstance("v").setLocationId("loc").setType(type2).build(); + + builder.addVehicle(vehicle); + builder.addVehicle(vehicle2); + + assertEquals(2,builder.getAddedVehicleTypes().size()); + + } }