Skip to content

Commit 0e37bc2

Browse files
more tests
1 parent 7a35bd3 commit 0e37bc2

File tree

1 file changed

+56
-18
lines changed

1 file changed

+56
-18
lines changed

test/test_scaling.jl

Lines changed: 56 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,67 @@ struct MemoryDataset <: CDM.AbstractDataset
5050
unlimited::Vector{String}
5151
end
5252

53-
data = rand(-100:100,30,31)
54-
mv = MemoryVariable("data",["lon","lat"], data, OrderedDict{String,Any}(
55-
"units" => "days since 2000-01-01"))
56-
5753
Base.getindex(v::MemoryVariable,ij...) = v.data[ij...]
5854
Base.setindex!(v::MemoryVariable,data,ij...) = v.data[ij...] = data
5955
CDM.name(v::MemoryVariable) = v.name
6056
CDM.dimnames(v::MemoryVariable) = v.dimnames
6157
Base.size(v::MemoryVariable) = size(v.data)
6258

59+
import Base
60+
Base.keys(md::MemoryDataset) = keys(md.variables)
61+
CDM.variable(md::MemoryDataset,varname::AbstractString) = md.variables[varname]
62+
Base.getindex(md::MemoryDataset,varname::AbstractString) = CDM.cfvariable(md,varname)
63+
CDM.dimnames(md::MemoryDataset) = keys(md.dim)
64+
CDM.dim(md::MemoryDataset,name::AbstractString) = md.dim[name]
65+
CDM.attribnames(md::Union{MemoryDataset,MemoryVariable}) = keys(md.attrib)
66+
CDM.attrib(md::Union{MemoryDataset,MemoryVariable},name::AbstractString) = md.attrib[name]
67+
68+
69+
for sample_data = ( -100:100,
70+
'a':'z',
71+
["AB","CD","EF"],
72+
[NaN; 1:10],
73+
)
74+
local io
75+
local data
76+
local fill_value, mv, md
77+
78+
fill_value = sample_data[1]
79+
data = rand(sample_data[2:end],30,31)
80+
81+
mv = MemoryVariable("data",["lon","lat"], data, OrderedDict{String,Any}(
82+
"_FillValue" => fill_value))
83+
84+
@test "lon" in CDM.dimnames(mv)
85+
@test CDM.name(mv) == "data"
86+
87+
md = MemoryDataset(
88+
OrderedDict{String,Int}(
89+
"lon" => 30,
90+
"lat" => 31),
91+
OrderedDict{String,MemoryVariable}(
92+
"data" => mv),
93+
OrderedDict{String,Any}(),
94+
String[])
95+
96+
md["data"][1,1] = missing
97+
@test ismissing(md["data"][1,1])
98+
@test md["data"].var[1,1] === fill_value
99+
100+
md["data"][1:2,1:2] .= missing
101+
@test all(ismissing.(md["data"][1:2,1:2]))
102+
@test all(md["data"].var[1:2,1:2] .=== fill_value)
103+
end
104+
105+
106+
# time
107+
108+
sample_data = -100:100
109+
data = rand(sample_data,30,31)
110+
mv = MemoryVariable("data",["lon","lat"], data, OrderedDict{String,Any}(
111+
"units" => "days since 2000-01-01"))
112+
113+
63114
@test "lon" in CDM.dimnames(mv)
64115
@test CDM.name(mv) == "data"
65116

@@ -73,25 +124,12 @@ md = MemoryDataset(
73124
"history" => "lala"),
74125
String[])
75126

76-
import Base
77-
Base.keys(md::MemoryDataset) = keys(md.variables)
78-
CDM.variable(md::MemoryDataset,varname::AbstractString) = md.variables[varname]
79-
Base.getindex(md::MemoryDataset,varname::AbstractString) = CDM.cfvariable(md,varname)
80-
CDM.dimnames(md::MemoryDataset) = keys(md.dim)
81-
CDM.dim(md::MemoryDataset,name::AbstractString) = md.dim[name]
82-
CDM.attribnames(md::Union{MemoryDataset,MemoryVariable}) = keys(md.attrib)
83-
CDM.attrib(md::Union{MemoryDataset,MemoryVariable},name::AbstractString) = md.attrib[name]
84-
85127

86128
time_origin = DateTime(2000,1,1)
87129
@test md["data"][1,1] == time_origin + Dates.Millisecond(data[1,1]*24*60*60*1000)
88130

131+
89132
md["data"][1,2] = DateTime(2000,2,1)
90133
@test md["data"].var[1,2] == Dates.value(md["data"][1,2] - time_origin) ÷ (24*60*60*1000)
91134

92-
io = IOBuffer()
93-
CDM.show(io,md)
94-
@test occursin("Attributes",String(take!(io)))
95-
96-
97135
#close(ds)

0 commit comments

Comments
 (0)