mirror of
https://github.com/ANL-CEEESA/MIPLearn.jl.git
synced 2025-12-06 00:18:51 -06:00
FileInstance: Make interface simpler to use
This commit is contained in:
@@ -9,33 +9,33 @@ using Cbc
|
||||
@testset "FileInstance" begin
|
||||
@testset "Solve (knapsack)" begin
|
||||
data = KnapsackData()
|
||||
filename = tempname()
|
||||
MIPLearn.save_data(filename, data)
|
||||
instance = FileInstance(filename, build_knapsack_model)
|
||||
basename = tempname()
|
||||
MIPLearn.save_data("$basename.jld2", data)
|
||||
instance = FileInstance("$basename.jld2", build_knapsack_model)
|
||||
solver = LearningSolver(Cbc.Optimizer)
|
||||
solve!(solver, instance)
|
||||
h5 = Hdf5Sample("$filename.h5")
|
||||
h5 = Hdf5Sample("$basename.h5")
|
||||
@test h5.get_scalar("mip_wallclock_time") > 0
|
||||
end
|
||||
|
||||
@testset "Solve (vpm2)" begin
|
||||
@testset "Solve (danoint)" begin
|
||||
data = Dict("filename" => joinpath(@__DIR__, "../fixtures/danoint.mps.gz"))
|
||||
build_model(data) = read_from_file(data["filename"])
|
||||
filename = tempname()
|
||||
MIPLearn.save_data(filename, data)
|
||||
instance = FileInstance(filename, build_model)
|
||||
basename = tempname()
|
||||
MIPLearn.save_data("$basename.jld2", data)
|
||||
instance = FileInstance("$basename.jld2", build_model)
|
||||
solver = LearningSolver(optimizer_with_attributes(Cbc.Optimizer, "seconds" => 1.0))
|
||||
solve!(solver, instance)
|
||||
h5 = Hdf5Sample("$filename.h5")
|
||||
h5 = Hdf5Sample("$basename.h5")
|
||||
@test h5.get_scalar("mip_wallclock_time") > 0
|
||||
end
|
||||
|
||||
@testset "Save and load data" begin
|
||||
filename = tempname()
|
||||
data = KnapsackData(
|
||||
weights = [5.0, 5.0, 5.0],
|
||||
prices = [1.0, 1.0, 1.0],
|
||||
capacity = 3.0,
|
||||
weights=[5.0, 5.0, 5.0],
|
||||
prices=[1.0, 1.0, 1.0],
|
||||
capacity=3.0,
|
||||
)
|
||||
MIPLearn.save_data(filename, data)
|
||||
loaded = MIPLearn.load_data(filename)
|
||||
|
||||
@@ -51,12 +51,12 @@ end
|
||||
|
||||
@testset "FileInstance" begin
|
||||
data = nothing
|
||||
filename = tempname()
|
||||
MIPLearn.save_data(filename, data)
|
||||
instance = FileInstance(filename, build_model)
|
||||
basename = tempname()
|
||||
MIPLearn.save_data("$basename.jld2", data)
|
||||
instance = FileInstance("$basename.jld2", build_model)
|
||||
solver = LearningSolver(Cbc.Optimizer)
|
||||
solve!(solver, instance)
|
||||
h5 = MIPLearn.Hdf5Sample("$filename.h5")
|
||||
h5 = MIPLearn.Hdf5Sample("$basename.h5")
|
||||
@test h5.get_array("mip_var_values") == [1.0, 0.0]
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user