| 51 | end |
| 52 | |
| 53 | def test_flatten |
| 54 | fields = [ |
| 55 | Arrow::Field.new("score", Arrow::Int8DataType.new), |
| 56 | Arrow::Field.new("enabled", Arrow::BooleanDataType.new), |
| 57 | ] |
| 58 | data_type = Arrow::StructDataType.new(fields) |
| 59 | builder = Arrow::StructArrayBuilder.new(data_type) |
| 60 | |
| 61 | builder.append_value |
| 62 | builder.get_field_builder(0).append_value(-29) |
| 63 | builder.get_field_builder(1).append_value(true) |
| 64 | |
| 65 | builder.append_value |
| 66 | builder.field_builders[0].append_value(2) |
| 67 | builder.field_builders[1].append_value(false) |
| 68 | |
| 69 | array = builder.finish |
| 70 | values = array.length.times.collect do |i| |
| 71 | if i.zero? |
| 72 | [ |
| 73 | array.get_field(0).get_value(i), |
| 74 | array.get_field(1).get_value(i), |
| 75 | ] |
| 76 | else |
| 77 | array.flatten.collect do |field| |
| 78 | field.get_value(i) |
| 79 | end |
| 80 | end |
| 81 | end |
| 82 | assert_equal([ |
| 83 | [-29, true], |
| 84 | [2, false], |
| 85 | ], |
| 86 | values) |
| 87 | end |
| 88 | end |
nothing calls this directly
no test coverage detected