|
18 | 18 | */ |
19 | 19 | package org.apache.parquet.variant; |
20 | 20 |
|
| 21 | +import java.nio.ByteBuffer; |
21 | 22 | import org.junit.Assert; |
22 | 23 | import org.junit.Ignore; |
23 | 24 | import org.junit.Test; |
@@ -115,6 +116,41 @@ public void testMixedObjectBuilder() { |
115 | 116 | }); |
116 | 117 | } |
117 | 118 |
|
| 119 | + @Test |
| 120 | + public void testMixedBinaryBuilder() { |
| 121 | + VariantBuilder b = new VariantBuilder(); |
| 122 | + VariantObjectBuilder objBuilder = b.startObject(); |
| 123 | + objBuilder.appendKey("as_binary"); |
| 124 | + objBuilder.appendBinary(ByteBuffer.wrap(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9})); |
| 125 | + objBuilder.appendKey("in_array"); |
| 126 | + VariantArrayBuilder arrBinary = objBuilder.startArray(); |
| 127 | + arrBinary.appendBinary(ByteBuffer.wrap(new byte[] {})); |
| 128 | + arrBinary.appendBinary(ByteBuffer.wrap(new byte[] {10, 11, 12, 13, 14, 15, 16})); |
| 129 | + arrBinary.appendBinary(ByteBuffer.wrap(new byte[] {17, 18})); |
| 130 | + objBuilder.endArray(); |
| 131 | + b.endObject(); |
| 132 | + |
| 133 | + VariantTestUtil.testVariant(b.build(), v -> { |
| 134 | + VariantTestUtil.checkType(v, VariantUtil.OBJECT, Variant.Type.OBJECT); |
| 135 | + Assert.assertEquals(2, v.numObjectElements()); |
| 136 | + Assert.assertEquals( |
| 137 | + ByteBuffer.wrap(new byte[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}), |
| 138 | + v.getFieldByKey("as_binary").getBinary()); |
| 139 | + Variant nestedArray = v.getFieldByKey("in_array"); |
| 140 | + VariantTestUtil.checkType(nestedArray, VariantUtil.ARRAY, Variant.Type.ARRAY); |
| 141 | + Assert.assertEquals(3, nestedArray.numArrayElements()); |
| 142 | + Assert.assertEquals( |
| 143 | + ByteBuffer.wrap(new byte[] {}), |
| 144 | + nestedArray.getElementAtIndex(0).getBinary()); |
| 145 | + Assert.assertEquals( |
| 146 | + ByteBuffer.wrap(new byte[] {10, 11, 12, 13, 14, 15, 16}), |
| 147 | + nestedArray.getElementAtIndex(1).getBinary()); |
| 148 | + Assert.assertEquals( |
| 149 | + ByteBuffer.wrap(new byte[] {17, 18}), |
| 150 | + nestedArray.getElementAtIndex(2).getBinary()); |
| 151 | + }); |
| 152 | + } |
| 153 | + |
118 | 154 | private void buildNested(int i, VariantObjectBuilder obj) { |
119 | 155 | if (i > 0) { |
120 | 156 | obj.appendKey("key" + i); |
|
0 commit comments