/** * Heapify the given Memory and seed as a ArrayOfDoublesUpdatableSketch * @param mem the given Memory * @param seed the given seed * @return an ArrayOfDoublesUpdatableSketch */ public static ArrayOfDoublesUpdatableSketch heapifyUpdatableSketch(final Memory mem, final long seed) { return ArrayOfDoublesUpdatableSketch.heapify(mem, seed); }
/** * Heapify the given Memory as an ArrayOfDoublesUpdatableSketch * @param mem the given Memory * @return an ArrayOfDoublesUpdatableSketch */ public static ArrayOfDoublesUpdatableSketch heapify(final Memory mem) { return heapify(mem, DEFAULT_UPDATE_SEED); }
@Test public void serializeDeserializeExact() { ArrayOfDoublesUpdatableSketch sketch1 = new ArrayOfDoublesUpdatableSketchBuilder().build(); sketch1.update(1, new double[] {1.0}); ArrayOfDoublesUpdatableSketch sketch2 = ArrayOfDoublesUpdatableSketch.heapify(WritableMemory.wrap(sketch1.toByteArray())); Assert.assertEquals(sketch2.getEstimate(), 1.0); double[][] values = sketch2.getValues(); Assert.assertEquals(values.length, 1); Assert.assertEquals(values[0][0], 1.0); // the same key, so still one unique sketch2.update(1, new double[] {1.0}); Assert.assertEquals(sketch2.getEstimate(), 1.0); sketch2.update(2, new double[] {1.0}); Assert.assertEquals(sketch2.getEstimate(), 2.0); }
/** * Heapify the given Memory and seed as a ArrayOfDoublesUpdatableSketch * @param mem the given Memory * @param seed the given seed * @return an ArrayOfDoublesUpdatableSketch */ public static ArrayOfDoublesUpdatableSketch heapifyUpdatableSketch(final Memory mem, final long seed) { return ArrayOfDoublesUpdatableSketch.heapify(mem, seed); }
/** * Heapify the given Memory as an ArrayOfDoublesUpdatableSketch * @param mem the given Memory * @return an ArrayOfDoublesUpdatableSketch */ public static ArrayOfDoublesUpdatableSketch heapify(final Memory mem) { return heapify(mem, DEFAULT_UPDATE_SEED); }
sketch1.update("a", valuesArr); noopUpdates(sketch1, valuesArr); ArrayOfDoublesUpdatableSketch sketch2 = ArrayOfDoublesUpdatableSketch.heapify(Memory.wrap(sketch1.toByteArray())); sketch2.update("b", valuesArr); sketch2.update("c", valuesArr);
@Test public void directToHeapWithSeed() { long seed = 1; double[] values = {1.0}; ArrayOfDoublesUpdatableSketch sketch1 = new ArrayOfDoublesUpdatableSketchBuilder().setSeed(seed).build( WritableMemory.wrap(new byte[1000000])); sketch1.update("a", values); sketch1.update("b", values); sketch1.update("c", values); ArrayOfDoublesUpdatableSketch sketch2 = ArrayOfDoublesUpdatableSketch.heapify(Memory.wrap(sketch1.toByteArray()), seed); sketch2.update("b", values); sketch2.update("c", values); sketch2.update("d", values); Assert.assertEquals(sketch2.getEstimate(), 4.0); }