[concurrency-interest] Durations in existing JDK APIs
Martin Buchholz
martinrb at google.com
Thu May 31 05:03:23 UTC 2018
On Wed, May 30, 2018 at 7:43 PM, Gregg Wonderly <gergg at cox.net> wrote:
> I am not sure I understand this implementation, but isn’t
>
> > long s = convert(duration.getSeconds(), SECONDS);
>
> needing to actually be
>
> > long s = convert(duration.getSeconds(), NANOSECONDS);
>
> so that s+n is in a common unit of measure?
>
I haven't actually run this code yet, but from looking at the javadoc both
calls to convert give something in "this" unit, so they should agree?
You could write a test to check our understanding? Hmmm ... alright ...
here's a passing test:
/**
* tests for conversion between TimeUnit and Duration
*/
public void testDuration() throws Exception {
ThreadLocalRandom rnd = ThreadLocalRandom.current();
long n = rnd.nextLong();
assertEquals(n, NANOSECONDS.convert(Duration.ofNanos(n)));
assertEquals(n, MILLISECONDS.convert(Duration.ofMillis(n)));
assertEquals(n, SECONDS.convert(Duration.ofSeconds(n)));
assertEquals(n /= 60, MINUTES.convert(Duration.ofMinutes(n)));
assertEquals(n /= 60, HOURS.convert(Duration.ofHours(n)));
assertEquals(n /= 24, DAYS.convert(Duration.ofDays(n)));
}
More information about the core-libs-dev
mailing list