diff options
Diffstat (limited to 'src/arrow/julia/Arrow/test/dates.jl')
-rw-r--r-- | src/arrow/julia/Arrow/test/dates.jl | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/arrow/julia/Arrow/test/dates.jl b/src/arrow/julia/Arrow/test/dates.jl new file mode 100644 index 000000000..028e0cc27 --- /dev/null +++ b/src/arrow/julia/Arrow/test/dates.jl @@ -0,0 +1,61 @@ +# 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. + +import Dates +import TimeZones + +struct WrappedDate + x::Dates.Date +end +Arrow.ArrowTypes.registertype!(WrappedDate, WrappedDate) + +struct WrappedTime + x::Dates.Time +end +Arrow.ArrowTypes.registertype!(WrappedTime, WrappedTime) + +struct WrappedDateTime + x::Dates.DateTime +end +Arrow.ArrowTypes.registertype!(WrappedDateTime, WrappedDateTime) + +struct WrappedZonedDateTime + x::TimeZones.ZonedDateTime +end +Arrow.ArrowTypes.registertype!(WrappedZonedDateTime, WrappedZonedDateTime) + + +@testset "Date and time wrappers with missing" begin + for T in (WrappedDate, WrappedTime, WrappedDateTime, WrappedZonedDateTime) + if T == WrappedZonedDateTime + time = T(Dates.now(TimeZones.tz"UTC")) + else + time = T(Dates.now()) + end + table = (; x = [missing, missing, time, missing, time]) + io = IOBuffer() + Arrow.write(io, table) + seekstart(io) + tbl = Arrow.Table(io) + @test isequal(collect(tbl.x), table.x) + end +end + +@testset "`default(T) isa T`" begin + for T in (Dates.Date, Dates.Time, Dates.DateTime, TimeZones.ZonedDateTime, Dates.Nanosecond, Dates.Millisecond, Dates.Second, Dates.Day, Dates.Month, Dates.Year) + @test Arrow.ArrowTypes.default(T) isa T + end +end |