Skip to content

Commit 1dd44be

Browse files
committed
improve tests
1 parent c840f81 commit 1dd44be

File tree

6 files changed

+60
-0
lines changed

6 files changed

+60
-0
lines changed

src/test/java/de/tilman_neumann/jml/random/LehmerRng64MHTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,20 @@ public static void setup() {
4242
@Test
4343
public void testNextLongNoArgs() {
4444
long min = Long.MAX_VALUE, max = Long.MIN_VALUE;
45+
boolean generatesEven = false, generatesOdd = false;
4546
for (int i=0; i<NCOUNT; i++) {
4647
long n = rng.nextLong();
4748
if (n<min) min = n;
4849
if (n>max) max = n;
50+
if ((n & 1) == 1) {
51+
generatesOdd = true;
52+
} else {
53+
generatesEven = true;
54+
}
4955
}
5056
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextLong() gave min = " + min + ", max = " + max);
5157
assertTrue(min < 0);
58+
assertTrue(generatesEven);
59+
assertTrue(generatesOdd);
5260
}
5361
}

src/test/java/de/tilman_neumann/jml/random/LehmerRng64Test.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,16 @@ public static void setup() {
4242
@Test
4343
public void testNextLongNoArgs() {
4444
long min = Long.MAX_VALUE, max = Long.MIN_VALUE;
45+
boolean generatesEven = false, generatesOdd = false;
4546
for (int i=0; i<NCOUNT; i++) {
4647
long n = rng.nextLong();
4748
if (n<min) min = n;
4849
if (n>max) max = n;
50+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
4951
}
5052
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextLong() gave min = " + min + ", max = " + max);
5153
assertTrue(min < 0);
54+
assertTrue(generatesEven);
55+
assertTrue(generatesOdd);
5256
}
5357
}

src/test/java/de/tilman_neumann/jml/random/SpRand32Test.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,38 +44,50 @@ public static void setup() {
4444
@Test
4545
public void testNextIntNoArgs() {
4646
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
47+
boolean generatesEven = false, generatesOdd = false;
4748
for (int i=0; i<NCOUNT; i++) {
4849
int n = rng.nextInt();
4950
if (n<min) min = n;
5051
if (n>max) max = n;
52+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
5153
}
5254
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt() gave min = " + min + ", max = " + max);
5355
assertTrue(min >= 0);
56+
assertTrue(generatesEven);
57+
assertTrue(generatesOdd);
5458
}
5559

5660
@Test
5761
public void testNextIntUpperBound() {
5862
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
63+
boolean generatesEven = false, generatesOdd = false;
5964
for (int i=0; i<NCOUNT; i++) {
6065
int n = rng.nextInt(UPPER);
6166
if (n<min) min = n;
6267
if (n>max) max = n;
68+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
6369
}
6470
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt(" + UPPER + ") gave min = " + min + ", max = " + max);
6571
assertTrue(min >= 0);
6672
assertTrue(max <= UPPER);
73+
assertTrue(generatesEven);
74+
assertTrue(generatesOdd);
6775
}
6876

6977
@Test
7078
public void testNextIntLowerUpperBound() {
7179
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
80+
boolean generatesEven = false, generatesOdd = false;
7281
for (int i=0; i<NCOUNT; i++) {
7382
int n = rng.nextInt(LOWER, UPPER);
7483
if (n<min) min = n;
7584
if (n>max) max = n;
85+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
7686
}
7787
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt(" + LOWER + ", " + UPPER + ") gave min = " + min + ", max = " + max);
7888
assertTrue(min >= LOWER);
7989
assertTrue(max <= UPPER);
90+
assertTrue(generatesEven);
91+
assertTrue(generatesOdd);
8092
}
8193
}

src/test/java/de/tilman_neumann/jml/random/Xorshf32Test.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,40 +47,52 @@ public static void setup() {
4747
public void testNextIntNoArgs() {
4848
int[] firstElements = new int[100];
4949
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
50+
boolean generatesEven = false, generatesOdd = false;
5051
for (int i=0; i<NCOUNT; i++) {
5152
int n = rng.nextInt();
5253
if (i<100) firstElements[i] = n;
5354
if (n<min) min = n;
5455
if (n>max) max = n;
56+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
5557
}
5658
LOG.debug("First 100 elements: " + Arrays.toString(firstElements));
5759
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt() gave min = " + min + ", max = " + max);
5860
assertTrue(min >= 0);
61+
assertTrue(generatesEven);
62+
assertTrue(generatesOdd);
5963
}
6064

6165
@Test
6266
public void testNextIntUpperBound() {
6367
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
68+
boolean generatesEven = false, generatesOdd = false;
6469
for (int i=0; i<NCOUNT; i++) {
6570
int n = rng.nextInt(UPPER);
6671
if (n<min) min = n;
6772
if (n>max) max = n;
73+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
6874
}
6975
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt(" + UPPER + ") gave min = " + min + ", max = " + max);
7076
assertTrue(min >= 0);
7177
assertTrue(max <= UPPER);
78+
assertTrue(generatesEven);
79+
assertTrue(generatesOdd);
7280
}
7381

7482
@Test
7583
public void testNextIntLowerUpperBound() {
7684
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
85+
boolean generatesEven = false, generatesOdd = false;
7786
for (int i=0; i<NCOUNT; i++) {
7887
int n = rng.nextInt(LOWER, UPPER);
7988
if (n<min) min = n;
8089
if (n>max) max = n;
90+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
8191
}
8292
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt(" + LOWER + ", " + UPPER + ") gave min = " + min + ", max = " + max);
8393
assertTrue(min >= LOWER);
8494
assertTrue(max <= UPPER);
95+
assertTrue(generatesEven);
96+
assertTrue(generatesOdd);
8597
}
8698
}

src/test/java/de/tilman_neumann/jml/random/Xorshf32bTest.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,40 +47,52 @@ public static void setup() {
4747
public void testNextIntNoArgs() {
4848
int[] firstElements = new int[100];
4949
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
50+
boolean generatesEven = false, generatesOdd = false;
5051
for (int i=0; i<NCOUNT; i++) {
5152
int n = rng.nextInt();
5253
if (i<100) firstElements[i] = n;
5354
if (n<min) min = n;
5455
if (n>max) max = n;
56+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
5557
}
5658
LOG.debug("First 100 elements: " + Arrays.toString(firstElements));
5759
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt() gave min = " + min + ", max = " + max);
5860
assertTrue(min < 0);
61+
assertTrue(generatesEven);
62+
assertTrue(generatesOdd);
5963
}
6064

6165
@Test
6266
public void testNextIntUpperBound() {
6367
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
68+
boolean generatesEven = false, generatesOdd = false;
6469
for (int i=0; i<NCOUNT; i++) {
6570
int n = rng.nextInt(UPPER);
6671
if (n<min) min = n;
6772
if (n>max) max = n;
73+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
6874
}
6975
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt(" + UPPER + ") gave min = " + min + ", max = " + max);
7076
assertTrue(min >= 0);
7177
assertTrue(max <= UPPER);
78+
assertTrue(generatesEven);
79+
assertTrue(generatesOdd);
7280
}
7381

7482
@Test
7583
public void testNextIntLowerUpperBound() {
7684
int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE;
85+
boolean generatesEven = false, generatesOdd = false;
7786
for (int i=0; i<NCOUNT; i++) {
7887
int n = rng.nextInt(LOWER, UPPER);
7988
if (n<min) min = n;
8089
if (n>max) max = n;
90+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
8191
}
8292
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextInt(" + LOWER + ", " + UPPER + ") gave min = " + min + ", max = " + max);
8393
assertTrue("Expected " + min + " >= " + LOWER, min >= LOWER);
8494
assertTrue("Expected " + max + " <= " + UPPER, max <= UPPER);
95+
assertTrue(generatesEven);
96+
assertTrue(generatesOdd);
8597
}
8698
}

src/test/java/de/tilman_neumann/jml/random/Xorshf64Test.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,40 +47,52 @@ public static void setup() {
4747
public void testNextLongNoArgs() {
4848
long[] firstElements = new long[100];
4949
long min = Long.MAX_VALUE, max = Long.MIN_VALUE;
50+
boolean generatesEven = false, generatesOdd = false;
5051
for (int i=0; i<NCOUNT; i++) {
5152
long n = rng.nextLong();
5253
if (i<100) firstElements[i] = n;
5354
if (n<min) min = n;
5455
if (n>max) max = n;
56+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
5557
}
5658
LOG.debug("First 100 elements: " + Arrays.toString(firstElements));
5759
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextLong() gave min = " + min + ", max = " + max);
5860
assertTrue(min < 0);
61+
assertTrue(generatesEven);
62+
assertTrue(generatesOdd);
5963
}
6064

6165
@Test
6266
public void testNextLongUpperBound() {
6367
long min = Long.MAX_VALUE, max = Long.MIN_VALUE;
68+
boolean generatesEven = false, generatesOdd = false;
6469
for (int i=0; i<NCOUNT; i++) {
6570
long n = rng.nextLong(UPPER);
6671
if (n<min) min = n;
6772
if (n>max) max = n;
73+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
6874
}
6975
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextLong(" + UPPER + ") gave min = " + min + ", max = " + max);
7076
assertTrue(min >= 0);
7177
assertTrue(max <= UPPER);
78+
assertTrue(generatesEven);
79+
assertTrue(generatesOdd);
7280
}
7381

7482
@Test
7583
public void testNextLongLowerUpperBound() {
7684
long min = Long.MAX_VALUE, max = Long.MIN_VALUE;
85+
boolean generatesEven = false, generatesOdd = false;
7786
for (int i=0; i<NCOUNT; i++) {
7887
long n = rng.nextLong(LOWER, UPPER);
7988
if (n<min) min = n;
8089
if (n>max) max = n;
90+
if ((n & 1) == 1) generatesOdd = true; else generatesEven = true;
8191
}
8292
LOG.debug(NCOUNT + " numbers from " + rng.getClass().getSimpleName() + ".nextLong(" + LOWER + ", " + UPPER + ") gave min = " + min + ", max = " + max);
8393
assertTrue(min >= LOWER);
8494
assertTrue("Expected " + max + " <= " + UPPER, max <= UPPER);
95+
assertTrue(generatesEven);
96+
assertTrue(generatesOdd);
8597
}
8698
}

0 commit comments

Comments
 (0)