Skip to content

Commit 27c852e

Browse files
committed
Fix tests and deprecation
1 parent cdacf3b commit 27c852e

6 files changed

Lines changed: 15 additions & 30 deletions

File tree

src/DecisionFocusedLearningBenchmarks.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ export generate_scenario
7373
export generate_baseline_policies
7474
export generate_statistical_model
7575
export generate_maximizer
76-
export generate_anticipative_solution
76+
export generate_anticipative_solver, generate_parametric_anticipative_solver
7777
export is_exogenous, is_endogenous
7878

7979
export objective_value

src/DynamicVehicleScheduling/DynamicVehicleScheduling.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -116,13 +116,13 @@ end
116116
$TYPEDSIGNATURES
117117
118118
Return the anticipative solver for the dynamic vehicle scheduling benchmark.
119-
The callable takes a scenario and solver kwargs (including `instance`) and returns a
120-
training trajectory as a `Vector{DataSample}`.
119+
The callable takes an environment and solver kwargs and returns a training trajectory
120+
as a `Vector{DataSample}`. Set `reset_env=true` (default) to reset the environment
121+
before solving, or `reset_env=false` to plan from the current state.
121122
"""
122123
function Utils.generate_anticipative_solver(::DynamicVehicleSchedulingBenchmark)
123-
return (scenario; instance, kwargs...) -> begin
124-
env = DVSPEnv(instance, scenario)
125-
_, trajectory = anticipative_solver(env; reset_env=false, kwargs...)
124+
return (env; reset_env=true, kwargs...) -> begin
125+
_, trajectory = anticipative_solver(env; reset_env, kwargs...)
126126
return trajectory
127127
end
128128
end

src/Utils/Utils.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export generate_statistical_model, generate_maximizer
3232
export generate_scenario
3333
export generate_environment, generate_environments
3434
export generate_baseline_policies
35-
export generate_anticipative_solution
35+
export generate_anticipative_solver, generate_parametric_anticipative_solver
3636

3737
export plot_data, compute_gap
3838
export grid_graph, get_path, path_to_matrix

src/Utils/interface.jl

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -262,18 +262,15 @@ spread from `sample.context`:
262262
function generate_scenario end
263263

264264
"""
265-
generate_anticipative_solver(::AbstractStochasticBenchmark{true}) -> callable
265+
generate_anticipative_solver(::AbstractBenchmark) -> callable
266266
267-
Return a callable that computes the anticipative solution for a given scenario.
268-
The instance and other solver-relevant fields are spread from the sample context.
267+
Return a callable that computes the anticipative solution.
269268
270269
- For [`AbstractStochasticBenchmark`](@ref): returns `(scenario; context...) -> y`.
271270
- For [`AbstractDynamicBenchmark`](@ref): returns
272-
`(scenario; context...) -> Vector{DataSample}` — a full training trajectory.
273-
274-
solver = generate_anticipative_solver(bench)
275-
y = solver(scenario; sample.context...) # stochastic
276-
trajectory = solver(scenario; sample.context...) # dynamic
271+
`(env; reset_env=true, kwargs...) -> Vector{DataSample}`, a full training trajectory.
272+
`reset_env=true` resets the env before solving (initial dataset building);
273+
`reset_env=false` starts from the current env state.
277274
"""
278275
function generate_anticipative_solver end
279276

@@ -287,16 +284,6 @@ parametric anticipative subproblem:
287284
"""
288285
function generate_parametric_anticipative_solver end
289286

290-
"""
291-
generate_anticipative_solution(::AbstractStochasticBenchmark, instance, scenario; kwargs...)
292-
293-
!!! warning "Deprecated"
294-
Use [`generate_anticipative_solver`](@ref) instead, which returns a callable
295-
`(scenario; kwargs...) -> y` consistent with the [`generate_maximizer`](@ref)
296-
convention.
297-
"""
298-
function generate_anticipative_solution end
299-
300287
"""
301288
$TYPEDSIGNATURES
302289

test/dynamic_vsp.jl

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@
2525
@test mean(r_lazy) <= mean(r_greedy)
2626

2727
env = environments[1]
28-
scenario = env.scenario
29-
v, y = generate_anticipative_solution(b, env, scenario; nb_epochs=2, reset_env=true)
28+
y = generate_anticipative_solver(b)(env; nb_epochs=2)
3029

3130
maximizer = generate_maximizer(b)
3231

@@ -44,11 +43,10 @@
4443
@test size(x, 1) == 2
4544
@test size(x2, 1) == 27
4645

47-
anticipative_value, solution = generate_anticipative_solution(b, env; reset_env=true)
46+
solution = generate_anticipative_solver(b)(env)
4847
reset!(env; reset_rng=true)
4948
cost = sum(step!(env, sample.y) for sample in solution)
5049
cost2 = sum(sample.reward for sample in solution)
51-
@test isapprox(cost, anticipative_value; atol=1e-5)
5250
@test isapprox(cost, cost2; atol=1e-5)
5351
end
5452

test/dynamic_vsp_plots.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
@test fig1 isa Plots.Plot
1313

1414
scenario = env.scenario
15-
v, y = generate_anticipative_solution(b, env, scenario; nb_epochs=3, reset_env=true)
15+
y = generate_anticipative_solver(b)(env; nb_epochs=3)
1616

1717
fig2 = DVSP.plot_epochs(y)
1818
@test fig2 isa Plots.Plot

0 commit comments

Comments
 (0)