Skip to content
This repository was archived by the owner on Oct 21, 2024. It is now read-only.

Commit ad33e23

Browse files
committed
[ARROW-7073][Java] Rewrite tests with vector populator for result verification
1 parent c89211a commit ad33e23

File tree

1 file changed

+58
-31
lines changed

1 file changed

+58
-31
lines changed

java/vector/src/test/java/org/apache/arrow/vector/util/TestVectorAppender.java

Lines changed: 58 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,11 @@
2929
import org.apache.arrow.vector.BigIntVector;
3030
import org.apache.arrow.vector.Float4Vector;
3131
import org.apache.arrow.vector.IntVector;
32+
import org.apache.arrow.vector.ValueVector;
3233
import org.apache.arrow.vector.VarCharVector;
34+
import org.apache.arrow.vector.compare.Range;
35+
import org.apache.arrow.vector.compare.RangeEqualsVisitor;
36+
import org.apache.arrow.vector.compare.TypeEqualsVisitor;
3337
import org.apache.arrow.vector.complex.FixedSizeListVector;
3438
import org.apache.arrow.vector.complex.ListVector;
3539
import org.apache.arrow.vector.complex.StructVector;
@@ -76,8 +80,11 @@ public void testAppendFixedWidthVector() {
7680
delta.accept(appender, null);
7781

7882
assertEquals(length1 + length2, target.getValueCount());
79-
for (int i = 0; i < target.getValueCount(); i++) {
80-
assertEquals(i, target.get(i));
83+
84+
try (IntVector expected = new IntVector("expected", allocator)) {
85+
expected.allocateNew();
86+
ValueVectorDataPopulator.setVector(expected, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14);
87+
assertVectorsEqual(expected, target);
8188
}
8289
}
8390
}
@@ -98,9 +105,11 @@ public void testAppendVariableWidthVector() {
98105
VectorAppender appender = new VectorAppender(target);
99106
delta.accept(appender, null);
100107

101-
assertEquals(length1 + length2, target.getValueCount());
102-
for (int i = 0; i < target.getValueCount(); i++) {
103-
assertEquals("a" + i, new String(target.get(i)));
108+
try (VarCharVector expected = new VarCharVector("expected", allocator)) {
109+
expected.allocateNew();
110+
ValueVectorDataPopulator.setVector(expected,
111+
"a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "a12", "a13", "a14");
112+
assertVectorsEqual(expected, target);
104113
}
105114
}
106115
}
@@ -132,22 +141,26 @@ public void testAppendListVector() {
132141

133142
assertEquals(7, target.getValueCount());
134143

135-
int curValue = 0;
136-
for (int i = 0; i < length1; i++) {
137-
List<Integer> list = (List<Integer>) target.getObject(i);
138-
assertEquals(2, list.size());
139-
for (int j = 0; j < list.size(); j++) {
140-
assertEquals(curValue++, list.get(j).intValue());
141-
}
142-
}
144+
List<Integer> expected = Arrays.asList(0, 1);
145+
assertEquals(expected, target.getObject(0));
143146

144-
for (int i = length1; i < length1 + length2; i++) {
145-
List<Integer> list = (List<Integer>) target.getObject(i);
146-
assertEquals(5, list.size());
147-
for (int j = 0; j < list.size(); j++) {
148-
assertEquals(curValue++, list.get(j).intValue());
149-
}
150-
}
147+
expected = Arrays.asList(2, 3);
148+
assertEquals(expected, target.getObject(1));
149+
150+
expected = Arrays.asList(4, 5);
151+
assertEquals(expected, target.getObject(2));
152+
153+
expected = Arrays.asList(6, 7);
154+
assertEquals(expected, target.getObject(3));
155+
156+
expected = Arrays.asList(8, 9);
157+
assertEquals(expected, target.getObject(4));
158+
159+
expected = Arrays.asList(10, 11, 12, 13, 14);
160+
assertEquals(expected, target.getObject(5));
161+
162+
expected = Arrays.asList(15, 16, 17, 18, 19);
163+
assertEquals(expected, target.getObject(6));
151164
}
152165
}
153166

@@ -172,14 +185,11 @@ public void testAppendFixedSizeListVector() {
172185
delta.accept(appender, null);
173186

174187
assertEquals(4, target.getValueCount());
175-
int curValue = 0;
176-
for (int i = 0; i < target.getValueCount(); i++) {
177-
List<Integer> list = (List<Integer>) target.getObject(i);
178-
assertEquals(5, list.size());
179-
for (int j = 0; j < list.size(); j++) {
180-
assertEquals(curValue++, list.get(j).intValue());
181-
}
182-
}
188+
189+
assertEquals(Arrays.asList(0, 1, 2, 3, 4), target.getObject(0));
190+
assertEquals(Arrays.asList(5, 6, 7, 8, 9), target.getObject(1));
191+
assertEquals(Arrays.asList(10, 11, 12, 13, 14), target.getObject(2));
192+
assertEquals(Arrays.asList(15, 16, 17, 18, 19), target.getObject(3));
183193
}
184194
}
185195

@@ -213,9 +223,17 @@ public void testAppendStructVector() {
213223
IntVector child1 = (IntVector) target.getVectorById(0);
214224
VarCharVector child2 = (VarCharVector) target.getVectorById(1);
215225

216-
for (int i = 0; i < target.getValueCount(); i++) {
217-
assertEquals(i, child1.get(i));
218-
assertEquals("a" + i, new String(child2.get(i)));
226+
try (IntVector expected1 = new IntVector("expected1", allocator);
227+
VarCharVector expected2 = new VarCharVector("expected2", allocator)) {
228+
expected1.allocateNew();
229+
expected2.allocateNew();
230+
231+
ValueVectorDataPopulator.setVector(expected1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14);
232+
ValueVectorDataPopulator.setVector(expected2,
233+
"a0", "a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "a12", "a13", "a14");
234+
235+
assertVectorsEqual(expected1, target.getChild("f0"));
236+
assertVectorsEqual(expected2, target.getChild("f1"));
219237
}
220238
}
221239
}
@@ -317,4 +335,13 @@ public void testAppendVectorNegative() {
317335
() -> delta.accept(appender, null));
318336
}
319337
}
338+
339+
public static void assertVectorsEqual(ValueVector vector1, ValueVector vector2) {
340+
assertEquals(vector1.getValueCount(), vector2.getValueCount());
341+
342+
TypeEqualsVisitor typeEqualsVisitor = new TypeEqualsVisitor(vector1, false, false);
343+
RangeEqualsVisitor equalsVisitor =
344+
new RangeEqualsVisitor(vector1, vector2, (v1, v2) -> typeEqualsVisitor.equals(vector2));
345+
assertTrue(equalsVisitor.rangeEquals(new Range(0, 0, vector1.getValueCount())));
346+
}
320347
}

0 commit comments

Comments
 (0)