This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new 67fbca9e56 GH-34837: [GLib][Ruby] Add
Arrow::{Sparse,Dense}UnionArray#get_value (#34838)
67fbca9e56 is described below
commit 67fbca9e565f7ba8deb5767238c2c703cd7406c1
Author: Sutou Kouhei <[email protected]>
AuthorDate: Mon Apr 3 00:58:53 2023 +0900
GH-34837: [GLib][Ruby] Add Arrow::{Sparse,Dense}UnionArray#get_value
(#34838)
### Rationale for this change
They are missing.
### What changes are included in this PR?
The following GLib APIs are added for them:
* `garrow_union_array_get_type_code()`
* `garrow_union_array_get_child_id()`
* `garrow_dense_union_array_get_value_offset()`
`Arrow::{Sparse,Dense}UnionArray#{to_records,values}` have a backward
incompatible change:
* Don't include field name:
* Before: `{"field_name" => value}`
* After: `value`
Because I think that `"field_name"` is useless for many cases. Only `value`
is suitable for many cases.
### Are these changes tested?
Yes.
### Are there any user-facing changes?
Yes.
**This PR includes breaking changes to public APIs.**
See the above description for details.
* Closes: #34837
Authored-by: Sutou Kouhei <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
c_glib/arrow-glib/composite-array.cpp | 57 +++++++++++
c_glib/arrow-glib/composite-array.h | 12 +++
c_glib/test/test-dense-union-array.rb | 12 +++
c_glib/test/test-sparse-union-array.rb | 8 ++
ruby/red-arrow/ext/arrow/converters.hpp | 39 +++----
.../arrow/dense-union-array.rb} | 27 ++---
ruby/red-arrow/lib/arrow/loader.rb | 2 +
.../arrow/sparse-union-array.rb} | 27 ++---
.../test/raw-records/test-dense-union-array.rb | 113 ++++++++++++++-------
.../test/raw-records/test-sparse-union-array.rb | 113 ++++++++++++++-------
ruby/red-arrow/test/test-dense-union-array.rb | 42 ++++++++
ruby/red-arrow/test/test-dense-union-data-type.rb | 2 +-
...ion-data-type.rb => test-sparse-union-array.rb} | 39 ++++---
.../test/values/test-dense-union-array.rb | 111 +++++++++++++-------
.../test/values/test-sparse-union-array.rb | 111 +++++++++++++-------
15 files changed, 484 insertions(+), 231 deletions(-)
diff --git a/c_glib/arrow-glib/composite-array.cpp
b/c_glib/arrow-glib/composite-array.cpp
index fd777f5862..ad6b8f405e 100644
--- a/c_glib/arrow-glib/composite-array.cpp
+++ b/c_glib/arrow-glib/composite-array.cpp
@@ -1113,6 +1113,44 @@ garrow_union_array_class_init(GArrowUnionArrayClass
*klass)
g_object_class_install_property(gobject_class, PROP_TYPE_IDS, spec);
}
+/**
+ * garrow_union_array_get_type_code:
+ * @array: A #GArrowUnionArray.
+ * @i: The index of the logical type code of the value in the union.
+ *
+ * Returns: The i-th logical type code of the value.
+ *
+ * Since: 12.0.0
+ */
+gint8
+garrow_union_array_get_type_code(GArrowUnionArray *array,
+ gint64 i)
+{
+ auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array));
+ auto arrow_union_array =
+ std::static_pointer_cast<arrow::UnionArray>(arrow_array);
+ return arrow_union_array->type_code(i);
+}
+
+/**
+ * garrow_union_array_get_child_id:
+ * @array: A #GArrowUnionArray.
+ * @i: The index of the physical child ID containing value in the union.
+ *
+ * Returns: The physical child ID containing the i-th value.
+ *
+ * Since: 12.0.0
+ */
+gint
+garrow_union_array_get_child_id(GArrowUnionArray *array,
+ gint64 i)
+{
+ auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array));
+ auto arrow_union_array =
+ std::static_pointer_cast<arrow::UnionArray>(arrow_array);
+ return arrow_union_array->child_id(i);
+}
+
/**
* garrow_union_array_get_field
* @array: A #GArrowUnionArray.
@@ -1483,6 +1521,25 @@
garrow_dense_union_array_new_data_type(GArrowDenseUnionDataType *data_type,
"[dense-union-array][new][data-type]");
}
+/**
+ * garrow_dense_union_array_get_value_offset:
+ * @array: A #GArrowUnionArray.
+ * @i: The index of the offset of the value in the union.
+ *
+ * Returns: The offset of the i-th value.
+ *
+ * Since: 12.0.0
+ */
+gint32
+garrow_dense_union_array_get_value_offset(GArrowDenseUnionArray *array,
+ gint64 i)
+{
+ auto arrow_array = garrow_array_get_raw(GARROW_ARRAY(array));
+ auto arrow_dense_union_array =
+ std::static_pointer_cast<arrow::DenseUnionArray>(arrow_array);
+ return arrow_dense_union_array->value_offset(i);
+}
+
typedef struct GArrowDictionaryArrayPrivate_ {
GArrowArray *indices;
diff --git a/c_glib/arrow-glib/composite-array.h
b/c_glib/arrow-glib/composite-array.h
index cfaeb4c768..28ca1b78b2 100644
--- a/c_glib/arrow-glib/composite-array.h
+++ b/c_glib/arrow-glib/composite-array.h
@@ -161,6 +161,14 @@ struct _GArrowUnionArrayClass
GArrowArrayClass parent_class;
};
+GARROW_AVAILABLE_IN_12_0
+gint8
+garrow_union_array_get_type_code(GArrowUnionArray *array,
+ gint64 i);
+GARROW_AVAILABLE_IN_12_0
+gint
+garrow_union_array_get_child_id(GArrowUnionArray *array,
+ gint64 i);
GArrowArray *
garrow_union_array_get_field(GArrowUnionArray *array,
gint i);
@@ -209,6 +217,10 @@
garrow_dense_union_array_new_data_type(GArrowDenseUnionDataType *data_type,
GArrowInt32Array *value_offsets,
GList *fields,
GError **error);
+GARROW_AVAILABLE_IN_12_0
+gint32
+garrow_dense_union_array_get_value_offset(GArrowDenseUnionArray *array,
+ gint64 i);
#define GARROW_TYPE_DICTIONARY_ARRAY (garrow_dictionary_array_get_type())
diff --git a/c_glib/test/test-dense-union-array.rb
b/c_glib/test/test-dense-union-array.rb
index ecd17d5a0a..b5eaa167b6 100644
--- a/c_glib/test/test-dense-union-array.rb
+++ b/c_glib/test/test-dense-union-array.rb
@@ -73,6 +73,18 @@ class TestDenseUnionArray < Test::Unit::TestCase
@array.value_data_type)
end
+ def test_type_code
+ assert_equal(11, @array.get_type_code(0))
+ end
+
+ def test_child_id
+ assert_equal(0, @array.get_child_id(0))
+ end
+
+ def test_value_offset
+ assert_equal(1, @array.get_value_offset(2))
+ end
+
def test_field
assert_equal([
build_int16_array([1, nil]),
diff --git a/c_glib/test/test-sparse-union-array.rb
b/c_glib/test/test-sparse-union-array.rb
index 1132ccb454..c52a99386b 100644
--- a/c_glib/test/test-sparse-union-array.rb
+++ b/c_glib/test/test-sparse-union-array.rb
@@ -71,6 +71,14 @@ class TestSparseUnionArray < Test::Unit::TestCase
@array.value_data_type)
end
+ def test_type_code
+ assert_equal(11, @array.get_type_code(0))
+ end
+
+ def test_child_id
+ assert_equal(0, @array.get_child_id(0))
+ end
+
def test_field
assert_equal([
build_int16_array([1, nil, nil, nil, 5]),
diff --git a/ruby/red-arrow/ext/arrow/converters.hpp
b/ruby/red-arrow/ext/arrow/converters.hpp
index 28955432a7..6406925ca0 100644
--- a/ruby/red-arrow/ext/arrow/converters.hpp
+++ b/ruby/red-arrow/ext/arrow/converters.hpp
@@ -685,25 +685,21 @@ namespace red_arrow {
private:
template <typename ArrayType>
inline void convert_value(const ArrayType& array) {
- auto result = rb_hash_new();
if (array.IsNull(index_)) {
- rb_hash_aset(result, field_name_, Qnil);
+ result_ = RUBY_Qnil;
} else {
- rb_hash_aset(result,
- field_name_,
- array_value_converter_->convert(array, index_));
+ result_ = array_value_converter_->convert(array, index_);
}
- result_ = result;
}
- uint8_t compute_field_index(const arrow::UnionArray& array,
- arrow::UnionType* type,
- const char* tag) {
+ int8_t compute_child_id(const arrow::UnionArray& array,
+ arrow::UnionType* type,
+ const char* tag) {
const auto type_code = array.raw_type_codes()[index_];
if (type_code >= 0 && type_code <= arrow::UnionType::kMaxTypeCode) {
- const auto field_id = type->child_ids()[type_code];
- if (field_id >= 0) {
- return field_id;
+ const auto child_id = type->child_ids()[type_code];
+ if (child_id >= 0) {
+ return child_id;
}
}
check_status(arrow::Status::Invalid("Unknown type ID: ", type_code),
@@ -715,36 +711,25 @@ namespace red_arrow {
const auto type =
std::static_pointer_cast<arrow::UnionType>(array.type()).get();
const auto tag = "[raw-records][union-sparse-array]";
- const auto index = compute_field_index(array, type, tag);
- const auto field = type->field(index).get();
- const auto& field_name = field->name();
- const auto field_name_keep = field_name_;
- field_name_ = rb_utf8_str_new(field_name.data(), field_name.length());
- const auto field_array = array.field(index).get();
+ const auto child_id = compute_child_id(array, type, tag);
+ const auto field_array = array.field(child_id).get();
check_status(field_array->Accept(this), tag);
- field_name_ = field_name_keep;
}
void convert_dense(const arrow::DenseUnionArray& array) {
const auto type =
std::static_pointer_cast<arrow::UnionType>(array.type()).get();
const auto tag = "[raw-records][union-dense-array]";
- const auto index = compute_field_index(array, type, tag);
- const auto field = type->field(index).get();
- const auto& field_name = field->name();
- const auto field_name_keep = field_name_;
- field_name_ = rb_utf8_str_new(field_name.data(), field_name.length());
- const auto field_array = array.field(index);
+ const auto child_id = compute_child_id(array, type, tag);
+ const auto field_array = array.field(child_id);
const auto index_keep = index_;
index_ = array.value_offset(index_);
check_status(field_array->Accept(this), tag);
index_ = index_keep;
- field_name_ = field_name_keep;
}
ArrayValueConverter* array_value_converter_;
int64_t index_;
- VALUE field_name_;
VALUE result_;
};
diff --git a/ruby/red-arrow/test/test-dense-union-data-type.rb
b/ruby/red-arrow/lib/arrow/dense-union-array.rb
similarity index 54%
copy from ruby/red-arrow/test/test-dense-union-data-type.rb
copy to ruby/red-arrow/lib/arrow/dense-union-array.rb
index d8da6f7729..07b2bbfce6 100644
--- a/ruby/red-arrow/test/test-dense-union-data-type.rb
+++ b/ruby/red-arrow/lib/arrow/dense-union-array.rb
@@ -15,27 +15,12 @@
# specific language governing permissions and limitations
# under the License.
-class DenseUnionDataTypeTest < Test::Unit::TestCase
- sub_test_case(".new") do
- def setup
- @fields = [
- Arrow::Field.new("visible", :boolean),
- {
- name: "count",
- type: :int32,
- },
- ]
- end
-
- test("ordered arguments") do
- assert_equal("dense_union<visible: bool=2, count: int32=9>",
- Arrow::DenseUnionDataType.new(@fields, [2, 9]).to_s)
- end
-
- test("description") do
- assert_equal("dense_union<visible: bool=2, count: int32=9>",
- Arrow::DenseUnionDataType.new(fields: @fields,
- type_codes: [2, 9]).to_s)
+module Arrow
+ class DenseUnionArray
+ def get_value(i)
+ child_id = get_child_id(i)
+ field = get_field(child_id)
+ field[get_value_offset(i)]
end
end
end
diff --git a/ruby/red-arrow/lib/arrow/loader.rb
b/ruby/red-arrow/lib/arrow/loader.rb
index 71fbd9e57e..200b4b6d65 100644
--- a/ruby/red-arrow/lib/arrow/loader.rb
+++ b/ruby/red-arrow/lib/arrow/loader.rb
@@ -70,6 +70,7 @@ module Arrow
require "arrow/decimal256-array"
require "arrow/decimal256-array-builder"
require "arrow/decimal256-data-type"
+ require "arrow/dense-union-array"
require "arrow/dense-union-data-type"
require "arrow/dictionary-array"
require "arrow/dictionary-data-type"
@@ -109,6 +110,7 @@ module Arrow
require "arrow/sort-key"
require "arrow/sort-options"
require "arrow/source-node-options"
+ require "arrow/sparse-union-array"
require "arrow/sparse-union-data-type"
require "arrow/string-dictionary-array-builder"
require "arrow/string-array-builder"
diff --git a/ruby/red-arrow/test/test-dense-union-data-type.rb
b/ruby/red-arrow/lib/arrow/sparse-union-array.rb
similarity index 54%
copy from ruby/red-arrow/test/test-dense-union-data-type.rb
copy to ruby/red-arrow/lib/arrow/sparse-union-array.rb
index d8da6f7729..783493f6b6 100644
--- a/ruby/red-arrow/test/test-dense-union-data-type.rb
+++ b/ruby/red-arrow/lib/arrow/sparse-union-array.rb
@@ -15,27 +15,12 @@
# specific language governing permissions and limitations
# under the License.
-class DenseUnionDataTypeTest < Test::Unit::TestCase
- sub_test_case(".new") do
- def setup
- @fields = [
- Arrow::Field.new("visible", :boolean),
- {
- name: "count",
- type: :int32,
- },
- ]
- end
-
- test("ordered arguments") do
- assert_equal("dense_union<visible: bool=2, count: int32=9>",
- Arrow::DenseUnionDataType.new(@fields, [2, 9]).to_s)
- end
-
- test("description") do
- assert_equal("dense_union<visible: bool=2, count: int32=9>",
- Arrow::DenseUnionDataType.new(fields: @fields,
- type_codes: [2, 9]).to_s)
+module Arrow
+ class SparseUnionArray
+ def get_value(i)
+ child_id = get_child_id(i)
+ field = get_field(child_id)
+ field[i]
end
end
end
diff --git a/ruby/red-arrow/test/raw-records/test-dense-union-array.rb
b/ruby/red-arrow/test/raw-records/test-dense-union-array.rb
index 180ed1a6a9..c5b58d8ac5 100644
--- a/ruby/red-arrow/test/raw-records/test-dense-union-array.rb
+++ b/ruby/red-arrow/test/raw-records/test-dense-union-array.rb
@@ -76,12 +76,21 @@ module RawRecordsDenseUnionArrayTests
[union_array])
end
+ def remove_field_names(records)
+ records.collect do |record|
+ record.collect do |column|
+ column.values[0]
+ end
+ end
+ end
+
def test_null
records = [
[{"0" => nil}],
]
target = build(:null, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_boolean
@@ -90,7 +99,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:boolean, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_int8
@@ -99,7 +109,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:int8, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_uint8
@@ -108,7 +119,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:uint8, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_int16
@@ -117,7 +129,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:int16, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_uint16
@@ -126,7 +139,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:uint16, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_int32
@@ -135,7 +149,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:int32, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_uint32
@@ -144,7 +159,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:uint32, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_int64
@@ -153,7 +169,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:int64, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_uint64
@@ -162,7 +179,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:uint64, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_float
@@ -171,7 +189,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:float, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_double
@@ -180,7 +199,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:double, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_binary
@@ -189,7 +209,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:binary, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_string
@@ -198,7 +219,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:string, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_date32
@@ -207,7 +229,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:date32, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_date64
@@ -216,7 +239,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:date64, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_timestamp_second
@@ -229,7 +253,8 @@ module RawRecordsDenseUnionArrayTests
unit: :second,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_timestamp_milli
@@ -242,7 +267,8 @@ module RawRecordsDenseUnionArrayTests
unit: :milli,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_timestamp_micro
@@ -255,7 +281,8 @@ module RawRecordsDenseUnionArrayTests
unit: :micro,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_timestamp_nano
@@ -268,7 +295,8 @@ module RawRecordsDenseUnionArrayTests
unit: :nano,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_time32_second
@@ -283,7 +311,8 @@ module RawRecordsDenseUnionArrayTests
unit: :second,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_time32_milli
@@ -298,7 +327,8 @@ module RawRecordsDenseUnionArrayTests
unit: :milli,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_time64_micro
@@ -313,7 +343,8 @@ module RawRecordsDenseUnionArrayTests
unit: :micro,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_time64_nano
@@ -328,7 +359,8 @@ module RawRecordsDenseUnionArrayTests
unit: :nano,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_decimal128
@@ -342,7 +374,8 @@ module RawRecordsDenseUnionArrayTests
scale: 2,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_decimal256
@@ -356,7 +389,8 @@ module RawRecordsDenseUnionArrayTests
scale: 2,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_month_interval
@@ -365,7 +399,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:month_interval, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_day_time_interval
@@ -374,7 +409,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:day_time_interval, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_month_day_nano_interval
@@ -383,7 +419,8 @@ module RawRecordsDenseUnionArrayTests
[{"1" => nil}],
]
target = build(:month_day_nano_interval, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_list
@@ -399,7 +436,8 @@ module RawRecordsDenseUnionArrayTests
},
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_struct
@@ -418,7 +456,8 @@ module RawRecordsDenseUnionArrayTests
],
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_map
@@ -432,7 +471,8 @@ module RawRecordsDenseUnionArrayTests
item: :boolean,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_sparse_union
@@ -457,7 +497,8 @@ module RawRecordsDenseUnionArrayTests
type_codes: [0, 1],
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_dense_union
@@ -482,7 +523,8 @@ module RawRecordsDenseUnionArrayTests
type_codes: [0, 1],
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_dictionary
@@ -500,7 +542,8 @@ module RawRecordsDenseUnionArrayTests
ordered: true,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
end
diff --git a/ruby/red-arrow/test/raw-records/test-sparse-union-array.rb
b/ruby/red-arrow/test/raw-records/test-sparse-union-array.rb
index 16e75834ca..246011021e 100644
--- a/ruby/red-arrow/test/raw-records/test-sparse-union-array.rb
+++ b/ruby/red-arrow/test/raw-records/test-sparse-union-array.rb
@@ -66,12 +66,21 @@ module RawRecordsSparseUnionArrayTests
[union_array])
end
+ def remove_field_names(records)
+ records.collect do |record|
+ record.collect do |column|
+ column.values[0]
+ end
+ end
+ end
+
def test_null
records = [
[{"0" => nil}],
]
target = build(:null, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_boolean
@@ -80,7 +89,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:boolean, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_int8
@@ -89,7 +99,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:int8, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_uint8
@@ -98,7 +109,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:uint8, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_int16
@@ -107,7 +119,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:int16, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_uint16
@@ -116,7 +129,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:uint16, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_int32
@@ -125,7 +139,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:int32, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_uint32
@@ -134,7 +149,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:uint32, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_int64
@@ -143,7 +159,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:int64, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_uint64
@@ -152,7 +169,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:uint64, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_float
@@ -161,7 +179,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:float, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_double
@@ -170,7 +189,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:double, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_binary
@@ -179,7 +199,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:binary, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_string
@@ -188,7 +209,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:string, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_date32
@@ -197,7 +219,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:date32, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_date64
@@ -206,7 +229,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:date64, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_timestamp_second
@@ -219,7 +243,8 @@ module RawRecordsSparseUnionArrayTests
unit: :second,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_timestamp_milli
@@ -232,7 +257,8 @@ module RawRecordsSparseUnionArrayTests
unit: :milli,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_timestamp_micro
@@ -245,7 +271,8 @@ module RawRecordsSparseUnionArrayTests
unit: :micro,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_timestamp_nano
@@ -258,7 +285,8 @@ module RawRecordsSparseUnionArrayTests
unit: :nano,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_time32_second
@@ -273,7 +301,8 @@ module RawRecordsSparseUnionArrayTests
unit: :second,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_time32_milli
@@ -288,7 +317,8 @@ module RawRecordsSparseUnionArrayTests
unit: :milli,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_time64_micro
@@ -303,7 +333,8 @@ module RawRecordsSparseUnionArrayTests
unit: :micro,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_time64_nano
@@ -318,7 +349,8 @@ module RawRecordsSparseUnionArrayTests
unit: :nano,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_decimal128
@@ -332,7 +364,8 @@ module RawRecordsSparseUnionArrayTests
scale: 2,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_decimal256
@@ -346,7 +379,8 @@ module RawRecordsSparseUnionArrayTests
scale: 2,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_month_interval
@@ -355,7 +389,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:month_interval, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_day_time_interval
@@ -364,7 +399,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:day_time_interval, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_month_day_nano_interval
@@ -373,7 +409,8 @@ module RawRecordsSparseUnionArrayTests
[{"1" => nil}],
]
target = build(:month_day_nano_interval, records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_list
@@ -389,7 +426,8 @@ module RawRecordsSparseUnionArrayTests
},
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_struct
@@ -408,7 +446,8 @@ module RawRecordsSparseUnionArrayTests
],
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_map
@@ -422,7 +461,8 @@ module RawRecordsSparseUnionArrayTests
item: :boolean,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_sparse_union
@@ -447,7 +487,8 @@ module RawRecordsSparseUnionArrayTests
type_codes: [0, 1],
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_dense_union
@@ -472,7 +513,8 @@ module RawRecordsSparseUnionArrayTests
type_codes: [0, 1],
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
def test_dictionary
@@ -490,7 +532,8 @@ module RawRecordsSparseUnionArrayTests
ordered: true,
},
records)
- assert_equal(records, target.raw_records)
+ assert_equal(remove_field_names(records),
+ target.raw_records)
end
end
diff --git a/ruby/red-arrow/test/test-dense-union-array.rb
b/ruby/red-arrow/test/test-dense-union-array.rb
new file mode 100644
index 0000000000..36a0a64b62
--- /dev/null
+++ b/ruby/red-arrow/test/test-dense-union-array.rb
@@ -0,0 +1,42 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+class DenseUnionArrayTest < Test::Unit::TestCase
+ def setup
+ data_type_fields = [
+ Arrow::Field.new("number", :int16),
+ Arrow::Field.new("text", :string),
+ ]
+ type_codes = [11, 13]
+ @data_type = Arrow::DenseUnionDataType.new(data_type_fields, type_codes)
+ type_ids = Arrow::Int8Array.new([11, 13, 11, 13, 13])
+ value_offsets = Arrow::Int32Array.new([0, 0, 1, 1, 2])
+ fields = [
+ Arrow::Int16Array.new([1, nil]),
+ Arrow::StringArray.new(["a", "b", "c"])
+ ]
+ @array = Arrow::DenseUnionArray.new(@data_type,
+ type_ids,
+ value_offsets,
+ fields)
+ end
+
+ def test_get_value
+ assert_equal([1, "a", nil, "b", "c"],
+ @array.length.times.collect {|i| @array[i]})
+ end
+end
diff --git a/ruby/red-arrow/test/test-dense-union-data-type.rb
b/ruby/red-arrow/test/test-dense-union-data-type.rb
index d8da6f7729..cc191efa33 100644
--- a/ruby/red-arrow/test/test-dense-union-data-type.rb
+++ b/ruby/red-arrow/test/test-dense-union-data-type.rb
@@ -35,7 +35,7 @@ class DenseUnionDataTypeTest < Test::Unit::TestCase
test("description") do
assert_equal("dense_union<visible: bool=2, count: int32=9>",
Arrow::DenseUnionDataType.new(fields: @fields,
- type_codes: [2, 9]).to_s)
+ type_codes: [2, 9]).to_s)
end
end
end
diff --git a/ruby/red-arrow/test/test-dense-union-data-type.rb
b/ruby/red-arrow/test/test-sparse-union-array.rb
similarity index 54%
copy from ruby/red-arrow/test/test-dense-union-data-type.rb
copy to ruby/red-arrow/test/test-sparse-union-array.rb
index d8da6f7729..bd1f9ec5c4 100644
--- a/ruby/red-arrow/test/test-dense-union-data-type.rb
+++ b/ruby/red-arrow/test/test-sparse-union-array.rb
@@ -15,27 +15,24 @@
# specific language governing permissions and limitations
# under the License.
-class DenseUnionDataTypeTest < Test::Unit::TestCase
- sub_test_case(".new") do
- def setup
- @fields = [
- Arrow::Field.new("visible", :boolean),
- {
- name: "count",
- type: :int32,
- },
- ]
- end
-
- test("ordered arguments") do
- assert_equal("dense_union<visible: bool=2, count: int32=9>",
- Arrow::DenseUnionDataType.new(@fields, [2, 9]).to_s)
- end
+class SparseUnionArrayTest < Test::Unit::TestCase
+ def setup
+ data_type_fields = [
+ Arrow::Field.new("number", :int16),
+ Arrow::Field.new("text", :string),
+ ]
+ type_codes = [11, 13]
+ @data_type = Arrow::SparseUnionDataType.new(data_type_fields, type_codes)
+ type_ids = Arrow::Int8Array.new([11, 13, 11, 13, 11])
+ fields = [
+ Arrow::Int16Array.new([1, nil, nil, nil, 5]),
+ Arrow::StringArray.new([nil, "b", nil, "d", nil]),
+ ]
+ @array = Arrow::SparseUnionArray.new(@data_type, type_ids, fields)
+ end
- test("description") do
- assert_equal("dense_union<visible: bool=2, count: int32=9>",
- Arrow::DenseUnionDataType.new(fields: @fields,
- type_codes: [2, 9]).to_s)
- end
+ def test_get_value
+ assert_equal([1, "b", nil, "d", 5],
+ @array.length.times.collect {|i| @array[i]})
end
end
diff --git a/ruby/red-arrow/test/values/test-dense-union-array.rb
b/ruby/red-arrow/test/values/test-dense-union-array.rb
index a5cb51d4bf..5f8469d72e 100644
--- a/ruby/red-arrow/test/values/test-dense-union-array.rb
+++ b/ruby/red-arrow/test/values/test-dense-union-array.rb
@@ -64,12 +64,19 @@ module ValuesDenseUnionArrayTests
arrays)
end
+ def remove_field_names(values)
+ values.collect do |value|
+ value.values[0]
+ end
+ end
+
def test_null
values = [
{"0" => nil},
]
target = build(:null, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_boolean
@@ -78,7 +85,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:boolean, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_int8
@@ -87,7 +95,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:int8, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_uint8
@@ -96,7 +105,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:uint8, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_int16
@@ -105,7 +115,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:int16, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_uint16
@@ -114,7 +125,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:uint16, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_int32
@@ -123,7 +135,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:int32, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_uint32
@@ -132,7 +145,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:uint32, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_int64
@@ -141,7 +155,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:int64, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_uint64
@@ -150,7 +165,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:uint64, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_float
@@ -159,7 +175,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:float, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_double
@@ -168,7 +185,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:double, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_binary
@@ -177,7 +195,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:binary, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_string
@@ -186,7 +205,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:string, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_date32
@@ -195,7 +215,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:date32, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_date64
@@ -204,7 +225,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:date64, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_timestamp_second
@@ -217,7 +239,8 @@ module ValuesDenseUnionArrayTests
unit: :second,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_timestamp_milli
@@ -230,7 +253,8 @@ module ValuesDenseUnionArrayTests
unit: :milli,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_timestamp_micro
@@ -243,7 +267,8 @@ module ValuesDenseUnionArrayTests
unit: :micro,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_timestamp_nano
@@ -256,7 +281,8 @@ module ValuesDenseUnionArrayTests
unit: :nano,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_time32_second
@@ -271,7 +297,8 @@ module ValuesDenseUnionArrayTests
unit: :second,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_time32_milli
@@ -286,7 +313,8 @@ module ValuesDenseUnionArrayTests
unit: :milli,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_time64_micro
@@ -301,7 +329,8 @@ module ValuesDenseUnionArrayTests
unit: :micro,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_time64_nano
@@ -316,7 +345,8 @@ module ValuesDenseUnionArrayTests
unit: :nano,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_decimal128
@@ -330,7 +360,8 @@ module ValuesDenseUnionArrayTests
scale: 2,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_decimal256
@@ -344,7 +375,8 @@ module ValuesDenseUnionArrayTests
scale: 2,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_month_interval
@@ -353,7 +385,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:month_interval, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_day_time_interval
@@ -362,7 +395,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:day_time_interval, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_month_day_nano_interval
@@ -371,7 +405,8 @@ module ValuesDenseUnionArrayTests
{"1" => nil},
]
target = build(:month_day_nano_interval, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_list
@@ -387,7 +422,8 @@ module ValuesDenseUnionArrayTests
},
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_struct
@@ -406,7 +442,8 @@ module ValuesDenseUnionArrayTests
],
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_map
@@ -420,7 +457,8 @@ module ValuesDenseUnionArrayTests
item: :boolean,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_sparse_union
@@ -445,7 +483,8 @@ module ValuesDenseUnionArrayTests
type_codes: [0, 1],
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_dense_union
@@ -470,7 +509,8 @@ module ValuesDenseUnionArrayTests
type_codes: [0, 1],
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_dictionary
@@ -488,7 +528,8 @@ module ValuesDenseUnionArrayTests
ordered: true,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
end
diff --git a/ruby/red-arrow/test/values/test-sparse-union-array.rb
b/ruby/red-arrow/test/values/test-sparse-union-array.rb
index 932b1b40c0..f0af4e22e9 100644
--- a/ruby/red-arrow/test/values/test-sparse-union-array.rb
+++ b/ruby/red-arrow/test/values/test-sparse-union-array.rb
@@ -55,12 +55,19 @@ module ValuesSparseUnionArrayTests
arrays)
end
+ def remove_field_names(values)
+ values.collect do |value|
+ value.values[0]
+ end
+ end
+
def test_null
values = [
{"0" => nil},
]
target = build(:null, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_boolean
@@ -69,7 +76,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:boolean, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_int8
@@ -78,7 +86,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:int8, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_uint8
@@ -87,7 +96,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:uint8, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_int16
@@ -96,7 +106,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:int16, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_uint16
@@ -105,7 +116,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:uint16, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_int32
@@ -114,7 +126,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:int32, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_uint32
@@ -123,7 +136,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:uint32, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_int64
@@ -132,7 +146,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:int64, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_uint64
@@ -141,7 +156,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:uint64, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_float
@@ -150,7 +166,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:float, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_double
@@ -159,7 +176,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:double, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_binary
@@ -168,7 +186,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:binary, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_string
@@ -177,7 +196,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:string, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_date32
@@ -186,7 +206,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:date32, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_date64
@@ -195,7 +216,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:date64, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_timestamp_second
@@ -208,7 +230,8 @@ module ValuesSparseUnionArrayTests
unit: :second,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_timestamp_milli
@@ -221,7 +244,8 @@ module ValuesSparseUnionArrayTests
unit: :milli,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_timestamp_micro
@@ -234,7 +258,8 @@ module ValuesSparseUnionArrayTests
unit: :micro,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_timestamp_nano
@@ -247,7 +272,8 @@ module ValuesSparseUnionArrayTests
unit: :nano,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_time32_second
@@ -262,7 +288,8 @@ module ValuesSparseUnionArrayTests
unit: :second,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_time32_milli
@@ -277,7 +304,8 @@ module ValuesSparseUnionArrayTests
unit: :milli,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_time64_micro
@@ -292,7 +320,8 @@ module ValuesSparseUnionArrayTests
unit: :micro,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_time64_nano
@@ -307,7 +336,8 @@ module ValuesSparseUnionArrayTests
unit: :nano,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_decimal128
@@ -321,7 +351,8 @@ module ValuesSparseUnionArrayTests
scale: 2,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_month_interval
@@ -330,7 +361,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:month_interval, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_day_time_interval
@@ -339,7 +371,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:day_time_interval, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_month_day_nano_interval
@@ -348,7 +381,8 @@ module ValuesSparseUnionArrayTests
{"1" => nil},
]
target = build(:month_day_nano_interval, values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_decimal256
@@ -362,7 +396,8 @@ module ValuesSparseUnionArrayTests
scale: 2,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_list
@@ -378,7 +413,8 @@ module ValuesSparseUnionArrayTests
},
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_struct
@@ -397,7 +433,8 @@ module ValuesSparseUnionArrayTests
],
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_map
@@ -411,7 +448,8 @@ module ValuesSparseUnionArrayTests
item: :boolean,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_sparse_union
@@ -436,7 +474,8 @@ module ValuesSparseUnionArrayTests
type_codes: [0, 1],
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_dense_union
@@ -461,7 +500,8 @@ module ValuesSparseUnionArrayTests
type_codes: [0, 1],
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
def test_dictionary
@@ -479,7 +519,8 @@ module ValuesSparseUnionArrayTests
ordered: true,
},
values)
- assert_equal(values, target.values)
+ assert_equal(remove_field_names(values),
+ target.values)
end
end