Skip to content

Commit 26c3ddd

Browse files
committed
Fix more tests
1 parent e1e2e8d commit 26c3ddd

4 files changed

Lines changed: 38 additions & 15 deletions

File tree

parquet-column/src/test/java/org/apache/parquet/internal/column/columnindex/TestBinaryTruncator.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232
import static org.junit.Assert.assertSame;
3333
import static org.junit.Assert.assertTrue;
3434

35+
import java.nio.ByteBuffer;
36+
import java.nio.ByteOrder;
3537
import java.nio.charset.CharacterCodingException;
3638
import java.nio.charset.CharsetDecoder;
3739
import java.nio.charset.CodingErrorAction;
@@ -93,7 +95,7 @@ public void testContractNonStringTypes() {
9395
testTruncator(
9496
Types.required(FIXED_LEN_BYTE_ARRAY).length(12).as(INTERVAL).named("test_fixed_interval"), false);
9597
testTruncator(Types.required(BINARY).as(DECIMAL).precision(10).scale(2).named("test_binary_decimal"), false);
96-
testTruncator(Types.required(INT96).named("test_int96"), false);
98+
testInt96Truncator(Types.required(INT96).named("test_int96"), false);
9799
}
98100

99101
@Test
@@ -157,6 +159,22 @@ public void testContractStringTypes() {
157159
testTruncator(Types.required(FIXED_LEN_BYTE_ARRAY).length(5).named("test_fixed"), true);
158160
}
159161

162+
private Binary createInt96Value(long nanoseconds, int julianDay) {
163+
return Binary.fromConstantByteArray(
164+
ByteBuffer.allocate(12)
165+
.order(ByteOrder.LITTLE_ENDIAN)
166+
.putLong(nanoseconds)
167+
.putInt(julianDay)
168+
.array());
169+
}
170+
171+
private void testInt96Truncator(PrimitiveType type, boolean strict) {
172+
BinaryTruncator truncator = BinaryTruncator.getTruncator(type);
173+
Comparator<Binary> comparator = type.comparator();
174+
checkContract(truncator, comparator, createInt96Value(0, 2458849), strict, strict);
175+
checkContract(truncator, comparator, createInt96Value(100, 128849), strict, strict);
176+
}
177+
160178
private void testTruncator(PrimitiveType type, boolean strict) {
161179
BinaryTruncator truncator = BinaryTruncator.getTruncator(type);
162180
Comparator<Binary> comparator = type.comparator();

parquet-column/src/test/java/org/apache/parquet/schema/TestTypeBuilders.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,7 +1334,7 @@ public void testTypeConstructionWithUndefinedColumnOrder() {
13341334
@Test
13351335
public void testTypeConstructionWithTypeDefinedColumnOrder() {
13361336
PrimitiveTypeName[] types =
1337-
new PrimitiveTypeName[] {BOOLEAN, INT32, INT64, FLOAT, DOUBLE, BINARY, FIXED_LEN_BYTE_ARRAY};
1337+
new PrimitiveTypeName[] {BOOLEAN, INT32, INT64, INT96, FLOAT, DOUBLE, BINARY, FIXED_LEN_BYTE_ARRAY};
13381338
for (PrimitiveTypeName type : types) {
13391339
String name = type.toString() + "_";
13401340
int len = type == FIXED_LEN_BYTE_ARRAY ? 42 : 0;
@@ -1350,8 +1350,6 @@ public void testTypeConstructionWithTypeDefinedColumnOrder() {
13501350

13511351
@Test
13521352
public void testTypeConstructionWithUnsupportedColumnOrder() {
1353-
assertThrows(null, IllegalArgumentException.class, (Callable<PrimitiveType>) () ->
1354-
Types.optional(INT96).columnOrder(ColumnOrder.typeDefined()).named("int96_unsupported"));
13551353
assertThrows(null, IllegalArgumentException.class, (Callable<PrimitiveType>)
13561354
() -> Types.optional(FIXED_LEN_BYTE_ARRAY)
13571355
.length(12)

parquet-column/src/test/java/org/apache/parquet/schema/TestTypeBuildersWithLogicalTypes.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,9 +349,6 @@ public void testIntervalAnnotationRejectsNonFixed12() {
349349

350350
@Test
351351
public void testTypeConstructionWithUnsupportedColumnOrder() {
352-
assertThrows(null, IllegalArgumentException.class, () -> Types.optional(INT96)
353-
.columnOrder(ColumnOrder.typeDefined())
354-
.named("int96_unsupported"));
355352
assertThrows(null, IllegalArgumentException.class, () -> Types.optional(PrimitiveTypeName.FIXED_LEN_BYTE_ARRAY)
356353
.length(12)
357354
.as(LogicalTypeAnnotation.IntervalLogicalTypeAnnotation.getInstance())

parquet-hadoop/src/test/java/org/apache/parquet/statistics/RandomValues.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
package org.apache.parquet.statistics;
2121

2222
import java.math.BigInteger;
23+
import java.nio.ByteOrder;
24+
import java.nio.ByteBuffer;
2325
import java.util.ArrayList;
2426
import java.util.Comparator;
2527
import java.util.Iterator;
@@ -213,11 +215,11 @@ public Long nextValue() {
213215
}
214216
}
215217

216-
public static class Int96Generator extends RandomBinaryBase<BigInteger> {
217-
private final RandomRange<BigInteger> randomRange = new RandomRange<BigInteger>(randomInt96(), randomInt96());
218-
private final BigInteger minimum = randomRange.minimum();
219-
private final BigInteger maximum = randomRange.maximum();
220-
private final BigInteger range = maximum.subtract(minimum);
218+
public static class Int96Generator extends RandomBinaryBase<Binary> {
219+
private final RandomRange<Integer> randomRangeJulianDay = new RandomRange<>(randomInt(), randomInt());
220+
private final int minimumJulianDay = randomRangeJulianDay.minimum();
221+
private final int maximumJulianDay = randomRangeJulianDay.maximum();
222+
private final int rangeJulianDay = (maximumJulianDay - minimumJulianDay);
221223

222224
private static final int INT_96_LENGTH = 12;
223225

@@ -226,13 +228,21 @@ public Int96Generator(long seed) {
226228
}
227229

228230
@Override
229-
public BigInteger nextValue() {
230-
return (minimum.add(randomInt96(range)));
231+
public Binary nextValue() {
232+
long timeOfDay = randomLong();
233+
int julianDay = minimumJulianDay + randomPositiveInt(rangeJulianDay);
234+
235+
ByteBuffer.wrap(buffer)
236+
.order(ByteOrder.LITTLE_ENDIAN)
237+
.putLong(timeOfDay)
238+
.putInt(julianDay);
239+
240+
return Binary.fromReusedByteArray(buffer, 0, INT_96_LENGTH);
231241
}
232242

233243
@Override
234244
public Binary nextBinaryValue() {
235-
return FixedBinaryTestUtils.getFixedBinary(INT_96_LENGTH, nextValue());
245+
return nextValue();
236246
}
237247
}
238248

0 commit comments

Comments
 (0)