BAEL-4405 move probability examples to java-numbers-4

This commit is contained in:
mdabrowski-eu
2020-08-06 00:08:27 +02:00
parent 9f99e00f53
commit 0d186f81e0
4 changed files with 52 additions and 0 deletions

View File

@@ -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));
}
}