2929import org .apache .arrow .vector .BigIntVector ;
3030import org .apache .arrow .vector .Float4Vector ;
3131import org .apache .arrow .vector .IntVector ;
32+ import org .apache .arrow .vector .ValueVector ;
3233import 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 ;
3337import org .apache .arrow .vector .complex .FixedSizeListVector ;
3438import org .apache .arrow .vector .complex .ListVector ;
3539import 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