You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by le...@apache.org on 2020/09/08 22:45:32 UTC

[incubator-datasketches-java] branch RelativeErrorQuantiles updated: Added unit tests

This is an automated email from the ASF dual-hosted git repository.

leerho pushed a commit to branch RelativeErrorQuantiles
in repository https://gitbox.apache.org/repos/asf/incubator-datasketches-java.git


The following commit(s) were added to refs/heads/RelativeErrorQuantiles by this push:
     new 05feca3  Added unit tests
05feca3 is described below

commit 05feca3a126842d258576ab01fcac4ba813b5db7
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Tue Sep 8 15:45:04 2020 -0700

    Added unit tests
---
 .../org/apache/datasketches/req/ReqSketch.java     |  6 ++--
 .../apache/datasketches/req/ReqCompactorTest.java  | 18 ++++++++++-
 .../datasketches/req/ReqSketchOtherTest.java       | 36 ++++++++++++++++++++--
 .../org/apache/datasketches/req/ReqSketchTest.java | 15 ++++++---
 4 files changed, 66 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/apache/datasketches/req/ReqSketch.java b/src/main/java/org/apache/datasketches/req/ReqSketch.java
index a9b1f78..1864ed0 100644
--- a/src/main/java/org/apache/datasketches/req/ReqSketch.java
+++ b/src/main/java/org/apache/datasketches/req/ReqSketch.java
@@ -311,8 +311,9 @@ public class ReqSketch extends BaseReqSketch {
   @Override
   public double getRankLowerBound(final float value, final int numStdDev) {
     final long nnRank = getCounts(new float[] { value })[0];
+    if (getNumLevels() == 1) { return nnRank / getN(); }
     if (nnRank <= (k * INIT_NUMBER_OF_SECTIONS)) {
-      return nnRank;
+      return nnRank / getN();
     }
     else {
       final double nRank = nnRank / getN();
@@ -334,8 +335,9 @@ public class ReqSketch extends BaseReqSketch {
   @Override
   public double getRankUpperBound(final float value, final int numStdDev) {
     final long nnRank = getCounts(new float[] { value })[0];
+    if (getNumLevels() == 1) { return nnRank / getN(); }
     if (nnRank <= (k * INIT_NUMBER_OF_SECTIONS)) {
-      return nnRank;
+      return nnRank / getN();
     }
     else {
       final double nRank = nnRank / getN();
diff --git a/src/test/java/org/apache/datasketches/req/ReqCompactorTest.java b/src/test/java/org/apache/datasketches/req/ReqCompactorTest.java
index 1ca6c69..9741632 100644
--- a/src/test/java/org/apache/datasketches/req/ReqCompactorTest.java
+++ b/src/test/java/org/apache/datasketches/req/ReqCompactorTest.java
@@ -28,10 +28,26 @@ import org.testng.annotations.Test;
  */
 @SuppressWarnings("javadoc")
 public class ReqCompactorTest {
-
+  final ReqSketchTest reqSketchTest = new ReqSketchTest();
 
   @Test
   public void checkNearestEven() {
     assertEquals(ReqHelper.nearestEven(-0.9), 0);
   }
+
+  @Test
+  public void checkGetters() {
+    boolean up = true;
+    boolean hra = true;
+    boolean lteq = true;
+    ReqSketch sk = reqSketchTest.loadSketch( 20,   1, 120,  up,  hra,  lteq, 0);
+    ReqCompactor c = sk.getCompactors().get(0);
+
+    c.getCoin();
+    int numCompacts = c.getNumCompactions();
+    assertEquals(numCompacts, 1);
+    assertEquals(c.getNumSections(), 3);
+    assertEquals(c.getSectionSize(), 20);
+    assertEquals(c.getState(), numCompacts);
+  }
 }
diff --git a/src/test/java/org/apache/datasketches/req/ReqSketchOtherTest.java b/src/test/java/org/apache/datasketches/req/ReqSketchOtherTest.java
index 3b5e911..c4ca019 100644
--- a/src/test/java/org/apache/datasketches/req/ReqSketchOtherTest.java
+++ b/src/test/java/org/apache/datasketches/req/ReqSketchOtherTest.java
@@ -20,6 +20,7 @@
 package org.apache.datasketches.req;
 
 import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertNotNull;
 import static org.testng.Assert.fail;
 
 import org.apache.datasketches.SketchesArgumentException;
@@ -68,10 +69,29 @@ public class ReqSketchOtherTest {
 
   @Test
   public void checkEstimationMode() {
-    ReqSketch sk = reqSketchTest.loadSketch( 6,   1, 35,  true,  false,  false, 0);
+    boolean up = true;
+    boolean hra = true;
+    boolean lteq = true;
+    ReqSketch sk = reqSketchTest.loadSketch( 20,   1, 119,  up,  hra,  lteq, 0);
     assertEquals(sk.isEstimationMode(), false);
-    sk.update(36);
+    double lb = sk.getRankLowerBound(119, 1);
+    double ub = sk.getRankUpperBound(119, 1);
+    assertEquals(lb, 1.0);
+    assertEquals(ub, 1.0);
+    int maxNomSize = sk.getMaxNomSize();
+    assertEquals(maxNomSize, 120);
+    sk.update(120);
     assertEquals(sk.isEstimationMode(), true);
+    lb = sk.getRankLowerBound(120, 1);
+    ub = sk.getRankUpperBound(120, 1);
+    assertEquals(lb, 0.0);
+    assertEquals(ub, 2.0);
+    maxNomSize = sk.getMaxNomSize();
+    assertEquals(maxNomSize, 240);
+    float v = sk.getQuantile(1.0);
+    assertEquals(v, 120.0f);
+    ReqAuxiliary aux = sk.getAux();
+    assertNotNull(aux);
   }
 
   @Test
@@ -87,4 +107,16 @@ public class ReqSketchOtherTest {
     try { sk.getRank(Float.POSITIVE_INFINITY); fail(); } catch (AssertionError e) {}
   }
 
+  @Test
+  public void checkFlags() {
+    ReqSketch sk = new ReqSketch();
+    sk.setLtEq(true);
+    assertEquals(sk.getLtEq(), true);
+    sk.setLtEq(false);
+    assertEquals(sk.getLtEq(), false);
+  }
+
+
+
+
 }
diff --git a/src/test/java/org/apache/datasketches/req/ReqSketchTest.java b/src/test/java/org/apache/datasketches/req/ReqSketchTest.java
index 9078117..0249700 100644
--- a/src/test/java/org/apache/datasketches/req/ReqSketchTest.java
+++ b/src/test/java/org/apache/datasketches/req/ReqSketchTest.java
@@ -74,11 +74,17 @@ public class ReqSketchTest {
   }
 
   private static void checkToString(ReqSketch sk, int iDebug) {
-    boolean summary = iDebug > 0;
-    boolean allData = iDebug > 1;
+    boolean summary = iDebug == 1;
+    boolean allData = iDebug == 2;
+    String brief = sk.toString();
+    String all = sk.viewCompactorDetail("%4.0f", true);
     if (summary) {
-      println(sk.toString());
-      println(sk.viewCompactorDetail("%4.0f", allData));
+      println(brief);
+      println(sk.viewCompactorDetail("%4.0f", false));
+    }
+    if (allData) {
+      println(brief);
+      println(all);
     }
   }
 
@@ -220,6 +226,7 @@ public class ReqSketchTest {
       boolean lteq, int skDebug) {
 
     ReqSketch sk = new ReqSketch(k, hra, new ReqDebugImpl(skDebug));
+    if (lteq) { sk.setLtEq(lteq); }
     if (up) {
       for (int i = min; i <= max; i++) {
         sk.update(i);


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org