From e1f286d1f941102c4f0c867a5fa329ab9aa0a024 Mon Sep 17 00:00:00 2001 From: jmalkin Date: Tue, 11 Apr 2017 14:04:10 -0700 Subject: [PATCH 1/2] bump VersionEye version, add missing copyrights, improve sampling union reset tests --- .gitignore | 6 +- pom.xml | 2 +- .../quantiles/CompactDoublesSketch.java | 5 ++ .../quantiles/DoublesArrayAccessor.java | 5 ++ .../quantiles/DoublesBufferAccessor.java | 5 ++ .../quantiles/DoublesSketchAccessor.java | 5 ++ .../quantiles/UpdateDoublesSketch.java | 5 ++ .../sampling/ReservoirItemsUnionTest.java | 23 ++++++++ .../sampling/ReservoirLongsUnionTest.java | 55 +++++++++++++------ 9 files changed, 93 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index b151feb29..05efb459e 100644 --- a/.gitignore +++ b/.gitignore @@ -26,12 +26,16 @@ jarsIn/ *.jar build.xml .idea -*.iml *.properties *.releaseBackup *.next *.tag +# IntelliJ project files +*.iml +*.ipr +*.iws + # Jekyll Gemfile Gemfile.lock diff --git a/pom.xml b/pom.xml index 5a235bbd6..f650fd20b 100644 --- a/pom.xml +++ b/pom.xml @@ -450,7 +450,7 @@ com.versioneye versioneye-maven-plugin - 3.11.1 + 3.11.2 diff --git a/sketches/src/main/java/com/yahoo/sketches/quantiles/CompactDoublesSketch.java b/sketches/src/main/java/com/yahoo/sketches/quantiles/CompactDoublesSketch.java index e28d92468..0a13a3e8b 100644 --- a/sketches/src/main/java/com/yahoo/sketches/quantiles/CompactDoublesSketch.java +++ b/sketches/src/main/java/com/yahoo/sketches/quantiles/CompactDoublesSketch.java @@ -1,3 +1,8 @@ +/* + * Copyright 2017, Yahoo! Inc. + * Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root for terms. + */ + package com.yahoo.sketches.quantiles; import com.yahoo.memory.Memory; diff --git a/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesArrayAccessor.java b/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesArrayAccessor.java index 0d1d435df..1a82c9c28 100644 --- a/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesArrayAccessor.java +++ b/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesArrayAccessor.java @@ -1,3 +1,8 @@ +/* + * Copyright 2017, Yahoo! Inc. + * Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root for terms. + */ + package com.yahoo.sketches.quantiles; import java.util.Arrays; diff --git a/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesBufferAccessor.java b/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesBufferAccessor.java index 72fcd2c3f..f346d1143 100644 --- a/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesBufferAccessor.java +++ b/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesBufferAccessor.java @@ -1,3 +1,8 @@ +/* + * Copyright 2017, Yahoo! Inc. + * Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root for terms. + */ + package com.yahoo.sketches.quantiles; /** diff --git a/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesSketchAccessor.java b/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesSketchAccessor.java index 63c2a2373..6e15c9021 100644 --- a/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesSketchAccessor.java +++ b/sketches/src/main/java/com/yahoo/sketches/quantiles/DoublesSketchAccessor.java @@ -1,3 +1,8 @@ +/* + * Copyright 2017, Yahoo! Inc. + * Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root for terms. + */ + package com.yahoo.sketches.quantiles; import static com.yahoo.sketches.quantiles.PreambleUtil.COMBINED_BUFFER; diff --git a/sketches/src/main/java/com/yahoo/sketches/quantiles/UpdateDoublesSketch.java b/sketches/src/main/java/com/yahoo/sketches/quantiles/UpdateDoublesSketch.java index 382d35ee1..50ae5220a 100644 --- a/sketches/src/main/java/com/yahoo/sketches/quantiles/UpdateDoublesSketch.java +++ b/sketches/src/main/java/com/yahoo/sketches/quantiles/UpdateDoublesSketch.java @@ -1,3 +1,8 @@ +/* + * Copyright 2017, Yahoo! Inc. + * Licensed under the terms of the Apache License 2.0. See LICENSE file at the project root for terms. + */ + package com.yahoo.sketches.quantiles; import com.yahoo.memory.Memory; diff --git a/sketches/src/test/java/com/yahoo/sketches/sampling/ReservoirItemsUnionTest.java b/sketches/src/test/java/com/yahoo/sketches/sampling/ReservoirItemsUnionTest.java index 08a64037e..6135885ed 100644 --- a/sketches/src/test/java/com/yahoo/sketches/sampling/ReservoirItemsUnionTest.java +++ b/sketches/src/test/java/com/yahoo/sketches/sampling/ReservoirItemsUnionTest.java @@ -225,6 +225,29 @@ public void checkDownsampledUpdate() { assertEquals(riu.getResult().getNumSamples(), smallK); } + @Test + public void checkUnionResetWithInitialSmallK() { + final int maxK = 25; + final int sketchK = 10; + final ReservoirItemsUnion riu = ReservoirItemsUnion.getInstance(maxK); + + ReservoirItemsSketch ris = getBasicSketch(2 * sketchK, sketchK); // in sampling mode + riu.update(ris); + assertEquals(riu.getMaxK(), maxK); + assertNotNull(riu.getResult()); + assertEquals(riu.getResult().getK(), sketchK); + + riu.reset(); + assertNotNull(riu.getResult()); + + // feed in sketch in sampling mode, with larger k than old gadget + ris = getBasicSketch(2 * maxK, maxK + 1); + riu.update(ris); + assertEquals(riu.getMaxK(), maxK); + assertNotNull(riu.getResult()); + assertEquals(riu.getResult().getK(), maxK); + } + @Test public void checkNewGadget() { final int maxK = 1024; diff --git a/sketches/src/test/java/com/yahoo/sketches/sampling/ReservoirLongsUnionTest.java b/sketches/src/test/java/com/yahoo/sketches/sampling/ReservoirLongsUnionTest.java index 2d72e1da5..2741a4c26 100644 --- a/sketches/src/test/java/com/yahoo/sketches/sampling/ReservoirLongsUnionTest.java +++ b/sketches/src/test/java/com/yahoo/sketches/sampling/ReservoirLongsUnionTest.java @@ -208,6 +208,29 @@ public void checkDownsampledUpdate() { assertEquals(rlu.getResult().getNumSamples(), smallK); } + @Test + public void checkUnionResetWithInitialSmallK() { + final int maxK = 25; + final int sketchK = 10; + final ReservoirLongsUnion rlu = ReservoirLongsUnion.getInstance(maxK); + + ReservoirLongsSketch rls = getBasicSketch(2 * sketchK, sketchK); // in sampling mode + rlu.update(rls); + assertEquals(rlu.getMaxK(), maxK); + assertNotNull(rlu.getResult()); + assertEquals(rlu.getResult().getK(), sketchK); + + rlu.reset(); + assertNotNull(rlu.getResult()); + + // feed in sketch in sampling mode, with larger k than old gadget + rls = getBasicSketch(2 * maxK, maxK + 1); + rlu.update(rls); + assertEquals(rlu.getMaxK(), maxK); + assertNotNull(rlu.getResult()); + assertEquals(rlu.getResult().getK(), maxK); + } + @Test public void checkNewGadget() { final int maxK = 1024; @@ -219,34 +242,34 @@ public void checkNewGadget() { final byte[] bigKBytes = bigKSketch.toByteArray(); final Memory bigKMem = new NativeMemory(bigKBytes); - ReservoirLongsUnion riu = ReservoirLongsUnion.getInstance(maxK); - riu.update(bigKMem); - assertNotNull(riu.getResult()); - assertEquals(riu.getResult().getK(), maxK); - assertEquals(riu.getResult().getN(), maxK / 2); + ReservoirLongsUnion rlu = ReservoirLongsUnion.getInstance(maxK); + rlu.update(bigKMem); + assertNotNull(rlu.getResult()); + assertEquals(rlu.getResult().getK(), maxK); + assertEquals(rlu.getResult().getN(), maxK / 2); // sketch k < maxK but in sampling mode final ReservoirLongsSketch smallKSketch = getBasicSketch(maxK, smallK); final byte[] smallKBytes = smallKSketch.toByteArray(); final Memory smallKMem = new NativeMemory(smallKBytes); - riu = ReservoirLongsUnion.getInstance(maxK); - riu.update(smallKMem); - assertNotNull(riu.getResult()); - assertTrue(riu.getResult().getK() < maxK); - assertEquals(riu.getResult().getK(), smallK); - assertEquals(riu.getResult().getN(), maxK); + rlu = ReservoirLongsUnion.getInstance(maxK); + rlu.update(smallKMem); + assertNotNull(rlu.getResult()); + assertTrue(rlu.getResult().getK() < maxK); + assertEquals(rlu.getResult().getK(), smallK); + assertEquals(rlu.getResult().getN(), maxK); // sketch k < maxK and in exact mode final ReservoirLongsSketch smallKExactSketch = getBasicSketch(smallK, smallK); final byte[] smallKExactBytes = smallKExactSketch.toByteArray(); final Memory smallKExactMem = new NativeMemory(smallKExactBytes); - riu = ReservoirLongsUnion.getInstance(maxK); - riu.update(smallKExactMem); - assertNotNull(riu.getResult()); - assertEquals(riu.getResult().getK(), maxK); - assertEquals(riu.getResult().getN(), smallK); + rlu = ReservoirLongsUnion.getInstance(maxK); + rlu.update(smallKExactMem); + assertNotNull(rlu.getResult()); + assertEquals(rlu.getResult().getK(), maxK); + assertEquals(rlu.getResult().getN(), smallK); } @Test From e2414e4144da65a0f8de72c96aca62bf6f197768 Mon Sep 17 00:00:00 2001 From: jmalkin Date: Tue, 11 Apr 2017 15:11:07 -0700 Subject: [PATCH 2/2] make varopt classes package-private --- .../java/com/yahoo/sketches/sampling/VarOptItemsSamples.java | 2 +- .../java/com/yahoo/sketches/sampling/VarOptItemsSketch.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sketches/src/main/java/com/yahoo/sketches/sampling/VarOptItemsSamples.java b/sketches/src/main/java/com/yahoo/sketches/sampling/VarOptItemsSamples.java index 9484755d5..82078cbaf 100644 --- a/sketches/src/main/java/com/yahoo/sketches/sampling/VarOptItemsSamples.java +++ b/sketches/src/main/java/com/yahoo/sketches/sampling/VarOptItemsSamples.java @@ -29,7 +29,7 @@ * * @author Jon Malkin */ -public class VarOptItemsSamples implements Iterable.WeightedSample> { +class VarOptItemsSamples implements Iterable.WeightedSample> { private final VarOptItemsSketch sketch_; private VarOptItemsSketch.Result sampleLists; diff --git a/sketches/src/main/java/com/yahoo/sketches/sampling/VarOptItemsSketch.java b/sketches/src/main/java/com/yahoo/sketches/sampling/VarOptItemsSketch.java index 5026f25fa..c30e15822 100644 --- a/sketches/src/main/java/com/yahoo/sketches/sampling/VarOptItemsSketch.java +++ b/sketches/src/main/java/com/yahoo/sketches/sampling/VarOptItemsSketch.java @@ -47,7 +47,7 @@ * @author Jon Malkin * @author Kevin Lang */ -public final class VarOptItemsSketch { +final class VarOptItemsSketch { /** * The smallest sampling array allocated: 16 */