@Test public void testBitVector() { // Build a required boolean field definition MajorType.Builder typeBuilder = MajorType.newBuilder(); FieldDef.Builder defBuilder = FieldDef.newBuilder(); typeBuilder.setMinorType(MinorType.BIT).setMode(DataMode.REQUIRED).setWidth(4); defBuilder.setMajorType(typeBuilder.build()); MaterializedField field = MaterializedField.create(defBuilder.build()); // Create a new value vector for 1024 integers BitVector v = new BitVector(field, allocator); BitVector.Mutator m = v.getMutator(); v.allocateNew(1024); // Put and set a few values m.set(0, 1); m.set(1, 0); m.set(100, 0); m.set(1022, 1); assertEquals(1, v.getAccessor().get(0)); assertEquals(0, v.getAccessor().get(1)); assertEquals(0, v.getAccessor().get(100)); assertEquals(1, v.getAccessor().get(1022)); // test setting the same value twice m.set(0, 1); m.set(0, 1); m.set(1, 0); m.set(1, 0); assertEquals(1, v.getAccessor().get(0)); assertEquals(0, v.getAccessor().get(1)); // test toggling the values m.set(0, 0); m.set(1, 1); assertEquals(0, v.getAccessor().get(0)); assertEquals(1, v.getAccessor().get(1)); // Ensure unallocated space returns 0 assertEquals(0, v.getAccessor().get(3)); }
@Test public void testBitVector() { final MaterializedField field = MaterializedField.create(EMPTY_SCHEMA_PATH, BitHolder.TYPE); // Create a new value vector for 1024 integers try (final BitVector vector = new BitVector(field, allocator)) { final BitVector.Mutator m = vector.getMutator(); vector.allocateNew(1024); // Put and set a few values m.set(0, 1); m.set(1, 0); m.set(100, 0); m.set(1022, 1); final BitVector.Accessor accessor = vector.getAccessor(); assertEquals(1, accessor.get(0)); assertEquals(0, accessor.get(1)); assertEquals(0, accessor.get(100)); assertEquals(1, accessor.get(1022)); // test setting the same value twice m.set(0, 1); m.set(0, 1); m.set(1, 0); m.set(1, 0); assertEquals(1, accessor.get(0)); assertEquals(0, accessor.get(1)); // test toggling the values m.set(0, 0); m.set(1, 1); assertEquals(0, accessor.get(0)); assertEquals(1, accessor.get(1)); // Ensure unallocated space returns 0 assertEquals(0, accessor.get(3)); } }