@Test public void checkMisc() { int k = PreambleUtil.DEFAULT_K; int n = 10000; UpdateDoublesSketch qs = buildAndLoadQS(k, n); qs.update(Double.NaN); //ignore int n2 = (int)qs.getN(); assertEquals(n2, n); qs.reset(); assertEquals(qs.getN(), 0); }
@Test public void wrapEmptyUpdateSketch() { final UpdateDoublesSketch s1 = DoublesSketch.builder().build(); final WritableMemory mem = WritableMemory.wrap(ByteBuffer.wrap(s1.toByteArray()).order(ByteOrder.nativeOrder())); final UpdateDoublesSketch s2 = DirectUpdateDoublesSketch.wrapInstance(mem); assertTrue(s2.isEmpty()); assertEquals(s2.getN(), 0); assertTrue(Double.isNaN(s2.getMinValue())); assertTrue(Double.isNaN(s2.getMaxValue())); s2.reset(); // empty: so should be a no-op assertEquals(s2.getN(), 0); }
@SuppressWarnings("unused") @Test public void checkToStringDetail() { int k = PreambleUtil.DEFAULT_K; int n = 1000000; UpdateDoublesSketch qs = buildAndLoadQS(k, 0); String s = qs.toString(); s = qs.toString(false, true); //println(s); qs = buildAndLoadQS(k, n); s = qs.toString(); //println(s); s = qs.toString(false, true); //println(qs.toString(false, true)); int n2 = (int)qs.getN(); assertEquals(n2, n); qs.update(Double.NaN); //ignore qs.reset(); assertEquals(qs.getN(), 0); }
s2.reset(); fail(); } catch (final SketchesReadOnlyException e) {
@Test public void checkMisc() { int k = PreambleUtil.DEFAULT_K; int n = 48; int cap = 32 + ((2 * k) << 3); WritableMemory mem = WritableMemory.wrap(new byte[cap]); UpdateDoublesSketch qs = DoublesSketch.builder().setK(k).build(mem); mem = qs.getMemory(); assertEquals(mem.getCapacity(), cap); double[] combBuf = qs.getCombinedBuffer(); assertEquals(combBuf.length, 2 * k); qs = buildAndLoadDQS(k, n); qs.update(Double.NaN); int n2 = (int)qs.getN(); assertEquals(n2, n); combBuf = qs.getCombinedBuffer(); assertEquals(combBuf.length, ceilingPowerOf2(n)); // since n < k println(qs.toString(true, true)); qs.reset(); assertEquals(qs.getN(), 0); qs.putBaseBufferCount(0); }
@Override protected void mergeUpdateSketch() { result = updateSketch.compact(); updateSketch.reset(); }
@Override protected void mergeBothSketches() { unionSketch.update(updateSketch); updateSketch.reset(); mergeUnionSketch(); }
@Override public void reset() { result = null; updateSketch.reset(); unionSketch.reset(); super.reset(); }