@@ -185,14 +185,21 @@ end
185185 @test ! ArrowTypes. concrete_or_concreteunion (Any)
186186
187187 @testset " ToArrow" begin
188+ @test ! ArrowTypes. _hasoffsetaxes ([1 , 2 , 3 ])
189+ @test ArrowTypes. _offsetshift ([1 , 2 , 3 ]) == 0
190+
188191 x = ArrowTypes. ToArrow ([1 , 2 , 3 ])
189192 @test x isa Vector{Int}
190193 @test x == [1 , 2 , 3 ]
191194
195+ baseview = @view [1 , 2 , 3 ][1 : 3 ]
196+ x = ArrowTypes. ToArrow (baseview)
197+ @test x === baseview
198+
192199 x = ArrowTypes. ToArrow ([:hey , :ho ])
193200 @test x isa ArrowTypes. ToArrow{String,Vector{Symbol}}
194201 @test eltype (x) == String
195- @test getfield (x, :needsconvert )
202+ @test ArrowTypes . _needsconvert (x )
196203 @test x[1 ] == " hey"
197204 @test collect (x) == [" hey" , " ho" ]
198205 @test x == [" hey" , " ho" ]
@@ -203,32 +210,54 @@ end
203210 @test collect (x) == [1.0 , 3.14 ]
204211 @test x == [1.0 , 3.14 ]
205212
213+ x = ArrowTypes. ToArrow (Any[UUID (UInt128 (1 )), UUID (UInt128 (2 ))])
214+ @test x isa ArrowTypes. ToArrow{NTuple{16 ,UInt8},Vector{Any}}
215+ @test eltype (x) == NTuple{16 ,UInt8}
216+ @test collect (x) == [ArrowTypes. toarrow (UUID (UInt128 (1 ))), ArrowTypes. toarrow (UUID (UInt128 (2 )))]
217+
218+ x = ArrowTypes. ToArrow (Any[missing , UUID (UInt128 (1 ))])
219+ @test x isa ArrowTypes. ToArrow{Union{Missing,NTuple{16 ,UInt8}},Vector{Any}}
220+ @test eltype (x) == Union{Missing,NTuple{16 ,UInt8}}
221+ @test isequal (collect (x), Union{Missing,NTuple{16 ,UInt8}}[missing , ArrowTypes. toarrow (UUID (UInt128 (1 )))])
222+
206223 x = ArrowTypes. ToArrow (Any[1 , 3.14 , " hey" ])
207224 @test x isa ArrowTypes. ToArrow{Union{Float64,String},Vector{Any}}
208225 @test eltype (x) == Union{Float64,String}
209226 @test collect (x) == Union{Float64,String}[1.0 , 3.14 , " hey" ]
210227 @test x == [1.0 , 3.14 , " hey" ]
211228
229+ x = ArrowTypes. ToArrow (Any[UUID (UInt128 (1 )), " tail" ])
230+ @test x isa ArrowTypes. ToArrow{Union{NTuple{16 ,UInt8},String},Vector{Any}}
231+ @test eltype (x) == Union{NTuple{16 ,UInt8},String}
232+ @test collect (x) == Union{NTuple{16 ,UInt8},String}[ArrowTypes. toarrow (UUID (UInt128 (1 ))), " tail" ]
233+
212234 x = ArrowTypes. ToArrow (OffsetArray ([1 , 2 , 3 ], - 3 : - 1 ))
213235 @test x isa ArrowTypes. ToArrow{Int,OffsetVector{Int,Vector{Int}}}
236+ @test ArrowTypes. _hasoffsetaxes (getfield (x, :data ))
237+ @test getfield (x, :offset ) == ArrowTypes. _offsetshift (getfield (x, :data ))
238+ @test ArrowTypes. _sourcedata (x) === getfield (x, :data )
239+ @test ArrowTypes. _sourceoffset (x) == getfield (x, :offset )
240+ @test ! ArrowTypes. _needsconvert (x)
241+ @test ArrowTypes. _sourcevalue (x, 1 ) == 1
214242 @test eltype (x) == Int
215- @test ! getfield (x, :needsconvert )
216243 @test x[1 ] == 1
217244 @test x[3 ] == 3
218245 @test collect (x) == [1 , 2 , 3 ]
219246 @test x == [1 , 2 , 3 ]
220247
221248 x = ArrowTypes. ToArrow (OffsetArray (Union{Missing,Int}[1 , missing ], - 3 : - 2 ))
222249 @test x isa ArrowTypes. ToArrow{Union{Missing,Int},OffsetVector{Union{Missing,Int},Vector{Union{Missing,Int}}}}
223- @test ! getfield (x, :needsconvert )
250+ @test ! ArrowTypes . _needsconvert (x )
224251 @test x[1 ] == 1
225252 @test x[2 ] === missing
226253 @test isequal (collect (x), Union{Missing,Int}[1 , missing ])
227254
228255 x = ArrowTypes. ToArrow (OffsetArray (Any[1 , 3.14 ], - 3 : - 2 ))
229256 @test x isa ArrowTypes. ToArrow{Float64,OffsetVector{Any,Vector{Any}}}
257+ @test getfield (x, :offset ) == ArrowTypes. _offsetshift (getfield (x, :data ))
258+ @test ArrowTypes. _sourcevalue (x, 2 ) == 3.14
230259 @test eltype (x) == Float64
231- @test getfield (x, :needsconvert )
260+ @test ArrowTypes . _needsconvert (x )
232261 @test x[1 ] == 1
233262 @test x[2 ] == 3.14
234263 @test collect (x) == [1.0 , 3.14 ]
0 commit comments