BAEL-4405 move probability examples to java-numbers-4
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
package com.baeldung.probability;
|
||||
|
||||
import org.assertj.core.data.Offset;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
public class RandomInvokerUnitTest {
|
||||
@Test
|
||||
public void givenProbability_whenInvoked_invokeWithProbability() {
|
||||
RandomInvoker randomInvoker = new RandomInvoker();
|
||||
|
||||
int numberOfSamples = 1_000_000;
|
||||
int probability = 10;
|
||||
int howManyTimesInvoked = Stream.generate(() -> randomInvoker.withProbability(() -> 1, () -> 0, probability))
|
||||
.limit(numberOfSamples)
|
||||
.mapToInt(e -> e).sum();
|
||||
int monteCarloProbability = (howManyTimesInvoked * 100) / numberOfSamples;
|
||||
|
||||
assertThat(monteCarloProbability).isCloseTo(probability, Offset.offset(1));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user