This is an automated email from the ASF dual-hosted git repository.
gitgabrio pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-drools.git
The following commit(s) were added to refs/heads/main by this push:
new 7816a87668 [incubator-kie-issues#804] Fix flaky test (checked with
2000000 iterations) (#5644)
7816a87668 is described below
commit 7816a87668fe2afbeb3b35786603771aadb35513
Author: Gabriele Cardosi <[email protected]>
AuthorDate: Tue Jan 9 14:44:20 2024 +0100
[incubator-kie-issues#804] Fix flaky test (checked with 2000000 iterations)
(#5644)
Co-authored-by: BAMOE CI <[email protected]>
---
.../evaluator/core/PMMLRuntimeContextImplTest.java | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git
a/kie-pmml-trusty/kie-pmml-evaluator/kie-pmml-evaluator-core/src/test/java/org/kie/pmml/evaluator/core/PMMLRuntimeContextImplTest.java
b/kie-pmml-trusty/kie-pmml-evaluator/kie-pmml-evaluator-core/src/test/java/org/kie/pmml/evaluator/core/PMMLRuntimeContextImplTest.java
index ee55a8b19c..c8bfeca9e5 100644
---
a/kie-pmml-trusty/kie-pmml-evaluator/kie-pmml-evaluator-core/src/test/java/org/kie/pmml/evaluator/core/PMMLRuntimeContextImplTest.java
+++
b/kie-pmml-trusty/kie-pmml-evaluator/kie-pmml-evaluator-core/src/test/java/org/kie/pmml/evaluator/core/PMMLRuntimeContextImplTest.java
@@ -22,9 +22,9 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Random;
import java.util.concurrent.atomic.AtomicReference;
-import java.util.stream.Collectors;
import java.util.stream.IntStream;
+import org.apache.commons.math3.util.Precision;
import org.assertj.core.data.Percentage;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -88,23 +88,27 @@ class PMMLRuntimeContextImplTest {
AtomicReference<Double> totalReference = new
AtomicReference<>(initialTotalProbability);
Random rand = new Random();
List<Double> doubles = IntStream.range(0, 3).mapToDouble(value -> {
- double currentTotal = totalReference.get();
- int nextInt = Math.abs(rand.nextInt((int) (currentTotal *
100)));
- double toReturn = (double) nextInt / 100;
- totalReference.set(currentTotal - toReturn);
- return toReturn;
- }).boxed().sorted((f1, f2) -> Double.compare(f2, f1))
- .collect(Collectors.toList());
+ double remainingProbability = totalReference.get();
+ double toReturn = invalidBound(remainingProbability) ? 0.00 :
+ Precision.round(rand.nextDouble(remainingProbability), 2);
+ totalReference.set(Precision.round((remainingProbability -
toReturn), 2));
+ return toReturn;
+ }).boxed().sorted((f1, f2) -> Double.compare(f2, f1)).toList();
LinkedHashMap<String, Double> probabilityResultMap = new
LinkedHashMap<>();
int counter = 0;
for (Double toPut : doubles) {
probabilityResultMap.put("Element-" + counter, toPut);
counter++;
}
- double initialProbability =
probabilityResultMap.values().stream().mapToDouble(x -> x).sum();
+ double initialProbability =
Precision.round(probabilityResultMap.values().stream().mapToDouble(x ->
x).sum(),
+ 2);
assertThat(initialProbability).isLessThanOrEqualTo(initialTotalProbability);
LinkedHashMap<String, Double> retrieved =
PMMLRuntimeContextImpl.getFixedProbabilityMap(probabilityResultMap);
double totalProbability = retrieved.values().stream().mapToDouble(x ->
x).sum();
assertThat(totalProbability).isCloseTo(1.0,
Percentage.withPercentage(0.01));
}
+
+ private static boolean invalidBound(double bound) {
+ return (!(0.0 < bound && bound < Double.POSITIVE_INFINITY));
+ }
}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]