Skip to content

Commit 6304ce3

Browse files
committed
Update
1 parent c4a5b9c commit 6304ce3

File tree

2 files changed

+23
-12
lines changed

2 files changed

+23
-12
lines changed

test/algorithms/DominguezRios.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,12 @@ end
3838

3939
function test_vOptLib_runtests()
4040
model = MOA.Optimizer(HiGHS.Optimizer)
41-
MOI.set(model, MOI.RawOptimizerAttribute("presolve"), "off")
42-
MOI.set(model, MOA.Algorithm(), MOA.DominguezRios())
43-
MOI.set(model, MOI.Silent(), true)
44-
vOptLib.run_tests(model)
41+
for (presolve, complete) in ["off" => true, "choose" => false]
42+
MOI.set(model, MOI.RawOptimizerAttribute("presolve"), presolve)
43+
MOI.set(model, MOA.Algorithm(), MOA.DominguezRios())
44+
MOI.set(model, MOI.Silent(), true)
45+
vOptLib.run_tests(model; complete)
46+
end
4547
return
4648
end
4749

test/vOptLib.jl

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ using Test
99
import JSON
1010
import MathOptInterface as MOI
1111

12-
function run_tests(model::MOI.ModelLike)
12+
function run_tests(model::MOI.ModelLike; kwargs...)
1313
for name in names(@__MODULE__; all = true)
1414
if startswith("$name", "test_")
1515
@testset "$name" begin
1616
MOI.empty!(model)
17-
getfield(@__MODULE__, name)(model)
17+
getfield(@__MODULE__, name)(model; kwargs...)
1818
end
1919
end
2020
end
2121
return
2222
end
2323

24-
function _test_vOptLib_instance(model, instance)
24+
function _test_vOptLib_instance(model, instance; complete::Bool = true)
2525
root = joinpath(dirname(@__DIR__), "instances")
2626
src = MOI.FileFormats.MOF.Model()
2727
MOI.read_from_file(src, joinpath(root, "models", instance * ".mof.json"))
@@ -38,7 +38,8 @@ function _test_vOptLib_instance(model, instance)
3838
end
3939
push!(solutions[Y], convert(Vector{Int}, sol["X"]))
4040
end
41-
@test MOI.get(model, MOI.ResultCount()) >= length(solutions)
41+
min_solutions = complete ? length(solutions) : 1
42+
@test MOI.get(model, MOI.ResultCount()) >= min_solutions
4243
for i in 1:MOI.get(model, MOI.ResultCount())
4344
Y = round.(Int, MOI.get(model, MOI.ObjectiveValue(i)))
4445
@test haskey(solutions, Y)
@@ -48,12 +49,20 @@ function _test_vOptLib_instance(model, instance)
4849
return
4950
end
5051

51-
test_vOptLib_2KP50_11(model) = _test_vOptLib_instance(model, "2KP50-11")
52+
function test_vOptLib_2KP50_11(model; kwargs...)
53+
return _test_vOptLib_instance(model, "2KP50-11"; kwargs...)
54+
end
5255

53-
test_vOptLib_2KP50_50(model) = _test_vOptLib_instance(model, "2KP50-50")
56+
function test_vOptLib_2KP50_50(model; kwargs...)
57+
return _test_vOptLib_instance(model, "2KP50-50"; kwargs...)
58+
end
5459

55-
test_vOptLib_2KP50_92(model) = _test_vOptLib_instance(model, "2KP50-92")
60+
function test_vOptLib_2KP50_92(model; kwargs...)
61+
return _test_vOptLib_instance(model, "2KP50-92"; kwargs...)
62+
end
5663

57-
test_vOptLib_2KP100_50(model) = _test_vOptLib_instance(model, "2KP100-50")
64+
function test_vOptLib_2KP100_50(model; kwargs...)
65+
return _test_vOptLib_instance(model, "2KP100-50"; kwargs...)
66+
end
5867

5968
end # module vOptLib

0 commit comments

Comments
 (0)