amogh-jahagirdar commented on code in PR #12925:
URL: https://github.com/apache/iceberg/pull/12925#discussion_r2064377681


##########
data/src/test/java/org/apache/iceberg/data/RandomGenericData.java:
##########
@@ -155,11 +175,19 @@ protected Object randomValue(Type.PrimitiveType 
primitive, Random rand) {
 
   public abstract static class RandomDataGenerator<T>
       extends TypeUtil.CustomOrderSchemaVisitor<Object> {
-    private final Random random;
     private static final int MAX_ENTRIES = 20;
+    private static final float DEFAULT_NULL_PERCENTAGE = 0.05f;
+
+    private final Random random;
+    private final float nullPercentage;
 
     protected RandomDataGenerator(long seed) {
+      this(seed, DEFAULT_NULL_PERCENTAGE);
+    }
+
+    protected RandomDataGenerator(long seed, float nullPercentage) {
       this.random = new Random(seed);
+      this.nullPercentage = nullPercentage;

Review Comment:
   Precondition that it's a valid float percentage



##########
spark/v3.5/spark/src/test/java/org/apache/iceberg/spark/data/GenericsHelpers.java:
##########
@@ -289,11 +317,27 @@ private static void assertEqualsUnsafe(Type type, Object 
expected, Object actual
     }
 
     switch (type.typeId()) {
+      case LONG:
+        assertThat(actual).as("Should be a long").isInstanceOf(Long.class);
+        if (expected instanceof Integer) {
+          assertThat(actual).as("Values didn't match").isEqualTo(((Number) 
expected).longValue());
+        } else {
+          assertThat(actual).as("Primitive value should be equal to 
expected").isEqualTo(expected);
+        }
+        break;
+      case DOUBLE:
+        assertThat(actual).as("Should be a double").isInstanceOf(Double.class);
+        if (expected instanceof Float) {
+          assertThat(Double.doubleToLongBits((double) actual))
+              .as("Values didn't match")
+              .isEqualTo(Double.doubleToLongBits(((Number) 
expected).doubleValue()));
+        } else {
+          assertThat(actual).as("Primitive value should be equal to 
expected").isEqualTo(expected);
+        }
+        break;

Review Comment:
   This is needed because of the int to long, float to double type promotion 
tests. This is the same as what exists in TestHelpers#assertEqualsUnsafe



-- 
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: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to