You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by al...@apache.org on 2022/07/12 22:31:24 UTC
[datasketches-java] branch req_inclusive updated: added test
This is an automated email from the ASF dual-hosted git repository.
alsay pushed a commit to branch req_inclusive
in repository https://gitbox.apache.org/repos/asf/datasketches-java.git
The following commit(s) were added to refs/heads/req_inclusive by this push:
new 5b79ec37 added test
5b79ec37 is described below
commit 5b79ec3783567a2fff73339c2231c05f9b457a78
Author: AlexanderSaydakov <Al...@users.noreply.github.com>
AuthorDate: Tue Jul 12 15:31:07 2022 -0700
added test
---
.../org/apache/datasketches/req/ReqSketchTest.java | 57 ++++++++++++++++++++++
1 file changed, 57 insertions(+)
diff --git a/src/test/java/org/apache/datasketches/req/ReqSketchTest.java b/src/test/java/org/apache/datasketches/req/ReqSketchTest.java
index 70211c6b..64362924 100644
--- a/src/test/java/org/apache/datasketches/req/ReqSketchTest.java
+++ b/src/test/java/org/apache/datasketches/req/ReqSketchTest.java
@@ -21,6 +21,7 @@ package org.apache.datasketches.req;
import static org.apache.datasketches.Util.evenlySpacedFloats;
import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
@@ -330,6 +331,62 @@ public class ReqSketchTest {
assertEquals(q, 4.0f);
}
+ @Test
+ public void tenItems() {
+ final ReqSketch sketch = ReqSketch.builder().build();
+ for (int i = 1; i <= 10; i++) { sketch.update(i); }
+ assertFalse(sketch.isEmpty());
+ assertEquals(sketch.getN(), 10);
+ assertEquals(sketch.getRetainedItems(), 10);
+ for (int i = 1; i <= 10; i++) {
+ assertEquals(sketch.getRank(i), (i - 1) / 10.0);
+ assertEquals(sketch.getRank(i, false), (i - 1) / 10.0);
+ assertEquals(sketch.getRank(i, true), (i) / 10.0);
+ }
+ // inclusive = false (default)
+ assertEquals(sketch.getQuantile(0), 1); // always min value
+ assertEquals(sketch.getQuantile(0.1), 2);
+ assertEquals(sketch.getQuantile(0.2), 3);
+ assertEquals(sketch.getQuantile(0.3), 4);
+ assertEquals(sketch.getQuantile(0.4), 5);
+ assertEquals(sketch.getQuantile(0.5), 6);
+ assertEquals(sketch.getQuantile(0.6), 7);
+ assertEquals(sketch.getQuantile(0.7), 8);
+ assertEquals(sketch.getQuantile(0.8), 9);
+ assertEquals(sketch.getQuantile(0.9), 10);
+ assertEquals(sketch.getQuantile(1), 10); // always max value
+ // inclusive = true
+ assertEquals(sketch.getQuantile(0, true), 1); // always min value
+ assertEquals(sketch.getQuantile(0.1, true), 1);
+ assertEquals(sketch.getQuantile(0.2, true), 2);
+ assertEquals(sketch.getQuantile(0.3, true), 3);
+ assertEquals(sketch.getQuantile(0.4, true), 4);
+ assertEquals(sketch.getQuantile(0.5, true), 5);
+ assertEquals(sketch.getQuantile(0.6, true), 6);
+ assertEquals(sketch.getQuantile(0.7, true), 7);
+ assertEquals(sketch.getQuantile(0.8, true), 8);
+ assertEquals(sketch.getQuantile(0.9, true), 9);
+ assertEquals(sketch.getQuantile(1, true), 10); // always max value
+
+ // getQuantile() and getQuantiles() equivalence
+ {
+ // inclusive = false (default)
+ final float[] quantiles =
+ sketch.getQuantiles(new double[] {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1});
+ for (int i = 0; i <= 10; i++) {
+ assertEquals(sketch.getQuantile(i / 10.0), quantiles[i]);
+ }
+ }
+ {
+ // inclusive = true
+ final float[] quantiles =
+ sketch.getQuantiles(new double[] {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}, true);
+ for (int i = 0; i <= 10; i++) {
+ assertEquals(sketch.getQuantile(i / 10.0, true), quantiles[i]);
+ }
+ }
+ }
+
private static void outputCompactorDetail(final ReqSketch sk, final String fmt, final boolean allData, final String text) {
println(text);
println(sk.viewCompactorDetail(fmt, allData));
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org