diff options
author | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2016-03-15 09:42:19 +0000 |
---|---|---|
committer | Przemyslaw Szczepaniak <pszczepaniak@google.com> | 2016-03-15 09:42:19 +0000 |
commit | ed4f365789d43b1961657195df223a19bf4ef20f (patch) | |
tree | 214d4e0cdccf19471194d03dd3172933336910f1 /jsr166-tests/src/test/java/jsr166/DoubleAdderTest.java | |
parent | 5328e07d282bef36ac8b757bbee16a761415b2c4 (diff) |
Revert "JSR-166 update"
I missed comments on framework/base change regarding "@since 9" parts
This reverts commit 5328e07d282bef36ac8b757bbee16a761415b2c4.
Change-Id: Iff71b8a17e79a0a5c1ecadc05bccadceabb83393
Diffstat (limited to 'jsr166-tests/src/test/java/jsr166/DoubleAdderTest.java')
-rw-r--r-- | jsr166-tests/src/test/java/jsr166/DoubleAdderTest.java | 175 |
1 files changed, 0 insertions, 175 deletions
diff --git a/jsr166-tests/src/test/java/jsr166/DoubleAdderTest.java b/jsr166-tests/src/test/java/jsr166/DoubleAdderTest.java deleted file mode 100644 index d02e2a1123..0000000000 --- a/jsr166-tests/src/test/java/jsr166/DoubleAdderTest.java +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Written by Doug Lea with assistance from members of JCP JSR-166 - * Expert Group and released to the public domain, as explained at - * http://creativecommons.org/publicdomain/zero/1.0/ - */ - -package jsr166; - -import java.util.concurrent.CyclicBarrier; -import java.util.concurrent.Executors; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.atomic.DoubleAdder; - -import junit.framework.Test; -import junit.framework.TestSuite; - -public class DoubleAdderTest extends JSR166TestCase { - // android-note: Removed because the CTS runner does a bad job of - // retrying tests that have suite() declarations. - // - // public static void main(String[] args) { - // main(suite(), args); - // } - // public static Test suite() { - // return new TestSuite(DoubleAdderTest.class); - // } - - /** - * default constructed initializes to zero - */ - public void testConstructor() { - DoubleAdder ai = new DoubleAdder(); - assertEquals(0.0, ai.sum()); - } - - /** - * add adds given value to current, and sum returns current value - */ - public void testAddAndSum() { - DoubleAdder ai = new DoubleAdder(); - ai.add(2.0); - assertEquals(2.0, ai.sum()); - ai.add(-4.0); - assertEquals(-2.0, ai.sum()); - } - - /** - * reset() causes subsequent sum() to return zero - */ - public void testReset() { - DoubleAdder ai = new DoubleAdder(); - ai.add(2.0); - assertEquals(2.0, ai.sum()); - ai.reset(); - assertEquals(0.0, ai.sum()); - } - - /** - * sumThenReset() returns sum; subsequent sum() returns zero - */ - public void testSumThenReset() { - DoubleAdder ai = new DoubleAdder(); - ai.add(2.0); - assertEquals(2.0, ai.sum()); - assertEquals(2.0, ai.sumThenReset()); - assertEquals(0.0, ai.sum()); - } - - /** - * a deserialized serialized adder holds same value - */ - public void testSerialization() throws Exception { - DoubleAdder x = new DoubleAdder(); - DoubleAdder y = serialClone(x); - assertNotSame(x, y); - x.add(-22.0); - DoubleAdder z = serialClone(x); - assertEquals(-22.0, x.sum()); - assertEquals(0.0, y.sum()); - assertEquals(-22.0, z.sum()); - } - - /** - * toString returns current value. - */ - public void testToString() { - DoubleAdder ai = new DoubleAdder(); - assertEquals(Double.toString(0.0), ai.toString()); - ai.add(1.0); - assertEquals(Double.toString(1.0), ai.toString()); - } - - /** - * intValue returns current value. - */ - public void testIntValue() { - DoubleAdder ai = new DoubleAdder(); - assertEquals(0, ai.intValue()); - ai.add(1.0); - assertEquals(1, ai.intValue()); - } - - /** - * longValue returns current value. - */ - public void testLongValue() { - DoubleAdder ai = new DoubleAdder(); - assertEquals(0, ai.longValue()); - ai.add(1.0); - assertEquals(1, ai.longValue()); - } - - /** - * floatValue returns current value. - */ - public void testFloatValue() { - DoubleAdder ai = new DoubleAdder(); - assertEquals(0.0f, ai.floatValue()); - ai.add(1.0); - assertEquals(1.0f, ai.floatValue()); - } - - /** - * doubleValue returns current value. - */ - public void testDoubleValue() { - DoubleAdder ai = new DoubleAdder(); - assertEquals(0.0, ai.doubleValue()); - ai.add(1.0); - assertEquals(1.0, ai.doubleValue()); - } - - /** - * adds by multiple threads produce correct sum - */ - public void testAddAndSumMT() throws Throwable { - final int incs = 1000000; - final int nthreads = 4; - final ExecutorService pool = Executors.newCachedThreadPool(); - DoubleAdder a = new DoubleAdder(); - CyclicBarrier barrier = new CyclicBarrier(nthreads + 1); - for (int i = 0; i < nthreads; ++i) - pool.execute(new AdderTask(a, barrier, incs)); - barrier.await(); - barrier.await(); - double total = (long)nthreads * incs; - double sum = a.sum(); - assertEquals(sum, total); - pool.shutdown(); - } - - static final class AdderTask implements Runnable { - final DoubleAdder adder; - final CyclicBarrier barrier; - final int incs; - volatile double result; - AdderTask(DoubleAdder adder, CyclicBarrier barrier, int incs) { - this.adder = adder; - this.barrier = barrier; - this.incs = incs; - } - - public void run() { - try { - barrier.await(); - DoubleAdder a = adder; - for (int i = 0; i < incs; ++i) - a.add(1.0); - result = a.sum(); - barrier.await(); - } catch (Throwable t) { throw new Error(t); } - } - } - -} |