Example #1
0
 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)
 {
 }
Example #2
0
            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();
            }
Example #3
0
            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();
            }
Example #4
0
            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();
            }
Example #5
0
            public void HasZeroPadding()
            {
                var buffer = ArrowBuffer.Allocate(32, _memoryPoolFixture.MemoryPool);
                var span   = buffer.GetSpan <byte>();

                foreach (var b in span)
                {
                    Assert.Equal(0, b);
                }
            }
Example #6
0
            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);
                }
            }
Example #7
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));
            }
Example #9
0
 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.");
     }
 }
Example #10
0
        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);
        }