protected PrimitiveDictionaryArray(IArrowType dataType, int length, int uniqueValuesCount, ArrowBuffer nullBitmapBuffer, ArrowBuffer indices, ArrowBuffer dataBuffer, int nullCount = 0, int offset = 0) : this(new ArrayData(dataType, length, nullCount, offset, new[] { nullBitmapBuffer, indices, dataBuffer }), uniqueValuesCount) { }
public void Visit(UInt16Type type) { ArrowBuffer.Builder <ushort> builder = new ArrowBuffer.Builder <ushort>(_length); for (int i = 0; i < _length; i++) { builder.Append((ushort)i); } Buffer = builder.Build(); }
public void Visit(UInt8Type type) { ArrowBuffer.Builder <byte> builder = new ArrowBuffer.Builder <byte>(_length); for (int i = 0; i < _length; i++) { builder.Append((byte)i); } Buffer = builder.Build(); }
public void Visit(BooleanType type) { ArrowBuffer.Builder <bool> builder = new ArrowBuffer.Builder <bool>(_length); for (int i = 0; i < _length; i++) { builder.Append(i % 2 == 0); } Buffer = builder.Build(); }
public void HasZeroPadding() { var buffer = ArrowBuffer.Allocate(32, _memoryPoolFixture.MemoryPool); var span = buffer.GetSpan <byte>(); foreach (var b in span) { Assert.Equal(0, b); } }
public unsafe void AllocatesAlignedToMultipleOf64(int size) { var buffer = ArrowBuffer.Allocate(size, _memoryPoolFixture.MemoryPool); using (var pin = buffer.Memory.Pin()) { var ptr = new IntPtr(pin.Pointer); Assert.True(ptr.ToInt64() % 64 == 0); } }
public StringDictionaryArray(int length, int uniqueValues, ArrowBuffer nullBitmapBuffer, ArrowBuffer indices, ArrowBuffer dataBuffer, ArrowBuffer dataOffsets, int nullCount = 0, int offset = 0) : this(new ArrayData(DictionaryType.Default(ArrowTypeId.String), length, nullCount, offset, new[] { nullBitmapBuffer, indices, dataBuffer, dataOffsets }), uniqueValues) { }
private Buffer CreateBuffer(ArrowBuffer buffer) { if (buffer == null) { return(new Buffer(null, _offset, 0)); } var offset = _offset; _offset += buffer.Capacity; return(new Buffer(buffer, offset, buffer.Capacity)); }
private void CompareValidityBuffer(int nullCount, int arrayLength, ArrowBuffer expectedValidityBuffer, ArrowBuffer actualValidityBuffer) { if (_strictCompare) { Assert.True(expectedValidityBuffer.Span.SequenceEqual(actualValidityBuffer.Span)); } else if (nullCount != 0) { int validityBitmapByteCount = BitUtility.ByteCount(arrayLength); Assert.True( expectedValidityBuffer.Span.Slice(0, validityBitmapByteCount).SequenceEqual(actualValidityBuffer.Span.Slice(0, validityBitmapByteCount)), "Validity buffers do not match."); } }
public static Array MakeArrayBuffer <T>(IArrowType dataType, int length, IEnumerable <T> data) where T : struct { ArrowBuffer.Builder <T> builder = new ArrowBuffer.Builder <T>(); builder.AppendRange(data); ArrowBuffer buffer = builder.Build(); ArrayData arrayData = new ArrayData(dataType, length, 0, 0, new[] { buffer }); Array array = ArrowArrayFactory.BuildArray(arrayData) as Array; return(array); }