| 16 | # under the License. |
| 17 | |
| 18 | class TestORCFileReader < Test::Unit::TestCase |
| 19 | include Helper::Buildable |
| 20 | include Helper::Omittable |
| 21 | include Helper::Fixture |
| 22 | |
| 23 | def setup |
| 24 | omit("Require Apache Arrow ORC") unless Arrow.const_defined?(:ORCFileReader) |
| 25 | path = fixture_path("TestOrcFile.test1.orc") |
| 26 | input = Arrow::MemoryMappedInputStream.new(path) |
| 27 | @reader = Arrow::ORCFileReader.new(input) |
| 28 | end |
| 29 | |
| 30 | def test_read_type |
| 31 | assert_equal(<<-SCHEMA.chomp, @reader.read_type.to_s) |
| 32 | boolean1: bool |
| 33 | byte1: int8 |
| 34 | short1: int16 |
| 35 | int1: int32 |
| 36 | long1: int64 |
| 37 | float1: float |
| 38 | double1: double |
| 39 | bytes1: binary |
| 40 | string1: string |
| 41 | middle: struct<list: list<item: struct<int1: int32, string1: string>>> |
| 42 | list: list<item: struct<int1: int32, string1: string>> |
| 43 | map: map<string, struct<int1: int32, string1: string>> |
| 44 | SCHEMA |
| 45 | end |
| 46 | |
| 47 | def test_field_indices |
| 48 | require_gi_bindings(3, 2, 6) |
| 49 | assert_nil(@reader.field_indices) |
| 50 | @reader.field_indices = [1, 3] |
| 51 | assert_equal([1, 3], @reader.field_indices) |
| 52 | end |
| 53 | |
| 54 | def item_fields |
| 55 | [ |
| 56 | Arrow::Field.new("int1", Arrow::Int32DataType.new), |
| 57 | Arrow::Field.new("string1", Arrow::StringDataType.new), |
| 58 | ] |
| 59 | end |
| 60 | |
| 61 | def item_data_type |
| 62 | Arrow::StructDataType.new(item_fields) |
| 63 | end |
| 64 | |
| 65 | def build_items_array(items_array) |
| 66 | build_list_array(item_data_type, items_array, field_name: "item") |
| 67 | end |
| 68 | |
| 69 | def items_data_type |
| 70 | Arrow::ListDataType.new(Arrow::Field.new("item", item_data_type)) |
| 71 | end |
| 72 | |
| 73 | def middle_fields |
| 74 | [ |
| 75 | Arrow::Field.new("list", items_data_type), |
nothing calls this directly
no test coverage detected