Skip to content

Commit e4ed520

Browse files
committed
New tests
1 parent 418f36c commit e4ed520

3 files changed

Lines changed: 52 additions & 7 deletions

File tree

src/Utils/interface.jl

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -276,13 +276,7 @@ The instance and other solver-relevant fields are spread from the sample context
276276
y = solver(scenario; sample.context...) # stochastic
277277
trajectory = solver(scenario; sample.context...) # dynamic
278278
"""
279-
function generate_anticipative_solver(bench::AbstractStochasticBenchmark{true})
280-
return (scenario; kwargs...) -> error(
281-
"`generate_anticipative_solver` is not implemented for $(typeof(bench)). " *
282-
"Implement `generate_anticipative_solver(::$(typeof(bench))) -> (scenario; kwargs...) -> y` " *
283-
"to use it.",
284-
)
285-
end
279+
function generate_anticipative_solver end
286280

287281
"""
288282
generate_parametric_anticipative_solver(::AbstractStochasticBenchmark{true}) -> callable

test/dynamic_assortment.jl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,28 @@ end
310310
@test sum(greedy_action) == DAP.assortment_size(env)
311311
end
312312

313+
@testset "DynamicAssortment - generate_dataset with environments (exogenous)" begin
314+
b = DynamicAssortmentBenchmark(; N=4, d=2, K=2, max_steps=10, exogenous=true)
315+
envs = generate_environments(b, 4; seed=0)
316+
policies = generate_baseline_policies(b)
317+
expert = policies[1]
318+
319+
# target_policy: env -> Vector{DataSample} (full trajectory)
320+
target_policy = env -> evaluate_policy!(expert, env)[2]
321+
322+
# vector-of-environments overload
323+
dataset = generate_dataset(b, envs; target_policy=target_policy)
324+
@test dataset isa Vector{DataSample}
325+
@test !isempty(dataset)
326+
@test all(!isnothing(s.x) for s in dataset)
327+
@test all(!isnothing(s.y) for s in dataset)
328+
329+
# count-based wrapper
330+
dataset2 = generate_dataset(b, 3; seed=7, target_policy=target_policy)
331+
@test dataset2 isa Vector{DataSample}
332+
@test !isempty(dataset2)
333+
end
334+
313335
@testset "DynamicAssortment - Model and Maximizer Integration" begin
314336
b = DynamicAssortmentBenchmark(; N=4, d=3, K=2)
315337

test/dynamic_vsp.jl

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,32 @@
5151
@test isapprox(cost, anticipative_value; atol=1e-5)
5252
@test isapprox(cost, cost2; atol=1e-5)
5353
end
54+
55+
@testset "DVSP - generate_dataset with environments" begin
56+
using DecisionFocusedLearningBenchmarks.DynamicVehicleScheduling
57+
58+
b = DynamicVehicleSchedulingBenchmark(; two_dimensional_features=true)
59+
envs = generate_environments(b, 5; seed=0)
60+
policies = generate_baseline_policies(b)
61+
lazy = policies[1]
62+
63+
# target_policy takes env -> Vector{DataSample} (full trajectory)
64+
target_policy = env -> evaluate_policy!(lazy, env)[2]
65+
66+
# vector-of-environments overload
67+
dataset = generate_dataset(b, envs; target_policy=target_policy)
68+
@test dataset isa Vector{DataSample}
69+
@test !isempty(dataset)
70+
@test all(!isnothing(s.x) for s in dataset)
71+
@test all(!isnothing(s.y) for s in dataset)
72+
73+
# count-based wrapper
74+
dataset2 = generate_dataset(b, 3; seed=1, target_policy=target_policy)
75+
@test dataset2 isa Vector{DataSample}
76+
@test !isempty(dataset2)
77+
78+
# seed keyword is forwarded: same seed → same dataset
79+
dataset3a = generate_dataset(b, 3; seed=42, target_policy=target_policy)
80+
dataset3b = generate_dataset(b, 3; seed=42, target_policy=target_policy)
81+
@test length(dataset3a) == length(dataset3b)
82+
end

0 commit comments

Comments
 (0)