@Test public void testNullableFixedType() { // Build an optional uint field definition MajorType.Builder typeBuilder = MajorType.newBuilder(); FieldDef.Builder defBuilder = FieldDef.newBuilder(); typeBuilder.setMinorType(MinorType.UINT4).setMode(DataMode.OPTIONAL).setWidth(4); defBuilder.setMajorType(typeBuilder.build()); MaterializedField field = MaterializedField.create(defBuilder.build()); // Create a new value vector for 1024 integers NullableUInt4Vector v = new NullableUInt4Vector(field, allocator); NullableUInt4Vector.Mutator m = v.getMutator(); v.allocateNew(1024); // Put and set a few values m.set(0, 100); m.set(1, 101); m.set(100, 102); m.set(1022, 103); m.set(1023, 104); assertEquals(100, v.getAccessor().get(0)); assertEquals(101, v.getAccessor().get(1)); assertEquals(102, v.getAccessor().get(100)); assertEquals(103, v.getAccessor().get(1022)); assertEquals(104, v.getAccessor().get(1023)); // Ensure null values throw { boolean b = false; try { v.getAccessor().get(3); } catch (AssertionError e) { b = true; } finally { if (!b) { assert false; } } } v.allocateNew(2048); { boolean b = false; try { v.getAccessor().get(0); } catch (AssertionError e) { b = true; } finally { if (!b) { assert false; } } } m.set(0, 100); m.set(1, 101); m.set(100, 102); m.set(1022, 103); m.set(1023, 104); assertEquals(100, v.getAccessor().get(0)); assertEquals(101, v.getAccessor().get(1)); assertEquals(102, v.getAccessor().get(100)); assertEquals(103, v.getAccessor().get(1022)); assertEquals(104, v.getAccessor().get(1023)); // Ensure null values throw { boolean b = false; try { v.getAccessor().get(3); } catch (AssertionError e) { b = true; } finally { if (!b) { assert false; } } } }
@Test public void testNullableFixedType() { final MaterializedField field = MaterializedField.create(EMPTY_SCHEMA_PATH, NullableUInt4Holder.TYPE); // Create a new value vector for 1024 integers. try (final NullableUInt4Vector vector = new NullableUInt4Vector(field, allocator)) { final NullableUInt4Vector.Mutator m = vector.getMutator(); vector.allocateNew(1024); // Put and set a few values m.set(0, 100); m.set(1, 101); m.set(100, 102); m.set(1022, 103); m.set(1023, 104); final NullableUInt4Vector.Accessor accessor = vector.getAccessor(); assertEquals(100, accessor.get(0)); assertEquals(101, accessor.get(1)); assertEquals(102, accessor.get(100)); assertEquals(103, accessor.get(1022)); assertEquals(104, accessor.get(1023)); // Ensure null values throw { boolean b = false; try { accessor.get(3); } catch (IllegalStateException e) { b = true; } finally { assertTrue(b); } } vector.allocateNew(2048); { boolean b = false; try { accessor.get(0); } catch (IllegalStateException e) { b = true; } finally { assertTrue(b); } } m.set(0, 100); m.set(1, 101); m.set(100, 102); m.set(1022, 103); m.set(1023, 104); assertEquals(100, accessor.get(0)); assertEquals(101, accessor.get(1)); assertEquals(102, accessor.get(100)); assertEquals(103, accessor.get(1022)); assertEquals(104, accessor.get(1023)); // Ensure null values throw. { boolean b = false; try { vector.getAccessor().get(3); } catch (IllegalStateException e) { b = true; } finally { assertTrue(b); } } } }