|
28 | 28 | #include <arrow/util/key_value_metadata.h> |
29 | 29 | #include <gtest/gtest.h> |
30 | 30 |
|
31 | | -#include "iceberg/arrow_c_data_internal.h" |
32 | 31 | #include "iceberg/schema.h" |
33 | 32 | #include "iceberg/schema_internal.h" |
34 | 33 | #include "matchers.h" |
35 | 34 |
|
36 | 35 | namespace iceberg { |
37 | 36 |
|
38 | | -TEST(ArrowCDataTest, CheckArrowSchemaAndArrayByNanoarrow) { |
39 | | - auto [schema, array] = internal::CreateExampleArrowSchemaAndArrayByNanoarrow(); |
40 | | - |
41 | | - auto arrow_schema = ::arrow::ImportSchema(&schema).ValueOrDie(); |
42 | | - EXPECT_EQ(arrow_schema->num_fields(), 2); |
43 | | - |
44 | | - auto id_field = arrow_schema->field(0); |
45 | | - EXPECT_EQ(id_field->name(), "id"); |
46 | | - EXPECT_EQ(id_field->type()->id(), ::arrow::Type::INT64); |
47 | | - EXPECT_FALSE(id_field->nullable()); |
48 | | - |
49 | | - auto name_field = arrow_schema->field(1); |
50 | | - EXPECT_EQ(name_field->name(), "name"); |
51 | | - EXPECT_EQ(name_field->type()->id(), ::arrow::Type::STRING); |
52 | | - EXPECT_TRUE(name_field->nullable()); |
53 | | - |
54 | | - auto arrow_record_batch = ::arrow::ImportRecordBatch(&array, arrow_schema).ValueOrDie(); |
55 | | - EXPECT_EQ(arrow_record_batch->num_rows(), 3); |
56 | | - EXPECT_EQ(arrow_record_batch->num_columns(), 2); |
57 | | - |
58 | | - auto id_column = arrow_record_batch->column(0); |
59 | | - EXPECT_EQ(id_column->type()->id(), ::arrow::Type::INT64); |
60 | | - EXPECT_EQ(id_column->GetScalar(0).ValueOrDie()->ToString(), "1"); |
61 | | - EXPECT_EQ(id_column->GetScalar(1).ValueOrDie()->ToString(), "2"); |
62 | | - EXPECT_EQ(id_column->GetScalar(2).ValueOrDie()->ToString(), "3"); |
63 | | - |
64 | | - auto name_column = arrow_record_batch->column(1); |
65 | | - EXPECT_EQ(name_column->type()->id(), ::arrow::Type::STRING); |
66 | | - EXPECT_EQ(name_column->GetScalar(0).ValueOrDie()->ToString(), "a"); |
67 | | - EXPECT_EQ(name_column->GetScalar(1).ValueOrDie()->ToString(), "b"); |
68 | | - EXPECT_EQ(name_column->GetScalar(2).ValueOrDie()->ToString(), "c"); |
69 | | -} |
70 | | - |
71 | 37 | struct ToArrowSchemaParam { |
72 | 38 | std::shared_ptr<Type> iceberg_type; |
73 | 39 | bool optional = true; |
|
0 commit comments