@Override public void tick(TimeLapse timeLapse) { timeLapse.consume(1L); }
@Override public void perform(TimeLapse time) { // there is enough time to finish action if (time.getTimeLeft() >= timeNeeded) { time.consume(timeNeeded); timeNeeded = 0; finish(time); } else { // there is not enough time to finish action in this step timeNeeded -= time.getTimeLeft(); time.consumeAll(); } }
return null; } else { time.consume(timeUntilReady);
@Override public void afterTick(TimeLapse timeLapse) { try { timeLapse.consume(1L); } catch (final IllegalArgumentException e) { failures.add(e); } } });
return null; } else { time.consume(timeUntilReady);
@Test(expected = IllegalArgumentException.class) public void consumeFail1() { final TimeLapse tl = create(0, 10); tl.consume(-1); }
@Override public void drop(Vehicle vehicle, Parcel parcel, TimeLapse time) { synchronized (this) { /* 1 */checkVehicleInRoadModel(vehicle); /* 2 */checkVehicleIdle(vehicle); /* 3 */checkVehicleDoesNotContainParcel(vehicle, parcel); eventDispatcher.dispatchEvent(new PDPModelEvent( PDPModelEventType.START_DELIVERY, self, time.getTime(), parcel, vehicle)); if (time.getTimeLeft() < parcel.getDeliveryDuration()) { vehicleState.put(vehicle, VehicleState.DELIVERING); parcelState.put(ParcelState.DELIVERING, parcel); pendingVehicleActions.put(vehicle, new DropAction(this, vehicle, parcel, parcel.getDeliveryDuration() - time.getTimeLeft())); time.consumeAll(); } else { time.consume(parcel.getDeliveryDuration()); doDrop(vehicle, parcel, time.getTime()); } } }
@Test(expected = IllegalArgumentException.class) public void consumeFail2() { final TimeLapse tl = create(0, 10); tl.consume(11); }
time.consumeAll(); } else { time.consume(parcel.getPickupDuration()); doPickup(vehicle, parcel, time.getTime());
static TimeLapse copy(TimeLapse tl) { final TimeLapse copy = TimeLapseFactory.create(tl.getTimeUnit(), tl.getStartTime(), tl.getEndTime()); if (tl.getTimeConsumed() > 0) { copy.consume(tl.getTimeConsumed()); } return copy; }
unitConversion.toExTime(stepLength / speed, time.getTimeUnit()), RoundingMode.HALF_DOWN); time.consume(timeSpent); traveled += stepLength; } else {
/** * Tests flyweight implementation. */ @Test public void testFlyweight() { final TimeLapse tl = create(0, 10); assertThat(tl.toString()).isEqualTo("[0,10)"); assertThat(tl.isIn(7)).isTrue(); assertThat(tl.isIn(-1)).isFalse(); assertThat(tl.isIn(0)).isTrue(); assertThat(tl.isIn(10)).isFalse(); assertThat(tl.isIn(11)).isFalse(); tl.consume(7L); assertThat(tl.getTimeConsumed()).isEqualTo(7L); assertThat(tl.getStartTime()).isEqualTo(0); assertThat(tl.getEndTime()).isEqualTo(10L); tl.reset(); assertThat(tl.getTimeConsumed()).isEqualTo(0L); assertThat(tl.getStartTime()).isEqualTo(0); assertThat(tl.getEndTime()).isEqualTo(10L); tl.consume(6L); tl.next(); assertThat(tl.getTimeConsumed()).isEqualTo(0L); assertThat(tl.getStartTime()).isEqualTo(10); assertThat(tl.getEndTime()).isEqualTo(20L); }
time.consumeAll(); } else { time.consume(parcel.getDeliveryDuration()); doDeliver(vehicle, parcel, time.getTime());
timeLeft -= timeSpent; time.consume(time.getTimeLeft() - timeLeft);
@Test public void consume1() { final int[] start = {0, 10, 100, 500}; final int[] end = {100, 1000, 113, 783}; for (int i = 0; i < start.length; i++) { final TimeLapse tl = create(start[i], end[i]); assertEquals(end[i] - start[i], tl.getTimeLeft()); assertEquals(start[i], tl.getTime()); assertEquals(0, tl.getTimeConsumed()); assertTrue(tl.hasTimeLeft()); assertEquals(end[i] - start[i], tl.getTickLength()); tl.consume(10); assertEquals(end[i] - start[i] - 10, tl.getTimeLeft()); assertEquals(start[i] + 10, tl.getTime()); assertEquals(10, tl.getTimeConsumed()); assertTrue(tl.hasTimeLeft()); assertEquals(end[i] - start[i], tl.getTickLength()); tl.consumeAll(); assertEquals(0, tl.getTimeLeft()); assertEquals(end[i], tl.getTime()); assertEquals(end[i] - start[i], tl.getTimeConsumed()); assertFalse(tl.hasTimeLeft()); assertEquals(end[i] - start[i], tl.getTickLength()); } }
void tick(long beginMinute, long endMinute, long consumeSeconds) { final TimeLapse tl = time(minute(beginMinute), minute(endMinute)); if (consumeSeconds > 0) { tl.consume(consumeSeconds * 1000); } pm.tick(copy(tl)); final TimeLapse dtl = copy(tl); d.tick(dtl); assertSame(dtl, d.getCurrentTimeLapse()); assertFalse(dtl.hasTimeLeft()); // tests whether internal states of vehicle match the state of the pdp model // at all times if (pm.getVehicleState(d) == VehicleState.DELIVERING || pm.getVehicleState(d) == VehicleState.PICKING_UP) { assertSame(d.serviceState, d.stateMachine.getCurrentState()); } else { assertThat(d.serviceState).isNotSameAs(d.stateMachine.getCurrentState()); } }