Example usage for org.apache.commons.math3.random BitsStreamGenerator nextBoolean

List of usage examples for org.apache.commons.math3.random BitsStreamGenerator nextBoolean

Introduction

In this page you can find the example usage for org.apache.commons.math3.random BitsStreamGenerator nextBoolean.

Prototype

public boolean nextBoolean() 

Source Link

Usage

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 ww  w.  ja v a2s  .co 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++;//  ww  w  .  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());
    }
}