@Override public void add(double amount) { if (Double.isFinite(amount) && amount > 0.0) { value.addAndGet(amount); } }
@Override public void add(double amount) { if (Double.isFinite(amount) && amount > 0.0) { count.addAndGet(amount); } }
@Override public void add(double amount) { if (amount > 0.0) { count.addAndGet(amount); updateLastModTime(); } }
@Override public void add(double amount) { if (amount > 0.0) { count.addAndGet(amount); updateLastModTime(); } }
@Override public void add(double amount) { if (Double.isFinite(amount) && amount > 0.0) { count.addAndGet(amount); } }
@Override public void record(long amount) { if (amount >= 0) { count.incrementAndGet(); totalAmount.addAndGet(amount); totalOfSquares.addAndGet(1.0 * amount * amount); updateMax(amount); updateLastModTime(); } }
@Override public void record(long amount) { if (amount >= 0) { count.incrementAndGet(); totalAmount.addAndGet(amount); totalOfSquares.addAndGet(1.0 * amount * amount); updateMax(amount); updateLastModTime(); } }
@Override public void add(double amount) { if (Double.isFinite(amount) && amount > 0.0) { impl.increment(amount); count.addAndGet(amount); lastUpdated.set(clock.wallTime()); } }
@Override public void add(double amount) { if (Double.isFinite(amount) && amount > 0.0) { impl.increment(amount); count.addAndGet(amount); lastUpdated.set(clock.wallTime()); } }
@Override public void record(long amount, TimeUnit unit) { count.getCurrent().incrementAndGet(); if (amount > 0) { final long nanos = unit.toNanos(amount); total.getCurrent().addAndGet(nanos); totalOfSquares.getCurrent().addAndGet((double) nanos * nanos); updateMax(max.getCurrent(), nanos); } updateLastModTime(); }
@Override public void record(long amount, TimeUnit unit) { count.getCurrent().incrementAndGet(); if (amount > 0) { final long nanos = unit.toNanos(amount); total.getCurrent().addAndGet(nanos); totalOfSquares.getCurrent().addAndGet((double) nanos * nanos); updateMax(max.getCurrent(), nanos); } }
@Override public void add(double amount) { if (Double.isFinite(amount) && amount > 0.0) { value.getCurrent().addAndGet(amount); updateLastModTime(); } }
@Override public void record(long amount) { count.getCurrent().incrementAndGet(); if (amount > 0) { total.getCurrent().addAndGet(amount); totalOfSquares.getCurrent().addAndGet((double) amount * amount); updateMax(max.getCurrent(), amount); } }
@Override public void record(long amount) { count.getCurrent().incrementAndGet(); if (amount > 0) { total.getCurrent().addAndGet(amount); totalOfSquares.getCurrent().addAndGet((double) amount * amount); updateMax(max.getCurrent(), amount); } updateLastModTime(); }
@Test public void addAndGet() { AtomicDouble v = new AtomicDouble(13.0); Assertions.assertEquals(55.0, v.addAndGet(42.0), 1e-12); Assertions.assertEquals(55.0, v.get(), 1e-12); }
@Test public void increment() { StepDouble v = new StepDouble(0.0, clock, 10L); v.getCurrent().addAndGet(1.0); Assertions.assertEquals(1.0, v.getCurrent().get(), 1e-12); Assertions.assertEquals(0.0, v.poll(), 1e-12); }
@Test public void incrementAndCrossStepBoundary() { StepDouble v = new StepDouble(0.0, clock, 10L); v.getCurrent().addAndGet(1.0); clock.setWallTime(10L); Assertions.assertEquals(0.0, v.getCurrent().get(), 1e-12); Assertions.assertEquals(1.0, v.poll(), 1e-12); }
@Test public void missedRead() { StepDouble v = new StepDouble(0.0, clock, 10L); v.getCurrent().addAndGet(1.0); clock.setWallTime(20L); Assertions.assertEquals(0.0, v.getCurrent().get(), 1e-12); Assertions.assertEquals(0.0, v.poll(), 1e-12); } }