/** * @param time The time to use as 'now'. * @return <code>true</code> if it is the end of the day or if this vehicle * has to leave before the end of this tick to arrive back at the * depot right before the end of the day, <code>false</code> * otherwise. */ protected boolean isEndOfDay(TimeLapse time) { final long travelTime = computeTravelTimeTo( getRoadModel().getPosition(depot.get()), time.getTimeUnit()); return time.getEndTime() - 1 >= getAvailabilityTimeWindow().end() - travelTime; }
/** * @param time The time to use as 'now'. * @return <code>true</code> if it is the end of the day or if this vehicle * has to leave before the end of this tick to arrive back at the * depot right before the end of the day, <code>false</code> * otherwise. */ protected boolean isEndOfDay(TimeLapse time) { final long travelTime = computeTravelTimeTo( getRoadModel().getPosition(depot.get()), time.getTimeUnit()); return time.getEndTime() - 1 >= getAvailabilityTimeWindow().end() - travelTime; }
final long travelTime = computeTravelTimeTo(loc, time.getTimeUnit()); final long openingTime = isPickup ? p.getPickupTimeWindow().begin() : p .getDeliveryTimeWindow().begin();
final long travelTime = computeTravelTimeTo(loc, time.getTimeUnit()); final long openingTime = isPickup ? p.getPickupTimeWindow().begin() : p .getDeliveryTimeWindow().begin();
/** * Test definition of isTooEarly. */ @Test public void testIsTooEarly() { // traveling 1km at 30km/h should take 2 minutes assertEquals(minute(2), d.computeTravelTimeTo(new Point(1, 2), SI.MILLI(SI.SECOND))); // if we start immediately we are too early assertTrue(d.isTooEarly(p1, time(0, 10))); assertTrue(d.isTooEarly(p1, time(minute(2), minute(3)))); assertFalse(d.isTooEarly(p1, time(minute(2) + 1, minute(3) + 1))); assertFalse(d.isTooEarly(p1, time(minute(3), minute(4)))); assertFalse(d.isTooEarly(p1, time(minute(4), minute(5)))); assertFalse(d.isTooEarly(p1, time(minute(10), minute(11)))); assertTrue(d.isTooEarly(p2, time(0, 10))); assertTrue(d.isTooEarly(p2, time(minute(10) + 10, minute(11) + 10))); assertFalse(d.isTooEarly(p2, time(minute(10) + 11, minute(11) + 11))); assertFalse(d.isTooEarly(p2, time(minute(11), minute(12)))); assertFalse(d.isTooEarly(p2, time(minute(12), minute(13)))); assertFalse(d.isTooEarly(p2, time(minute(20), minute(21)))); }
d.computeTravelTimeTo(new Point(3, 5), SI.MILLI(SI.SECOND)));