package org.numenta.nupic.util; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; import gnu.trove.set.hash.TIntHashSet; import java.util.Random; import org.junit.Test; public class FastRandomTest { @Test public void testSeed() { assertEquals(42, new FastRandom(42).getSeed()); } @Test public void testUniquenessAndDeterminance() { Random r = new FastRandom(42); TIntHashSet set = new TIntHashSet(); TIntHashSet knownExpectedRepeats = new TIntHashSet(); knownExpectedRepeats.addAll(new int[] { 9368, 149368, 193310, 194072, 202906, 241908, 249466, 266101, 276853, 289339, 293737 } ); for(int i = 0;i < 300000;i++) { int rndInt = r.nextInt(); if(set.contains(rndInt) && !knownExpectedRepeats.contains(i)) { fail(); } set.add(rndInt); } } }