generate frequent items sketches for compatibility test
diff --git a/src/test/java/org/apache/datasketches/frequencies/SerDeCompatibilityTest.java b/src/test/java/org/apache/datasketches/frequencies/SerDeCompatibilityTest.java
index a32f95c..025cfb9 100644
--- a/src/test/java/org/apache/datasketches/frequencies/SerDeCompatibilityTest.java
+++ b/src/test/java/org/apache/datasketches/frequencies/SerDeCompatibilityTest.java
@@ -19,8 +19,15 @@
 
 package org.apache.datasketches.frequencies;
 
+import static org.testng.Assert.assertEquals;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+
+import java.io.FileOutputStream;
+
 import org.apache.datasketches.common.ArrayOfItemsSerDe;
 import org.apache.datasketches.common.ArrayOfLongsSerDe;
+import org.apache.datasketches.common.ArrayOfStringsSerDe;
 import org.apache.datasketches.memory.WritableMemory;
 import org.testng.Assert;
 import org.testng.annotations.Test;
@@ -31,14 +38,14 @@
 
   @Test
   public void itemsToLongs() {
-    ItemsSketch<Long> sketch1 = new ItemsSketch<>(8);
+    final ItemsSketch<Long> sketch1 = new ItemsSketch<>(8);
     sketch1.update(1L);
     sketch1.update(2L);
     sketch1.update(3L);
     sketch1.update(4L);
 
-    byte[] bytes = sketch1.toByteArray(serDe);
-    LongsSketch sketch2 = LongsSketch.getInstance(WritableMemory.writableWrap(bytes));
+    final byte[] bytes = sketch1.toByteArray(serDe);
+    final LongsSketch sketch2 = LongsSketch.getInstance(WritableMemory.writableWrap(bytes));
     sketch2.update(2L);
     sketch2.update(3L);
     sketch2.update(2L);
@@ -54,14 +61,14 @@
 
   @Test
   public void longsToItems() {
-    LongsSketch sketch1 = new LongsSketch(8);
+    final LongsSketch sketch1 = new LongsSketch(8);
     sketch1.update(1L);
     sketch1.update(2L);
     sketch1.update(3L);
     sketch1.update(4L);
 
-    byte[] bytes = sketch1.toByteArray();
-    ItemsSketch<Long> sketch2 = ItemsSketch.getInstance(WritableMemory.writableWrap(bytes), serDe);
+    final byte[] bytes = sketch1.toByteArray();
+    final ItemsSketch<Long> sketch2 = ItemsSketch.getInstance(WritableMemory.writableWrap(bytes), serDe);
     sketch2.update(2L);
     sketch2.update(3L);
     sketch2.update(2L);
@@ -75,4 +82,40 @@
     Assert.assertEquals(sketch2.getEstimate(4L), 1);
   }
 
+  @Test(groups = {"generate"})
+  public void generateBinariesForCompatibilityTestingLongsSketch() throws Exception {
+    final int[] nArr = {0, 1, 10, 100, 1000, 10000, 100000, 1000000};
+    for (int n: nArr) {
+      LongsSketch sketch = new LongsSketch(64);
+      for (int i = 1; i <= n; i++) sketch.update(i);
+      assertTrue(n == 0 ? sketch.isEmpty() : !sketch.isEmpty());
+      if (n > 10) {
+        assertTrue(sketch.getMaximumError() > 0);
+      } else {
+        assertEquals(sketch.getMaximumError(), 0);
+      }
+      try (final FileOutputStream file = new FileOutputStream("frequent_long_n" + n + ".sk")) {
+        file.write(sketch.toByteArray());
+      }
+    }
+  }
+
+  @Test(groups = {"generate"})
+  public void generateBinariesForCompatibilityTestingStringsSketch() throws Exception {
+    final int[] nArr = {0, 1, 10, 100, 1000, 10000, 100000, 1000000};
+    for (int n: nArr) {
+      ItemsSketch<String> sketch = new ItemsSketch<>(64);
+      for (int i = 1; i <= n; i++) sketch.update(Integer.toString(i));
+      assertTrue(n == 0 ? sketch.isEmpty() : !sketch.isEmpty());
+      if (n > 10) {
+        assertTrue(sketch.getMaximumError() > 0);
+      } else {
+        assertEquals(sketch.getMaximumError(), 0);
+      }
+      try (final FileOutputStream file = new FileOutputStream("frequent_string_n" + n + ".sk")) {
+        file.write(sketch.toByteArray(new ArrayOfStringsSerDe()));
+      }
+    }
+  }
+
 }