/** reset size counter of array to zero */ default void reset() { clear(); }
@Test public void testArrayListInterface() { Schema schema = Schema.createArray(Schema.create(Schema.Type.INT)); GenericArray<Integer> array = new GenericData.Array<>(1, schema); array.add(99); assertEquals(new Integer(99), array.get(0)); List<Integer> list = new ArrayList<>(); list.add(99); assertEquals(array, list); assertEquals(list, array); assertEquals(list.hashCode(), array.hashCode()); try { array.get(2); fail("Expected IndexOutOfBoundsException getting index 2"); } catch (IndexOutOfBoundsException e) {} array.clear(); assertEquals(0, array.size()); try { array.get(0); fail("Expected IndexOutOfBoundsException getting index 0 after clear()"); } catch (IndexOutOfBoundsException e) {} } @Test
@Test public void testArraySet() { Schema schema = Schema.createArray(Schema.create(Schema.Type.INT)); GenericArray<Integer> array = new GenericData.Array<>(10, schema); array.clear(); for(int i=0; i<10; ++i) array.add(i); assertEquals(10, array.size()); assertEquals(new Integer(0), array.get(0)); assertEquals(new Integer(5), array.get(5)); assertEquals(new Integer(5), array.set(5, 55)); assertEquals(10, array.size()); assertEquals(new Integer(55), array.get(5)); }
@Test public void testArrayAddAtLocation() { Schema schema = Schema.createArray(Schema.create(Schema.Type.INT)); GenericArray<Integer> array = new GenericData.Array<>(6, schema); array.clear(); for(int i=0; i<5; ++i) array.add(i); assertEquals(5, array.size()); array.add(0, 6); assertEquals(new Integer(6), array.get(0)); assertEquals(6, array.size()); assertEquals(new Integer(0), array.get(1)); assertEquals(new Integer(4), array.get(5)); array.add(6, 7); assertEquals(new Integer(7), array.get(6)); assertEquals(7, array.size()); assertEquals(new Integer(6), array.get(0)); assertEquals(new Integer(4), array.get(5)); array.add(1, 8); assertEquals(new Integer(8), array.get(1)); assertEquals(new Integer(0), array.get(2)); assertEquals(new Integer(6), array.get(0)); assertEquals(8, array.size()); try { array.get(9); fail("Expected IndexOutOfBoundsException after adding elements"); } catch (IndexOutOfBoundsException e){} } @Test
array.clear(); array.add("42"); testRecord.put("array1", array);
array.clear(); for(int i=0; i<10; ++i) array.add(i);
@Override public void clear() { theArray.clear(); } @Override public void markStale(final boolean stale) { }
/** Called to create new array instances. Subclasses may override to use a * different array implementation. By default, this returns a {@link * GenericData.Array}.*/ @SuppressWarnings("unchecked") protected Object newArray(Object old, int size, Schema schema) { if (old instanceof GenericArray) { ((GenericArray) old).clear(); return old; } else return new GenericData.Array(size, schema); }