public void Visit(StructType type) { // TODO: Make data from type fields. // The following can be improved with a Builder class for StructArray. StringArray.Builder resultStringBuilder = new StringArray.Builder(); Int32Array.Builder resultInt32Builder = new Int32Array.Builder(); ArrowBuffer nullBitmapBuffer = new ArrowBuffer.BitmapBuilder().Append(true).Append(true).Append(false).Build(); for (int i = 0; i < 3; i++) { resultStringBuilder.Append("joe").AppendNull().AppendNull().Append("mark"); resultInt32Builder.Append(1).Append(2).AppendNull().Append(4); StringArray stringArray = new StringArray.Builder().Append("joe").AppendNull().AppendNull().Append("mark").Build(); Int32Array intArray = new Int32Array.Builder().Append(1).Append(2).AppendNull().Append(4).Build(); List <Array> arrays = new List <Array> { stringArray, intArray }; TestTargetArrayList.Add(new StructArray(type, 3, arrays, nullBitmapBuffer, 1)); } StringArray resultStringArray = resultStringBuilder.Build(); Int32Array resultInt32Array = resultInt32Builder.Build(); ExpectedArray = new StructArray(type, 3, new List <Array> { resultStringArray, resultInt32Array }, nullBitmapBuffer, 1); }
public void Visit(ListType type) { ListArray.Builder resultBuilder = new ListArray.Builder(type.ValueDataType).Reserve(_baseDataTotalElementCount); //Todo : Support various types Int64Array.Builder resultValueBuilder = (Int64Array.Builder)resultBuilder.ValueBuilder.Reserve(_baseDataTotalElementCount); for (int i = 0; i < _baseDataListCount; i++) { List <int?> dataList = _baseData[i]; ListArray.Builder builder = new ListArray.Builder(type.ValueField).Reserve(dataList.Count); Int64Array.Builder valueBuilder = (Int64Array.Builder)builder.ValueBuilder.Reserve(dataList.Count); foreach (long?value in dataList) { if (value.HasValue) { builder.Append(); resultBuilder.Append(); valueBuilder.Append(value.Value); resultValueBuilder.Append(value.Value); } else { builder.AppendNull(); resultBuilder.AppendNull(); } } TestTargetArrayList.Add(builder.Build()); } ExpectedArray = resultBuilder.Build(); }
public void Visit(BinaryType type) { BinaryArray.Builder resultBuilder = new BinaryArray.Builder().Reserve(_baseDataTotalElementCount); for (int i = 0; i < _baseDataListCount; i++) { List <int?> dataList = _baseData[i]; BinaryArray.Builder builder = new BinaryArray.Builder().Reserve(dataList.Count); foreach (byte?value in dataList) { if (value.HasValue) { builder.Append(value.Value); resultBuilder.Append(value.Value); } else { builder.AppendNull(); resultBuilder.AppendNull(); } } TestTargetArrayList.Add(builder.Build()); } ExpectedArray = resultBuilder.Build(); }
public void Visit(TimestampType type) { TimestampArray.Builder resultBuilder = new TimestampArray.Builder().Reserve(_baseDataTotalElementCount); DateTimeOffset basis = DateTimeOffset.UtcNow; for (int i = 0; i < _baseDataListCount; i++) { List <int?> dataList = _baseData[i]; TimestampArray.Builder builder = new TimestampArray.Builder().Reserve(dataList.Count); foreach (int?value in dataList) { if (value.HasValue) { DateTimeOffset dateValue = basis.AddMilliseconds(value.Value); builder.Append(dateValue); resultBuilder.Append(dateValue); } else { builder.AppendNull(); resultBuilder.AppendNull(); } } TestTargetArrayList.Add(builder.Build()); } ExpectedArray = resultBuilder.Build(); }
public void Visit(StringType type) { StringArray.Builder resultBuilder = new StringArray.Builder().Reserve(_baseDataTotalElementCount); for (int i = 0; i < _baseDataListCount; i++) { List <int?> dataList = _baseData[i]; StringArray.Builder builder = new StringArray.Builder().Reserve(dataList.Count); foreach (string value in dataList.Select(_ => _.ToString() ?? null)) { builder.Append(value); resultBuilder.Append(value); } TestTargetArrayList.Add(builder.Build()); } ExpectedArray = resultBuilder.Build(); }