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 2022/04/19 18:53:26 UTC

[datasketches-java] branch master updated: This commit removes the public toUpdatableByteArray() method from the public classes KllDoubleSketch and KllFloatsSketch.

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 70d73562 This commit removes the public toUpdatableByteArray() method from the public classes KllDoubleSketch and KllFloatsSketch.
70d73562 is described below

commit 70d735622280fb8bd2ce5606227be35449448e46
Author: Lee Rhodes <le...@users.noreply.github.com>
AuthorDate: Tue Apr 19 11:53:19 2022 -0700

    This commit removes the public toUpdatableByteArray() method from the
    public classes KllDoubleSketch and KllFloatsSketch.
---
 .../datasketches/kll/KllDirectDoublesSketch.java   | 13 ------
 .../datasketches/kll/KllDirectFloatsSketch.java    | 13 ------
 .../org/apache/datasketches/kll/KllHelper.java     | 46 ++++++++++++++++++----
 .../org/apache/datasketches/kll/KllSketch.java     |  8 ----
 .../kll/KllDirectCompactDoublesSketchTest.java     |  2 +-
 .../kll/KllDirectCompactFloatsSketchTest.java      |  2 +-
 .../kll/KllDirectDoublesSketchIteratorTest.java    |  2 +-
 .../kll/KllDirectDoublesSketchTest.java            | 18 ++++-----
 .../kll/KllDirectFloatsSketchIteratorTest.java     |  2 +-
 .../kll/KllDirectFloatsSketchTest.java             | 18 ++++-----
 .../org/apache/datasketches/kll/KllHelperTest.java |  4 +-
 .../datasketches/kll/KllMemoryValidateTest.java    |  4 +-
 .../org/apache/datasketches/kll/KllSketchTest.java |  8 ++--
 .../datasketches/kll/MiscDirectDoublesTest.java    | 22 +++++------
 .../datasketches/kll/MiscDirectFloatsTest.java     | 22 +++++------
 .../apache/datasketches/kll/MiscDoublesTest.java   | 20 +++++-----
 .../apache/datasketches/kll/MiscFloatsTest.java    | 20 +++++-----
 17 files changed, 111 insertions(+), 113 deletions(-)

diff --git a/src/main/java/org/apache/datasketches/kll/KllDirectDoublesSketch.java b/src/main/java/org/apache/datasketches/kll/KllDirectDoublesSketch.java
index 9abc6ccb..a41a74af 100644
--- a/src/main/java/org/apache/datasketches/kll/KllDirectDoublesSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllDirectDoublesSketch.java
@@ -21,7 +21,6 @@ package org.apache.datasketches.kll;
 
 import static org.apache.datasketches.kll.KllPreambleUtil.DATA_START_ADR;
 import static org.apache.datasketches.kll.KllPreambleUtil.DOUBLES_SKETCH_BIT_MASK;
-import static org.apache.datasketches.kll.KllPreambleUtil.FLAGS_BYTE_ADR;
 import static org.apache.datasketches.kll.KllPreambleUtil.PREAMBLE_INTS_FULL;
 import static org.apache.datasketches.kll.KllPreambleUtil.SERIAL_VERSION_UPDATABLE;
 import static org.apache.datasketches.kll.KllPreambleUtil.UPDATABLE_BIT_MASK;
@@ -111,18 +110,6 @@ class KllDirectDoublesSketch extends KllDoublesSketch {
     return getMemoryN(wmem);
   }
 
-  @Override
-  public byte[] toUpdatableByteArray() {
-    final int bytes = getCurrentUpdatableSerializedSizeBytes();
-    final long n = getN();
-    final byte flags = (byte)(UPDATABLE_BIT_MASK | DOUBLES_SKETCH_BIT_MASK
-        | ((n == 0) ? 1 : 0) | ((n == 1) ? 4 : 0));
-    final byte[] byteArr = new byte[bytes];
-    wmem.getByteArray(0, byteArr, 0, bytes);
-    byteArr[FLAGS_BYTE_ADR] = flags;
-    return byteArr;
-  }
-
   @Override //returns entire array including empty space at bottom
   double[] getDoubleItemsArray() {
     final int capacityItems = levelsArr[getNumLevels()];
diff --git a/src/main/java/org/apache/datasketches/kll/KllDirectFloatsSketch.java b/src/main/java/org/apache/datasketches/kll/KllDirectFloatsSketch.java
index c7b417db..ec057f86 100644
--- a/src/main/java/org/apache/datasketches/kll/KllDirectFloatsSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllDirectFloatsSketch.java
@@ -20,7 +20,6 @@
 package org.apache.datasketches.kll;
 
 import static org.apache.datasketches.kll.KllPreambleUtil.DATA_START_ADR;
-import static org.apache.datasketches.kll.KllPreambleUtil.FLAGS_BYTE_ADR;
 import static org.apache.datasketches.kll.KllPreambleUtil.PREAMBLE_INTS_FULL;
 import static org.apache.datasketches.kll.KllPreambleUtil.SERIAL_VERSION_UPDATABLE;
 import static org.apache.datasketches.kll.KllPreambleUtil.UPDATABLE_BIT_MASK;
@@ -111,18 +110,6 @@ class KllDirectFloatsSketch extends KllFloatsSketch {
     return getMemoryN(wmem);
   }
 
-  @Override
-  public byte[] toUpdatableByteArray() {
-    final int bytes = (int) wmem.getCapacity();
-    final long n = getN();
-    final byte flags = (byte)(UPDATABLE_BIT_MASK
-        | ((n == 0) ? 1 : 0) | ((n == 1) ? 4 : 0));
-    final byte[] byteArr = new byte[bytes];
-    wmem.getByteArray(0, byteArr, 0, bytes);
-    byteArr[FLAGS_BYTE_ADR] = flags;
-    return byteArr;
-  }
-
   @Override
   double getDoubleSingleItem() { kllSketchThrow(MUST_NOT_CALL); return Double.NaN; }
 
diff --git a/src/main/java/org/apache/datasketches/kll/KllHelper.java b/src/main/java/org/apache/datasketches/kll/KllHelper.java
index 4575caf3..38d85e5c 100644
--- a/src/main/java/org/apache/datasketches/kll/KllHelper.java
+++ b/src/main/java/org/apache/datasketches/kll/KllHelper.java
@@ -33,6 +33,7 @@ import static org.apache.datasketches.kll.KllPreambleUtil.DATA_START_ADR;
 import static org.apache.datasketches.kll.KllPreambleUtil.DATA_START_ADR_SINGLE_ITEM;
 import static org.apache.datasketches.kll.KllPreambleUtil.DOUBLES_SKETCH_BIT_MASK;
 import static org.apache.datasketches.kll.KllPreambleUtil.EMPTY_BIT_MASK;
+import static org.apache.datasketches.kll.KllPreambleUtil.FLAGS_BYTE_ADR;
 import static org.apache.datasketches.kll.KllPreambleUtil.KLL_FAMILY;
 import static org.apache.datasketches.kll.KllPreambleUtil.K_SHORT_ADR;
 import static org.apache.datasketches.kll.KllPreambleUtil.PREAMBLE_INTS_EMPTY_SINGLE;
@@ -41,6 +42,7 @@ import static org.apache.datasketches.kll.KllPreambleUtil.SERIAL_VERSION_EMPTY_F
 import static org.apache.datasketches.kll.KllPreambleUtil.SERIAL_VERSION_SINGLE;
 import static org.apache.datasketches.kll.KllPreambleUtil.SERIAL_VERSION_UPDATABLE;
 import static org.apache.datasketches.kll.KllPreambleUtil.SINGLE_ITEM_BIT_MASK;
+import static org.apache.datasketches.kll.KllPreambleUtil.UPDATABLE_BIT_MASK;
 import static org.apache.datasketches.kll.KllPreambleUtil.setMemoryDoubleSketchFlag;
 import static org.apache.datasketches.kll.KllPreambleUtil.setMemoryEmptyFlag;
 import static org.apache.datasketches.kll.KllPreambleUtil.setMemoryFamilyID;
@@ -682,6 +684,8 @@ final class KllHelper {
     final boolean doubleType = (mine.sketchType == DOUBLES_SKETCH);
     final int k = mine.getK();
     final int m = mine.getM();
+    final int numLevels = mine.getNumLevels();
+    final int[] levelsArr = mine.getLevelsArray();
     final String epsPct = String.format("%.3f%%", mine.getNormalizedRankError(false) * 100);
     final String epsPMFPct = String.format("%.3f%%", mine.getNormalizedRankError(true) * 100);
     final StringBuilder sb = new StringBuilder();
@@ -695,10 +699,9 @@ final class KllHelper {
     sb.append("   Epsison PMF            : ").append(epsPMFPct).append(Util.LS);
     sb.append("   Empty                  : ").append(mine.isEmpty()).append(Util.LS);
     sb.append("   Estimation Mode        : ").append(mine.isEstimationMode()).append(Util.LS);
-    sb.append("   Levels                 : ").append(mine.getNumLevels()).append(Util.LS);
+    sb.append("   Levels                 : ").append(numLevels).append(Util.LS);
     sb.append("   Level 0 Sorted         : ").append(mine.isLevelZeroSorted()).append(Util.LS);
-    final int cap = (doubleType) ? mine.getDoubleItemsArray().length : mine.getFloatItemsArray().length; //TODO FIX
-    sb.append("   Capacity Items         : ").append(cap).append(Util.LS);
+    sb.append("   Capacity Items         : ").append(levelsArr[numLevels]).append(Util.LS);
     sb.append("   Retained Items         : ").append(mine.getNumRetained()).append(Util.LS);
     if (mine.updatableMemFormat) {
       sb.append("   Updatable Storage Bytes: ").append(mine.getCurrentUpdatableSerializedSizeBytes()).append(Util.LS);
@@ -715,8 +718,6 @@ final class KllHelper {
     }
     sb.append("### End sketch summary").append(Util.LS);
 
-    final int myNumLevels = mine.getNumLevels();
-    final int[] myLevelsArr = mine.getLevelsArray();
     double[] myDoubleItemsArr = null;
     float[] myFloatItemsArr = null;
     if (doubleType) {
@@ -725,15 +726,46 @@ final class KllHelper {
       myFloatItemsArr = mine.getFloatItemsArray();
     }
     if (withLevels) {
-      sb.append(outputLevels(k, m, myNumLevels, myLevelsArr));
+      sb.append(outputLevels(k, m, numLevels, levelsArr));
     }
     if (withData) {
-      sb.append(outputData(doubleType, myNumLevels, myLevelsArr, myFloatItemsArr, myDoubleItemsArr));
+      sb.append(outputData(doubleType, numLevels, levelsArr, myFloatItemsArr, myDoubleItemsArr));
     }
     return sb.toString();
   }
 
+  /**
+   * This method exists for testing purposes only.  The resulting byteArray
+   * structure is an internal format and not supported for general transport
+   * or compatibility between systems and may be subject to change in the future.
+   * @param mine the current sketch to be serialized.
+   * @return a byte array in an updatable form.
+   */
+  private static byte[] toUpdatableByteArrayFromUpdatableMemory(final KllSketch mine) {
+    final boolean doubleType = (mine.sketchType == SketchType.DOUBLES_SKETCH);
+    final int curBytes = mine.getCurrentUpdatableSerializedSizeBytes();
+    final long n = mine.getN();
+    final byte flags = (byte) (UPDATABLE_BIT_MASK
+        | ((n == 0) ? EMPTY_BIT_MASK : 0)
+        | ((n == 1) ? SINGLE_ITEM_BIT_MASK : 0)
+        | (doubleType ? DOUBLES_SKETCH_BIT_MASK : 0));
+    final byte[] byteArr = new byte[curBytes];
+    mine.wmem.getByteArray(0, byteArr, 0, curBytes);
+    byteArr[FLAGS_BYTE_ADR] = flags;
+    return byteArr;
+  }
+
+  /**
+   * This method exists for testing purposes only.  The resulting byteArray
+   * structure is an internal format and not supported for general transport
+   * or compatibility between systems and may be subject to change in the future.
+   * @param mine the current sketch to be serialized.
+   * @return a byte array in an updatable form.
+   */
   static byte[] toUpdatableByteArrayImpl(final KllSketch mine) {
+    if (mine.hasMemory() && mine.updatableMemFormat) {
+      return toUpdatableByteArrayFromUpdatableMemory(mine);
+    }
     final byte[] byteArr = new byte[mine.getCurrentUpdatableSerializedSizeBytes()];
     final WritableMemory wmem = WritableMemory.writableWrap(byteArr);
     loadFirst8Bytes(mine, wmem, true);
diff --git a/src/main/java/org/apache/datasketches/kll/KllSketch.java b/src/main/java/org/apache/datasketches/kll/KllSketch.java
index 1c1c937e..e7162348 100644
--- a/src/main/java/org/apache/datasketches/kll/KllSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllSketch.java
@@ -431,14 +431,6 @@ abstract class KllSketch {
     return KllHelper.toStringImpl(this, withLevels, withData);
   }
 
-  /**
-   * Returns serialized sketch in an updatable Memory byte array format.
-   * @return serialized sketch in an updatable Memory byte array format.
-   */
-  public byte[] toUpdatableByteArray() {
-    return KllHelper.toUpdatableByteArrayImpl(this);
-  }
-
   /**
    * @return full size of internal items array including garbage.
    */
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectCompactDoublesSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectCompactDoublesSketchTest.java
index 1b5a7950..a12da434 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectCompactDoublesSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectCompactDoublesSketchTest.java
@@ -37,7 +37,7 @@ public class KllDirectCompactDoublesSketchTest {
     int k = 20;
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     Memory srcMem = Memory.wrap(byteArr);
     KllDoublesSketch sk2 = KllDoublesSketch.wrap(srcMem);
     assertEquals(sk2.getMinValue(), 1.0);
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectCompactFloatsSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectCompactFloatsSketchTest.java
index c5027446..fcf602c7 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectCompactFloatsSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectCompactFloatsSketchTest.java
@@ -37,7 +37,7 @@ public class KllDirectCompactFloatsSketchTest {
     int k = 20;
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     Memory srcMem = Memory.wrap(byteArr);
     KllFloatsSketch sk2 = KllFloatsSketch.wrap(srcMem);
     assertEquals(sk2.getMinValue(), 1.0F);
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchIteratorTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchIteratorTest.java
index ecce8a86..180394b5 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchIteratorTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchIteratorTest.java
@@ -67,7 +67,7 @@ public class KllDirectDoublesSketchIteratorTest {
   private static KllDoublesSketch getDDSketch(final int k, final int n) {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(k);
     for (int i = 1; i <= n; i++) { sk.update(i); }
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     WritableMemory wmem = WritableMemory.writableWrap(byteArr);
 
     KllDoublesSketch ddsk = KllDoublesSketch.writableWrap(wmem, memReqSvr);
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchTest.java
index f144f32f..599368d6 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchTest.java
@@ -327,7 +327,7 @@ public class KllDirectDoublesSketchTest {
   @Test
   public void serializeDeserializeEmptyViaUpdatableWritableWrap() {
     final KllDoublesSketch sketch1 = getDDSketch(200, 0);
-    final byte[] bytes = sketch1.toUpdatableByteArray();
+    final byte[] bytes = KllHelper.toUpdatableByteArrayImpl(sketch1);
     final KllDoublesSketch sketch2 =
         KllDoublesSketch.writableWrap(WritableMemory.writableWrap(bytes),memReqSvr);
     assertEquals(bytes.length, sketch1.getCurrentUpdatableSerializedSizeBytes());
@@ -360,7 +360,7 @@ public class KllDirectDoublesSketchTest {
   public void serializeDeserializeOneItemViaUpdatableWritableWrap() {
     final KllDoublesSketch sketch1 = getDDSketch(200, 0);
     sketch1.update(1);
-    final byte[] bytes = sketch1.toUpdatableByteArray();
+    final byte[] bytes = KllHelper.toUpdatableByteArrayImpl(sketch1);
     final KllDoublesSketch sketch2 =
         KllDoublesSketch.writableWrap(WritableMemory.writableWrap(bytes),memReqSvr);
     assertEquals(bytes.length, sketch1.getCurrentUpdatableSerializedSizeBytes());
@@ -397,7 +397,7 @@ public class KllDirectDoublesSketchTest {
     for (int i = 0; i < n; i++) {
       sketch1.update(i);
     }
-    final byte[] bytes = sketch1.toUpdatableByteArray();
+    final byte[] bytes = KllHelper.toUpdatableByteArrayImpl(sketch1);
     final KllDoublesSketch sketch2 =
         KllDoublesSketch.writableWrap(WritableMemory.writableWrap(bytes),memReqSvr);
     assertEquals(bytes.length, sketch1.getCurrentUpdatableSerializedSizeBytes());
@@ -455,8 +455,8 @@ public class KllDirectDoublesSketchTest {
     println(sk1.toString(true, true));
     println("SK2:");
     println(sk2.toString(true, true));
-    WritableMemory wmem1 = WritableMemory.writableWrap(sk1.toUpdatableByteArray());
-    WritableMemory wmem2 = WritableMemory.writableWrap(sk2.toUpdatableByteArray());
+    WritableMemory wmem1 = WritableMemory.writableWrap(KllHelper.toUpdatableByteArrayImpl(sk1));
+    WritableMemory wmem2 = WritableMemory.writableWrap(KllHelper.toUpdatableByteArrayImpl(sk2));
     KllDoublesSketch dsk1 = KllDoublesSketch.writableWrap(wmem1, memReqSvr);
     KllDoublesSketch dsk2 = KllDoublesSketch.writableWrap(wmem2, memReqSvr);
     println("BEFORE MERGE");
@@ -478,7 +478,7 @@ public class KllDirectDoublesSketchTest {
     sk2 = KllDoublesSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
     //println(sk2.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(compBytes, true));
     sk = KllDoublesSketch.writableWrap(wmem, memReqSvr);
@@ -498,7 +498,7 @@ public class KllDirectDoublesSketchTest {
     println("#### CASE: DOUBLE EMPTY HEAPIFIED FROM UPDATABLE");
     sk2 = KllDoublesSketch.newHeapInstance(k);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(compBytes, true));
     sk = KllDoublesSketch.writableWrap(wmem, memReqSvr);
@@ -519,7 +519,7 @@ public class KllDirectDoublesSketchTest {
     sk2 = KllDoublesSketch.newHeapInstance(k);
     sk2.update(1);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(compBytes, true));
     sk = KllDoublesSketch.writableWrap(wmem, memReqSvr);
@@ -665,7 +665,7 @@ public class KllDirectDoublesSketchTest {
   private static KllDoublesSketch getDDSketch(final int k, final int n) {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(k);
     for (int i = 1; i <= n; i++) { sk.update(i); }
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     WritableMemory wmem = WritableMemory.writableWrap(byteArr);
     KllDoublesSketch ddsk = KllDoublesSketch.writableWrap(wmem, memReqSvr);
     return ddsk;
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchIteratorTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchIteratorTest.java
index b42cfa5c..a467b6d2 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchIteratorTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchIteratorTest.java
@@ -67,7 +67,7 @@ public class KllDirectFloatsSketchIteratorTest {
   private static KllFloatsSketch getDFSketch(final int k, final int n) {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance(k);
     for (int i = 1; i <= n; i++) { sk.update(i); }
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     WritableMemory wmem = WritableMemory.writableWrap(byteArr);
 
     KllFloatsSketch dfsk = KllFloatsSketch.writableWrap(wmem, memReqSvr);
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchTest.java
index 7de9e1b9..2e202f3a 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchTest.java
@@ -327,7 +327,7 @@ public class KllDirectFloatsSketchTest {
   @Test
   public void serializeDeserializeEmptyViaUpdatableWritableWrap() {
     final KllFloatsSketch sketch1 = getDFSketch(200, 0);
-    final byte[] bytes = sketch1.toUpdatableByteArray();
+    final byte[] bytes = KllHelper.toUpdatableByteArrayImpl(sketch1);
     final KllFloatsSketch sketch2 =
         KllFloatsSketch.writableWrap(WritableMemory.writableWrap(bytes),memReqSvr);
     assertEquals(bytes.length, sketch1.getCurrentUpdatableSerializedSizeBytes());
@@ -360,7 +360,7 @@ public class KllDirectFloatsSketchTest {
   public void serializeDeserializeOneItemViaUpdatableWritableWrap() {
     final KllFloatsSketch sketch1 = getDFSketch(200, 0);
     sketch1.update(1);
-    final byte[] bytes = sketch1.toUpdatableByteArray();
+    final byte[] bytes = KllHelper.toUpdatableByteArrayImpl(sketch1);
     final KllFloatsSketch sketch2 =
         KllFloatsSketch.writableWrap(WritableMemory.writableWrap(bytes),memReqSvr);
     assertEquals(bytes.length, sketch1.getCurrentUpdatableSerializedSizeBytes());
@@ -397,7 +397,7 @@ public class KllDirectFloatsSketchTest {
     for (int i = 0; i < n; i++) {
       sketch1.update(i);
     }
-    final byte[] bytes = sketch1.toUpdatableByteArray();
+    final byte[] bytes = KllHelper.toUpdatableByteArrayImpl(sketch1);
     final KllFloatsSketch sketch2 =
         KllFloatsSketch.writableWrap(WritableMemory.writableWrap(bytes),memReqSvr);
     assertEquals(bytes.length, sketch1.getCurrentUpdatableSerializedSizeBytes());
@@ -455,8 +455,8 @@ public class KllDirectFloatsSketchTest {
     println(sk1.toString(true, true));
     println("SK2:");
     println(sk2.toString(true, true));
-    WritableMemory wmem1 = WritableMemory.writableWrap(sk1.toUpdatableByteArray());
-    WritableMemory wmem2 = WritableMemory.writableWrap(sk2.toUpdatableByteArray());
+    WritableMemory wmem1 = WritableMemory.writableWrap(KllHelper.toUpdatableByteArrayImpl(sk1));
+    WritableMemory wmem2 = WritableMemory.writableWrap(KllHelper.toUpdatableByteArrayImpl(sk2));
     KllFloatsSketch dsk1 = KllFloatsSketch.writableWrap(wmem1, memReqSvr);
     KllFloatsSketch dsk2 = KllFloatsSketch.writableWrap(wmem2, memReqSvr);
     println("BEFORE MERGE");
@@ -478,7 +478,7 @@ public class KllDirectFloatsSketchTest {
     sk2 = KllFloatsSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
     //println(sk2.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(compBytes, true));
     sk = KllFloatsSketch.writableWrap(wmem, memReqSvr);
@@ -498,7 +498,7 @@ public class KllDirectFloatsSketchTest {
     println("#### CASE: DOUBLE EMPTY HEAPIFIED FROM UPDATABLE");
     sk2 = KllFloatsSketch.newHeapInstance(k);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(compBytes, true));
     sk = KllFloatsSketch.writableWrap(wmem, memReqSvr);
@@ -519,7 +519,7 @@ public class KllDirectFloatsSketchTest {
     sk2 = KllFloatsSketch.newHeapInstance(k);
     sk2.update(1);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(compBytes, true));
     sk = KllFloatsSketch.writableWrap(wmem, memReqSvr);
@@ -665,7 +665,7 @@ public class KllDirectFloatsSketchTest {
   private static KllFloatsSketch getDFSketch(final int k, final int n) {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance(k);
     for (int i = 1; i <= n; i++) { sk.update(i); }
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     WritableMemory wmem = WritableMemory.writableWrap(byteArr);
     KllFloatsSketch dfsk = KllFloatsSketch.writableWrap(wmem, memReqSvr);
     return dfsk;
diff --git a/src/test/java/org/apache/datasketches/kll/KllHelperTest.java b/src/test/java/org/apache/datasketches/kll/KllHelperTest.java
index d1418410..ade348b0 100644
--- a/src/test/java/org/apache/datasketches/kll/KllHelperTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllHelperTest.java
@@ -101,7 +101,7 @@ public class KllHelperTest {
     int compBytes1 = compByteArr1.length;
     println("compBytes1: " + compBytes1);
 
-    byte[] upByteArr1 = sk.toUpdatableByteArray();
+    byte[] upByteArr1 = KllHelper.toUpdatableByteArrayImpl(sk);
     int upBytes1 = upByteArr1.length;
     println("upBytes1: " + upBytes1);
 
@@ -118,7 +118,7 @@ public class KllHelperTest {
 
     mem = Memory.wrap(compByteArr2);
     sk2 = KllDoublesSketch.heapify(mem);
-    byte[] upByteArr2 = sk2.toUpdatableByteArray();
+    byte[] upByteArr2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     int upBytes2 = upByteArr2.length;
     println("upBytes2: " + upBytes2);
     assertEquals(upBytes1, upBytes2);
diff --git a/src/test/java/org/apache/datasketches/kll/KllMemoryValidateTest.java b/src/test/java/org/apache/datasketches/kll/KllMemoryValidateTest.java
index 544a4239..baa231e0 100644
--- a/src/test/java/org/apache/datasketches/kll/KllMemoryValidateTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllMemoryValidateTest.java
@@ -108,7 +108,7 @@ public class KllMemoryValidateTest {
   @Test(expectedExceptions = SketchesArgumentException.class)
   public void checkInvalidDoubleUpdatableAndPreInts() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance();
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     WritableMemory wmem = WritableMemory.writableWrap(byteArr);
     setMemoryPreInts(wmem, PREAMBLE_INTS_EMPTY_SINGLE);
     KllMemoryValidate memVal = new KllMemoryValidate(wmem);
@@ -128,7 +128,7 @@ public class KllMemoryValidateTest {
   public void checkInvalidFloatUpdatableFullAndPreInts() {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance();
     sk.update(1); sk.update(2);
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     WritableMemory wmem = WritableMemory.writableWrap(byteArr);
     setMemoryPreInts(wmem, PREAMBLE_INTS_EMPTY_SINGLE);
     KllMemoryValidate memVal = new KllMemoryValidate(wmem);
diff --git a/src/test/java/org/apache/datasketches/kll/KllSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllSketchTest.java
index c81de4dc..1801a7dc 100644
--- a/src/test/java/org/apache/datasketches/kll/KllSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllSketchTest.java
@@ -59,7 +59,7 @@ public class KllSketchTest {
   public void checkWritableWrapCase6And2Doubles() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(20);
     for (int i = 1; i <= 21; i++) { sk.update(i); }
-    WritableMemory wmem = WritableMemory.writableWrap(sk.toUpdatableByteArray());
+    WritableMemory wmem = WritableMemory.writableWrap(KllHelper.toUpdatableByteArrayImpl(sk));
     KllDoublesSketch sk2 = KllDoublesSketch.writableWrap(wmem, memReqSvr); //KllSketch case6
     assertFalse(wmem.isReadOnly());
     assertFalse(sk2.isReadOnly());
@@ -70,7 +70,7 @@ public class KllSketchTest {
   public void checkWritableWrapFloats() {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance(20);
     for (int i = 1; i <= 21; i++) { sk.update(i); }
-    WritableMemory wmem = WritableMemory.writableWrap(sk.toUpdatableByteArray());
+    WritableMemory wmem = WritableMemory.writableWrap(KllHelper.toUpdatableByteArrayImpl(sk));
     KllFloatsSketch sk2 = KllFloatsSketch.writableWrap(wmem, memReqSvr);
     assertFalse(wmem.isReadOnly());
     assertFalse(sk2.isReadOnly());
@@ -92,7 +92,7 @@ public class KllSketchTest {
   public void checkKllSketchCase3Doubles() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(20);
     for (int i = 1; i <= 21; i++) { sk.update(i); }
-    Memory mem = Memory.wrap(sk.toUpdatableByteArray());
+    Memory mem = Memory.wrap(KllHelper.toUpdatableByteArrayImpl(sk));
     WritableMemory wmem = (WritableMemory) mem;
     KllDoublesSketch sk2 = KllDoublesSketch.writableWrap(wmem, null);
     assertTrue(wmem.isReadOnly());
@@ -104,7 +104,7 @@ public class KllSketchTest {
   public void checkKllSketchCase7Doubles() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(20);
     for (int i = 1; i <= 21; i++) { sk.update(i); }
-    Memory mem = Memory.wrap(sk.toUpdatableByteArray());
+    Memory mem = Memory.wrap(KllHelper.toUpdatableByteArrayImpl(sk));
     WritableMemory wmem = (WritableMemory) mem;
     KllDoublesSketch sk2 = KllDoublesSketch.writableWrap(wmem, memReqSvr);
     assertTrue(wmem.isReadOnly());
diff --git a/src/test/java/org/apache/datasketches/kll/MiscDirectDoublesTest.java b/src/test/java/org/apache/datasketches/kll/MiscDirectDoublesTest.java
index 721adbb8..15337ad7 100644
--- a/src/test/java/org/apache/datasketches/kll/MiscDirectDoublesTest.java
+++ b/src/test/java/org/apache/datasketches/kll/MiscDirectDoublesTest.java
@@ -243,7 +243,7 @@ public class MiscDirectDoublesTest {
     sk2 = getDDSketch(k, 0);
     for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
     //println(sk2.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     sk = KllDoublesSketch.heapify(wmem);
     println(sk.toString(true, true));
@@ -263,7 +263,7 @@ public class MiscDirectDoublesTest {
    // println("#### CASE: DOUBLE EMPTY HEAPIFIED FROM UPDATABLE");
     sk2 = getDDSketch(k, 0);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     //println(KllPreambleUtil.toString(wmem));
     sk = KllDoublesSketch.heapify(wmem);
@@ -284,7 +284,7 @@ public class MiscDirectDoublesTest {
     sk2 = getDDSketch(k, 0);
     sk2.update(1);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     //println(KllPreambleUtil.memoryToString(wmem, true));
     sk = KllDoublesSketch.heapify(wmem);
@@ -315,13 +315,13 @@ public class MiscDirectDoublesTest {
     println("#### CASE: DOUBLE FULL UPDATABLE");
     sk = getDDSketch(k, 0);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllDoublesSketch.writableWrap(wmem, memReqSvr);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -330,13 +330,13 @@ public class MiscDirectDoublesTest {
 
     println("#### CASE: DOUBLE EMPTY UPDATABLE");
     sk = getDDSketch(k, 0);
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllDoublesSketch.writableWrap(wmem, memReqSvr);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -346,13 +346,13 @@ public class MiscDirectDoublesTest {
     println("#### CASE: DOUBLE SINGLE UPDATABL");
     sk = getDDSketch(k, 0);
     sk.update(1);
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllDoublesSketch.writableWrap(wmem, memReqSvr);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -386,7 +386,7 @@ public class MiscDirectDoublesTest {
     KllDoublesSketch sk = getDDSketch(20, 0);
     for (int i = 1; i <= 21; i++) { sk.update(i); }
     //println(sk.toString(true, true));
-    byte[] byteArr1 = sk.toUpdatableByteArray();
+    byte[] byteArr1 = KllHelper.toUpdatableByteArrayImpl(sk);
     int size1 = sk.getCurrentUpdatableSerializedSizeBytes();
     assertEquals(size1, byteArr1.length);
     byte[] byteArr2 = sk.toByteArray();
@@ -419,7 +419,7 @@ public class MiscDirectDoublesTest {
   private static KllDoublesSketch getDDSketch(final int k, final int n) {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(k);
     for (int i = 1; i <= n; i++) { sk.update(i); }
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     WritableMemory wmem = WritableMemory.writableWrap(byteArr);
     KllDoublesSketch ddsk = KllDoublesSketch.writableWrap(wmem, memReqSvr);
     return ddsk;
diff --git a/src/test/java/org/apache/datasketches/kll/MiscDirectFloatsTest.java b/src/test/java/org/apache/datasketches/kll/MiscDirectFloatsTest.java
index 632c3c66..b8a9aadc 100644
--- a/src/test/java/org/apache/datasketches/kll/MiscDirectFloatsTest.java
+++ b/src/test/java/org/apache/datasketches/kll/MiscDirectFloatsTest.java
@@ -243,7 +243,7 @@ public class MiscDirectFloatsTest {
     sk2 = getDFSketch(k, 0);
     for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
     //println(sk2.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     //println(KllPreambleUtil.toString(wmem));
     sk = KllFloatsSketch.heapify(wmem);
@@ -263,7 +263,7 @@ public class MiscDirectFloatsTest {
    // println("#### CASE: FLOAT EMPTY HEAPIFIED FROM UPDATABLE");
     sk2 = getDFSketch(k, 0);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     //println(KllPreambleUtil.toString(wmem));
     sk = KllFloatsSketch.heapify(wmem);
@@ -284,7 +284,7 @@ public class MiscDirectFloatsTest {
     sk2 = getDFSketch(k, 0);
     sk2.update(1);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     //println(KllPreambleUtil.toString(wmem));
     sk = KllFloatsSketch.heapify(wmem);
@@ -315,13 +315,13 @@ public class MiscDirectFloatsTest {
     println("#### CASE: FLOAT FULL UPDATABLE");
     sk = getDFSketch(k, 0);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllFloatsSketch.writableWrap(wmem, memReqSvr);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -330,13 +330,13 @@ public class MiscDirectFloatsTest {
 
     println("#### CASE: FLOAT EMPTY UPDATABLE");
     sk = getDFSketch(k, 0);
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllFloatsSketch.writableWrap(wmem, memReqSvr);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -346,13 +346,13 @@ public class MiscDirectFloatsTest {
     println("#### CASE: FLOAT SINGLE UPDATABL");
     sk = getDFSketch(k, 0);
     sk.update(1);
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllFloatsSketch.writableWrap(wmem, memReqSvr);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -386,7 +386,7 @@ public class MiscDirectFloatsTest {
     KllFloatsSketch sk = getDFSketch(20, 0);
     for (int i = 1; i <= 21; i++) { sk.update(i); }
     //println(sk.toString(true, true));
-    byte[] byteArr1 = sk.toUpdatableByteArray();
+    byte[] byteArr1 = KllHelper.toUpdatableByteArrayImpl(sk);
     int size1 = sk.getCurrentUpdatableSerializedSizeBytes();
     assertEquals(size1, byteArr1.length);
     byte[] byteArr2 = sk.toByteArray();
@@ -419,7 +419,7 @@ public class MiscDirectFloatsTest {
   private static KllFloatsSketch getDFSketch(final int k, final int n) {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance(k);
     for (int i = 1; i <= n; i++) { sk.update(i); }
-    byte[] byteArr = sk.toUpdatableByteArray();
+    byte[] byteArr = KllHelper.toUpdatableByteArrayImpl(sk);
     WritableMemory wmem = WritableMemory.writableWrap(byteArr);
     KllFloatsSketch dfsk = KllFloatsSketch.writableWrap(wmem, memReqSvr);
     return dfsk;
diff --git a/src/test/java/org/apache/datasketches/kll/MiscDoublesTest.java b/src/test/java/org/apache/datasketches/kll/MiscDoublesTest.java
index e462fb6c..d2711411 100644
--- a/src/test/java/org/apache/datasketches/kll/MiscDoublesTest.java
+++ b/src/test/java/org/apache/datasketches/kll/MiscDoublesTest.java
@@ -302,7 +302,7 @@ public class MiscDoublesTest {
     sk2 = KllDoublesSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
     //println(sk2.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, true));
     sk = KllDoublesSketch.heapify(wmem);
@@ -322,7 +322,7 @@ public class MiscDoublesTest {
     println("#### CASE: DOUBLE EMPTY HEAPIFIED FROM UPDATABLE");
     sk2 = KllDoublesSketch.newHeapInstance(k);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, true));
     sk = KllDoublesSketch.heapify(wmem);
@@ -343,7 +343,7 @@ public class MiscDoublesTest {
     sk2 = KllDoublesSketch.newHeapInstance(k);
     sk2.update(1);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, true));
     sk = KllDoublesSketch.heapify(wmem);
@@ -432,13 +432,13 @@ public class MiscDoublesTest {
     println("#### CASE: DOUBLE FULL UPDATABLE");
     sk = KllDoublesSketch.newHeapInstance(20);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllDoublesSketch.heapify(wmem);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -450,13 +450,13 @@ public class MiscDoublesTest {
 
     println("#### CASE: DOUBLE EMPTY UPDATABLE");
     sk = KllDoublesSketch.newHeapInstance(k);
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllDoublesSketch.heapify(wmem);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -466,13 +466,13 @@ public class MiscDoublesTest {
     println("#### CASE: DOUBLE SINGLE UPDATABL");
     sk = KllDoublesSketch.newHeapInstance(k);
     sk.update(1);
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllDoublesSketch.heapify(wmem);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -510,7 +510,7 @@ public class MiscDoublesTest {
     assertTrue(skHeap instanceof KllHeapDoublesSketch);
     assertEquals(skHeap.getDoubleSingleItem(), 1.0);
 
-    WritableMemory srcMem = WritableMemory.writableWrap(skHeap.toUpdatableByteArray());
+    WritableMemory srcMem = WritableMemory.writableWrap(KllHelper.toUpdatableByteArrayImpl(skHeap));
     KllDoublesSketch skDirect = KllDoublesSketch.writableWrap(srcMem, memReqSvr);
     assertTrue(skDirect instanceof KllDirectDoublesSketch);
     assertEquals(skDirect.getDoubleSingleItem(), 1.0);
diff --git a/src/test/java/org/apache/datasketches/kll/MiscFloatsTest.java b/src/test/java/org/apache/datasketches/kll/MiscFloatsTest.java
index ab85e064..406e98c3 100644
--- a/src/test/java/org/apache/datasketches/kll/MiscFloatsTest.java
+++ b/src/test/java/org/apache/datasketches/kll/MiscFloatsTest.java
@@ -302,7 +302,7 @@ public class MiscFloatsTest {
     sk2 = KllFloatsSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
     //println(sk2.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, true));
     sk = KllFloatsSketch.heapify(wmem);
@@ -322,7 +322,7 @@ public class MiscFloatsTest {
     println("#### CASE: FLOAT EMPTY HEAPIFIED FROM UPDATABLE");
     sk2 = KllFloatsSketch.newHeapInstance(k);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, true));
     sk = KllFloatsSketch.heapify(wmem);
@@ -343,7 +343,7 @@ public class MiscFloatsTest {
     sk2 = KllFloatsSketch.newHeapInstance(k);
     sk2.update(1);
     //println(sk.toString(true, true));
-    compBytes = sk2.toUpdatableByteArray();
+    compBytes = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, true));
     sk = KllFloatsSketch.heapify(wmem);
@@ -432,13 +432,13 @@ public class MiscFloatsTest {
     println("#### CASE: FLOAT FULL UPDATABLE");
     sk = KllFloatsSketch.newHeapInstance(20);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllFloatsSketch.heapify(wmem);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -450,13 +450,13 @@ public class MiscFloatsTest {
 
     println("#### CASE: FLOAT EMPTY UPDATABLE");
     sk = KllFloatsSketch.newHeapInstance(k);
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllFloatsSketch.heapify(wmem);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -466,13 +466,13 @@ public class MiscFloatsTest {
     println("#### CASE: FLOAT SINGLE UPDATABLE");
     sk = KllFloatsSketch.newHeapInstance(k);
     sk.update(1);
-    upBytes = sk.toUpdatableByteArray();
+    upBytes = KllHelper.toUpdatableByteArrayImpl(sk);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 1: sketch to byte[]/memory & analyze memory");
     println(s);
     sk2 = KllFloatsSketch.heapify(wmem);
-    upBytes2 = sk2.toUpdatableByteArray();
+    upBytes2 = KllHelper.toUpdatableByteArrayImpl(sk2);
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
@@ -509,7 +509,7 @@ public class MiscFloatsTest {
     assertTrue(skHeap instanceof KllHeapFloatsSketch);
     assertEquals(skHeap.getFloatSingleItem(), 1.0F);
 
-    WritableMemory srcMem = WritableMemory.writableWrap(skHeap.toUpdatableByteArray());
+    WritableMemory srcMem = WritableMemory.writableWrap(KllHelper.toUpdatableByteArrayImpl(skHeap));
     KllFloatsSketch skDirect = KllFloatsSketch.writableWrap(srcMem, memReqSvr);
     assertTrue(skDirect instanceof KllDirectFloatsSketch);
     assertEquals(skDirect.getFloatSingleItem(), 1.0F);


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