diff --git a/pom.xml b/pom.xml
index 84e032947..32943cdbb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,7 @@ under the License.
generate_java_files
check_cpp_files
+ check_go_files
check_cpp_historical_files
@@ -623,7 +624,7 @@ under the License.
maven-surefire-plugin
${testng.generate-java-files}
- ${testng.check-cpp-files},${testng.check-cpp-historical-files}
+ ${testng.check-cpp-files},${testng.check-go-files},${testng.check-cpp-historical-files}
@@ -642,7 +643,26 @@ under the License.
maven-surefire-plugin
${testng.check-cpp-files}
- ${testng.generate-java-files},${testng.check-cpp-historical-files}
+ ${testng.generate-java-files},${testng.check-go-files},${testng.check-cpp-historical-files}
+
+
+
+
+
+
+
+
+ check-go-files
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ ${testng.check-cpp-files}
+ ${testng.generate-java-files},${testng.check-cpp-files},${testng.check-cpp-historical-files}
@@ -661,7 +681,7 @@ under the License.
maven-surefire-plugin
${testng.check-cpp-historical-files}
- ${testng.generate-java-files},${testng.check-cpp-files}
+ ${testng.generate-java-files},${testng.check-go-files},${testng.check-cpp-files}
diff --git a/src/main/java/org/apache/datasketches/cpc/CpcSketch.java b/src/main/java/org/apache/datasketches/cpc/CpcSketch.java
index 4ed89dd19..47cd96572 100644
--- a/src/main/java/org/apache/datasketches/cpc/CpcSketch.java
+++ b/src/main/java/org/apache/datasketches/cpc/CpcSketch.java
@@ -727,7 +727,7 @@ public String toString(final boolean detail) {
final double errConst = mergeFlag ? log(2) : sqrt(log(2) / 2.0);
final double rse = errConst / Math.sqrt(1 << lgK);
final StringBuilder sb = new StringBuilder();
- sb.append("### CPD SKETCH - PREAMBLE:").append(LS);
+ sb.append("### CPC SKETCH - PREAMBLE:").append(LS);
sb.append(" Flavor : ").append(getFlavor()).append(LS);
sb.append(" LgK : ").append(lgK).append(LS);
sb.append(" Merge Flag : ").append(mergeFlag).append(LS);
diff --git a/src/test/java/org/apache/datasketches/common/TestUtil.java b/src/test/java/org/apache/datasketches/common/TestUtil.java
index bdcb60bf2..35180d003 100644
--- a/src/test/java/org/apache/datasketches/common/TestUtil.java
+++ b/src/test/java/org/apache/datasketches/common/TestUtil.java
@@ -47,6 +47,7 @@ public final class TestUtil {
*/
public static final String GENERATE_JAVA_FILES = "generate_java_files";
public static final String CHECK_CPP_FILES = "check_cpp_files";
+ public static final String CHECK_GO_FILES = "check_go_files";
public static final String CHECK_CPP_HISTORICAL_FILES = "check_cpp_historical_files";
/**
@@ -59,6 +60,11 @@ public final class TestUtil {
*/
public static final Path cppPath = createPath("serialization_test_data/cpp_generated_files");
+ /**
+ * The full target Path for Go serialized sketches to be tested by Java.
+ */
+ public static final Path goPath = createPath("serialization_test_data/go_generated_files");
+
private static Path createPath(final String projectLocalDir) {
try {
return Files.createDirectories(Paths.get(userDir, projectLocalDir));
diff --git a/src/test/java/org/apache/datasketches/cpc/CpcSketchCrossLanguageTest.java b/src/test/java/org/apache/datasketches/cpc/CpcSketchCrossLanguageTest.java
index 19d167f8c..43a14df90 100644
--- a/src/test/java/org/apache/datasketches/cpc/CpcSketchCrossLanguageTest.java
+++ b/src/test/java/org/apache/datasketches/cpc/CpcSketchCrossLanguageTest.java
@@ -20,8 +20,10 @@
package org.apache.datasketches.cpc;
import static org.apache.datasketches.common.TestUtil.CHECK_CPP_FILES;
+import static org.apache.datasketches.common.TestUtil.CHECK_GO_FILES;
import static org.apache.datasketches.common.TestUtil.GENERATE_JAVA_FILES;
import static org.apache.datasketches.common.TestUtil.cppPath;
+import static org.apache.datasketches.common.TestUtil.goPath;
import static org.apache.datasketches.common.TestUtil.javaPath;
import static org.testng.Assert.assertEquals;
@@ -78,4 +80,17 @@ public void allFlavors() throws IOException {
}
}
+ @Test(groups = {CHECK_GO_FILES})
+ public void checkAllFlavorsGo() throws IOException {
+ final int[] nArr = {0, 100, 200, 2000, 20000};
+ final Flavor[] flavorArr = {Flavor.EMPTY, Flavor.SPARSE, Flavor.HYBRID, Flavor.PINNED, Flavor.SLIDING};
+ int flavorIdx = 0;
+ for (int n: nArr) {
+ final byte[] bytes = Files.readAllBytes(goPath.resolve("cpc_n" + n + "_go.sk"));
+ final CpcSketch sketch = CpcSketch.heapify(Memory.wrap(bytes));
+ assertEquals(sketch.getFlavor(), flavorArr[flavorIdx++]);
+ assertEquals(sketch.getEstimate(), n, n * 0.02);
+ }
+ }
+
}