I added a missing test class KllDirectCompactItemsSketchIteratorTest.

Other than that all the rest of the changes are small edits to bring
sister main and test classes into alignment.  I can't do this exactly
with the "items" test classes, but I tried to make sure we are testing
similar types of corner cases with the generic tests.
diff --git a/src/main/java/org/apache/datasketches/kll/KllDirectDoublesSketch.java b/src/main/java/org/apache/datasketches/kll/KllDirectDoublesSketch.java
index 58438c0..64e340d 100644
--- a/src/main/java/org/apache/datasketches/kll/KllDirectDoublesSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllDirectDoublesSketch.java
@@ -63,7 +63,7 @@
   private MemoryRequestServer memReqSvr;
 
   /**
-   * Constructs from Memory or WritableMemory already initialized with a sketch image and validated..
+   * Constructs from Memory or WritableMemory already initialized with a sketch image and validated.
    * @param wmem the current WritableMemory
    * @param memReqSvr the given MemoryRequestServer to request a larger WritableMemory
    * @param memVal the MemoryValadate object
@@ -81,14 +81,14 @@
   }
 
   /**
-   * Create a new instance of this sketch.
+   * Create a new updatable, direct instance of this sketch.
    * @param k parameter that controls size of the sketch and accuracy of estimates
    * @param m parameter that controls the minimum level width in items.
    * @param dstMem the given destination WritableMemory object for use by the sketch
    * @param memReqSvr the given MemoryRequestServer to request a larger WritableMemory
    * @return a new instance of this sketch
    */
-  static KllDirectDoublesSketch newDirectInstance(
+  static KllDirectDoublesSketch newDirectUpdatableInstance(
       final int k,
       final int m,
       final WritableMemory dstMem,
@@ -129,9 +129,9 @@
     if (sketchStructure == COMPACT_EMPTY || isEmpty()) { throw new SketchesArgumentException(EMPTY_MSG); }
     else if (sketchStructure == COMPACT_SINGLE) { return getDoubleSingleItem(); }
     else if (sketchStructure == COMPACT_FULL) {
-      levelsArrBytes = getLevelsArrBytes(COMPACT_FULL);
+      levelsArrBytes = getLevelsArrSizeBytes(COMPACT_FULL);
     } else { //UPDATABLE
-      levelsArrBytes = getLevelsArrBytes(UPDATABLE);
+      levelsArrBytes = getLevelsArrSizeBytes(UPDATABLE);
     }
     final int offset =  DATA_START_ADR + levelsArrBytes + ITEM_BYTES;
     return wmem.getDouble(offset);
@@ -143,9 +143,9 @@
     if (sketchStructure == COMPACT_EMPTY || isEmpty()) { throw new SketchesArgumentException(EMPTY_MSG); }
     else if (sketchStructure == COMPACT_SINGLE) { return getDoubleSingleItem(); }
     else if (sketchStructure == COMPACT_FULL) {
-      levelsArrBytes = getLevelsArrBytes(COMPACT_FULL);
+      levelsArrBytes = getLevelsArrSizeBytes(COMPACT_FULL);
     } else { //UPDATABLE
-      levelsArrBytes = getLevelsArrBytes(UPDATABLE);
+      levelsArrBytes = getLevelsArrSizeBytes(UPDATABLE);
     }
     final int offset =  DATA_START_ADR + levelsArrBytes;
     return wmem.getDouble(offset);
@@ -171,7 +171,7 @@
     }
     final int capacityItems = KllHelper.computeTotalItemCapacity(k, getM(), getNumLevels());
     final double[] doubleItemsArr = new double[capacityItems];
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + 2 * ITEM_BYTES;
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + 2 * ITEM_BYTES;
     final int shift = (sketchStructure == COMPACT_FULL) ? levelsArr[0] : 0;
     final int numItems = (sketchStructure == COMPACT_FULL) ? getNumRetained() : capacityItems;
     wmem.getDoubleArray(offset, doubleItemsArr, shift, numItems);
@@ -184,7 +184,7 @@
     if (sketchStructure == COMPACT_SINGLE) { return new double[] { getDoubleSingleItem() }; }
     final int numRetained = getNumRetained();
     final double[] doubleItemsArr = new double[numRetained];
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + 2 * ITEM_BYTES
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + 2 * ITEM_BYTES
         + (sketchStructure == COMPACT_FULL ? 0 : levelsArr[0] * ITEM_BYTES);
     wmem.getDoubleArray(offset, doubleItemsArr, 0, numRetained);
     return doubleItemsArr;
@@ -198,9 +198,9 @@
     }
     final int offset;
     if (sketchStructure == COMPACT_FULL) {
-      offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + 2 * ITEM_BYTES;
+      offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + 2 * ITEM_BYTES;
     } else { //sketchStructure == UPDATABLE
-      offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + (2 + getK() - 1) * ITEM_BYTES;
+      offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + (2 + getK() - 1) * ITEM_BYTES;
     }
     return wmem.getDouble(offset);
   }
@@ -235,7 +235,7 @@
       return bytesOut;
     }
     //sketchStructure == UPDATABLE OR COMPACT_FULL
-    offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure);
+    offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure);
     wmem.getByteArray(offset, bytesOut, 0, ITEM_BYTES);
     wmem.getByteArray(offset + ITEM_BYTES, bytesOut, ITEM_BYTES, ITEM_BYTES);
     return bytesOut;
@@ -287,7 +287,7 @@
   @Override
   void setDoubleItemsArray(final double[] doubleItems) {
     if (readOnly) { throw new SketchesArgumentException(TGT_IS_READ_ONLY_MSG); }
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + 2 * ITEM_BYTES;
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + 2 * ITEM_BYTES;
     wmem.putDoubleArray(offset, doubleItems, 0, doubleItems.length);
   }
 
@@ -295,7 +295,7 @@
   void setDoubleItemsArrayAt(final int index, final double item) {
     if (readOnly) { throw new SketchesArgumentException(TGT_IS_READ_ONLY_MSG); }
     final int offset =
-        DATA_START_ADR + getLevelsArrBytes(sketchStructure) + (index + 2) * ITEM_BYTES;
+        DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + (index + 2) * ITEM_BYTES;
     wmem.putDouble(offset, item);
   }
 
@@ -308,14 +308,14 @@
   @Override
   void setMaxItem(final double item) {
     if (readOnly) { throw new SketchesArgumentException(TGT_IS_READ_ONLY_MSG); }
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + ITEM_BYTES;
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + ITEM_BYTES;
     wmem.putDouble(offset, item);
   }
 
   @Override
   void setMinItem(final double item) {
     if (readOnly) { throw new SketchesArgumentException(TGT_IS_READ_ONLY_MSG); }
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure);
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure);
     wmem.putDouble(offset, item);
   }
 
diff --git a/src/main/java/org/apache/datasketches/kll/KllDirectFloatsSketch.java b/src/main/java/org/apache/datasketches/kll/KllDirectFloatsSketch.java
index 6e97023..c866514 100644
--- a/src/main/java/org/apache/datasketches/kll/KllDirectFloatsSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllDirectFloatsSketch.java
@@ -68,7 +68,7 @@
    * @param memReqSvr the given MemoryRequestServer to request a larger WritableMemory
    * @param memVal the MemoryValadate object
    */
-  KllDirectFloatsSketch( //called below and KllFloatsSketch & KllDirectCompactFloatsSketch
+  KllDirectFloatsSketch(
       final SketchStructure sketchStructure,
       final WritableMemory wmem,
       final MemoryRequestServer memReqSvr,
@@ -88,7 +88,7 @@
    * @param memReqSvr the given MemoryRequestServer to request a larger WritableMemory
    * @return a new instance of this sketch
    */
-  static KllDirectFloatsSketch newDirectUpdatableInstance( //called by KllSketch.newDirectInstance & test
+  static KllDirectFloatsSketch newDirectUpdatableInstance(
       final int k,
       final int m,
       final WritableMemory dstMem,
@@ -129,9 +129,9 @@
     if (sketchStructure == COMPACT_EMPTY || isEmpty()) { throw new SketchesArgumentException(EMPTY_MSG); }
     else if (sketchStructure == COMPACT_SINGLE) { return getFloatSingleItem(); }
     else if (sketchStructure == COMPACT_FULL) {
-      levelsArrBytes = getLevelsArrBytes(COMPACT_FULL);
+      levelsArrBytes = getLevelsArrSizeBytes(COMPACT_FULL);
     } else { //UPDATABLE
-      levelsArrBytes = getLevelsArrBytes(UPDATABLE);
+      levelsArrBytes = getLevelsArrSizeBytes(UPDATABLE);
     }
     final int offset =  DATA_START_ADR + levelsArrBytes + ITEM_BYTES;
     return wmem.getFloat(offset);
@@ -143,9 +143,9 @@
     if (sketchStructure == COMPACT_EMPTY || isEmpty()) { throw new SketchesArgumentException(EMPTY_MSG); }
     else if (sketchStructure == COMPACT_SINGLE) { return getFloatSingleItem(); }
     else if (sketchStructure == COMPACT_FULL) {
-      levelsArrBytes = getLevelsArrBytes(COMPACT_FULL);
+      levelsArrBytes = getLevelsArrSizeBytes(COMPACT_FULL);
     } else { //UPDATABLE
-      levelsArrBytes = getLevelsArrBytes(UPDATABLE);
+      levelsArrBytes = getLevelsArrSizeBytes(UPDATABLE);
     }
     final int offset =  DATA_START_ADR + levelsArrBytes;
     return wmem.getFloat(offset);
@@ -171,7 +171,7 @@
     }
     final int capacityItems = KllHelper.computeTotalItemCapacity(k, getM(), getNumLevels());
     final float[] floatItemsArr = new float[capacityItems];
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + 2 * ITEM_BYTES;
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + 2 * ITEM_BYTES;
     final int shift = (sketchStructure == COMPACT_FULL) ? levelsArr[0] : 0;
     final int numItems = (sketchStructure == COMPACT_FULL) ? getNumRetained() : capacityItems;
     wmem.getFloatArray(offset, floatItemsArr, shift, numItems);
@@ -184,7 +184,7 @@
     if (sketchStructure == COMPACT_SINGLE) { return new float[] { getFloatSingleItem() }; }
     final int numRetained = getNumRetained();
     final float[] floatItemsArr = new float[numRetained];
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + 2 * ITEM_BYTES
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + 2 * ITEM_BYTES
         + (sketchStructure == COMPACT_FULL ? 0 : levelsArr[0] * ITEM_BYTES);
     wmem.getFloatArray(offset, floatItemsArr, 0, numRetained);
     return floatItemsArr;
@@ -198,9 +198,9 @@
     }
     final int offset;
     if (sketchStructure == COMPACT_FULL) {
-      offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + 2 * ITEM_BYTES;
+      offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + 2 * ITEM_BYTES;
     } else { //sketchStructure == UPDATABLE
-      offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + (2 + getK() - 1) * ITEM_BYTES;
+      offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + (2 + getK() - 1) * ITEM_BYTES;
     }
     return wmem.getFloat(offset);
   }
@@ -216,7 +216,7 @@
   @Override
   int getMinK() {
     if (sketchStructure == COMPACT_FULL || sketchStructure == UPDATABLE) { return getMemoryMinK(wmem); }
-    else { return getK(); }
+    return getK();
   }
 
   @Override
@@ -235,7 +235,7 @@
       return bytesOut;
     }
     //sketchStructure == UPDATABLE OR COMPACT_FULL
-    offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure);
+    offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure);
     wmem.getByteArray(offset, bytesOut, 0, ITEM_BYTES);
     wmem.getByteArray(offset + ITEM_BYTES, bytesOut, ITEM_BYTES, ITEM_BYTES);
     return bytesOut;
@@ -287,7 +287,7 @@
   @Override
   void setFloatItemsArray(final float[] floatItems) {
     if (readOnly) { throw new SketchesArgumentException(TGT_IS_READ_ONLY_MSG); }
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + 2 * ITEM_BYTES;
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + 2 * ITEM_BYTES;
     wmem.putFloatArray(offset, floatItems, 0, floatItems.length);
   }
 
@@ -295,7 +295,7 @@
   void setFloatItemsArrayAt(final int index, final float item) {
     if (readOnly) { throw new SketchesArgumentException(TGT_IS_READ_ONLY_MSG); }
     final int offset =
-        DATA_START_ADR + getLevelsArrBytes(sketchStructure) + (index + 2) * ITEM_BYTES;
+        DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + (index + 2) * ITEM_BYTES;
     wmem.putFloat(offset, item);
   }
 
@@ -308,14 +308,14 @@
   @Override
   void setMaxItem(final float item) {
     if (readOnly) { throw new SketchesArgumentException(TGT_IS_READ_ONLY_MSG); }
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure) + ITEM_BYTES;
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure) + ITEM_BYTES;
     wmem.putFloat(offset, item);
   }
 
   @Override
   void setMinItem(final float item) {
     if (readOnly) { throw new SketchesArgumentException(TGT_IS_READ_ONLY_MSG); }
-    final int offset = DATA_START_ADR + getLevelsArrBytes(sketchStructure);
+    final int offset = DATA_START_ADR + getLevelsArrSizeBytes(sketchStructure);
     wmem.putFloat(offset, item);
   }
 
diff --git a/src/main/java/org/apache/datasketches/kll/KllDoublesSketch.java b/src/main/java/org/apache/datasketches/kll/KllDoublesSketch.java
index ba1737f..a8308a0 100644
--- a/src/main/java/org/apache/datasketches/kll/KllDoublesSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllDoublesSketch.java
@@ -82,7 +82,7 @@
   //Factories for new direct instances.
 
   /**
-   * Create a new direct instance of this sketch with the default <em>k</em>.
+   * Create a new direct updatable instance of this sketch with the default <em>k</em>.
    * The default <em>k</em> = 200 results in a normalized rank error of about
    * 1.65%. Larger <em>k</em> will have smaller error but the sketch will be larger (and slower).
    * @param dstMem the given destination WritableMemory object for use by the sketch
@@ -96,7 +96,7 @@
   }
 
   /**
-   * Create a new direct instance of this sketch with a given <em>k</em>.
+   * Create a new direct updatable instance of this sketch with a given <em>k</em>.
    * @param k parameter that controls size of the sketch and accuracy of estimates.
    * @param dstMem the given destination WritableMemory object for use by the sketch
    * @param memReqSvr the given MemoryRequestServer to request a larger WritableMemory
@@ -108,7 +108,7 @@
       final MemoryRequestServer memReqSvr) {
     Objects.requireNonNull(dstMem, "Parameter 'dstMem' must not be null");
     Objects.requireNonNull(memReqSvr, "Parameter 'memReqSvr' must not be null");
-    return KllDirectDoublesSketch.newDirectInstance(k, DEFAULT_M, dstMem, memReqSvr);
+    return KllDirectDoublesSketch.newDirectUpdatableInstance(k, DEFAULT_M, dstMem, memReqSvr);
   }
 
   //Factory to create an heap instance from a Memory image
@@ -393,21 +393,4 @@
 
   abstract void setMinItem(double item);
 
-  private final static boolean enablePrinting = false;
-
-  /**
-   * @param format the format
-   * @param args the args
-   */
-  static final void printf(final String format, final Object ...args) {
-    if (enablePrinting) { System.out.printf(format, args); }
-  }
-
-  /**
-   * @param o the Object to println
-   */
-  static final void println(final Object o) {
-    if (enablePrinting) { System.out.println(o.toString()); }
-  }
-
 }
diff --git a/src/main/java/org/apache/datasketches/kll/KllFloatsSketchIterator.java b/src/main/java/org/apache/datasketches/kll/KllFloatsSketchIterator.java
index 3606660..8c5808e 100644
--- a/src/main/java/org/apache/datasketches/kll/KllFloatsSketchIterator.java
+++ b/src/main/java/org/apache/datasketches/kll/KllFloatsSketchIterator.java
@@ -31,13 +31,13 @@
   private int level;
   private int index;
   private long weight;
-  private boolean isInitialized_;
+  private boolean isInitialized;
 
   KllFloatsSketchIterator(final float[] quantiles, final int[] levelsArr, final int numLevels) {
     this.quantiles = quantiles;
     this.levelsArr = levelsArr;
     this.numLevels = numLevels;
-    this.isInitialized_ = false;
+    this.isInitialized = false;
   }
 
   @Override
@@ -52,11 +52,11 @@
 
   @Override
   public boolean next() {
-    if (!isInitialized_) {
+    if (!isInitialized) {
       level = 0;
       index = levelsArr[level];
       weight = 1;
-      isInitialized_ = true;
+      isInitialized = true;
     } else {
       index++;
     }
diff --git a/src/main/java/org/apache/datasketches/kll/KllHeapDoublesSketch.java b/src/main/java/org/apache/datasketches/kll/KllHeapDoublesSketch.java
index 1e79026..61d8243 100644
--- a/src/main/java/org/apache/datasketches/kll/KllHeapDoublesSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllHeapDoublesSketch.java
@@ -95,7 +95,7 @@
     this.m = memValidate.m;
     this.n = memValidate.n;
     this.minK = memValidate.minK;
-    this.levelsArr = memValidate.levelsArr;
+    this.levelsArr = memValidate.levelsArr; //normalized to full
     this.isLevelZeroSorted = memValidate.level0SortedFlag;
 
     if (memStructure == COMPACT_EMPTY) {
diff --git a/src/main/java/org/apache/datasketches/kll/KllHeapFloatsSketch.java b/src/main/java/org/apache/datasketches/kll/KllHeapFloatsSketch.java
index 941416c..0af7312 100644
--- a/src/main/java/org/apache/datasketches/kll/KllHeapFloatsSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllHeapFloatsSketch.java
@@ -137,7 +137,7 @@
 
   static KllHeapFloatsSketch heapifyImpl(final Memory srcMem) {
     Objects.requireNonNull(srcMem, "Parameter 'srcMem' must not be null");
-    final KllMemoryValidate memVal = new KllMemoryValidate(srcMem, FLOATS_SKETCH, null);
+    final KllMemoryValidate memVal = new KllMemoryValidate(srcMem, FLOATS_SKETCH);
     return new KllHeapFloatsSketch(srcMem, memVal);
   }
 
diff --git a/src/main/java/org/apache/datasketches/kll/KllSketch.java b/src/main/java/org/apache/datasketches/kll/KllSketch.java
index f591ecd..874d64f 100644
--- a/src/main/java/org/apache/datasketches/kll/KllSketch.java
+++ b/src/main/java/org/apache/datasketches/kll/KllSketch.java
@@ -301,13 +301,13 @@
     }
     else if (tgtStructure == COMPACT_FULL) {
       totalBytes = DATA_START_ADR
-          + getLevelsArrBytes(tgtStructure)
+          + getLevelsArrSizeBytes(tgtStructure)
           + getMinMaxSizeBytes()
           + getRetainedItemsSizeBytes();
     }
     else { //structure = UPDATABLE
       totalBytes = DATA_START_ADR
-          + getLevelsArrBytes(tgtStructure)
+          + getLevelsArrSizeBytes(tgtStructure)
           + getMinMaxSizeBytes()
           + getTotalItemsNumBytes();
     }
@@ -320,7 +320,7 @@
     else { return new int[0]; }
   }
 
-  final int getLevelsArrBytes(final SketchStructure structure) {
+  final int getLevelsArrSizeBytes(final SketchStructure structure) {
     if (structure == UPDATABLE) { return levelsArr.length * Integer.BYTES; }
     else if (structure == COMPACT_FULL) { return (levelsArr.length - 1) * Integer.BYTES; }
     else { return 0; }
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectCompactDoublesSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectCompactDoublesSketchTest.java
index 7acda54..9831c2f 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectCompactDoublesSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectCompactDoublesSketchTest.java
@@ -35,12 +35,12 @@
   private static final DefaultMemoryRequestServer memReqSvr = new DefaultMemoryRequestServer();
 
   @Test
-  public void checkDirectUpdatable_ROandWritable() {
+  public void checkRODirectUpdatable_ROandWritable() {
     int k = 20;
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    byte[] byteArr = KllHelper.toByteArray(sk, true);
-    Memory srcMem = Memory.wrap(byteArr); //-> read only
+    byte[] byteArr = KllHelper.toByteArray(sk, true); //request  updatable
+    Memory srcMem = Memory.wrap(byteArr); //cast to Memory -> read only
     KllDoublesSketch sk2 = KllDoublesSketch.wrap(srcMem);
     assertTrue(sk2 instanceof KllDirectDoublesSketch);
 
@@ -64,10 +64,10 @@
     int k = 20;
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    Memory srcMem = Memory.wrap(sk.toByteArray()); //compact fmt
+    Memory srcMem = Memory.wrap(sk.toByteArray()); //compact RO fmt
     KllDoublesSketch sk2 = KllDoublesSketch.wrap(srcMem);
     assertTrue(sk2 instanceof KllDirectCompactDoublesSketch);
-    println(sk2.toString(true, false));
+    //println(sk2.toString(true, false));
     assertFalse(sk2.isMemoryUpdatableFormat());
     assertTrue(sk2.isReadOnly());
     assertEquals(sk2.getMinItem(), 1.0);
@@ -76,7 +76,7 @@
     KllDoublesSketch sk3 = KllDoublesSketch.writableWrap((WritableMemory)srcMem2, memReqSvr);
     assertTrue(sk3 instanceof KllDirectCompactDoublesSketch);
     assertFalse(sk2.isMemoryUpdatableFormat());
-    println(sk3.toString(true, false));
+    //println(sk3.toString(true, false));
     assertTrue(sk3.isReadOnly());
     assertEquals(sk3.getMinItem(), 1.0);
     assertEquals(sk3.getMaxItem(), 21.0);
@@ -90,7 +90,7 @@
     sk.update(1);
     KllDoublesSketch sk2 = KllDoublesSketch.wrap(Memory.wrap(sk.toByteArray()));
     assertTrue(sk2 instanceof KllDirectCompactDoublesSketch);
-    println(sk2.toString(true, false));
+    //println(sk2.toString(true, false));
     assertTrue(sk2.isReadOnly());
     assertEquals(sk2.getDoubleSingleItem(), 1.0);
 
@@ -109,20 +109,20 @@
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(k);
 
     KllDoublesSketch sk2 = KllDoublesSketch.wrap(Memory.wrap(sk.toByteArray()));
-    double[] valuesArr = sk2.getDoubleItemsArray();
-    for (int i = 0; i < 20; i++) { assertEquals(valuesArr[i], 0F); }
+    double[] itemsArr = sk2.getDoubleItemsArray();
+    for (int i = 0; i < 20; i++) { assertEquals(itemsArr[i], 0F); }
 
     sk.update(1);
     sk2 = KllDoublesSketch.wrap(Memory.wrap(sk.toByteArray()));
-    valuesArr = sk2.getDoubleItemsArray();
-    for (int i = 0; i < 19; i++) { assertEquals(valuesArr[i], 0F); }
-    assertEquals(valuesArr[19], 1F);
+    itemsArr = sk2.getDoubleItemsArray();
+    for (int i = 0; i < 19; i++) { assertEquals(itemsArr[i], 0F); }
+    assertEquals(itemsArr[19], 1F);
 
     for (int i = 2; i <= 21; i++) { sk.update(i); }
     sk2 = KllDoublesSketch.wrap(Memory.wrap(sk.toByteArray()));
-    valuesArr = sk2.getDoubleItemsArray();
-    assertEquals(valuesArr.length, 33);
-    assertEquals(valuesArr[22], 21);
+    itemsArr = sk2.getDoubleItemsArray();
+    assertEquals(itemsArr.length, 33);
+    assertEquals(itemsArr[22], 21);
   }
 
   @Test
@@ -190,7 +190,7 @@
   }
 
   @Test
-  public void checkCompactSingleValueMerge() {
+  public void checkCompactSingleItemMerge() {
     int k = 20;
     KllDoublesSketch skH1 = KllDoublesSketch.newHeapInstance(k); //Heap with 1 (single)
     skH1.update(21);
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectCompactFloatsSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectCompactFloatsSketchTest.java
index c1f0dd9..8504bd5 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectCompactFloatsSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectCompactFloatsSketchTest.java
@@ -64,7 +64,7 @@
     int k = 20;
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk.update(i); }
-    Memory srcMem = Memory.wrap(sk.toByteArray());  //compact RO fmt
+    Memory srcMem = Memory.wrap(sk.toByteArray()); //compact RO fmt
     KllFloatsSketch sk2 = KllFloatsSketch.wrap(srcMem);
     assertTrue(sk2 instanceof KllDirectCompactFloatsSketch);
     //println(sk2.toString(true, false));
@@ -100,7 +100,7 @@
     try {
       sk2.getFloatSingleItem();
       fail();
-    } catch (SketchesArgumentException e) {  }
+    } catch (SketchesArgumentException e) { }
   }
 
   @Test
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectCompactItemsSketchIteratorTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectCompactItemsSketchIteratorTest.java
new file mode 100644
index 0000000..bc7651b
--- /dev/null
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectCompactItemsSketchIteratorTest.java
@@ -0,0 +1,136 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.datasketches.kll;
+
+import static org.apache.datasketches.quantilescommon.QuantileSearchCriteria.EXCLUSIVE;
+import static org.apache.datasketches.quantilescommon.QuantileSearchCriteria.INCLUSIVE;
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.util.Comparator;
+
+import org.apache.datasketches.common.ArrayOfStringsSerDe;
+import org.apache.datasketches.common.Util;
+import org.apache.datasketches.memory.Memory;
+import org.apache.datasketches.quantilescommon.GenericSortedViewIterator;
+import org.apache.datasketches.quantilescommon.QuantilesGenericSketchIterator;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+public class KllDirectCompactItemsSketchIteratorTest {
+  private ArrayOfStringsSerDe serDe = new ArrayOfStringsSerDe();
+
+  @Test
+  public void emptySketch() {
+    KllItemsSketch<String> sk = KllItemsSketch.newHeapInstance(Comparator.naturalOrder(), serDe);
+    byte[] byteArr = sk.toByteArray();
+    KllItemsSketch<String> sk2 = KllItemsSketch.wrap(Memory.wrap(byteArr), Comparator.naturalOrder(), serDe);
+    assertTrue(sk2 instanceof KllDirectCompactItemsSketch);
+    QuantilesGenericSketchIterator<String> itr = sk2.iterator();
+    assertFalse(itr.next());
+  }
+
+  @Test
+  public void oneItemSketch() {
+    KllItemsSketch<String> sk = KllItemsSketch.newHeapInstance(Comparator.naturalOrder(), serDe);
+    sk.update("1");
+    byte[] byteArr = sk.toByteArray();
+    KllItemsSketch<String> sk2 = KllItemsSketch.wrap(Memory.wrap(byteArr), Comparator.naturalOrder(), serDe);
+    assertTrue(sk2 instanceof KllDirectCompactItemsSketch);
+    QuantilesGenericSketchIterator<String> itr = sk2.iterator();
+    assertTrue(itr.next());
+    assertEquals(itr.getQuantile(), "1");
+    assertEquals(itr.getWeight(), 1);
+    assertFalse(itr.next());
+  }
+
+  @Test
+  public void twoItemSketchForIterator() {
+    KllItemsSketch<String> sk = KllItemsSketch.newHeapInstance(Comparator.naturalOrder(), serDe);
+    sk.update("1");
+    sk.update("2");
+    byte[] byteArr = sk.toByteArray();
+    KllItemsSketch<String> sk2 = KllItemsSketch.wrap(Memory.wrap(byteArr), Comparator.naturalOrder(), serDe);
+    assertTrue(sk2 instanceof KllDirectCompactItemsSketch);
+    QuantilesGenericSketchIterator<String> itr = sk2.iterator();
+    assertTrue(itr.next());
+
+    assertEquals(itr.getQuantile(), "2");
+    assertEquals(itr.getWeight(), 1);
+
+    assertTrue(itr.next());
+
+    assertEquals(itr.getQuantile(), "1");
+    assertEquals(itr.getWeight(), 1);
+  }
+
+  @Test
+  public void twoItemSketchForSortedViewIterator() {
+    KllItemsSketch<String> sk = KllItemsSketch.newHeapInstance(Comparator.naturalOrder(), serDe);
+    sk.update("1");
+    sk.update("2");
+    byte[] byteArr = sk.toByteArray();
+    KllItemsSketch<String> sk2 = KllItemsSketch.wrap(Memory.wrap(byteArr), Comparator.naturalOrder(), serDe);
+    assertTrue(sk2 instanceof KllDirectCompactItemsSketch);
+    GenericSortedViewIterator<String> itr = sk2.getSortedView().iterator();
+
+    assertTrue(itr.next());
+
+    assertEquals(itr.getQuantile(), "1");
+    assertEquals(itr.getWeight(), 1);
+    assertEquals(itr.getCumulativeWeight(EXCLUSIVE), 0);
+    assertEquals(itr.getCumulativeWeight(INCLUSIVE), 1);
+    assertEquals(itr.getNormalizedRank(EXCLUSIVE), 0);
+    assertEquals(itr.getNormalizedRank(INCLUSIVE), 0.5);
+
+    assertTrue(itr.next());
+
+    assertEquals(itr.getQuantile(), "2");
+    assertEquals(itr.getWeight(), 1);
+    assertEquals(itr.getCumulativeWeight(EXCLUSIVE), 1);
+    assertEquals(itr.getCumulativeWeight(INCLUSIVE), 2);
+    assertEquals(itr.getNormalizedRank(EXCLUSIVE), 0.5);
+    assertEquals(itr.getNormalizedRank(INCLUSIVE), 1.0);
+  }
+
+  @Test
+  public void bigSketches() {
+    final int digits = 6;
+    for (int n = 1000; n < 100_000; n += 2000) {
+      KllItemsSketch<String> sk = KllItemsSketch.newHeapInstance(Comparator.naturalOrder(), serDe);
+      for (int i = 0; i < n; i++) {
+        sk.update(Util.intToFixedLengthString(i, digits));
+      }
+      byte[] byteArr = sk.toByteArray();
+      KllItemsSketch<String> sk2 = KllItemsSketch.wrap(Memory.wrap(byteArr), Comparator.naturalOrder(), serDe);
+      assertTrue(sk2 instanceof KllDirectCompactItemsSketch);
+      QuantilesGenericSketchIterator<String> itr = sk2.iterator();
+      int count = 0;
+      int weight = 0;
+      while (itr.next()) {
+        count++;
+        weight += (int)itr.getWeight();
+      }
+      Assert.assertEquals(count, sk.getNumRetained());
+      Assert.assertEquals(weight, n);
+    }
+  }
+}
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectCompactItemsSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectCompactItemsSketchTest.java
index 2e50828..3f786e6 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectCompactItemsSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectCompactItemsSketchTest.java
@@ -34,7 +34,6 @@
 import org.testng.annotations.Test;
 
 public class KllDirectCompactItemsSketchTest {
-  static final String LS = System.getProperty("line.separator");
   public ArrayOfStringsSerDe serDe = new ArrayOfStringsSerDe();
 
   @Test
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchTest.java
index 5d87388..e4e3492 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectDoublesSketchTest.java
@@ -49,12 +49,13 @@
     assertTrue(sketch.isEmpty());
     assertEquals(sketch.getN(), 0);
     assertEquals(sketch.getNumRetained(), 0);
-    try { sketch.getRank(0); fail(); } catch (SketchesArgumentException e) {}
+    try { sketch.getRank(0.5); fail(); } catch (SketchesArgumentException e) {}
     try { sketch.getMinItem(); fail(); } catch (SketchesArgumentException e) {}
     try { sketch.getMaxItem(); fail(); } catch (SketchesArgumentException e) {}
     try { sketch.getQuantile(0.5); fail(); } catch (SketchesArgumentException e) {}
-    try { sketch.getQuantiles(new double[] {0}); fail(); } catch (SketchesArgumentException e) {}
+    try { sketch.getQuantiles(new double[] {0.0, 1.0}); fail(); } catch (SketchesArgumentException e) {}
     try { sketch.getPMF(new double[] {0}); fail(); } catch (SketchesArgumentException e) {}
+    try { sketch.getCDF(new double[0]); fail(); } catch (SketchesArgumentException e) {}
     assertNotNull(sketch.toString(true, true));
     assertNotNull(sketch.toString());
   }
@@ -108,22 +109,21 @@
     assertEquals(pmf.length, 2);
     assertEquals(pmf[0], 0.5, PMF_EPS_FOR_K_256);
     assertEquals(pmf[1], 0.5, PMF_EPS_FOR_K_256);
-
-    assertEquals(sketch.getMinItem(), 0f); // min value is exact
-    assertEquals(sketch.getMaxItem(), n - 1f); // max value is exact
+    assertEquals(sketch.getMinItem(), 0.0); // min value is exact
+    assertEquals(sketch.getMaxItem(), n - 1.0); // max value is exact
 
     // check at every 0.1 percentage point
-    final double[] fractions = new double[1001];
+    final double[] ranks = new double[1001];
     final double[] reverseFractions = new double[1001]; // check that ordering doesn't matter
     for (int i = 0; i <= 1000; i++) {
-      fractions[i] = (double) i / 1000;
-      reverseFractions[1000 - i] = fractions[i];
+      ranks[i] = (double) i / 1000;
+      reverseFractions[1000 - i] = ranks[i];
     }
-    final double[] quantiles = sketch.getQuantiles(fractions);
+    final double[] quantiles = sketch.getQuantiles(ranks);
     final double[] reverseQuantiles = sketch.getQuantiles(reverseFractions);
-    double previousQuantile = 0;
+    double previousQuantile = 0.0;
     for (int i = 0; i <= 1000; i++) {
-      final double quantile = sketch.getQuantile(fractions[i]);
+      final double quantile = sketch.getQuantile(ranks[i]);
       assertEquals(quantile, quantiles[i]);
       assertEquals(quantile, reverseQuantiles[1000 - i]);
       assertTrue(previousQuantile <= quantile);
@@ -205,7 +205,7 @@
 
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), 2 * n);
-    assertEquals(sketch1.getMinItem(), 0);
+    assertEquals(sketch1.getMinItem(), 0.0);
     assertEquals(sketch1.getMaxItem(), 2.0 * n - 1.0);
     assertEquals(sketch1.getQuantile(0.5), n, n * PMF_EPS_FOR_K_128);
   }
@@ -214,7 +214,7 @@
   public void mergeEmptyLowerK() {
     final KllDoublesSketch sketch1 = getUpdatableDirectDoublesSketch(256, 0);
     final KllDoublesSketch sketch2 = getUpdatableDirectDoublesSketch(128, 0);
-    final int n = 10000;
+    final int n = 10_000;
     for (int i = 0; i < n; i++) {
       sketch1.update(i);
     }
@@ -226,7 +226,7 @@
 
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), n);
-    assertEquals(sketch1.getMinItem(), 0);
+    assertEquals(sketch1.getMinItem(), 0.0);
     assertEquals(sketch1.getMaxItem(), n - 1.0);
     assertEquals(sketch1.getQuantile(0.5), n / 2.0, n / 2 * PMF_EPS_FOR_K_256);
 
@@ -234,7 +234,7 @@
     sketch2.merge(sketch1);
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), n);
-    assertEquals(sketch1.getMinItem(), 0);
+    assertEquals(sketch1.getMinItem(), 0.0);
     assertEquals(sketch1.getMaxItem(), n - 1.0);
     assertEquals(sketch1.getQuantile(0.5), n / 2.0, n / 2 * PMF_EPS_FOR_K_256);
   }
@@ -310,7 +310,7 @@
   @Test
   public void serializeDeserializeEmptyViaCompactHeapify() {
     final KllDoublesSketch sketch1 = getUpdatableDirectDoublesSketch(200, 0);
-    final byte[] bytes = sketch1.toByteArray();
+    final byte[] bytes = sketch1.toByteArray(); //compact
     final KllDoublesSketch sketch2 = KllDoublesSketch.heapify(Memory.wrap(bytes));
     assertEquals(bytes.length, sketch1.currentSerializedSizeBytes(false));
     assertTrue(sketch2.isEmpty());
@@ -368,9 +368,10 @@
     assertEquals(sketch2.getNumRetained(), 1);
     assertEquals(sketch2.getN(), 1);
     assertEquals(sketch2.getNormalizedRankError(false), sketch1.getNormalizedRankError(false));
-    assertTrue(Double.isFinite(sketch2.getMinItem()));
-    assertTrue(Double.isFinite(sketch2.getMaxItem()));
+    assertEquals(sketch2.getMinItem(), 1.0);
+    assertEquals(sketch2.getMaxItem(), 1.0);
     assertEquals(sketch2.currentSerializedSizeBytes(false), 8 + Double.BYTES);
+    assertEquals(sketch2.currentSerializedSizeBytes(true), bytes.length);
   }
 
   @Test
@@ -623,7 +624,7 @@
   }
 
   @Test
-  public void chickReadOnlyExceptions() {
+  public void checkReadOnlyExceptions() {
     int k = 20;
     double[] dblArr = new double[0];
     double dblV = 1.0f;
diff --git a/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchTest.java
index 7be56d7..6f9ea0b 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDirectFloatsSketchTest.java
@@ -54,7 +54,7 @@
     try { sketch.getMaxItem(); fail(); } catch (SketchesArgumentException e) {}
     try { sketch.getQuantile(0.5); fail(); } catch (SketchesArgumentException e) {}
     try { sketch.getQuantiles(new double[] {0.0, 1.0}); fail(); } catch (SketchesArgumentException e) {}
-    try { sketch.getPMF(new float[0]); fail(); } catch (SketchesArgumentException e) {}
+    try { sketch.getPMF(new float[] {0}); fail(); } catch (SketchesArgumentException e) {}
     try { sketch.getCDF(new float[0]); fail(); } catch (SketchesArgumentException e) {}
     assertNotNull(sketch.toString(true, true));
     assertNotNull(sketch.toString());
@@ -105,12 +105,12 @@
     }
 
     // test getPMF
-    final double[] pmf = sketch.getPMF(new float[] {n / 2}); // split at median
+    final double[] pmf = sketch.getPMF(new float[] {n / 2.0f}); // split at median
     assertEquals(pmf.length, 2);
     assertEquals(pmf[0], 0.5, PMF_EPS_FOR_K_256);
     assertEquals(pmf[1], 0.5, PMF_EPS_FOR_K_256);
-    assertEquals(sketch.getMinItem(), 0f); // min value is exact
-    assertEquals(sketch.getMaxItem(), n - 1f); // max value is exact
+    assertEquals(sketch.getMinItem(), 0.0f); // min value is exact
+    assertEquals(sketch.getMaxItem(), n - 1.0f); // max value is exact
 
     // check at every 0.1 percentage point
     final double[] ranks = new double[1001];
@@ -121,7 +121,7 @@
     }
     final float[] quantiles = sketch.getQuantiles(ranks);
     final float[] reverseQuantiles = sketch.getQuantiles(reverseRanks);
-    float previousQuantile = 0f;
+    float previousQuantile = 0.0f;
     for (int i = 0; i <= 1000; i++) {
       final float quantile = sketch.getQuantile(ranks[i]);
       assertEquals(quantile, quantiles[i]);
@@ -205,8 +205,8 @@
 
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), 2 * n);
-    assertEquals(sketch1.getMinItem(), 0f);
-    assertEquals(sketch1.getMaxItem(), 2f * n - 1f);
+    assertEquals(sketch1.getMinItem(), 0.0f);
+    assertEquals(sketch1.getMaxItem(), 2.0f * n - 1.0f);
     assertEquals(sketch1.getQuantile(0.5), n, n * PMF_EPS_FOR_K_128);
   }
 
@@ -214,7 +214,7 @@
   public void mergeEmptyLowerK() {
     final KllFloatsSketch sketch1 = getUpdatableDirectFloatSketch(256, 0);
     final KllFloatsSketch sketch2 = getUpdatableDirectFloatSketch(128, 0);
-    final int n = 10000;
+    final int n = 10_000;
     for (int i = 0; i < n; i++) {
       sketch1.update(i);
     }
@@ -226,17 +226,17 @@
 
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), n);
-    assertEquals(sketch1.getMinItem(), 0f);
-    assertEquals(sketch1.getMaxItem(), n - 1f);
-    assertEquals(sketch1.getQuantile(0.5), n / 2f, n / 2 * PMF_EPS_FOR_K_256);
+    assertEquals(sketch1.getMinItem(), 0.0f);
+    assertEquals(sketch1.getMaxItem(), n - 1.0f);
+    assertEquals(sketch1.getQuantile(0.5), n / 2.0f, n / 2 * PMF_EPS_FOR_K_256);
 
     //merge the other way
     sketch2.merge(sketch1);
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), n);
-    assertEquals(sketch1.getMinItem(), 0f);
-    assertEquals(sketch1.getMaxItem(), n - 1f);
-    assertEquals(sketch1.getQuantile(0.5), n / 2f, n / 2 * PMF_EPS_FOR_K_256);
+    assertEquals(sketch1.getMinItem(), 0.0f);
+    assertEquals(sketch1.getMaxItem(), n - 1.0f);
+    assertEquals(sketch1.getQuantile(0.5), n / 2.0f, n / 2 * PMF_EPS_FOR_K_256);
   }
 
   @Test
@@ -319,8 +319,8 @@
     assertEquals(sketch2.getNormalizedRankError(false), sketch1.getNormalizedRankError(false));
     try { sketch2.getMinItem(); fail(); } catch (SketchesArgumentException e) {}
     try { sketch2.getMaxItem(); fail(); } catch (SketchesArgumentException e) {}
-    assertEquals(sketch2.currentSerializedSizeBytes(true),
-        sketch1.currentSerializedSizeBytes(true));
+    assertEquals(sketch2.currentSerializedSizeBytes(false),
+        sketch1.currentSerializedSizeBytes(false));
   }
 
   @Test
@@ -336,8 +336,8 @@
     assertEquals(sketch2.getNormalizedRankError(false), sketch1.getNormalizedRankError(false));
     try { sketch2.getMinItem(); fail(); } catch (SketchesArgumentException e) {}
     try { sketch2.getMaxItem(); fail(); } catch (SketchesArgumentException e) {}
-    assertEquals(sketch2.currentSerializedSizeBytes(false),
-        sketch1.currentSerializedSizeBytes(false));
+    assertEquals(sketch2.currentSerializedSizeBytes(true),
+        sketch1.currentSerializedSizeBytes(true));
   }
 
   @Test
@@ -368,9 +368,10 @@
     assertEquals(sketch2.getNumRetained(), 1);
     assertEquals(sketch2.getN(), 1);
     assertEquals(sketch2.getNormalizedRankError(false), sketch1.getNormalizedRankError(false));
-    assertTrue(Float.isFinite(sketch2.getMinItem()));
-    assertTrue(Float.isFinite(sketch2.getMaxItem()));
+    assertEquals(sketch2.getMinItem(), 1.0f);
+    assertEquals(sketch2.getMaxItem(), 1.0f);
     assertEquals(sketch2.currentSerializedSizeBytes(false), 8 + Float.BYTES);
+    assertEquals(sketch2.currentSerializedSizeBytes(true), bytes.length);
   }
 
   @Test
@@ -623,7 +624,7 @@
   }
 
   @Test
-  public void chickReadOnlyExceptions() {
+  public void checkReadOnlyExceptions() {
     int k = 20;
     float[] fltArr = new float[0];
     float fltV = 1.0f;
@@ -651,7 +652,7 @@
     sk2.merge(sk1);
   }
 
-  //@Test  Ignore until work is completed on doubles sketch
+  @Test
   public void checkMergeExceptionsWrongType() {
     KllFloatsSketch sk1 = KllFloatsSketch.newHeapInstance(20);
     KllDoublesSketch sk2 = KllDoublesSketch.newHeapInstance(20);
diff --git a/src/test/java/org/apache/datasketches/kll/KllDoublesSketchSerDeTest.java b/src/test/java/org/apache/datasketches/kll/KllDoublesSketchSerDeTest.java
index 1e7fc43..7178003 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDoublesSketchSerDeTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDoublesSketchSerDeTest.java
@@ -78,7 +78,7 @@
     assertEquals(sk2.getNormalizedRankError(false), sk1.getNormalizedRankError(false));
     assertEquals(sk2.getMinItem(), 1.0);
     assertEquals(sk2.getMaxItem(), 1.0);
-    assertEquals(sk2.getSerializedSizeBytes(), 8 + Double.BYTES);
+    assertEquals(sk2.getSerializedSizeBytes(), Long.BYTES + Double.BYTES);
     //from heap -> byte[] -> off heap
     final KllDoublesSketch sk3 = KllDoublesSketch.wrap(Memory.wrap(bytes));
     assertFalse(sk3.isEmpty());
@@ -131,33 +131,33 @@
   public void compatibilityWithCppEstimationMode() throws Exception {
     final File file = Util.getResourceFile("kll_double_estimation_cpp.sk");
     try (MapHandle mh = Memory.map(file)) {
-      final KllDoublesSketch sketch = KllDoublesSketch.heapify(mh.get());
-      assertEquals(sketch.getMinItem(), 0);
-      assertEquals(sketch.getMaxItem(), 999);
-      assertEquals(sketch.getN(), 1000);
+      final KllDoublesSketch sk = KllDoublesSketch.heapify(mh.get());
+      assertEquals(sk.getMinItem(), 0);
+      assertEquals(sk.getMaxItem(), 999);
+      assertEquals(sk.getN(), 1000);
     }
   }
 
   @Test
   public void deserializeOneValueVersion1() throws Exception {
     final byte[] bytes = getResourceBytes("kll_sketch_double_one_item_v1.sk");
-    final KllDoublesSketch sketch = KllDoublesSketch.heapify(Memory.wrap(bytes));
-    assertFalse(sketch.isEmpty());
-    assertFalse(sketch.isEstimationMode());
-    assertEquals(sketch.getN(), 1);
-    assertEquals(sketch.getNumRetained(), 1);
-    assertEquals(sketch.getMinItem(), 1.0);
-    assertEquals(sketch.getMaxItem(), 1.0);
+    final KllDoublesSketch sk = KllDoublesSketch.heapify(Memory.wrap(bytes));
+    assertFalse(sk.isEmpty());
+    assertFalse(sk.isEstimationMode());
+    assertEquals(sk.getN(), 1);
+    assertEquals(sk.getNumRetained(), 1);
+    assertEquals(sk.getMinItem(), 1.0);
+    assertEquals(sk.getMaxItem(), 1.0);
   }
 
   @Test(groups = {"generate"})
   public void generateBinariesForCompatibilityTesting() throws Exception {
     final int[] nArr = {0, 1, 10, 100, 1_000, 10_000, 100_000, 1_000_000};
     for (int n: nArr) {
-      final KllDoublesSketch sketch = KllDoublesSketch.newHeapInstance();
-      for (int i = 1; i <= n; i++) sketch.update(i);
+      final KllDoublesSketch sk = KllDoublesSketch.newHeapInstance();
+      for (int i = 1; i <= n; i++) sk.update(i);
       try (final FileOutputStream file = new FileOutputStream("kll_double_n" + n + ".sk")) {
-        file.write(sketch.toByteArray());
+        file.write(sk.toByteArray());
       }
     }
   }
diff --git a/src/test/java/org/apache/datasketches/kll/KllDoublesSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllDoublesSketchTest.java
index 88498d8..b9622de 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDoublesSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDoublesSketchTest.java
@@ -82,12 +82,12 @@
     assertFalse(sketch.isEmpty());
     assertEquals(sketch.getN(), 1);
     assertEquals(sketch.getNumRetained(), 1);
-    assertEquals(sketch.getRank(0, EXCLUSIVE), 0.0);
-    assertEquals(sketch.getRank(1, EXCLUSIVE), 0.0);
-    assertEquals(sketch.getRank(2, EXCLUSIVE), 1.0);
-    assertEquals(sketch.getRank(0, INCLUSIVE), 0.0);
-    assertEquals(sketch.getRank(1, INCLUSIVE), 1.0);
-    assertEquals(sketch.getRank(2, INCLUSIVE), 1.0);
+    assertEquals(sketch.getRank(0.0, EXCLUSIVE), 0.0);
+    assertEquals(sketch.getRank(1.0, EXCLUSIVE), 0.0);
+    assertEquals(sketch.getRank(2.0, EXCLUSIVE), 1.0);
+    assertEquals(sketch.getRank(0.0, INCLUSIVE), 0.0);
+    assertEquals(sketch.getRank(1.0, INCLUSIVE), 1.0);
+    assertEquals(sketch.getRank(2.0, INCLUSIVE), 1.0);
     assertEquals(sketch.getMinItem(), 1.0);
     assertEquals(sketch.getMaxItem(), 1.0);
     assertEquals(sketch.getQuantile(0.5, EXCLUSIVE), 1.0);
@@ -119,7 +119,7 @@
       double rank = i/10.0;
       double q = rank == 1.0 ? i : i + 1;
       assertEquals(sketch.getQuantile(rank, EXCLUSIVE), q);
-      q = rank == 0 ? i + 1.0 : i;
+      q = (double)(rank == 0 ? i + 1.0 : i);
       assertEquals(sketch.getQuantile(rank, INCLUSIVE), q);
     }
 
@@ -158,7 +158,7 @@
     }
 
     // test getPMF
-    final double[] pmf = sketch.getPMF(new double[] {n / 2}); // split at median
+    final double[] pmf = sketch.getPMF(new double[] {n / 2.0}); // split at median
     assertEquals(pmf.length, 2);
     assertEquals(pmf[0], 0.5, PMF_EPS_FOR_K_256);
     assertEquals(pmf[1], 0.5, PMF_EPS_FOR_K_256);
@@ -275,8 +275,8 @@
 
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), 2 * n);
-    assertEquals(sketch1.getMinItem(), 0);
-    assertEquals(sketch1.getMaxItem(), 2f * n - 1.0);
+    assertEquals(sketch1.getMinItem(), 0.0);
+    assertEquals(sketch1.getMaxItem(), 2.0 * n - 1.0);
     assertEquals(sketch1.getQuantile(0.5), n, 2 * n * PMF_EPS_FOR_K_128);
   }
 
@@ -284,7 +284,7 @@
   public void mergeEmptyLowerK() {
     final KllDoublesSketch sketch1 = KllDoublesSketch.newHeapInstance(256);
     final KllDoublesSketch sketch2 = KllDoublesSketch.newHeapInstance(128);
-    final int n = 10000;
+    final int n = 10_000;
     for (int i = 0; i < n; i++) {
       sketch1.update(i);
     }
@@ -296,7 +296,7 @@
 
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), n);
-    assertEquals(sketch1.getMinItem(), 0);
+    assertEquals(sketch1.getMinItem(), 0.0);
     assertEquals(sketch1.getMaxItem(), n - 1.0);
     assertEquals(sketch1.getQuantile(0.5), n / 2.0, n * PMF_EPS_FOR_K_256);
 
@@ -341,10 +341,10 @@
     for (int i = 1; i <= 1_000_000; i++) {
       sketch1.update(i);
     }
-    final KllDoublesSketch sketch2 = KllDoublesSketch.newHeapInstance();
+    final KllDoublesSketch sketch2 = KllDoublesSketch.newHeapInstance(10);
     sketch2.merge(sketch1);
-    assertEquals(sketch2.getMinItem(), 1);
-    assertEquals(sketch2.getMaxItem(), 1_000_000);
+    assertEquals(sketch2.getMinItem(), 1.0);
+    assertEquals(sketch2.getMaxItem(), 1_000_000.0);
   }
 
   @Test(expectedExceptions = SketchesArgumentException.class)
@@ -364,7 +364,7 @@
       sketch.update(i);
     }
     assertEquals(sketch.getK(), KllSketch.DEFAULT_M);
-    assertEquals(sketch.getQuantile(0.5), 500, 1000 * PMF_EPS_FOR_K_8);
+    assertEquals(sketch.getQuantile(0.5), 500.0, 1000 * PMF_EPS_FOR_K_8);
   }
 
   @Test
@@ -381,7 +381,7 @@
   public void outOfOrderSplitPoints() {
     final KllDoublesSketch sketch = KllDoublesSketch.newHeapInstance();
     sketch.update(0);
-    sketch.getCDF(new double[] {1, 0});
+    sketch.getCDF(new double[] {1.0, 0.0});
   }
 
   @Test(expectedExceptions = SketchesArgumentException.class)
diff --git a/src/test/java/org/apache/datasketches/kll/KllDoublesValidationTest.java b/src/test/java/org/apache/datasketches/kll/KllDoublesValidationTest.java
index b4d79be..41530f5 100644
--- a/src/test/java/org/apache/datasketches/kll/KllDoublesValidationTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllDoublesValidationTest.java
@@ -34,9 +34,9 @@
    6. hash of the retained samples
 */
 
-//These results are for the version that delays the roll up until the next value comes in.
-//The @Test annotations have to be enabled to use this class and a section in KllDoublesHelper also
-//needs to be enabled.
+// These results are for the version that delays the roll up until the next value comes in.
+// The @Test annotations have to be enabled to use this class and a section in KllDoublesHelper also
+// needs to be enabled.
 @SuppressWarnings("unused")
 public class KllDoublesValidationTest {
 
@@ -218,7 +218,7 @@
       }
       int numLevels = sketch.getNumLevels();
       int numSamples = sketch.getNumRetained();
-      int[] levels = sketch.levelsArr;
+      int[] levels = sketch.getLevelsArray(sketch.sketchStructure);
       long hashedSamples = simpleHashOfSubArray(sketch.getDoubleItemsArray(), levels[0], numSamples);
       System.out.print(testI);
       assert correctResultsWithReset[(7 * testI) + 4] == numLevels;
diff --git a/src/test/java/org/apache/datasketches/kll/KllFloatsSketchIteratorTest.java b/src/test/java/org/apache/datasketches/kll/KllFloatsSketchIteratorTest.java
index c18b36c..e511de5 100644
--- a/src/test/java/org/apache/datasketches/kll/KllFloatsSketchIteratorTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllFloatsSketchIteratorTest.java
@@ -44,7 +44,7 @@
     sketch.update(1);
     QuantilesFloatsSketchIterator it = sketch.iterator();
     Assert.assertTrue(it.next());
-    Assert.assertEquals(it.getQuantile(), 1f);
+    Assert.assertEquals(it.getQuantile(), 1.0f);
     Assert.assertEquals(it.getWeight(), 1);
     Assert.assertFalse(it.next());
   }
@@ -57,12 +57,12 @@
     QuantilesFloatsSketchIterator itr = sketch.iterator();
     assertTrue(itr.next());
 
-    assertEquals(itr.getQuantile(), 2f);
+    assertEquals(itr.getQuantile(), 2.0f);
     assertEquals(itr.getWeight(), 1);
 
     assertTrue(itr.next());
 
-    assertEquals(itr.getQuantile(), 1f);
+    assertEquals(itr.getQuantile(), 1.0f);
     assertEquals(itr.getWeight(), 1);
   }
 
@@ -75,7 +75,7 @@
 
     assertTrue(itr.next());
 
-    assertEquals(itr.getQuantile(), 1f);
+    assertEquals(itr.getQuantile(), 1.0f);
     assertEquals(itr.getWeight(), 1);
     assertEquals(itr.getCumulativeWeight(EXCLUSIVE), 0);
     assertEquals(itr.getCumulativeWeight(INCLUSIVE), 1);
@@ -84,7 +84,7 @@
 
     assertTrue(itr.next());
 
-    assertEquals(itr.getQuantile(), 2f);
+    assertEquals(itr.getQuantile(), 2.0f);
     assertEquals(itr.getWeight(), 1);
     assertEquals(itr.getCumulativeWeight(EXCLUSIVE), 1);
     assertEquals(itr.getCumulativeWeight(INCLUSIVE), 2);
diff --git a/src/test/java/org/apache/datasketches/kll/KllFloatsSketchSerDeTest.java b/src/test/java/org/apache/datasketches/kll/KllFloatsSketchSerDeTest.java
index 39167a8..183a063 100644
--- a/src/test/java/org/apache/datasketches/kll/KllFloatsSketchSerDeTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllFloatsSketchSerDeTest.java
@@ -85,8 +85,8 @@
     assertEquals(sk3.getNumRetained(), 1);
     assertEquals(sk3.getN(), 1);
     assertEquals(sk3.getNormalizedRankError(false), sk1.getNormalizedRankError(false));
-    assertEquals(sk3.getMinItem(), 1f);
-    assertEquals(sk3.getMaxItem(), 1f);
+    assertEquals(sk3.getMinItem(), 1.0f);
+    assertEquals(sk3.getMaxItem(), 1.0f);
     assertEquals(sk3.getSerializedSizeBytes(), sk1.getSerializedSizeBytes());
     //from heap -> byte[] -> off heap -> byte[] -> compare byte[]
     final byte[] bytes2 = sk3.toByteArray();
@@ -100,8 +100,8 @@
     for (int i = 0; i < n; i++) {
       sk1.update(i);
     }
-    assertEquals(sk1.getMinItem(), 0f);
-    assertEquals(sk1.getMaxItem(), 999f);
+    assertEquals(sk1.getMinItem(), 0.0f);
+    assertEquals(sk1.getMaxItem(), 999.0f);
     //from heap -> byte[] -> heap
     final byte[] bytes = sk1.toByteArray();
     final KllFloatsSketch sk2 = KllFloatsSketch.heapify(Memory.wrap(bytes));
@@ -130,7 +130,7 @@
   @Test
   public void compatibilityWithCppEstimationMode() throws Exception {
     final File file = Util.getResourceFile("kll_float_estimation_cpp.sk");
-    try (final MapHandle mh = Memory.map(file)) {
+    try (MapHandle mh = Memory.map(file)) {
       final KllFloatsSketch sk = KllFloatsSketch.heapify(mh.get());
       assertEquals(sk.getMinItem(), 0);
       assertEquals(sk.getMaxItem(), 999);
diff --git a/src/test/java/org/apache/datasketches/kll/KllFloatsSketchTest.java b/src/test/java/org/apache/datasketches/kll/KllFloatsSketchTest.java
index aad40cf..b79dbfd 100644
--- a/src/test/java/org/apache/datasketches/kll/KllFloatsSketchTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllFloatsSketchTest.java
@@ -82,15 +82,15 @@
     assertFalse(sketch.isEmpty());
     assertEquals(sketch.getN(), 1);
     assertEquals(sketch.getNumRetained(), 1);
-    assertEquals(sketch.getRank(1f, EXCLUSIVE), 0.0);
-    assertEquals(sketch.getRank(2, EXCLUSIVE), 1.0);
-    assertEquals(sketch.getRank(1, EXCLUSIVE), 0.0);
-    assertEquals(sketch.getRank(2, EXCLUSIVE), 1.0);
-    assertEquals(sketch.getRank(0, INCLUSIVE), 0.0);
-    assertEquals(sketch.getRank(1, INCLUSIVE), 1.0);
-    assertEquals(sketch.getMinItem(), 1f);
-    assertEquals(sketch.getMaxItem(), 1f);
-    assertEquals(sketch.getQuantile(0.5, EXCLUSIVE), 1f);
+    assertEquals(sketch.getRank(0.0f, EXCLUSIVE), 0.0);
+    assertEquals(sketch.getRank(1.0f, EXCLUSIVE), 0.0);
+    assertEquals(sketch.getRank(2.0f, EXCLUSIVE), 1.0);
+    assertEquals(sketch.getRank(0.0f, INCLUSIVE), 0.0);
+    assertEquals(sketch.getRank(1.0f, INCLUSIVE), 1.0);
+    assertEquals(sketch.getRank(2.0f, INCLUSIVE), 1.0);
+    assertEquals(sketch.getMinItem(), 1.0f);
+    assertEquals(sketch.getMaxItem(), 1.0f);
+    assertEquals(sketch.getQuantile(0.5, EXCLUSIVE), 1.0f);
     assertEquals(sketch.getQuantile(0.5, INCLUSIVE), 1.0f);
   }
 
@@ -134,7 +134,7 @@
     {
       // getQuantile() and getQuantiles() equivalence INCLUSIVE
       final float[] quantiles =
-          sketch.getQuantiles(new double[] {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}, INCLUSIVE);
+          sketch.getQuantiles(new double[] {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0}, INCLUSIVE);
       for (int i = 0; i <= 10; i++) {
         assertEquals(sketch.getQuantile(i / 10.0, INCLUSIVE), quantiles[i]);
       }
@@ -148,8 +148,8 @@
 
     for (int i = 0; i < n; i++) {
       sketch.update(i);
-      assertEquals(sketch.getN(), i + 1);
     }
+    assertEquals(sketch.getN(), n);
 
     // test getRank
     for (int i = 0; i < n; i++) {
@@ -183,7 +183,7 @@
       assertTrue(previousQuantile <= quantile);
       previousQuantile = quantile;
     }
-}
+  }
 
   @Test
   public void getRankGetCdfGetPmfConsistency() {
@@ -208,7 +208,7 @@
       assertEquals(sumPmf, 1.0, NUMERIC_NOISE_TOLERANCE);
       assertEquals(ranks[n], 1.0, NUMERIC_NOISE_TOLERANCE);
     }
-    { // inclusive = false (default)
+    { // inclusive = true
       final double[] ranks = sketch.getCDF(values, INCLUSIVE);
       final double[] pmf = sketch.getPMF(values, INCLUSIVE);
       double sumPmf = 0;
@@ -263,7 +263,7 @@
     assertEquals(sketch1.getMaxItem(), n - 1f);
 
     assertEquals(sketch2.getMinItem(), n);
-    assertEquals(sketch2.getMaxItem(), 2f * n - 1f);
+    assertEquals(sketch2.getMaxItem(), 2f * n - 1.0f);
 
     assertTrue(sketch1.getNormalizedRankError(false) < sketch2.getNormalizedRankError(false));
     assertTrue(sketch1.getNormalizedRankError(true) < sketch2.getNormalizedRankError(true));
@@ -275,8 +275,8 @@
 
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), 2 * n);
-    assertEquals(sketch1.getMinItem(), 0f);
-    assertEquals(sketch1.getMaxItem(), 2f * n - 1f);
+    assertEquals(sketch1.getMinItem(), 0.0f);
+    assertEquals(sketch1.getMaxItem(), 2.0f * n - 1.0f);
     assertEquals(sketch1.getQuantile(0.5), n, 2 * n * PMF_EPS_FOR_K_128);
   }
 
@@ -284,7 +284,7 @@
   public void mergeEmptyLowerK() {
     final KllFloatsSketch sketch1 = KllFloatsSketch.newHeapInstance(256);
     final KllFloatsSketch sketch2 = KllFloatsSketch.newHeapInstance(128);
-    final int n = 10000;
+    final int n = 10_000;
     for (int i = 0; i < n; i++) {
       sketch1.update(i);
     }
@@ -296,17 +296,17 @@
 
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), n);
-    assertEquals(sketch1.getMinItem(), 0f);
-    assertEquals(sketch1.getMaxItem(), n - 1f);
-    assertEquals(sketch1.getQuantile(0.5), n / 2f, n * PMF_EPS_FOR_K_256);
+    assertEquals(sketch1.getMinItem(), 0.0f);
+    assertEquals(sketch1.getMaxItem(), n - 1.0f);
+    assertEquals(sketch1.getQuantile(0.5), n / 2.0f, n * PMF_EPS_FOR_K_256);
 
     //merge the other way
     sketch2.merge(sketch1);
     assertFalse(sketch1.isEmpty());
     assertEquals(sketch1.getN(), n);
     assertEquals(sketch1.getMinItem(), 0f);
-    assertEquals(sketch1.getMaxItem(), n - 1f);
-    assertEquals(sketch1.getQuantile(0.5), n / 2f, n * PMF_EPS_FOR_K_256);
+    assertEquals(sketch1.getMaxItem(), n - 1.0f);
+    assertEquals(sketch1.getQuantile(0.5), n / 2.0f, n * PMF_EPS_FOR_K_256);
   }
 
   @Test
@@ -343,8 +343,8 @@
     }
     final KllFloatsSketch sketch2 = KllFloatsSketch.newHeapInstance(10);
     sketch2.merge(sketch1);
-    assertEquals(sketch2.getMinItem(), 1F);
-    assertEquals(sketch2.getMaxItem(), 1_000_000F);
+    assertEquals(sketch2.getMinItem(), 1.0F);
+    assertEquals(sketch2.getMaxItem(), 1_000_000.0F);
   }
 
   @Test(expectedExceptions = SketchesArgumentException.class)
@@ -364,7 +364,7 @@
       sketch.update(i);
     }
     assertEquals(sketch.getK(), KllSketch.DEFAULT_M);
-    assertEquals(sketch.getQuantile(.5), 500, 1000 * PMF_EPS_FOR_K_8);
+    assertEquals(sketch.getQuantile(.5), 500.0f, 1000 * PMF_EPS_FOR_K_8);
   }
 
   @Test
@@ -381,7 +381,7 @@
   public void outOfOrderSplitPoints() {
     final KllFloatsSketch sketch = KllFloatsSketch.newHeapInstance();
     sketch.update(0);
-    sketch.getCDF(new float[] {1, 0});
+    sketch.getCDF(new float[] {1.0f, 0.0f});
   }
 
   @Test(expectedExceptions = SketchesArgumentException.class)
diff --git a/src/test/java/org/apache/datasketches/kll/KllItemsSketchiteratorTest.java b/src/test/java/org/apache/datasketches/kll/KllItemsSketchiteratorTest.java
index 41f5bf8..0607ff5 100644
--- a/src/test/java/org/apache/datasketches/kll/KllItemsSketchiteratorTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllItemsSketchiteratorTest.java
@@ -34,8 +34,7 @@
 import org.testng.annotations.Test;
 
 public class KllItemsSketchiteratorTest {
-  static final String LS = System.getProperty("line.separator");
-  public ArrayOfStringsSerDe serDe = new ArrayOfStringsSerDe();
+  private ArrayOfStringsSerDe serDe = new ArrayOfStringsSerDe();
 
   @Test
   public void emptySketch() {
diff --git a/src/test/java/org/apache/datasketches/kll/KllMiscDirectDoublesTest.java b/src/test/java/org/apache/datasketches/kll/KllMiscDirectDoublesTest.java
index 594cb4c..45feb76 100644
--- a/src/test/java/org/apache/datasketches/kll/KllMiscDirectDoublesTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllMiscDirectDoublesTest.java
@@ -60,7 +60,8 @@
 
   @Test
   public void checkMisc() {
-    final KllDoublesSketch sk = getDirectDoublesSketch(8, 0);
+    final int k = 8;
+    final KllDoublesSketch sk = getDirectDoublesSketch(k, 0);
     try { sk.getPartitionBoundaries(10); fail(); } catch (SketchesArgumentException e) {}
     for (int i = 0; i < 20; i++) { sk.update(i); }
     final double[] items = sk.getDoubleItemsArray();
@@ -72,11 +73,12 @@
 
   //@Test //enable static println(..) for visual checking
   public void visualCheckToString() {
-    final KllDoublesSketch sk = getDirectDoublesSketch(20, 0);
+    final int k = 20;
+    final KllDoublesSketch sk = getDirectDoublesSketch(k, 0);
     for (int i = 0; i < 10; i++) { sk.update(i + 1); }
     println(sk.toString(true, true));
 
-    final KllDoublesSketch sk2 = getDirectDoublesSketch(20, 0);
+    final KllDoublesSketch sk2 = getDirectDoublesSketch(k, 0);
     for (int i = 0; i < 400; i++) { sk2.update(i + 1); }
     println("\n" + sk2.toString(true, true));
 
@@ -264,7 +266,7 @@
     compBytes = KllHelper.toByteArray(sk2, true);
     wmem = WritableMemory.writableWrap(compBytes);
     sk = KllHeapDoublesSketch.heapifyImpl(wmem);
-    println(sk.toString(true, true));
+    //println(sk.toString(true, true));
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), k + 1);
     assertEquals(sk.getNumRetained(), 11);
@@ -428,7 +430,7 @@
     int k = 20;
     int m = 4;
     WritableMemory dstMem = WritableMemory.allocate(1000);
-    KllDoublesSketch sk = KllDirectDoublesSketch.newDirectInstance(k, m, dstMem, memReqSvr);
+    KllDoublesSketch sk = KllDirectDoublesSketch.newDirectUpdatableInstance(k, m, dstMem, memReqSvr);
     for (int i = 1; i <= 200; i++) {sk.update(i); }
     assertEquals(sk.getMinItem(), 1.0);
     assertEquals(sk.getMaxItem(), 200.0);
diff --git a/src/test/java/org/apache/datasketches/kll/KllMiscDirectFloatsTest.java b/src/test/java/org/apache/datasketches/kll/KllMiscDirectFloatsTest.java
index addbc5c..6f042ce 100644
--- a/src/test/java/org/apache/datasketches/kll/KllMiscDirectFloatsTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllMiscDirectFloatsTest.java
@@ -60,7 +60,8 @@
 
   @Test
   public void checkMisc() {
-    final KllFloatsSketch sk = getDirectFloatsSketch(8, 0);
+    final int k = 8;
+    final KllFloatsSketch sk = getDirectFloatsSketch(k, 0);
     try { sk.getPartitionBoundaries(10); fail(); } catch (SketchesArgumentException e) {}
     for (int i = 0; i < 20; i++) { sk.update(i); }
     final float[] items = sk.getFloatItemsArray();
@@ -72,11 +73,12 @@
 
   //@Test //enable static println(..) for visual checking
   public void visualCheckToString() {
-    final KllFloatsSketch sk = getDirectFloatsSketch(20, 0);
+    final int k = 20;
+    final KllFloatsSketch sk = getDirectFloatsSketch(k, 0);
     for (int i = 0; i < 10; i++) { sk.update(i + 1); }
     println(sk.toString(true, true));
 
-    final KllFloatsSketch sk2 = getDirectFloatsSketch(20, 0);
+    final KllFloatsSketch sk2 = getDirectFloatsSketch(k, 0);
     for (int i = 0; i < 400; i++) { sk2.update(i + 1); }
     println("\n" + sk2.toString(true, true));
 
@@ -263,8 +265,8 @@
     //println(sk2.toString(true, true));
     compBytes = KllHelper.toByteArray(sk2,true);
     wmem = WritableMemory.writableWrap(compBytes);
-    //println(KllPreambleUtil.toString(wmem));
     sk = KllHeapFloatsSketch.heapifyImpl(wmem);
+    //println(sk.toString(true, true));
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), k + 1);
     assertEquals(sk.getNumRetained(), 11);
diff --git a/src/test/java/org/apache/datasketches/kll/KllMiscDoublesTest.java b/src/test/java/org/apache/datasketches/kll/KllMiscDoublesTest.java
index 61bb9b7..fe20808 100644
--- a/src/test/java/org/apache/datasketches/kll/KllMiscDoublesTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllMiscDoublesTest.java
@@ -45,9 +45,7 @@
   @Test
   public void checkSortedViewConstruction() {
     final KllDoublesSketch kll = KllDoublesSketch.newHeapInstance(20);
-    for (int i = 1; i <= 20; i++) {
-      kll.update(i);
-    }
+    for (int i = 1; i <= 20; i++) { kll.update(i); }
     DoublesSortedView fsv = kll.getSortedView();
     long[] cumWeights = fsv.getCumulativeWeights();
     double[] values = fsv.getQuantiles();
@@ -85,7 +83,7 @@
   public void checkHeapifyExceptions1() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance();
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(6, (byte) 3); // corrupt with odd M
+    wmem.putByte(6, (byte) 3); //corrupt with odd M
     KllDoublesSketch.heapify(wmem);
   }
 
@@ -93,7 +91,7 @@
   public void checkHeapifyExceptions2() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance();
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(0, (byte) 1); // corrupt preamble ints, should be 2
+    wmem.putByte(0, (byte) 1); //corrupt preamble ints, should be 2
     KllDoublesSketch.heapify(wmem);
   }
 
@@ -103,7 +101,7 @@
     sk.update(1.0f);
     sk.update(2.0f);
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(0, (byte) 1); // corrupt preamble ints, should be 5
+    wmem.putByte(0, (byte) 1); //corrupt preamble ints, should be 5
     KllDoublesSketch.heapify(wmem);
   }
 
@@ -111,7 +109,7 @@
   public void checkHeapifyExceptions4() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance();
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(1, (byte) 0); // corrupt SerVer, should be 1 or 2
+    wmem.putByte(1, (byte) 0); //corrupt SerVer, should be 1 or 2
     KllDoublesSketch.heapify(wmem);
   }
 
@@ -119,38 +117,30 @@
   public void checkHeapifyExceptions5() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance();
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(2, (byte) 0); // corrupt FamilyID, should be 15
+    wmem.putByte(2, (byte) 0); //corrupt FamilyID, should be 15
     KllDoublesSketch.heapify(wmem);
   }
 
-  @Test
+  @Test //set static enablePrinting = true for visual checking
   public void checkMisc() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(8);
-    try {
-      sk.getMaxItem();
-      fail();
-    } catch (SketchesArgumentException e) {
-    }
+    try { sk.getMaxItem(); fail(); } catch (SketchesArgumentException e) {} //empty
     println(sk.toString(true, true));
-    for (int i = 0; i < 20; i++) {
-      sk.update(i);
-    }
+    for (int i = 0; i < 20; i++) { sk.update(i); }
     println(sk.toString(true, true));
     sk.toByteArray();
-    final double[] values = sk.getDoubleItemsArray();
-    assertEquals(values.length, 16);
+    final double[] items = sk.getDoubleItemsArray();
+    assertEquals(items.length, 16);
     final int[] levels = sk.getLevelsArray(sk.sketchStructure);
     assertEquals(levels.length, 3);
     assertEquals(sk.getNumLevels(), 2);
   }
 
-  @Test // set static enablePrinting = true for visual checking
+  @Test //set static enablePrinting = true for visual checking
   public void visualCheckToString() {
     final KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(20);
     int n = 21;
-    for (int i = 1; i <= n; i++) {
-      sk.update(i);
-    }
+    for (int i = 1; i <= n; i++) { sk.update(i); }
     println(sk.toString(true, true));
     assertEquals(sk.getNumLevels(), 2);
     assertEquals(sk.getMinItem(), 1);
@@ -159,9 +149,7 @@
 
     final KllDoublesSketch sk2 = KllDoublesSketch.newHeapInstance(20);
     n = 400;
-    for (int i = 101; i <= n + 100; i++) {
-      sk2.update(i);
-    }
+    for (int i = 101; i <= n + 100; i++) { sk2.update(i); }
     println("\n" + sk2.toString(true, true));
     assertEquals(sk2.getNumLevels(), 5);
     assertEquals(sk2.getMinItem(), 101);
@@ -176,7 +164,7 @@
     assertEquals(sk2.getNumRetained(), 56);
   }
 
-  @Test // set static enablePrinting = true for visual checking
+  @Test //set static enablePrinting = true for visual checking
   public void viewHeapCompactions() {
     int k = 20;
     int n = 108;
@@ -195,7 +183,7 @@
     }
   }
 
-  @Test // set static enablePrinting = true for visual checking
+  @Test //set static enablePrinting = true for visual checking
   public void viewDirectCompactions() {
     int k = 20;
     int n = 108;
@@ -213,13 +201,11 @@
     }
   }
 
-  @Test // set static enablePrinting = true for visual checking
+  @Test //set static enablePrinting = true for visual checking
   public void viewCompactionAndSortedView() {
     int n = 43;
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(20);
-    for (int i = 1; i <= n; i++) {
-      sk.update(i);
-    }
+    for (int i = 1; i <= n; i++) { sk.update(i); }
     println(sk.toString(true, true));
     DoublesSortedView sv = sk.getSortedView();
     DoublesSortedViewIterator itr = sv.iterator();
@@ -235,24 +221,20 @@
   @Test
   public void checkGrowLevels() {
     KllDoublesSketch sk = KllDoublesSketch.newHeapInstance(20);
-    for (int i = 1; i <= 21; i++) {
-      sk.update(i);
-    }
+    for (int i = 1; i <= 21; i++) { sk.update(i); }
     assertEquals(sk.getNumLevels(), 2);
     assertEquals(sk.getDoubleItemsArray().length, 33);
     assertEquals(sk.getLevelsArray(sk.sketchStructure)[2], 33);
   }
 
-  @Test // set static enablePrinting = true for visual checking
+  @Test //set static enablePrinting = true for visual checking
   public void checkSketchInitializeDoubleHeap() {
-    int k = 20; // don't change this
+    int k = 20; //don't change this
     KllDoublesSketch sk;
 
     println("#### CASE: DOUBLE FULL HEAP");
     sk = KllDoublesSketch.newHeapInstance(k);
-    for (int i = 1; i <= k + 1; i++) {
-      sk.update(i);
-    }
+    for (int i = 1; i <= k + 1; i++) { sk.update(i); }
     println(sk.toString(true, true));
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), k + 1);
@@ -278,16 +260,8 @@
     assertEquals(sk.getMinK(), k);
     assertEquals(sk.getDoubleItemsArray().length, 20);
     assertEquals(sk.getLevelsArray(sk.sketchStructure).length, 2);
-    try {
-      sk.getMaxItem();
-      fail();
-    } catch (SketchesArgumentException e) {
-    }
-    try {
-      sk.getMinItem();
-      fail();
-    } catch (SketchesArgumentException e) {
-    }
+    try { sk.getMaxItem(); fail(); } catch (SketchesArgumentException e) { }
+    try { sk.getMinItem(); fail(); } catch (SketchesArgumentException e) { }
     assertEquals(sk.getNumLevels(), 1);
     assertFalse(sk.isLevelZeroSorted());
 
@@ -319,10 +293,8 @@
 
     println("#### CASE: DOUBLE FULL HEAPIFIED FROM COMPACT");
     sk2 = KllDoublesSketch.newHeapInstance(k);
-    for (int i = 1; i <= k + 1; i++) {
-      sk2.update(i);
-    }
-    // println(sk.toString(true, true));
+    for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
+    // println(sk2.toString(true, true));
     compBytes = sk2.toByteArray();
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
@@ -345,7 +317,7 @@
     // println(sk.toString(true, true));
     compBytes = sk2.toByteArray();
     wmem = WritableMemory.writableWrap(compBytes);
-    println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
+    //println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
     sk = KllDoublesSketch.heapify(wmem);
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), 0);
@@ -355,26 +327,18 @@
     assertEquals(sk.getMinK(), k);
     assertEquals(sk.getDoubleItemsArray().length, 20);
     assertEquals(sk.getLevelsArray(sk.sketchStructure).length, 2);
-    try {
-      sk.getMaxItem();
-      fail();
-    } catch (SketchesArgumentException e) {
-    }
-    try {
-      sk.getMinItem();
-      fail();
-    } catch (SketchesArgumentException e) {
-    }
+    try { sk.getMaxItem(); fail(); } catch (SketchesArgumentException e) { }
+    try { sk.getMinItem(); fail(); } catch (SketchesArgumentException e) { }
     assertEquals(sk.getNumLevels(), 1);
     assertFalse(sk.isLevelZeroSorted());
 
     println("#### CASE: DOUBLE SINGLE HEAPIFIED FROM COMPACT");
     sk2 = KllDoublesSketch.newHeapInstance(k);
     sk2.update(1);
-    println(sk2.toString(true, true));
+    //println(sk2.toString(true, true));
     compBytes = sk2.toByteArray();
     wmem = WritableMemory.writableWrap(compBytes);
-    println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
+    //println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
     sk = KllDoublesSketch.heapify(wmem);
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), 1);
@@ -400,10 +364,8 @@
 
     println("#### CASE: DOUBLE FULL HEAPIFIED FROM UPDATABLE");
     sk2 = KllDoublesSketch.newHeapInstance(k);
-    for (int i = 1; i <= k + 1; i++) {
-      sk2.update(i);
-    }
-    // println(sk2.toString(true, true));
+    for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
+    //println(sk2.toString(true, true));
     compBytes = KllHelper.toByteArray(sk2, true);
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
@@ -426,7 +388,7 @@
     // println(sk.toString(true, true));
     compBytes = KllHelper.toByteArray(sk2, true);
     wmem = WritableMemory.writableWrap(compBytes);
-    println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
+    //println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
     sk = KllHeapDoublesSketch.heapifyImpl(wmem);
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), 0);
@@ -436,26 +398,18 @@
     assertEquals(sk.getMinK(), k);
     assertEquals(sk.getDoubleItemsArray().length, 20);
     assertEquals(sk.getLevelsArray(sk.sketchStructure).length, 2);
-    try {
-      sk.getMaxItem();
-      fail();
-    } catch (SketchesArgumentException e) {
-    }
-    try {
-      sk.getMinItem();
-      fail();
-    } catch (SketchesArgumentException e) {
-    }
+    try { sk.getMaxItem(); fail(); } catch (SketchesArgumentException e) { }
+    try { sk.getMinItem(); fail(); } catch (SketchesArgumentException e) { }
     assertEquals(sk.getNumLevels(), 1);
     assertFalse(sk.isLevelZeroSorted());
 
     println("#### CASE: DOUBLE SINGLE HEAPIFIED FROM UPDATABLE");
     sk2 = KllDoublesSketch.newHeapInstance(k);
     sk2.update(1);
-    // println(sk.toString(true, true));
+    //println(sk.toString(true, true));
     compBytes = KllHelper.toByteArray(sk2, true);
     wmem = WritableMemory.writableWrap(compBytes);
-    println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
+    //println(KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true));
     sk = KllHeapDoublesSketch.heapifyImpl(wmem);
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), 1);
@@ -471,9 +425,9 @@
     assertFalse(sk.isLevelZeroSorted());
   }
 
-  @Test // set static enablePrinting = true for visual checking
+  @Test //set static enablePrinting = true for visual checking
   public void checkMemoryToStringDoubleCompact() {
-    int k = 20; // don't change this
+    int k = 20; //don't change this
     KllDoublesSketch sk;
     KllDoublesSketch sk2;
     byte[] compBytes;
@@ -483,9 +437,7 @@
 
     println("#### CASE: DOUBLE FULL COMPACT");
     sk = KllDoublesSketch.newHeapInstance(k);
-    for (int i = 1; i <= k + 1; i++) {
-      sk.update(i);
-    }
+    for (int i = 1; i <= k + 1; i++) { sk.update(i); }
     compBytes = sk.toByteArray();
     wmem = WritableMemory.writableWrap(compBytes);
     s = KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true);
@@ -531,9 +483,9 @@
     assertEquals(compBytes, compBytes2);
   }
 
-  @Test // set static enablePrinting = true for visual checking
+  @Test //set static enablePrinting = true for visual checking
   public void checkMemoryToStringDoubleUpdatable() {
-    int k = 20; // don't change this
+    int k = 20; //don't change this
     KllDoublesSketch sk;
     KllDoublesSketch sk2;
     byte[] upBytes;
@@ -543,9 +495,7 @@
 
     println("#### CASE: DOUBLE FULL UPDATABLE");
     sk = KllDoublesSketch.newHeapInstance(20);
-    for (int i = 1; i <= k + 1; i++) {
-      sk.update(i);
-    }
+    for (int i = 1; i <= k + 1; i++) { sk.update(i); }
     upBytes = KllHelper.toByteArray(sk, true);
     wmem = WritableMemory.writableWrap(upBytes);
     s = KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true);
@@ -556,7 +506,7 @@
     wmem = WritableMemory.writableWrap(upBytes2);
     s = KllPreambleUtil.toString(wmem, DOUBLES_SKETCH, true);
     println("step 2: memory to heap sketch, to byte[]/memory & analyze memory. Should match above");
-    println(s); // note: heapify does not copy garbage, while toUpdatableByteArray does
+    println(s); //note: heapify does not copy garbage, while toUpdatableByteArray does
     assertEquals(sk.getN(), sk2.getN());
     assertEquals(sk.getMinItem(), sk2.getMinItem());
     assertEquals(sk.getMaxItem(), sk2.getMaxItem());
@@ -603,8 +553,8 @@
     WritableMemory wmem = WritableMemory.allocate(3000);
     WritableMemory wmem2 = WritableMemory.allocate(3000);
 
-    KllDoublesSketch sk1 = KllDirectDoublesSketch.newDirectInstance(k, m, wmem, memReqSvr);
-    KllDoublesSketch sk2 = KllDirectDoublesSketch.newDirectInstance(k, m, wmem2, memReqSvr);
+    KllDoublesSketch sk1 = KllDirectDoublesSketch.newDirectUpdatableInstance(k, m, wmem, memReqSvr);
+    KllDoublesSketch sk2 = KllDirectDoublesSketch.newDirectUpdatableInstance(k, m, wmem2, memReqSvr);
     for (int i = 1; i <= n1; i++) {
       sk1.update(i);
     }
@@ -646,21 +596,17 @@
 
   /**
    * @param format the format
-   * @param args   the args
+   * @param args the args
    */
-  private static final void printf(final String format, final Object... args) {
-    if (enablePrinting) {
-      System.out.printf(format, args);
-    }
+  private static final void printf(final String format, final Object ... args) {
+    if (enablePrinting) { System.out.printf(format, args); }
   }
 
   /**
    * @param o the Object to println
    */
   private static final void println(final Object o) {
-    if (enablePrinting) {
-      System.out.println(o.toString());
-    }
+    if (enablePrinting) { System.out.println(o.toString()); }
   }
 
 }
diff --git a/src/test/java/org/apache/datasketches/kll/KllMiscFloatsTest.java b/src/test/java/org/apache/datasketches/kll/KllMiscFloatsTest.java
index d4a174e..a7b699c 100644
--- a/src/test/java/org/apache/datasketches/kll/KllMiscFloatsTest.java
+++ b/src/test/java/org/apache/datasketches/kll/KllMiscFloatsTest.java
@@ -83,7 +83,7 @@
   public void checkHeapifyExceptions1() {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance();
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(6, (byte)3); //corrupt with odd M
+    wmem.putByte(6, (byte) 3); //corrupt with odd M
     KllFloatsSketch.heapify(wmem);
   }
 
@@ -91,7 +91,7 @@
   public void checkHeapifyExceptions2() {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance();
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(0, (byte)1); //corrupt preamble ints, should be 2
+    wmem.putByte(0, (byte) 1); //corrupt preamble ints, should be 2
     KllFloatsSketch.heapify(wmem);
   }
 
@@ -101,7 +101,7 @@
     sk.update(1.0f);
     sk.update(2.0f);
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(0, (byte)1); //corrupt preamble ints, should be 5
+    wmem.putByte(0, (byte) 1); //corrupt preamble ints, should be 5
     KllFloatsSketch.heapify(wmem);
   }
 
@@ -109,7 +109,7 @@
   public void checkHeapifyExceptions4() {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance();
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(1, (byte)0); //corrupt SerVer, should be 1 or 2
+    wmem.putByte(1, (byte) 0); //corrupt SerVer, should be 1 or 2
     KllFloatsSketch.heapify(wmem);
   }
 
@@ -117,7 +117,7 @@
   public void checkHeapifyExceptions5() {
     KllFloatsSketch sk = KllFloatsSketch.newHeapInstance();
     WritableMemory wmem = WritableMemory.writableWrap(sk.toByteArray());
-    wmem.putByte(2, (byte)0); //corrupt FamilyID, should be 15
+    wmem.putByte(2, (byte) 0); //corrupt FamilyID, should be 15
     KllFloatsSketch.heapify(wmem);
   }
 
@@ -294,7 +294,7 @@
     println("#### CASE: FLOAT FULL HEAPIFIED FROM COMPACT");
     sk2 = KllFloatsSketch.newHeapInstance(k);
     for (int i = 1; i <= k + 1; i++) { sk2.update(i); }
-    println(sk2.toString(true, true));
+    //println(sk2.toString(true, true));
     compBytes = sk2.toByteArray();
     wmem = WritableMemory.writableWrap(compBytes);
     println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
@@ -317,7 +317,7 @@
     //println(sk.toString(true, true));
     compBytes = sk2.toByteArray();
     wmem = WritableMemory.writableWrap(compBytes);
-    println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
+    //println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
     sk = KllFloatsSketch.heapify(wmem);
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), 0);
@@ -338,7 +338,7 @@
     //println(sk2.toString(true, true));
     compBytes = sk2.toByteArray();
     wmem = WritableMemory.writableWrap(compBytes);
-    println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
+    //println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
     sk = KllFloatsSketch.heapify(wmem);
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), 1);
@@ -388,7 +388,7 @@
     //println(sk.toString(true, true));
     compBytes = KllHelper.toByteArray(sk2, true);
     wmem = WritableMemory.writableWrap(compBytes);
-    println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
+    //println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
     sk = KllHeapFloatsSketch.heapifyImpl(wmem);
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), 0);
@@ -409,7 +409,7 @@
     //println(sk.toString(true, true));
     compBytes = KllHelper.toByteArray(sk2, true);
     wmem = WritableMemory.writableWrap(compBytes);
-    println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
+    //println(KllPreambleUtil.toString(wmem, FLOATS_SKETCH, true));
     sk = KllHeapFloatsSketch.heapifyImpl(wmem);
     assertEquals(sk.getK(), k);
     assertEquals(sk.getN(), 1);
@@ -598,7 +598,7 @@
    * @param format the format
    * @param args the args
    */
-  private static final void printf(final String format, final Object ...args) {
+  private static final void printf(final String format, final Object ... args) {
     if (enablePrinting) { System.out.printf(format, args); }
   }