List of usage examples for org.apache.commons.math3.random BitsStreamGenerator nextInt
public int nextInt(int n) throws IllegalArgumentException
This default implementation is copied from Apache Harmony java.util.Random (r929253).
Implementation notes:
From source file:cc.redberry.core.utils.ByteBackedBitArrayTest.java
@Test public void test3() { BitsStreamGenerator random = new Well19937c(); for (int sukatvarblyad = 0; sukatvarblyad < 100; ++sukatvarblyad) { int length; boolean[] array = new boolean[length = random.nextInt(100000)]; ByteBackedBitArray bitArray = new ByteBackedBitArray(length); int i, bitCount = 0; IntArrayList bitsPositions = new IntArrayList(); for (i = 0; i < length; ++i) if (array[i] = random.nextBoolean()) { bitCount++;//from w ww . j a v a 2 s . c o m bitArray.set(i); bitsPositions.add(i); } assertEquals(bitCount, bitArray.bitCount()); assertEquals(bitCount, bitsPositions.size()); int pointer = 0; for (i = 0; i < length; ++i) { assertTrue(array[i] == bitArray.get(i)); if (pointer != bitCount) assertTrue(bitsPositions.get(pointer) == bitArray.nextTrailingBit(i)); else assertTrue(-1 == bitArray.nextTrailingBit(i)); if (array[i]) pointer++; } bitArray.setAll(); assertEquals(length, bitArray.bitCount()); } }
From source file:cc.redberry.core.utils.LongBackedBitArrayTest.java
@Test public void test3() { BitsStreamGenerator random = new Well19937c(); for (int sukatvarblyad = 0; sukatvarblyad < 10; ++sukatvarblyad) { int length; boolean[] array = new boolean[length = random.nextInt(100000)]; LongBackedBitArray bitArray = new LongBackedBitArray(length); int i, bitCount = 0; IntArrayList bitsPositions = new IntArrayList(); for (i = 0; i < length; ++i) if (array[i] = random.nextBoolean()) { bitCount++;//from w ww . j a v a2s .c o m bitArray.set(i); bitsPositions.add(i); } assertEquals(bitCount, bitArray.bitCount()); assertEquals(bitCount, bitsPositions.size()); int pointer = 0; for (i = 0; i < length; ++i) { assertTrue(array[i] == bitArray.get(i)); if (pointer != bitCount) assertTrue(bitsPositions.get(pointer) == bitArray.nextTrailingBit(i)); else assertTrue(-1 == bitArray.nextTrailingBit(i)); if (array[i]) pointer++; } bitArray.setAll(); assertEquals(length, bitArray.bitCount()); } }
From source file:cc.redberry.core.tensor.iterator.TreeTraverseIteratorTest.java
@Test public void testPayload1() { PayloadFactory<PayloadC> factory = new PayloadFactory<PayloadC>() { @Override/* ww w . j a v a 2 s .com*/ public PayloadC create(StackPosition<PayloadC> stackPosition) { int s, p; StackPosition<PayloadC> pr = stackPosition.previous(); if (pr == null) s = p = 0; else { s = pr.getPayload().sums; p = pr.getPayload().products; } if (stackPosition.getInitialTensor() instanceof Sum) ++s; if (stackPosition.getInitialTensor() instanceof Product) ++p; return new PayloadC(s, p); } @Override public boolean allowLazyInitialization() { return true; } }; int s = 0, p = 0, m; Tensor t = parse("(a+b)*(c+d*(k+c))*(a+b)*(c+d*(a+b)*(c+d*(a+b)*(c+(a+b)*(c+d*(k+c))" + "*(a+b)*(c+d*(a+b*((a+b)*(c+d*(k+c))*(a*((a+b)*(c+d*(k+c))*(a+b)*(c+d*(a+b)*" + "(c+d*(a+b)*(c+d*(k+c))*(k*(a+b)*(c+d*(k+c))+(a+b)*(c+d*(k+(a+b)*(c+d*(k+c))+c))+" + "c))*(k+c)))+b)*(c+d*(a+b)*(c+d*(a+b)*(c+d*(k+c))*(k*(a+b)*(c+d*(k+c))+(a+b)*" + "(c+d*(k+(a+b)*(c+d*(k+c))+c))+c))*(k+c))))*(c+d*(a+b)*(c+d*(k+c))*(k*(a+b)*(c+d*" + "(k+c))+(a+b)*(c+d*(k+(a+b)*(c+d*(k+c))+c))+c))*(k+c))+d*(k+c))*(k*(a+b)*(c+d*(k+c))+" + "(a+b)*(c+d*(k+(a+b)*(c+d*(k+c))+c))+c))*(k+c))"); BitsStreamGenerator bsg = new Well19937c(); for (int i = 0; i < 300; ++i) { TreeTraverseIterator<PayloadC> iterator = new TreeTraverseIterator<>(t, factory); TraverseState state; while ((state = iterator.next()) != null) { if (state == TraverseState.Entering) { if (iterator.current() instanceof Product) ++p; if (iterator.current() instanceof Sum) ++s; } if (bsg.nextInt(100) < 5) { Assert.assertEquals(p, iterator.currentStackPosition().getPayload().products); Assert.assertEquals(s, iterator.currentStackPosition().getPayload().sums); } if (state == TraverseState.Leaving) { if (iterator.current() instanceof Product) --p; if (iterator.current() instanceof Sum) --s; } } } }