I'm taking vacation with my family about two weeks. After finished, i look
into HLL, theta, CM sketches to fix.


2026년 9월 25일 (금) 오후 8:50, Pierre Lacave <[email protected]>님이 작성:

> 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