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