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));
+  }
 }

Reply via email to