From 72d51a5dad2a02721242c31859dbf3a03278f803 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Fri, 7 Jul 2023 12:37:29 -0400 Subject: [PATCH] Fixed Array test --- lib/polars/data_types.rb | 4 ++-- lib/polars/series.rb | 6 +++++- test/types_test.rb | 2 -- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/polars/data_types.rb b/lib/polars/data_types.rb index caf186b244..fbb400caa0 100644 --- a/lib/polars/data_types.rb +++ b/lib/polars/data_types.rb @@ -227,9 +227,9 @@ def to_s class Array < NestedType attr_reader :width, :inner - def initialize(width, inner) + def initialize(width, inner = nil) @width = width - @inner = Utils.rb_type_to_dtype(inner) + @inner = Utils.rb_type_to_dtype(inner) if inner end # TODO check width? diff --git a/lib/polars/series.rb b/lib/polars/series.rb index df4f2d0ebe..dbc71bf707 100644 --- a/lib/polars/series.rb +++ b/lib/polars/series.rb @@ -3846,6 +3846,10 @@ def sequence_to_rbseries(name, values, dtype: nil, strict: true, dtype_if_empty: end if !dtype.nil? && ![List, Unknown].include?(dtype) && Utils.is_polars_dtype(dtype) && ruby_dtype.nil? + if dtype == Array && !dtype.is_a?(Array) && value.is_a?(::Array) + dtype = Array.new(value.size) + end + constructor = polars_type_to_constructor(dtype) rbseries = constructor.call(name, values, strict) @@ -3966,7 +3970,7 @@ def sequence_from_anyvalue_or_object(name, values) } def polars_type_to_constructor(dtype) - if dtype == Array || dtype.is_a?(Array) + if dtype.is_a?(Array) lambda do |name, values, strict| RbSeries.new_array(dtype.width, dtype.inner, name, values, strict) end diff --git a/test/types_test.rb b/test/types_test.rb index eddb4afa3d..c619ceb282 100644 --- a/test/types_test.rb +++ b/test/types_test.rb @@ -129,8 +129,6 @@ def test_series_dtype_list_dtype end def test_series_dtype_array - skip # TODO fix - s = Polars::Series.new([[1, 2], [3, 4]], dtype: Polars::Array) assert_series [[1, 2], [3, 4]], s, dtype: Polars::Array.new(2, Polars::Int64) end