@Test
public void next_betweenGraceAndAPeriodSinceLastReading() {

    // :: Setup
    long now = 10_000;
    long period = 1_000;
    int grace = 5;
    int testCount = 0;
    // :: Act
    for (long last = now - 3 * grace; last >= now - period; last -= grace) {
        long next = Anticipate.next(now, last, period, grace);
        // :: Verify
        assertWithMessage("last: " + last)
                .that(next)
                .isEqualTo(Math.max(last + period - grace, now + grace));
        testCount++;
    }
    assertThat(testCount).isEqualTo(198);
}