Skip to content

Commit 25a94fb

Browse files
testing datastructs, cleaning unnecessary constructors
1 parent 7a5babf commit 25a94fb

File tree

2 files changed

+25
-98
lines changed

2 files changed

+25
-98
lines changed

src/utils/datastructs.jl

Lines changed: 5 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -136,9 +136,9 @@ struct SimpleExtremeValueDescr
136136
consecutive_periods::Int)
137137
# only allow certain entries
138138
if !(extremum in ["min","max"])
139-
@error("extremum - "*extremum*" - not defined")
139+
error("extremum - "*extremum*" - not defined")
140140
elseif !(peak_def in ["absolute","integral"])
141-
@error("peak_def - "*peak_def*" - not defined")
141+
error("peak_def - "*peak_def*" - not defined")
142142
end
143143
new(data_type,extremum,peak_def,consecutive_periods)
144144
end
@@ -165,99 +165,6 @@ end
165165

166166
#### Constructors for data structures###
167167

168-
"""
169-
FullInputData(region::String,
170-
N::Int;
171-
el_price::Array=[],
172-
el_demand::Array=[],
173-
solar::Array=[],
174-
wind::Array=[]
175-
)
176-
Constructor for FullInputData with optional data input
177-
"""
178-
function FullInputData(region::String,
179-
N::Int;
180-
el_price::Array=[],
181-
el_demand::Array=[],
182-
solar::Array=[],
183-
wind::Array=[]
184-
)
185-
dt = Dict{String,Array}()
186-
!isempty(el_price) && (dt["el_price"]=el_price)
187-
!isempty(el_demand) && (dt["el_demand"]=el_demand)
188-
!isempty(wind) && (dt["wind"]=wind)
189-
!isempty(solar) && (dt["solar"]=solar)
190-
# TODO: Check dimensionality of N and supplied input data streams Nx1
191-
isempty(dt) && @error("Need to provide at least one input data stream")
192-
FullInputData(region,N,dt)
193-
end
194-
195-
"""
196-
ClustData(region::String,
197-
years::Array{Int,1},
198-
K::Int,
199-
T::Int;
200-
el_price::Array=[],
201-
el_demand::Array=[],
202-
solar::Array=[],
203-
wind::Array=[],
204-
weights::Array{Float64}=ones(K),
205-
mean::Dict{String,Array}=Dict{String,Array}(),
206-
sdv::Dict{String,Array}=Dict{String,Array}(),
207-
delta_t::Array{Float64,2}=ones(T,K),
208-
k_ids::Array{Int,1}=collect(1:K)
209-
)
210-
constructor 1 for ClustData: provide data individually
211-
"""
212-
function ClustData(region::String,
213-
years::Array{Int,1},
214-
K::Int,
215-
T::Int;
216-
el_price::Array=[],
217-
el_demand::Array=[],
218-
solar::Array=[],
219-
wind::Array=[],
220-
weights::Array{Float64}=ones(K),
221-
mean::Dict{String,Array}=Dict{String,Array}(),
222-
sdv::Dict{String,Array}=Dict{String,Array}(),
223-
delta_t::Array{Float64,2}=ones(T,K),
224-
k_ids::Array{Int,1}=collect(1:K)
225-
)
226-
dt = Dict{String,Array}()
227-
mean_sdv_provided = ( !isempty(mean) && !isempty(sdv))
228-
if !isempty(el_price)
229-
dt["el_price"]=el_price
230-
if !mean_sdv_provided
231-
mean["el_price"]=zeros(T)
232-
sdv["el_price"]=ones(T)
233-
end
234-
end
235-
if !isempty(el_demand)
236-
dt["el_demand"]=el_demand
237-
if !mean_sdv_provided
238-
mean["el_demand"]=zeros(T)
239-
sdv["el_demand"]=ones(T)
240-
end
241-
end
242-
if !isempty(wind)
243-
dt["wind"]=wind
244-
if !mean_sdv_provided
245-
mean["wind"]=zeros(T)
246-
sdv["wind"]=ones(T)
247-
end
248-
end
249-
if !isempty(solar)
250-
dt["solar"]=solar
251-
if !mean_sdv_provided
252-
mean["solar"]=zeros(T)
253-
sdv["solar"]=ones(T)
254-
end
255-
end
256-
isempty(dt) && @error("Need to provide at least one input data stream")
257-
# TODO: Check dimensionality of K T and supplied input data streams KxT
258-
ClustData(region,years,K,T,dt,weights,mean,sdv,delta_t,k_ids)
259-
end
260-
261168
"""
262169
ClustData(region::String,
263170
years::Array{Int,1},
@@ -270,7 +177,7 @@ end
270177
mean::Dict{String,Array}=Dict{String,Array}(),
271178
sdv::Dict{String,Array}=Dict{String,Array}()
272179
)
273-
constructor 2 for ClustData: provide data as dict
180+
constructor 1 for ClustData: provide data as dict
274181
"""
275182
function ClustData(region::String,
276183
years::Array{Int,1},
@@ -297,7 +204,7 @@ end
297204

298205
"""
299206
ClustData(data::ClustDataMerged)
300-
constructor 3: Convert ClustDataMerged to ClustData
207+
constructor 2: Convert ClustDataMerged to ClustData
301208
"""
302209
function ClustData(data::ClustDataMerged)
303210
data_dict=Dict{String,Array}()
@@ -311,7 +218,7 @@ end
311218

312219
"""
313220
ClustData(data::FullInputData,K,T)
314-
constructor 4: Convert FullInputData to ClustData
221+
constructor 3: Convert FullInputData to ClustData
315222
"""
316223
function ClustData(data::FullInputData,
317224
K::Int,

test/datastructs.jl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2+
@testset "struct ClustData" begin
3+
@test 1==1
4+
# constructors are all tested by run_clust
5+
# TODO: add unit tests for constructors anyways.
6+
end
7+
8+
@testset "SimpleExtremeValueDescr" begin
9+
@testset "normal" begin
10+
ev1 = SimpleExtremeValueDescr("wind-dena42","max","absolute")
11+
@test ev1.data_type =="wind-dena42"
12+
@test ev1.extremum =="max"
13+
@test ev1.peak_def =="absolute"
14+
@test ev1.consecutive_periods ==1
15+
end
16+
@testset "edge cases" begin
17+
@test_throws ErrorException ev1 = SimpleExtremeValueDescr("wind-dena42","maximum","absolute")
18+
@test_throws ErrorException ev1 = SimpleExtremeValueDescr("wind-dena42","max","abs")
19+
end
20+
end

0 commit comments

Comments
 (0)