Skip to content

Commit 2557f07

Browse files
committed
improve coverage
1 parent 4552193 commit 2557f07

File tree

9 files changed

+35
-0
lines changed

9 files changed

+35
-0
lines changed

src/DecisionFocusedLearningBenchmarks.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ export generate_statistical_model
7979
export generate_maximizer
8080
export generate_anticipative_solver, generate_parametric_anticipative_solver
8181
export is_exogenous, is_endogenous
82+
export is_minimization_problem
8283

8384
export objective_value
8485
export has_visualization, plot_instance, plot_solution, plot_trajectory, animate_trajectory

src/Ranking/Ranking.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ function Base.show(io::IO, bench::RankingBenchmark)
3232
end
3333

3434
Utils.objective_value(::RankingBenchmark, sample::DataSample, y) = dot(sample.θ, y)
35+
Utils.is_minimization_problem(::RankingBenchmark) = false
3536

3637
"""
3738
$TYPEDSIGNATURES

src/SubsetSelection/SubsetSelection.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ function Base.show(io::IO, bench::SubsetSelectionBenchmark)
3333
end
3434

3535
Utils.objective_value(::SubsetSelectionBenchmark, sample::DataSample, y) = dot(sample.θ, y)
36+
Utils.is_minimization_problem(::SubsetSelectionBenchmark) = false
3637

3738
function SubsetSelectionBenchmark(; n::Int=25, k::Int=5, identity_mapping::Bool=true)
3839
@assert n >= k "number of items n must be greater than k"

src/Utils/Utils.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ export generate_environment, generate_environments
3636
export SampleAverageApproximation
3737
export generate_baseline_policies
3838
export generate_anticipative_solver, generate_parametric_anticipative_solver
39+
export is_minimization_problem
3940

4041
export has_visualization, plot_instance, plot_solution, plot_trajectory, animate_trajectory
4142
export compute_gap

test/contextual_stochastic_argmax.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,3 +78,13 @@ end
7878
gap = compute_gap(saa, labeled, model, maximizer)
7979
@test isfinite(gap)
8080
end
81+
82+
@testset "csa_objective_value_error" begin
83+
using DecisionFocusedLearningBenchmarks
84+
85+
b = ContextualStochasticArgmaxBenchmark(; n=5, d=3, seed=0)
86+
maximizer = generate_maximizer(b)
87+
# Sample with neither :scenario nor :scenarios in extra → objective_value should error
88+
s = DataSample(; x=randn(Float32, 8), y=maximizer(randn(Float32, 5)))
89+
@test_throws Exception objective_value(b, s, s.y)
90+
end

test/portfolio_optimization.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,7 @@
2626
@test length(y) == d
2727
@test sum(y) <= 1 + 1e-6
2828
end
29+
30+
gap = compute_gap(b, dataset[1:5], model, maximizer)
31+
@test isfinite(gap)
2932
end

test/ranking.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,8 @@
3030
y = maximizer(θ)
3131
@test length(y) == instance_dim
3232
end
33+
34+
gap = compute_gap(b, dataset[1:5], model, maximizer)
35+
@test isfinite(gap)
36+
@test gap >= 0
3337
end

test/subset_selection.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,8 @@
3636
@test length(y) == n
3737
@test sum(y) == k
3838
end
39+
40+
gap = compute_gap(b, dataset[1:5], model, maximizer)
41+
@test isfinite(gap)
42+
@test gap >= 0
3943
end

test/utils.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,16 @@ end
117117
for i in 1:N
118118
@test dataset_zt[i].x dataset[i].x atol = 1e-10
119119
end
120+
121+
# Error: overlap between context and extra
122+
@test_throws Exception DataSample(x=[1], foo=1, extra=(; foo=2))
123+
# Error: reserved name used as context kwarg
124+
@test_throws Exception DataSample(x=[1], context=[2])
125+
# Error: reserved name in extra
126+
@test_throws Exception DataSample(x=[1], extra=(; x=[2]))
127+
128+
# is_minimization_problem: maximization benchmarks override to false
129+
@test is_minimization_problem(ArgmaxBenchmark()) == false
120130
end
121131

122132
@testset "Maximizers" begin

0 commit comments

Comments
 (0)