red-arrow 8.0.0 → 24.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -7
  3. data/ext/arrow/arrow.cpp +67 -0
  4. data/ext/arrow/converters.cpp +10 -0
  5. data/ext/arrow/converters.hpp +310 -46
  6. data/ext/arrow/extconf.rb +41 -22
  7. data/ext/arrow/raw-records.cpp +165 -2
  8. data/ext/arrow/red-arrow.hpp +2 -0
  9. data/ext/arrow/values.cpp +6 -2
  10. data/lib/arrow/array-builder.rb +89 -14
  11. data/{test/test-time32-data-type.rb → lib/arrow/array-computable.rb} +24 -16
  12. data/{test/test-buffer.rb → lib/arrow/array-statistics.rb} +19 -24
  13. data/lib/arrow/array.rb +40 -4
  14. data/lib/arrow/chunked-array.rb +56 -1
  15. data/lib/arrow/column-containable.rb +9 -0
  16. data/lib/arrow/column.rb +49 -4
  17. data/{test/test-tensor.rb → lib/arrow/csv-write-options.rb} +28 -31
  18. data/lib/arrow/data-type.rb +17 -3
  19. data/lib/arrow/decimal128-array-builder.rb +16 -6
  20. data/lib/arrow/decimal128.rb +14 -0
  21. data/lib/arrow/decimal256-array-builder.rb +16 -6
  22. data/lib/arrow/decimal256.rb +14 -0
  23. data/{test/test-float-scalar.rb → lib/arrow/dense-union-array-builder.rb} +27 -24
  24. data/{test/test-boolean-scalar.rb → lib/arrow/dense-union-array.rb} +7 -7
  25. data/lib/arrow/duration-array-builder.rb +27 -0
  26. data/lib/arrow/duration-array.rb +24 -0
  27. data/lib/arrow/duration-data-type.rb +32 -0
  28. data/lib/arrow/expression.rb +6 -2
  29. data/lib/arrow/field-containable.rb +1 -1
  30. data/lib/arrow/field.rb +44 -3
  31. data/lib/arrow/fixed-size-list-array-builder.rb +29 -0
  32. data/lib/arrow/fixed-size-list-data-type.rb +118 -0
  33. data/lib/arrow/function.rb +0 -1
  34. data/lib/arrow/half-float-array-builder.rb +32 -0
  35. data/lib/arrow/half-float-array.rb +24 -0
  36. data/lib/arrow/half-float.rb +118 -0
  37. data/{test/helper/fixture.rb → lib/arrow/input-referable.rb} +7 -6
  38. data/lib/arrow/jruby/array-builder.rb +114 -0
  39. data/lib/arrow/jruby/array.rb +109 -0
  40. data/lib/arrow/jruby/chunked-array.rb +36 -0
  41. data/lib/arrow/jruby/compression-type.rb +26 -0
  42. data/lib/arrow/jruby/csv-read-options.rb +32 -0
  43. data/{test/test-map-data-type.rb → lib/arrow/jruby/data-type.rb} +24 -12
  44. data/lib/arrow/jruby/decimal128.rb +28 -0
  45. data/lib/arrow/jruby/decimal256.rb +28 -0
  46. data/{test/fixture/float-integer.csv → lib/arrow/jruby/error.rb} +7 -4
  47. data/lib/arrow/jruby/file-system.rb +24 -0
  48. data/{test/test-null-array.rb → lib/arrow/jruby/function.rb} +5 -4
  49. data/lib/arrow/jruby/record-batch-iterator.rb +24 -0
  50. data/{test/fixture/null-with-double-quote.csv → lib/arrow/jruby/record-batch.rb} +8 -4
  51. data/{test/fixture/integer-float.csv → lib/arrow/jruby/sort-key.rb} +8 -4
  52. data/lib/arrow/jruby/sort-options.rb +24 -0
  53. data/lib/arrow/jruby/stream-listener-raw.rb +25 -0
  54. data/{test/test-rolling-window.rb → lib/arrow/jruby/table.rb} +19 -19
  55. data/lib/arrow/jruby/writable.rb +24 -0
  56. data/lib/arrow/jruby.rb +52 -0
  57. data/{test/test-date32-array.rb → lib/arrow/large-list-array-builder.rb} +10 -5
  58. data/lib/arrow/large-list-data-type.rb +83 -0
  59. data/lib/arrow/libraries.rb +140 -0
  60. data/lib/arrow/list-array-builder.rb +1 -68
  61. data/lib/arrow/list-data-type.rb +3 -38
  62. data/{test/test-dictionary-array.rb → lib/arrow/list-field-resolvable.rb} +26 -17
  63. data/lib/arrow/list-slice-options.rb +76 -0
  64. data/lib/arrow/list-values-appendable.rb +88 -0
  65. data/lib/arrow/loader.rb +15 -96
  66. data/{test/test-decimal128-array.rb → lib/arrow/make-struct-options.rb} +18 -18
  67. data/lib/arrow/raw-table-converter.rb +10 -3
  68. data/lib/arrow/raw-tensor-converter.rb +89 -0
  69. data/lib/arrow/record-batch-file-reader.rb +2 -0
  70. data/lib/arrow/record-batch-stream-reader.rb +2 -0
  71. data/lib/arrow/record-batch.rb +6 -2
  72. data/{test/fixture/null-without-double-quote.csv → lib/arrow/ruby.rb} +5 -4
  73. data/lib/arrow/scalar.rb +67 -0
  74. data/lib/arrow/slicer.rb +61 -0
  75. data/lib/arrow/sort-key.rb +3 -3
  76. data/lib/arrow/sparse-union-array-builder.rb +56 -0
  77. data/lib/arrow/sparse-union-array.rb +26 -0
  78. data/lib/arrow/stream-decoder.rb +29 -0
  79. data/{test/test-decimal256-data-type.rb → lib/arrow/stream-listener.rb} +25 -9
  80. data/lib/arrow/string-array-builder.rb +30 -0
  81. data/lib/arrow/struct-array-builder.rb +0 -5
  82. data/lib/arrow/table-formatter.rb +38 -8
  83. data/lib/arrow/table-list-formatter.rb +3 -3
  84. data/lib/arrow/table-loader.rb +11 -5
  85. data/lib/arrow/table-saver.rb +4 -3
  86. data/lib/arrow/table-table-formatter.rb +7 -0
  87. data/lib/arrow/table.rb +180 -33
  88. data/lib/arrow/tensor.rb +144 -0
  89. data/lib/arrow/time-unit.rb +31 -0
  90. data/lib/arrow/time32-array-builder.rb +2 -14
  91. data/lib/arrow/time32-data-type.rb +9 -38
  92. data/lib/arrow/time64-array-builder.rb +2 -14
  93. data/lib/arrow/time64-data-type.rb +9 -38
  94. data/lib/arrow/timestamp-array-builder.rb +3 -15
  95. data/lib/arrow/timestamp-data-type.rb +9 -34
  96. data/{test/test-date64-array.rb → lib/arrow/timestamp-parser.rb} +14 -6
  97. data/lib/arrow/union-array-builder.rb +59 -0
  98. data/lib/arrow/union-array.rb +26 -0
  99. data/lib/arrow/version.rb +1 -1
  100. data/lib/arrow.rb +2 -7
  101. data/red-arrow.gemspec +74 -11
  102. metadata +85 -210
  103. data/test/fixture/TestOrcFile.test1.orc +0 -0
  104. data/test/fixture/with-header-float.csv +0 -20
  105. data/test/fixture/with-header.csv +0 -20
  106. data/test/fixture/without-header-float.csv +0 -19
  107. data/test/fixture/without-header.csv +0 -19
  108. data/test/helper/omittable.rb +0 -36
  109. data/test/helper.rb +0 -30
  110. data/test/raw-records/test-basic-arrays.rb +0 -395
  111. data/test/raw-records/test-dense-union-array.rb +0 -521
  112. data/test/raw-records/test-list-array.rb +0 -610
  113. data/test/raw-records/test-map-array.rb +0 -478
  114. data/test/raw-records/test-multiple-columns.rb +0 -65
  115. data/test/raw-records/test-sparse-union-array.rb +0 -511
  116. data/test/raw-records/test-struct-array.rb +0 -515
  117. data/test/raw-records/test-table.rb +0 -47
  118. data/test/run-test.rb +0 -71
  119. data/test/test-array-builder.rb +0 -136
  120. data/test/test-array.rb +0 -325
  121. data/test/test-bigdecimal.rb +0 -40
  122. data/test/test-binary-dictionary-array-builder.rb +0 -103
  123. data/test/test-chunked-array.rb +0 -183
  124. data/test/test-column.rb +0 -92
  125. data/test/test-csv-loader.rb +0 -250
  126. data/test/test-data-type.rb +0 -83
  127. data/test/test-decimal128-array-builder.rb +0 -112
  128. data/test/test-decimal128-data-type.rb +0 -31
  129. data/test/test-decimal128.rb +0 -102
  130. data/test/test-decimal256-array-builder.rb +0 -112
  131. data/test/test-decimal256-array.rb +0 -38
  132. data/test/test-decimal256.rb +0 -102
  133. data/test/test-dense-union-data-type.rb +0 -41
  134. data/test/test-dictionary-data-type.rb +0 -40
  135. data/test/test-expression.rb +0 -40
  136. data/test/test-feather.rb +0 -49
  137. data/test/test-field.rb +0 -91
  138. data/test/test-file-output-stream.rb +0 -54
  139. data/test/test-fixed-size-binary-array-builder.rb +0 -92
  140. data/test/test-fixed-size-binary-array.rb +0 -36
  141. data/test/test-function.rb +0 -210
  142. data/test/test-group.rb +0 -180
  143. data/test/test-list-array-builder.rb +0 -79
  144. data/test/test-list-array.rb +0 -32
  145. data/test/test-list-data-type.rb +0 -69
  146. data/test/test-map-array-builder.rb +0 -110
  147. data/test/test-map-array.rb +0 -33
  148. data/test/test-memory-view.rb +0 -434
  149. data/test/test-orc.rb +0 -173
  150. data/test/test-record-batch-builder.rb +0 -125
  151. data/test/test-record-batch-file-reader.rb +0 -115
  152. data/test/test-record-batch-iterator.rb +0 -37
  153. data/test/test-record-batch-reader.rb +0 -46
  154. data/test/test-record-batch.rb +0 -182
  155. data/test/test-schema.rb +0 -134
  156. data/test/test-slicer.rb +0 -487
  157. data/test/test-sort-indices.rb +0 -40
  158. data/test/test-sort-key.rb +0 -81
  159. data/test/test-sort-options.rb +0 -58
  160. data/test/test-sparse-union-data-type.rb +0 -41
  161. data/test/test-string-dictionary-array-builder.rb +0 -103
  162. data/test/test-struct-array-builder.rb +0 -184
  163. data/test/test-struct-array.rb +0 -94
  164. data/test/test-struct-data-type.rb +0 -112
  165. data/test/test-table.rb +0 -1123
  166. data/test/test-time.rb +0 -288
  167. data/test/test-time32-array.rb +0 -81
  168. data/test/test-time64-array.rb +0 -81
  169. data/test/test-time64-data-type.rb +0 -42
  170. data/test/test-timestamp-array.rb +0 -45
  171. data/test/test-timestamp-data-type.rb +0 -42
  172. data/test/values/test-basic-arrays.rb +0 -325
  173. data/test/values/test-dense-union-array.rb +0 -509
  174. data/test/values/test-dictionary-array.rb +0 -295
  175. data/test/values/test-list-array.rb +0 -571
  176. data/test/values/test-map-array.rb +0 -466
  177. data/test/values/test-sparse-union-array.rb +0 -500
  178. data/test/values/test-struct-array.rb +0 -512
@@ -1,509 +0,0 @@
1
- # Licensed to the Apache Software Foundation (ASF) under one
2
- # or more contributor license agreements. See the NOTICE file
3
- # distributed with this work for additional information
4
- # regarding copyright ownership. The ASF licenses this file
5
- # to you under the Apache License, Version 2.0 (the
6
- # "License"); you may not use this file except in compliance
7
- # with the License. You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing,
12
- # software distributed under the License is distributed on an
13
- # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
- # KIND, either express or implied. See the License for the
15
- # specific language governing permissions and limitations
16
- # under the License.
17
-
18
- module ValuesDenseUnionArrayTests
19
- def build_data_type(type, type_codes)
20
- field_description = {}
21
- if type.is_a?(Hash)
22
- field_description = field_description.merge(type)
23
- else
24
- field_description[:type] = type
25
- end
26
- Arrow::DenseUnionDataType.new(fields: [
27
- field_description.merge(name: "0"),
28
- field_description.merge(name: "1"),
29
- ],
30
- type_codes: type_codes)
31
- end
32
-
33
- def build_array(type, values)
34
- type_codes = [0, 1]
35
- data_type = build_data_type(type, type_codes)
36
- type_ids = []
37
- offsets = []
38
- arrays = data_type.fields.collect do |field|
39
- sub_schema = Arrow::Schema.new([field])
40
- sub_records = []
41
- values.each do |value|
42
- next if value.nil?
43
- next unless value.key?(field.name)
44
- sub_records << [value[field.name]]
45
- end
46
- sub_record_batch = Arrow::RecordBatch.new(sub_schema,
47
- sub_records)
48
- sub_record_batch.columns[0].data
49
- end
50
- values.each do |value|
51
- if value.key?("0")
52
- type_id = type_codes[0]
53
- type_ids << type_id
54
- offsets << (type_ids.count(type_id) - 1)
55
- elsif value.key?("1")
56
- type_id = type_codes[1]
57
- type_ids << type_id
58
- offsets << (type_ids.count(type_id) - 1)
59
- end
60
- end
61
- Arrow::DenseUnionArray.new(data_type,
62
- Arrow::Int8Array.new(type_ids),
63
- Arrow::Int32Array.new(offsets),
64
- arrays)
65
- end
66
-
67
- def test_null
68
- values = [
69
- {"0" => nil},
70
- ]
71
- target = build(:null, values)
72
- assert_equal(values, target.values)
73
- end
74
-
75
- def test_boolean
76
- values = [
77
- {"0" => true},
78
- {"1" => nil},
79
- ]
80
- target = build(:boolean, values)
81
- assert_equal(values, target.values)
82
- end
83
-
84
- def test_int8
85
- values = [
86
- {"0" => -(2 ** 7)},
87
- {"1" => nil},
88
- ]
89
- target = build(:int8, values)
90
- assert_equal(values, target.values)
91
- end
92
-
93
- def test_uint8
94
- values = [
95
- {"0" => (2 ** 8) - 1},
96
- {"1" => nil},
97
- ]
98
- target = build(:uint8, values)
99
- assert_equal(values, target.values)
100
- end
101
-
102
- def test_int16
103
- values = [
104
- {"0" => -(2 ** 15)},
105
- {"1" => nil},
106
- ]
107
- target = build(:int16, values)
108
- assert_equal(values, target.values)
109
- end
110
-
111
- def test_uint16
112
- values = [
113
- {"0" => (2 ** 16) - 1},
114
- {"1" => nil},
115
- ]
116
- target = build(:uint16, values)
117
- assert_equal(values, target.values)
118
- end
119
-
120
- def test_int32
121
- values = [
122
- {"0" => -(2 ** 31)},
123
- {"1" => nil},
124
- ]
125
- target = build(:int32, values)
126
- assert_equal(values, target.values)
127
- end
128
-
129
- def test_uint32
130
- values = [
131
- {"0" => (2 ** 32) - 1},
132
- {"1" => nil},
133
- ]
134
- target = build(:uint32, values)
135
- assert_equal(values, target.values)
136
- end
137
-
138
- def test_int64
139
- values = [
140
- {"0" => -(2 ** 63)},
141
- {"1" => nil},
142
- ]
143
- target = build(:int64, values)
144
- assert_equal(values, target.values)
145
- end
146
-
147
- def test_uint64
148
- values = [
149
- {"0" => (2 ** 64) - 1},
150
- {"1" => nil},
151
- ]
152
- target = build(:uint64, values)
153
- assert_equal(values, target.values)
154
- end
155
-
156
- def test_float
157
- values = [
158
- {"0" => -1.0},
159
- {"1" => nil},
160
- ]
161
- target = build(:float, values)
162
- assert_equal(values, target.values)
163
- end
164
-
165
- def test_double
166
- values = [
167
- {"0" => -1.0},
168
- {"1" => nil},
169
- ]
170
- target = build(:double, values)
171
- assert_equal(values, target.values)
172
- end
173
-
174
- def test_binary
175
- values = [
176
- {"0" => "\xff".b},
177
- {"1" => nil},
178
- ]
179
- target = build(:binary, values)
180
- assert_equal(values, target.values)
181
- end
182
-
183
- def test_string
184
- values = [
185
- {"0" => "Ruby"},
186
- {"1" => nil},
187
- ]
188
- target = build(:string, values)
189
- assert_equal(values, target.values)
190
- end
191
-
192
- def test_date32
193
- values = [
194
- {"0" => Date.new(1960, 1, 1)},
195
- {"1" => nil},
196
- ]
197
- target = build(:date32, values)
198
- assert_equal(values, target.values)
199
- end
200
-
201
- def test_date64
202
- values = [
203
- {"0" => DateTime.new(1960, 1, 1, 2, 9, 30)},
204
- {"1" => nil},
205
- ]
206
- target = build(:date64, values)
207
- assert_equal(values, target.values)
208
- end
209
-
210
- def test_timestamp_second
211
- values = [
212
- {"0" => Time.parse("1960-01-01T02:09:30Z")},
213
- {"1" => nil},
214
- ]
215
- target = build({
216
- type: :timestamp,
217
- unit: :second,
218
- },
219
- values)
220
- assert_equal(values, target.values)
221
- end
222
-
223
- def test_timestamp_milli
224
- values = [
225
- {"0" => Time.parse("1960-01-01T02:09:30.123Z")},
226
- {"1" => nil},
227
- ]
228
- target = build({
229
- type: :timestamp,
230
- unit: :milli,
231
- },
232
- values)
233
- assert_equal(values, target.values)
234
- end
235
-
236
- def test_timestamp_micro
237
- values = [
238
- {"0" => Time.parse("1960-01-01T02:09:30.123456Z")},
239
- {"1" => nil},
240
- ]
241
- target = build({
242
- type: :timestamp,
243
- unit: :micro,
244
- },
245
- values)
246
- assert_equal(values, target.values)
247
- end
248
-
249
- def test_timestamp_nano
250
- values = [
251
- {"0" => Time.parse("1960-01-01T02:09:30.123456789Z")},
252
- {"1" => nil},
253
- ]
254
- target = build({
255
- type: :timestamp,
256
- unit: :nano,
257
- },
258
- values)
259
- assert_equal(values, target.values)
260
- end
261
-
262
- def test_time32_second
263
- unit = Arrow::TimeUnit::SECOND
264
- values = [
265
- # 00:10:00
266
- {"0" => Arrow::Time.new(unit, 60 * 10)},
267
- {"1" => nil},
268
- ]
269
- target = build({
270
- type: :time32,
271
- unit: :second,
272
- },
273
- values)
274
- assert_equal(values, target.values)
275
- end
276
-
277
- def test_time32_milli
278
- unit = Arrow::TimeUnit::MILLI
279
- values = [
280
- # 00:10:00.123
281
- {"0" => Arrow::Time.new(unit, (60 * 10) * 1000 + 123)},
282
- {"1" => nil},
283
- ]
284
- target = build({
285
- type: :time32,
286
- unit: :milli,
287
- },
288
- values)
289
- assert_equal(values, target.values)
290
- end
291
-
292
- def test_time64_micro
293
- unit = Arrow::TimeUnit::MICRO
294
- values = [
295
- # 00:10:00.123456
296
- {"0" => Arrow::Time.new(unit, (60 * 10) * 1_000_000 + 123_456)},
297
- {"1" => nil},
298
- ]
299
- target = build({
300
- type: :time64,
301
- unit: :micro,
302
- },
303
- values)
304
- assert_equal(values, target.values)
305
- end
306
-
307
- def test_time64_nano
308
- unit = Arrow::TimeUnit::NANO
309
- values = [
310
- # 00:10:00.123456789
311
- {"0" => Arrow::Time.new(unit, (60 * 10) * 1_000_000_000 + 123_456_789)},
312
- {"1" => nil},
313
- ]
314
- target = build({
315
- type: :time64,
316
- unit: :nano,
317
- },
318
- values)
319
- assert_equal(values, target.values)
320
- end
321
-
322
- def test_decimal128
323
- values = [
324
- {"0" => BigDecimal("92.92")},
325
- {"1" => nil},
326
- ]
327
- target = build({
328
- type: :decimal128,
329
- precision: 8,
330
- scale: 2,
331
- },
332
- values)
333
- assert_equal(values, target.values)
334
- end
335
-
336
- def test_decimal256
337
- values = [
338
- {"0" => BigDecimal("92.92")},
339
- {"1" => nil},
340
- ]
341
- target = build({
342
- type: :decimal256,
343
- precision: 38,
344
- scale: 2,
345
- },
346
- values)
347
- assert_equal(values, target.values)
348
- end
349
-
350
- def test_month_interval
351
- values = [
352
- {"0" => 1},
353
- {"1" => nil},
354
- ]
355
- target = build(:month_interval, values)
356
- assert_equal(values, target.values)
357
- end
358
-
359
- def test_day_time_interval
360
- values = [
361
- {"0" => {day: 1, millisecond: 100}},
362
- {"1" => nil},
363
- ]
364
- target = build(:day_time_interval, values)
365
- assert_equal(values, target.values)
366
- end
367
-
368
- def test_month_day_nano_interval
369
- values = [
370
- {"0" => {month: 1, day: 1, nanosecond: 100}},
371
- {"1" => nil},
372
- ]
373
- target = build(:month_day_nano_interval, values)
374
- assert_equal(values, target.values)
375
- end
376
-
377
- def test_list
378
- values = [
379
- {"0" => [true, nil, false]},
380
- {"1" => nil},
381
- ]
382
- target = build({
383
- type: :list,
384
- field: {
385
- name: :sub_element,
386
- type: :boolean,
387
- },
388
- },
389
- values)
390
- assert_equal(values, target.values)
391
- end
392
-
393
- def test_struct
394
- values = [
395
- {"0" => {"sub_field" => true}},
396
- {"1" => nil},
397
- {"0" => {"sub_field" => nil}},
398
- ]
399
- target = build({
400
- type: :struct,
401
- fields: [
402
- {
403
- name: :sub_field,
404
- type: :boolean,
405
- },
406
- ],
407
- },
408
- values)
409
- assert_equal(values, target.values)
410
- end
411
-
412
- def test_map
413
- values = [
414
- {"0" => {"key1" => true, "key2" => nil}},
415
- {"1" => nil},
416
- ]
417
- target = build({
418
- type: :map,
419
- key: :string,
420
- item: :boolean,
421
- },
422
- values)
423
- assert_equal(values, target.values)
424
- end
425
-
426
- def test_sparse_union
427
- omit("Need to add support for SparseUnionArrayBuilder")
428
- values = [
429
- {"0" => {"field1" => true}},
430
- {"1" => nil},
431
- {"0" => {"field2" => nil}},
432
- ]
433
- target = build({
434
- type: :sparse_union,
435
- fields: [
436
- {
437
- name: :field1,
438
- type: :boolean,
439
- },
440
- {
441
- name: :field2,
442
- type: :uint8,
443
- },
444
- ],
445
- type_codes: [0, 1],
446
- },
447
- values)
448
- assert_equal(values, target.values)
449
- end
450
-
451
- def test_dense_union
452
- omit("Need to add support for DenseUnionArrayBuilder")
453
- values = [
454
- {"0" => {"field1" => true}},
455
- {"1" => nil},
456
- {"0" => {"field2" => nil}},
457
- ]
458
- target = build({
459
- type: :dense_union,
460
- fields: [
461
- {
462
- name: :field1,
463
- type: :boolean,
464
- },
465
- {
466
- name: :field2,
467
- type: :uint8,
468
- },
469
- ],
470
- type_codes: [0, 1],
471
- },
472
- values)
473
- assert_equal(values, target.values)
474
- end
475
-
476
- def test_dictionary
477
- omit("Need to add support for DictionaryArrayBuilder")
478
- values = [
479
- {"0" => "Ruby"},
480
- {"1" => nil},
481
- {"0" => "GLib"},
482
- ]
483
- dictionary = Arrow::StringArray.new(["GLib", "Ruby"])
484
- target = build({
485
- type: :dictionary,
486
- index_data_type: :int8,
487
- dictionary: dictionary,
488
- ordered: true,
489
- },
490
- values)
491
- assert_equal(values, target.values)
492
- end
493
- end
494
-
495
- class ValuesArrayDenseUnionArrayTest < Test::Unit::TestCase
496
- include ValuesDenseUnionArrayTests
497
-
498
- def build(type, values)
499
- build_array(type, values)
500
- end
501
- end
502
-
503
- class ValuesChunkedArrayDenseUnionArrayTest < Test::Unit::TestCase
504
- include ValuesDenseUnionArrayTests
505
-
506
- def build(type, values)
507
- Arrow::ChunkedArray.new([build_array(type, values)])
508
- end
509
- end