Search in sources :

Example 21 with Doubles

use of java8.lang.Doubles in project streamsupport by stefan-zobel.

the class SplittableRandomTest method testUnsizedDoublesCount.

/**
 * A parallel unsized stream of doubles generates at least 100 values
 */
public void testUnsizedDoublesCount() {
    LongAdder counter = new LongAdder();
    SplittableRandom r = new SplittableRandom();
    long size = 100;
    r.doubles().limit(size).parallel().forEach(x -> counter.increment());
    assertEquals(size, counter.sum());
}
Also used : LongAdder(java8.util.concurrent.atomic.LongAdder) SplittableRandom(java8.util.SplittableRandom)

Example 22 with Doubles

use of java8.lang.Doubles in project streamsupport by stefan-zobel.

the class SplittableRandomTest method testUnsizedDoublesCountSeq.

/**
 * A sequential unsized stream of doubles generates at least 100 values
 */
public void testUnsizedDoublesCountSeq() {
    LongAdder counter = new LongAdder();
    SplittableRandom r = new SplittableRandom();
    long size = 100;
    r.doubles().limit(size).forEach(x -> counter.increment());
    assertEquals(size, counter.sum());
}
Also used : LongAdder(java8.util.concurrent.atomic.LongAdder) SplittableRandom(java8.util.SplittableRandom)

Example 23 with Doubles

use of java8.lang.Doubles in project streamsupport by stefan-zobel.

the class SplittableRandomTest method testBoundedDoubles.

/**
 * Each of a parallel sized stream of bounded doubles is within bounds
 */
public void testBoundedDoubles() {
    AtomicInteger fails = new AtomicInteger(0);
    SplittableRandom r = new SplittableRandom();
    long size = 456;
    for (double least = 0.00011; least < 1.0e20; least *= 9) {
        for (double bound = least * 1.0011; bound < 1.0e20; bound *= 17) {
            final double lo = least, hi = bound;
            r.doubles(size, lo, hi).parallel().forEach(x -> {
                if (x < lo || x >= hi)
                    fails.getAndIncrement();
            });
        }
    }
    assertEquals(0, fails.get());
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) SplittableRandom(java8.util.SplittableRandom)

Example 24 with Doubles

use of java8.lang.Doubles in project streamsupport by stefan-zobel.

the class SplittableRandomTest method testBadStreamSize.

/**
 * Invoking sized ints, long, doubles, with negative sizes throws
 * IllegalArgumentException
 */
@SuppressWarnings("unused")
public void testBadStreamSize() {
    SplittableRandom r = new SplittableRandom();
    Runnable[] throwingActions = { () -> {
        java8.util.stream.IntStream x = r.ints(-1L);
    }, () -> {
        java8.util.stream.IntStream x = r.ints(-1L, 2, 3);
    }, () -> {
        java8.util.stream.LongStream x = r.longs(-1L);
    }, () -> {
        java8.util.stream.LongStream x = r.longs(-1L, -1L, 1L);
    }, () -> {
        java8.util.stream.DoubleStream x = r.doubles(-1L);
    }, () -> {
        java8.util.stream.DoubleStream x = r.doubles(-1L, .5, .6);
    } };
    assertThrows(IllegalArgumentException.class, throwingActions);
}
Also used : SplittableRandom(java8.util.SplittableRandom)

Example 25 with Doubles

use of java8.lang.Doubles in project streamsupport by stefan-zobel.

the class DoubleAccumulatorTest method testToString.

/**
 * toString returns current value.
 */
public void testToString() {
    DoubleAccumulator acc = new DoubleAccumulator(Doubles::max, 0.0);
    assertEquals("0.0", acc.toString());
    acc.accumulate(1.0);
    assertEquals(Double.toString(1.0), acc.toString());
}
Also used : Doubles(java8.lang.Doubles) DoubleAccumulator(java8.util.concurrent.atomic.DoubleAccumulator)

Aggregations

SplittableRandom (java8.util.SplittableRandom)13 ThreadLocalRandom (java8.util.concurrent.ThreadLocalRandom)12 LongAdder (java8.util.concurrent.atomic.LongAdder)12 Doubles (java8.lang.Doubles)8 DoubleAccumulator (java8.util.concurrent.atomic.DoubleAccumulator)8 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)4 DoubleConsumer (java8.util.function.DoubleConsumer)4 ArrayList (java.util.ArrayList)1 Comparator (java.util.Comparator)1 HashSet (java.util.HashSet)1 List (java.util.List)1 Set (java.util.Set)1 Spliterator (java8.util.Spliterator)1 Spliterators (java8.util.Spliterators)1 Consumer (java8.util.function.Consumer)1 Function (java8.util.function.Function)1 DoubleStream (java8.util.stream.DoubleStream)1 DoubleStreamTestScenario (java8.util.stream.DoubleStreamTestScenario)1 IntStream (java8.util.stream.IntStream)1 IntStreamTestScenario (java8.util.stream.IntStreamTestScenario)1