|
144 | 144 | @test ArrowTypes.default(Tuple{Vararg{Int}}) == () |
145 | 145 | @test ArrowTypes.default(Tuple{String,Vararg{Int}}) == ("",) |
146 | 146 |
|
| 147 | + z = 1.0 + 2.0im |
| 148 | + @test ArrowTypes.ArrowKind(typeof(z)) == ArrowTypes.StructKind() |
| 149 | + @test ArrowTypes.arrowname(typeof(z)) == ArrowTypes.COMPLEX |
| 150 | + @test ArrowTypes.arrowname(Union{Missing,typeof(z)}) == ArrowTypes.COMPLEX |
| 151 | + @test ArrowTypes.JuliaType( |
| 152 | + Val(ArrowTypes.COMPLEX), |
| 153 | + NamedTuple{(:re, :im),Tuple{Float64,Float64}}, |
| 154 | + ) == ComplexF64 |
| 155 | + @test ArrowTypes.fromarrowstruct(ComplexF64, Val((:re, :im)), 1.0, 2.0) == z |
| 156 | + @test ArrowTypes.fromarrowstruct(ComplexF64, Val((:im, :re)), 2.0, 1.0) == z |
| 157 | + |
147 | 158 | v = v"1" |
148 | 159 | v_nt = (major=1, minor=0, patch=0, prerelease=(), build=()) |
149 | 160 | @test ArrowTypes.ArrowKind(VersionNumber) == ArrowTypes.StructKind() |
|
167 | 178 |
|
168 | 179 | @test ArrowTypes.promoteunion(Int, Float64) == Float64 |
169 | 180 | @test ArrowTypes.promoteunion(Int, String) == Union{Int,String} |
| 181 | + @test ArrowTypes.promoteunion(Int, Int) == Int |
170 | 182 |
|
171 | 183 | @test ArrowTypes.concrete_or_concreteunion(Int) |
172 | 184 | @test !ArrowTypes.concrete_or_concreteunion(Union{Real,String}) |
|
219 | 231 | T = Union{DateTimeTZ,Missing} |
220 | 232 | @test !ArrowTypes.concrete_or_concreteunion(ArrowTypes.ArrowType(T)) |
221 | 233 | @test eltype(ArrowTypes.ToArrow(T[missing])) == Union{Timestamp{:UTC},Missing} |
| 234 | + @test eltype(ArrowTypes.ToArrow(DateTimeTZ[DateTimeTZ(1, "UTC"), DateTimeTZ(2, "UTC")])) == |
| 235 | + Timestamp{:UTC} |
| 236 | + @test eltype(ArrowTypes.ToArrow(DateTimeTZ[DateTimeTZ(1, "UTC"), DateTimeTZ(2, "PST")])) == |
| 237 | + Timestamp |
| 238 | + @test eltype(ArrowTypes.ToArrow(Any[DateTimeTZ(1, "UTC"), DateTimeTZ(2, "UTC")])) == |
| 239 | + Timestamp{:UTC} |
222 | 240 |
|
223 | 241 | # Works since `ArrowTypes.default(Any) === nothing` and |
224 | 242 | # `ArrowTypes.toarrow(nothing) === missing`. Defining `toarrow(::Nothing) = nothing` |
|
0 commit comments