This is an automated email from the ASF dual-hosted git repository. opwvhk pushed a commit to branch branch-1.12 in repository https://gitbox.apache.org/repos/asf/avro.git
commit e967b349c7b6aade5ca446f5cec0d044a511305a Author: rdifrango <[email protected]> AuthorDate: Fri May 30 16:18:35 2025 +0200 AVRO-4110: Double Values Fail when using Min/Max (#3292) (cherry picked from commit b8a3655fef9901e3d043e830f6ff6fb5f543fda7) --- .../java/org/apache/avro/generic/PrimitivesArraysTest.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java b/lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java index ad83c6ae14..1043504558 100644 --- a/lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java +++ b/lang/java/avro/src/test/java/org/apache/avro/generic/PrimitivesArraysTest.java @@ -290,4 +290,18 @@ class PrimitivesArraysTest { Assertions.assertEquals(Double.MAX_VALUE, doubleArray.get(101)); Assertions.assertEquals(Double.MIN_VALUE, doubleArray.get(100)); } + + @Test + void testDoubleArrayPreservesPrecisionForNonFloatRepresentableValues() { + final PrimitivesArrays.DoubleArray doubleArray = new PrimitivesArrays.DoubleArray(1, + Schema.createArray(Schema.create(Schema.Type.DOUBLE))); + + // This value cannot be represented as a float + Double nonFloatDouble = .9; + Assertions.assertNotEquals(.9, nonFloatDouble.floatValue()); + + // Assert that the double array does not lose precision when adding + doubleArray.add(nonFloatDouble); + Assertions.assertEquals(nonFloatDouble, doubleArray.get(0)); + } }
