/** * Tests that the register call back injects the possibly decorated instance. */ @Test public void register() { final Parcel p = Parcel.builder(new Point(0, 0), new Point(0, 0)) .build(); model.register(p); assertThat(model).isSameAs(p.pdpModel.get()); final TestDepot d = new TestDepot(10); model.register(d); assertThat(model).isSameAs(d.pdpModel.get()); final TestVehicle v = new TestVehicle(); model.register(v); assertThat(model).isSameAs(v.pdpModel.get()); }
@Override public void tick(TimeLapse timeLapse) { if (timeLapse.getTime() == 100) { rtClock.switchToRealTime(); } else if (timeLapse.getTime() == 200) { sim.register( Parcel.builder(new Point(0, 0), new Point(4, 4)).build()); simSolver.solve(SolveArgs.create() .useCurrentRoutes(ImmutableList.of(ImmutableList.<Parcel>of()))); } else if (timeLapse.getTime() == 500) { throw new IllegalStateException("This is a test"); } }
@Test public void addPackageIn() { assertTrue(model.getParcels(ParcelState.AVAILABLE).isEmpty()); final Depot d = new TestDepot(10); final Parcel p1 = Parcel.builder(new Point(0, 0), new Point(0, 0)) .neededCapacity(1d) .build(); model.register(d); model.register(p1); rm.addObjectAt(d, new Point(0, 0)); model.addParcelIn(d, p1); assertEquals(1, model.getContents(d).size()); assertTrue(model.getContents(d).contains(p1)); }
@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 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 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)); }
@Override public void handleTimedEvent(AddParcelEvent event, SimulatorAPI sim) { sim.register(Parcel.builder(event.getParcelDTO()).build()); }
@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)); }
@Override public void handleTimedEvent(AddParcelEvent event, SimulatorAPI sim) { sim.register(Parcel.builder(event.getParcelDTO()).build()); }
@Test(expected = IllegalArgumentException.class) public void addPackageInFail4() { final Depot d = new TestDepot(10); final Parcel p1 = Parcel.builder(new Point(0, 0), new Point(0, 0)) .neededCapacity(1d) .build(); model.register(p1); model.register(d); model.addParcelIn(d, p1); }
@Test(expected = IllegalArgumentException.class) public void addPackageInFail3() { final Depot d = new TestDepot(10); final Parcel p1 = Parcel.builder(new Point(0, 0), new Point(0, 0)) .neededCapacity(1d) .build(); model.register(p1); model.addParcelIn(d, p1); }
@Test(expected = IllegalArgumentException.class) public void addPackageInFail1() { final Depot d = new TestDepot(10); final Parcel p1 = Parcel.builder(new Point(0, 0), new Point(0, 0)) .neededCapacity(1d) .build(); rm.addObjectAt(p1, new Point(0, 0)); model.addParcelIn(d, p1); }
static Parcel create(Point p1, Point p2) { return Parcel.builder(p1, p2) .pickupTimeWindow(DEFAULT_TW) .deliveryTimeWindow(DEFAULT_TW) .neededCapacity(0) .orderAnnounceTime(0L) .pickupDuration(0L) .deliveryDuration(0L) .build(); } }
@Test(expected = IllegalArgumentException.class) public void addPackageInFail5() { final Depot d = new TestDepot(10); final Parcel p1 = Parcel.builder(new Point(0, 0), new Point(0, 0)) .neededCapacity(11d) .build(); model.register(p1); model.register(d); rm.addObjectAt(d, new Point(0, 0)); model.addParcelIn(d, p1); }
@Test(expected = IllegalArgumentException.class) public void addPackageInFail2() { final Depot d = new TestDepot(10); final Parcel p1 = Parcel.builder(new Point(0, 0), new Point(0, 0)) .neededCapacity(1d) .build(); model.addParcelIn(d, p1); }
@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)); }
/** * Cannot register the same parcel twice. */ @Test(expected = IllegalArgumentException.class) public void registerFail1() { final Parcel p = Parcel.builder(new Point(0, 0), new Point(1, 1)) .build(); model.register(p); model.register(p); }
static Parcel createParcel(Point origin, Point dest) { return Parcel.builder(origin, dest) .pickupTimeWindow(TW) .deliveryTimeWindow(TW) .serviceDuration(30) .build(); }
@Test(expected = IllegalArgumentException.class) public void testInvalidRoadUser() { // does not exist rm.moveTo(dv1, Parcel.builder(new Point(0, 0), new Point(6, 6)) .build(), time(1)); }