91 |
|
for (long seed = 2; seed < MAX_LONG_BOUND; seed += 15485863) { |
92 |
|
SplittableRandom sr1 = new SplittableRandom(seed); |
93 |
|
SplittableRandom sr2 = new SplittableRandom(seed); |
94 |
< |
for (int i = 0; i < REPS; ++i) |
94 |
> |
for (int i = 0; i < REPS; ++i) |
95 |
|
assertEquals(sr1.nextLong(), sr2.nextLong()); |
96 |
|
} |
97 |
|
} |
368 |
|
} |
369 |
|
} |
370 |
|
|
371 |
+ |
|
372 |
|
/** |
373 |
|
* Each of a parallel sized stream of bounded ints is within bounds |
374 |
|
*/ |
380 |
|
for (int bound = least + 2; bound > least && bound < MAX_INT_BOUND; bound += 67867967) { |
381 |
|
final int lo = least, hi = bound; |
382 |
|
r.ints(size, lo, hi).parallel(). |
383 |
< |
forEach(x -> {if (x < lo || x >= hi) |
383 |
> |
forEach(x -> {if (x < lo || x >= hi) |
384 |
|
fails.getAndIncrement(); }); |
385 |
|
} |
386 |
|
} |
398 |
|
for (long bound = least + 2; bound > least && bound < MAX_LONG_BOUND; bound += Math.abs(bound * 7919)) { |
399 |
|
final long lo = least, hi = bound; |
400 |
|
r.longs(size, lo, hi).parallel(). |
401 |
< |
forEach(x -> {if (x < lo || x >= hi) |
401 |
> |
forEach(x -> {if (x < lo || x >= hi) |
402 |
|
fails.getAndIncrement(); }); |
403 |
|
} |
404 |
|
} |
416 |
|
for (double bound = least * 1.0011; bound < 1.0e20; bound *= 17) { |
417 |
|
final double lo = least, hi = bound; |
418 |
|
r.doubles(size, lo, hi).parallel(). |
419 |
< |
forEach(x -> {if (x < lo || x >= hi) |
419 |
> |
forEach(x -> {if (x < lo || x >= hi) |
420 |
|
fails.getAndIncrement(); }); |
421 |
|
} |
422 |
|
} |
423 |
|
assertEquals(fails.get(), 0); |
424 |
|
} |
425 |
|
|
426 |
+ |
/** |
427 |
+ |
* A parallel unsized stream of ints generates at least 100 values |
428 |
+ |
*/ |
429 |
+ |
public void testUnsizedIntsCount() { |
430 |
+ |
LongAdder counter = new LongAdder(); |
431 |
+ |
SplittableRandom r = new SplittableRandom(); |
432 |
+ |
long size = 100; |
433 |
+ |
r.ints().limit(size).parallel().forEach(x -> {counter.increment();}); |
434 |
+ |
assertEquals(counter.sum(), size); |
435 |
+ |
} |
436 |
+ |
|
437 |
+ |
/** |
438 |
+ |
* A parallel unsized stream of longs generates at least 100 values |
439 |
+ |
*/ |
440 |
+ |
public void testUnsizedLongsCount() { |
441 |
+ |
LongAdder counter = new LongAdder(); |
442 |
+ |
SplittableRandom r = new SplittableRandom(); |
443 |
+ |
long size = 100; |
444 |
+ |
r.longs().limit(size).parallel().forEach(x -> {counter.increment();}); |
445 |
+ |
assertEquals(counter.sum(), size); |
446 |
+ |
} |
447 |
+ |
|
448 |
+ |
|
449 |
+ |
/** |
450 |
+ |
* A parallel unsized stream of doubles generates at least 100 values |
451 |
+ |
*/ |
452 |
+ |
public void testUnsizedDoublesCount() { |
453 |
+ |
LongAdder counter = new LongAdder(); |
454 |
+ |
SplittableRandom r = new SplittableRandom(); |
455 |
+ |
long size = 100; |
456 |
+ |
r.doubles().limit(size).parallel().forEach(x -> {counter.increment();}); |
457 |
+ |
assertEquals(counter.sum(), size); |
458 |
+ |
} |
459 |
+ |
|
460 |
+ |
/** |
461 |
+ |
* A sequential unsized stream of ints generates at least 100 values |
462 |
+ |
*/ |
463 |
+ |
public void testUnsizedIntsCountSeq() { |
464 |
+ |
LongAdder counter = new LongAdder(); |
465 |
+ |
SplittableRandom r = new SplittableRandom(); |
466 |
+ |
long size = 100; |
467 |
+ |
r.ints().limit(size).forEach(x -> {counter.increment();}); |
468 |
+ |
assertEquals(counter.sum(), size); |
469 |
+ |
} |
470 |
+ |
|
471 |
+ |
/** |
472 |
+ |
* A sequential unsized stream of longs generates at least 100 values |
473 |
+ |
*/ |
474 |
+ |
public void testUnsizedLongsCountSeq() { |
475 |
+ |
LongAdder counter = new LongAdder(); |
476 |
+ |
SplittableRandom r = new SplittableRandom(); |
477 |
+ |
long size = 100; |
478 |
+ |
r.longs().limit(size).forEach(x -> {counter.increment();}); |
479 |
+ |
assertEquals(counter.sum(), size); |
480 |
+ |
} |
481 |
+ |
|
482 |
+ |
|
483 |
+ |
/** |
484 |
+ |
* A sequential unsized stream of doubles generates at least 100 values |
485 |
+ |
*/ |
486 |
+ |
public void testUnsizedDoublesCountSeq() { |
487 |
+ |
LongAdder counter = new LongAdder(); |
488 |
+ |
SplittableRandom r = new SplittableRandom(); |
489 |
+ |
long size = 100; |
490 |
+ |
r.doubles().limit(size).forEach(x -> {counter.increment();}); |
491 |
+ |
assertEquals(counter.sum(), size); |
492 |
+ |
} |
493 |
+ |
|
494 |
+ |
|
495 |
|
} |