diff --git a/src/MOI_wrapper/MOI_wrapper.jl b/src/MOI_wrapper/MOI_wrapper.jl index bb44148..dda7158 100644 --- a/src/MOI_wrapper/MOI_wrapper.jl +++ b/src/MOI_wrapper/MOI_wrapper.jl @@ -367,8 +367,9 @@ function MOI.set( end function MOI.get(model::Optimizer, ::MOI.TimeLimitSec) + value = MOI.get(model, MOI.RawOptimizerAttribute("tm_lim")) # convert internal ms to sec - return MOI.get(model, MOI.RawOptimizerAttribute("tm_lim")) / 1_000 + return value == typemax(Int32) ? nothing : value / 1_000 end MOI.supports_incremental_interface(::Optimizer) = true diff --git a/test/MOI_wrapper.jl b/test/MOI_wrapper.jl index 1b775bb..f3bc4c9 100644 --- a/test/MOI_wrapper.jl +++ b/test/MOI_wrapper.jl @@ -412,7 +412,7 @@ end function test_large_time_limits() model = GLPK.Optimizer() MOI.set(model, MOI.TimeLimitSec(), 1e9) - @test MOI.get(model, MOI.TimeLimitSec()) == typemax(Cint) / 1_000 + @test MOI.get(model, MOI.TimeLimitSec()) == nothing return end @@ -616,6 +616,19 @@ function test_pr_220() return end +function test_attribute_TimeLimitSec() + model = GLPK.Optimizer() + @test MOI.supports(model, MOI.TimeLimitSec()) + @test MOI.get(model, MOI.TimeLimitSec()) === nothing + MOI.set(model, MOI.TimeLimitSec(), 0.0) + @test MOI.get(model, MOI.TimeLimitSec()) == 0.0 + MOI.set(model, MOI.TimeLimitSec(), nothing) + @test MOI.get(model, MOI.TimeLimitSec()) === nothing + MOI.set(model, MOI.TimeLimitSec(), 1.0) + @test MOI.get(model, MOI.TimeLimitSec()) == 1.0 + return +end + end # module TestMOIWrapper.runtests()