Skip to content

Commit 3c66a69

Browse files
author
andre_ramos
committed
enhance coverage
1 parent 11fed11 commit 3c66a69

File tree

3 files changed

+56
-5
lines changed

3 files changed

+56
-5
lines changed

src/models/structural_model.jl

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,11 +116,6 @@ mutable struct StructuralModel <: StateSpaceLearningModel
116116
else
117117
nothing
118118
end
119-
if freq_seasonal == 0
120-
(@assert seasonal == "none" "stochastic_seasonal and seasonal must be false if freq_seasonal is 0")
121-
else
122-
nothing
123-
end
124119

125120
if !isnothing(dynamic_exog_coefs)
126121
@assert all(

test/estimation_procedure.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,19 @@ end
103103
@test length(coefs0) == 43
104104
@test length(ε0) == 10
105105

106+
coefs0, ε0 = StateSpaceLearning.fit_lasso(
107+
X,
108+
AbstractFloat.(y),
109+
0.1,
110+
"aic",
111+
false,
112+
components_indexes,
113+
ones(size(X, 2) - 1);
114+
rm_average=true,
115+
)
116+
@test length(coefs0) == 43
117+
@test length(ε0) == 10
118+
106119
coefs1, ε1 = StateSpaceLearning.fit_lasso(
107120
X2,
108121
AbstractFloat.(y),

test/models/structural_model.jl

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,20 @@ end
170170
end
171171

172172
@testset "dynamic_exog_coefs" begin
173+
dynamic_exog_coefs1 = [(collect(1:5), "level")]
174+
175+
X1 = StateSpaceLearning.create_dynamic_exog_coefs_matrix(
176+
dynamic_exog_coefs1, 5, 0, 0, 0, 1
177+
)
178+
@test size(X1) == (5, 4)
179+
180+
dynamic_exog_coefs2 = [(collect(1:5), "slope")]
181+
182+
X2 = StateSpaceLearning.create_dynamic_exog_coefs_matrix(
183+
dynamic_exog_coefs2, 5, 0, 0, 0, 1
184+
)
185+
@test size(X2) == (5, 4)
186+
173187
dynamic_exog_coefs = [
174188
(collect(1:5), "level"),
175189
(collect(1:5), "slope"),
@@ -192,6 +206,20 @@ end
192206
dynamic_exog_coefs, 5, 2, 0, 0, 0, 1
193207
)
194208
@test size(X_f) == (2, 23)
209+
210+
dynamic_exog_coefs2 = [(collect(6:7), "level", "", 4)]
211+
212+
X_f2 = StateSpaceLearning.create_forecast_dynamic_exog_coefs_matrix(
213+
dynamic_exog_coefs2, 5, 2, 0, 0, 0, 1
214+
)
215+
@test size(X_f2) == (2, 4)
216+
217+
dynamic_exog_coefs3 = [(collect(6:7), "slope", "", 4)]
218+
219+
X_f3 = StateSpaceLearning.create_forecast_dynamic_exog_coefs_matrix(
220+
dynamic_exog_coefs3, 5, 2, 0, 0, 0, 1
221+
)
222+
@test size(X_f3) == (2, 4)
195223
end
196224

197225
@testset "Create X matrix" begin
@@ -465,6 +493,21 @@ end
465493
)
466494
@test sort(collect(keys(model_decomposition))) ==
467495
sort(["cycle_3", "cycle_hat_3", "seasonal_3", "slope", "trend"])
496+
497+
model = StateSpaceLearning.StructuralModel(
498+
vcat(rand(5) .+ 5, rand(5) .- 5) + vcat(collect(1:5), collect(5:-1:1));
499+
level="deterministic",
500+
seasonal="none",
501+
cycle="none",
502+
outlier=false,
503+
slope="stochastic",
504+
ζ_threshold=0,
505+
)
506+
StateSpaceLearning.fit!(model)
507+
trend = StateSpaceLearning.get_trend_decomposition(
508+
model, model.output.components, slope
509+
)
510+
@test length(trend) == 10
468511
end
469512

470513
@testset "Function: simulate_states" begin

0 commit comments

Comments
 (0)