1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.rng.sampling.distribution;
18
19 import org.apache.commons.rng.UniformRandomProvider;
20 import org.apache.commons.rng.sampling.RandomAssert;
21 import org.junit.jupiter.api.Test;
22
23
24
25
26 class InverseTransformDiscreteSamplerTest {
27
28
29
30 @Test
31 void testSharedStateSampler() {
32 DiscreteInverseCumulativeProbabilityFunction function =
33 new DiscreteInverseCumulativeProbabilityFunction() {
34 @Override
35 public int inverseCumulativeProbability(double p) {
36 return (int) Math.round(789 * p);
37 }
38 };
39 final UniformRandomProvider rng1 = RandomAssert.seededRNG();
40 final UniformRandomProvider rng2 = RandomAssert.seededRNG();
41 final SharedStateDiscreteSampler sampler1 =
42 InverseTransformDiscreteSampler.of(rng1, function);
43 final SharedStateDiscreteSampler sampler2 = sampler1.withUniformRandomProvider(rng2);
44 RandomAssert.assertProduceSameSequence(sampler1, sampler2);
45 }
46 }