Thanks Lee,

I'll have a look this weekend or next week.



On Fri, Sep 25, 2026, 7:47 PM leerho (via GitHub) <[email protected]> wrote:

>
> leerho opened a new issue, #185:
> URL: https://github.com/apache/datasketches-go/issues/185
>
>    The HLL "*.sk" files of the same type created by the different
> languages should be identical.  In my testing so far the images generated
> by C++ and Java are identical. The Go HLL_6 images are identical for n = 0,
> 1, 100, but fail starting with n = 1000.  I suspect that is just after the
> transition from sparse mode to dense mode.  The same failure occurs when
> comparing C++ to Go, or Java to Go.
>
>    My test output follows:
>    CLB = Cross-Language Binary
>
>    [RemoteTestNG] detected TestNG version 7.12.0
>    PASSED: CLB: hll4_n0_cpp.sk vs hll4_n0_java.sk, HllType: hll4, n: 0
>    PASSED: CLB: hll4_n1_cpp.sk vs hll4_n1_java.sk, HllType: hll4, n: 1
>    PASSED: CLB: hll4_n10_cpp.sk vs hll4_n10_java.sk, HllType: hll4, n: 10
>    PASSED: CLB: hll4_n100_cpp.sk vs hll4_n100_java.sk, HllType: hll4, n:
> 100
>    PASSED: CLB: hll4_n1000_cpp.sk vs hll4_n1000_java.sk, HllType: hll4,
> n: 1000
>    PASSED: CLB: hll4_n10000_cpp.sk vs hll4_n10000_java.sk, HllType: hll4,
> n: 10000
>    PASSED: CLB: hll4_n100000_cpp.sk vs hll4_n100000_java.sk, HllType:
> hll4, n: 100000
>    PASSED: CLB: hll4_n1000000_cpp.sk vs hll4_n1000000_java.sk, HllType:
> hll4, n: 1000000
>    PASSED: CLB: hll6_n0_cpp.sk vs hll6_n0_java.sk, HllType: hll6, n: 0
>    PASSED: CLB: hll6_n1_cpp.sk vs hll6_n1_java.sk, HllType: hll6, n: 1
>    PASSED: CLB: hll6_n10_cpp.sk vs hll6_n10_java.sk, HllType: hll6, n: 10
>    PASSED: CLB: hll6_n100_cpp.sk vs hll6_n100_java.sk, HllType: hll6, n:
> 100
>    PASSED: CLB: hll6_n1000_cpp.sk vs hll6_n1000_java.sk, HllType: hll6,
> n: 1000
>    PASSED: CLB: hll6_n10000_cpp.sk vs hll6_n10000_java.sk, HllType: hll6,
> n: 10000
>    PASSED: CLB: hll6_n100000_cpp.sk vs hll6_n100000_java.sk, HllType:
> hll6, n: 100000
>    PASSED: CLB: hll6_n1000000_cpp.sk vs hll6_n1000000_java.sk, HllType:
> hll6, n: 1000000
>    PASSED: CLB: hll8_n0_cpp.sk vs hll8_n0_java.sk, HllType: hll8, n: 0
>    PASSED: CLB: hll8_n1_cpp.sk vs hll8_n1_java.sk, HllType: hll8, n: 1
>    PASSED: CLB: hll8_n10_cpp.sk vs hll8_n10_java.sk, HllType: hll8, n: 10
>    PASSED: CLB: hll8_n100_cpp.sk vs hll8_n100_java.sk, HllType: hll8, n:
> 100
>    PASSED: CLB: hll8_n1000_cpp.sk vs hll8_n1000_java.sk, HllType: hll8,
> n: 1000
>    PASSED: CLB: hll8_n10000_cpp.sk vs hll8_n10000_java.sk, HllType: hll8,
> n: 10000
>    PASSED: CLB: hll8_n100000_cpp.sk vs hll8_n100000_java.sk, HllType:
> hll8, n: 100000
>    PASSED: CLB: hll8_n1000000_cpp.sk vs hll8_n1000000_java.sk, HllType:
> hll8, n: 1000000
>    PASSED: CLB: hll4_n0_go.sk vs hll4_n0_java.sk, HllType: hll4, n: 0
>    PASSED: CLB: hll4_n1_go.sk vs hll4_n1_java.sk, HllType: hll4, n: 1
>    PASSED: CLB: hll4_n10_go.sk vs hll4_n10_java.sk, HllType: hll4, n: 10
>    PASSED: CLB: hll4_n100_go.sk vs hll4_n100_java.sk, HllType: hll4, n:
> 100
>    PASSED: CLB: hll4_n1000_go.sk vs hll4_n1000_java.sk, HllType: hll4, n:
> 1000
>    PASSED: CLB: hll4_n10000_go.sk vs hll4_n10000_java.sk, HllType: hll4,
> n: 10000
>    PASSED: CLB: hll4_n100000_go.sk vs hll4_n100000_java.sk, HllType:
> hll4, n: 100000
>    PASSED: CLB: hll4_n1000000_go.sk vs hll4_n1000000_java.sk, HllType:
> hll4, n: 1000000
>    PASSED: CLB: hll6_n0_go.sk vs hll6_n0_java.sk, HllType: hll6, n: 0
>    PASSED: CLB: hll6_n1_go.sk vs hll6_n1_java.sk, HllType: hll6, n: 1
>    PASSED: CLB: hll6_n10_go.sk vs hll6_n10_java.sk, HllType: hll6, n: 10
>    PASSED: CLB: hll6_n100_go.sk vs hll6_n100_java.sk, HllType: hll6, n:
> 100  <- note the go vs java HLL6 test threw after n=100
>    PASSED: CLB: hll4_n0_go.sk vs hll4_n0_cpp.sk, HllType: hll4, n: 0
>    PASSED: CLB: hll4_n1_go.sk vs hll4_n1_cpp.sk, HllType: hll4, n: 1
>    PASSED: CLB: hll4_n10_go.sk vs hll4_n10_cpp.sk, HllType: hll4, n: 10
>    PASSED: CLB: hll4_n100_go.sk vs hll4_n100_cpp.sk, HllType: hll4, n: 100
>    PASSED: CLB: hll4_n1000_go.sk vs hll4_n1000_cpp.sk, HllType: hll4, n:
> 1000
>    PASSED: CLB: hll4_n10000_go.sk vs hll4_n10000_cpp.sk, HllType: hll4,
> n: 10000
>    PASSED: CLB: hll4_n100000_go.sk vs hll4_n100000_cpp.sk, HllType: hll4,
> n: 100000
>    PASSED: CLB: hll4_n1000000_go.sk vs hll4_n1000000_cpp.sk, HllType:
> hll4, n: 1000000
>    PASSED: CLB: hll6_n0_go.sk vs hll6_n0_cpp.sk, HllType: hll6, n: 0
>    PASSED: CLB: hll6_n1_go.sk vs hll6_n1_cpp.sk, HllType: hll6, n: 1
>    PASSED: CLB: hll6_n10_go.sk vs hll6_n10_cpp.sk, HllType: hll6, n: 10
>    PASSED: CLB: hll6_n100_go.sk vs hll6_n100_cpp.sk, HllType: hll6, n:
> 100 <- note the go vs cpp HLL6 test threw after n=100
>    PASSED:
> org.apache.datasketches.hll.HllSketchCrossLanguageTest.checkBinaries1
>    PASSED:
> org.apache.datasketches.hll.HllSketchCrossLanguageTest.generateBinariesForCompatibilityTesting
>    PASSED: org.apache.datasketches.hll.HllSketchCrossLanguageTest.checkGo
>    PASSED: org.apache.datasketches.hll.HllSketchCrossLanguageTest.checkJava
>    PASSED: org.apache.datasketches.hll.HllSketchCrossLanguageTest.checkCpp
>    FAILED:
> org.apache.datasketches.hll.HllSketchCrossLanguageTest.checkBinaries2
>    org.apache.datasketches.common.SketchesArgumentException: CLB:
> hll6_n1000_go.sk vs hll6_n1000_java.sk, HllType: hll6, n: 1000
>    java.lang.AssertionError: arrays differ firstly at element [5];
> expected value is <8> but was <0>.
>         at
> org.apache.datasketches.hll.HllSketchCrossLanguageTest.deserializeHll_crossBinary(HllSketchCrossLanguageTest.java:115)
>         at
> org.apache.datasketches.hll.HllSketchCrossLanguageTest.checkBinaries2(HllSketchCrossLanguageTest.java:93)
>         at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:565)
>         at
> org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
>         at
> org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:697)
>         at
> org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
>         at
> org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
>         at
> org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:1005)
>         at
> org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
>         at
> org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
>         at
> org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
>         at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
>         at org.testng.TestRunner.privateRun(TestRunner.java:744)
>         at org.testng.TestRunner.run(TestRunner.java:616)
>         at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
>         at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
>         at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
>         at org.testng.SuiteRunner.run(SuiteRunner.java:312)
>         at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
>         at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
>         at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
>         at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
>         at org.testng.TestNG.runSuites(TestNG.java:1112)
>         at org.testng.TestNG.run(TestNG.java:1079)
>         at
> org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
>         at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:293)
>         at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:91)
>
>    FAILED:
> org.apache.datasketches.hll.HllSketchCrossLanguageTest.checkBinaries3
>    org.apache.datasketches.common.SketchesArgumentException: CLB:
> hll6_n1000_go.sk vs hll6_n1000_cpp.sk, HllType: hll6, n: 1000
>    java.lang.AssertionError: arrays differ firstly at element [5];
> expected value is <8> but was <0>.
>         at
> org.apache.datasketches.hll.HllSketchCrossLanguageTest.deserializeHll_crossBinary(HllSketchCrossLanguageTest.java:115)
>         at
> org.apache.datasketches.hll.HllSketchCrossLanguageTest.checkBinaries3(HllSketchCrossLanguageTest.java:98)
>         at
> java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
>         at java.base/java.lang.reflect.Method.invoke(Method.java:565)
>         at
> org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:141)
>         at
> org.testng.internal.invokers.TestInvoker.invokeMethod(TestInvoker.java:697)
>         at
> org.testng.internal.invokers.TestInvoker.invokeTestMethod(TestInvoker.java:230)
>         at
> org.testng.internal.invokers.MethodRunner.runInSequence(MethodRunner.java:63)
>         at
> org.testng.internal.invokers.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:1005)
>         at
> org.testng.internal.invokers.TestInvoker.invokeTestMethods(TestInvoker.java:203)
>         at
> org.testng.internal.invokers.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:154)
>         at
> org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:134)
>         at java.base/java.util.ArrayList.forEach(ArrayList.java:1604)
>         at org.testng.TestRunner.privateRun(TestRunner.java:744)
>         at org.testng.TestRunner.run(TestRunner.java:616)
>         at org.testng.SuiteRunner.runTest(SuiteRunner.java:421)
>         at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:413)
>         at org.testng.SuiteRunner.privateRun(SuiteRunner.java:373)
>         at org.testng.SuiteRunner.run(SuiteRunner.java:312)
>         at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
>         at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)
>         at org.testng.TestNG.runSuitesSequentially(TestNG.java:1274)
>         at org.testng.TestNG.runSuitesLocally(TestNG.java:1208)
>         at org.testng.TestNG.runSuites(TestNG.java:1112)
>         at org.testng.TestNG.run(TestNG.java:1079)
>         at
> org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)
>         at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:293)
>         at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:91)
>
>
>    ===============================================
>        Default test
>        Tests run: 7, Failures: 2, Skips: 0
>    ===============================================
>
>
>
>
> --
> This is an automated message from the Apache Git Service.
> To respond to the message, please log on to GitHub and use the
> URL above to go to the specific comment.
>
> To unsubscribe, e-mail: [email protected]
>
> For queries about this service, please contact Infrastructure at:
> [email protected]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to