/** * Registers the objects to the two supplied models. * @param rm The road model. * @param pm The pdp model. * @param objs The objects to register. */ public static void register(RoadModel rm, PDPModel pm, PDPObject... objs) { for (final PDPObject obj : objs) { rm.register(obj); pm.register(obj); } }
@Test(expected = IllegalStateException.class) public void containerSetCapacityFail() { final Depot d = new TestDepot(10); model.register(d); rm.register(d); d.setCapacity(20); }
@Test(expected = IllegalArgumentException.class) public void testPickupFail3B() { // package is not registered final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); final Parcel pack1 = Parcel.builder(new Point(0, 0), new Point(2, 2)) .neededCapacity(2d) .build(); rm.register(pack1); rm.addObjectAtSamePosition(pack1, truck); model.pickup(truck, pack1, TimeLapseFactory.create(0, 1)); }
@Test(expected = IllegalArgumentException.class) public void testPickupFail4() { final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); final Parcel pack1 = Parcel.builder(new Point(0, 0), new Point(2, 2)) .neededCapacity(2d) .build(); rm.register(pack1); rm.addObjectAtSamePosition(pack1, truck); model.register(pack1); model.pickup(truck, pack1, TimeLapseFactory.create(0, 1)); }
@Test(expected = IllegalStateException.class) public void objectSetStartPositionFail() { final Depot d = new TestDepot(10); model.register(d); assertEquals(model, d.getPDPModel()); rm.register(d); assertEquals(rm, d.getRoadModel()); d.setStartPosition(new Point(0, 0)); }
@Test(expected = IllegalArgumentException.class) public void testPickupFail5() { // wrong position final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); model.register(truck); final Parcel pack1 = Parcel.builder(new Point(0, 0), new Point(2, 2)) .neededCapacity(2d) .build(); rm.register(pack1); rm.addObjectAt(pack1, new Point(0, 0)); model.register(pack1); model.pickup(truck, pack1, TimeLapseFactory.create(0, 1)); }
@Test(expected = IllegalArgumentException.class) public void testPickupFail6A() { // package does not fit in truck final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); model.register(truck); final Parcel pack1 = Parcel.builder(new Point(0, 0), new Point(2, 2)) .neededCapacity(2d) .build(); rm.register(pack1); model.register(pack1); rm.addObjectAtSamePosition(pack1, truck); assertTrue(rm.equalPosition(truck, pack1)); model.pickup(truck, pack1, TimeLapseFactory.create(0, 100)); }
@Test(expected = IllegalArgumentException.class) public void testDeliverFail3() { final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); model.register(truck); final Parcel pack1 = Parcel.builder(new Point(1, 1), new Point(2, 2)) .pickupDuration(10) .deliveryDuration(10) .neededCapacity(2d) .build(); rm.register(pack1); model.register(pack1); rm.addObjectAtSamePosition(pack1, truck); model.deliver(truck, pack1, TimeLapseFactory.create(0, 1)); }
@Test(expected = IllegalArgumentException.class) public void testDeliverFail4() { final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); model.register(truck); final Parcel pack1 = Parcel.builder(new Point(1, 1), new Point(2, 2)) .pickupDuration(10) .deliveryDuration(10) .neededCapacity(2d) .build(); rm.register(pack1); model.register(pack1); rm.addObjectAtSamePosition(pack1, truck); model.pickup(truck, pack1, TimeLapseFactory.create(0, 10)); assertTrue(model.getContents(truck).contains(pack1)); model.deliver(truck, pack1, TimeLapseFactory.create(0, 1)); }
@Test(expected = IllegalArgumentException.class) public void testDeliverFail2() { final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); model.register(truck); final Parcel pack1 = Parcel.builder(new Point(1, 1), new Point(2, 2)) .pickupDuration(10) .deliveryDuration(10) .neededCapacity(2d) .build(); rm.register(pack1); model.register(pack1); rm.addObjectAtSamePosition(pack1, truck); model.pickup(truck, pack1, TimeLapseFactory.create(0, 1)); assertEquals(VehicleState.PICKING_UP, model.getVehicleState(truck)); model.deliver(truck, pack1, TimeLapseFactory.create(0, 1)); }
.capacity(10) .build()); rm.register(truck); model.register(truck); .neededCapacity(1d) .build(); rm.register(newPack); model.register(newPack); model.pickup(truck, newPack, TimeLapseFactory.create(0, 1)); .neededCapacity(1.1) .build(); rm.register(packTooMuch); model.register(packTooMuch); boolean fail = false;
@Test(expected = IllegalArgumentException.class) public void testPickupFail2() { // package not in roadmodel final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); final Parcel pack1 = Parcel.builder(new Point(0, 0), new Point(2, 2)) .neededCapacity(2d) .build(); model.pickup(truck, pack1, TimeLapseFactory.create(0, 1)); }
@Test public void testDelayedPickup() { final Parcel pack1 = Parcel.builder(new Point(1, 1), new Point(2, 2)) .serviceDuration(10L) .neededCapacity(2d) .build(); final Vehicle truck = new TestVehicle( VehicleDTO.builder() .startPosition(new Point(1, 1)) .capacity(10) .speed(1.0) .build()); model.register(pack1); model.register(truck); rm.register(pack1); rm.register(truck); model.pickup(truck, pack1, TimeLapseFactory.create(0, 1)); assertTrue(model.getContents(truck).isEmpty()); assertEquals(model.getContentsSize(truck), 0, EPSILON); truck.tick(TimeLapseFactory.create(1, 10)); assertFalse(model.getContents(truck).isEmpty()); assertTrue(model.getContents(truck).contains(pack1)); assertEquals(model.getContentsSize(truck), 2, EPSILON); }
@Test(expected = IllegalArgumentException.class) public void testPickupFail3A() { // package not in available state (it is already been picked up) final Vehicle truck = new TestVehicle( VehicleDTO.builder().startPosition(new Point(1, 1)).build()); rm.register(truck); model.register(truck); final Parcel pack1 = Parcel.builder(new Point(0, 0), new Point(2, 2)) .pickupDuration(10) .deliveryDuration(10) .neededCapacity(2d) .build(); rm.register(pack1); model.register(pack1); rm.addObjectAtSamePosition(pack1, truck); assertTrue(rm.equalPosition(truck, pack1)); assertEquals(ParcelState.AVAILABLE, model.getParcelState(pack1)); assertEquals(VehicleState.IDLE, model.getVehicleState(truck)); model.pickup(truck, pack1, TimeLapseFactory.create(0, 100)); assertEquals(ParcelState.IN_CARGO, model.getParcelState(pack1)); assertEquals(VehicleState.IDLE, model.getVehicleState(truck)); // checks what happens when you add a package to the roadmodel which has // already been picked up rm.addObjectAt(pack1, new Point(1, 1)); model.pickup(truck, pack1, TimeLapseFactory.create(0, 100)); }
.capacity(10) .build()); rm.register(truck); model.register(truck); final Parcel pack1 = Parcel.builder(new Point(1, 1), new Point(2, 2)) .neededCapacity(2d) .build(); rm.register(pack1); model.register(pack1); assertTrue(rm.equalPosition(truck, pack1)); .neededCapacity(2d) .build(); rm.register(pack2); model.register(pack2); assertEquals(ParcelState.AVAILABLE, model.getParcelState(pack2));