From 596d32e09d6c4b0461ddd9e32e4461a924b9af19 Mon Sep 17 00:00:00 2001 From: Shadi Akiki Date: Mon, 2 Nov 2020 15:34:21 +0200 Subject: [PATCH] add unit test for calling optimize twice --- src/Test/UnitTests/solve.jl | 15 +++++++++++++++ test/Test/unit.jl | 17 +++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/Test/UnitTests/solve.jl b/src/Test/UnitTests/solve.jl index b26de21fba..3c73c3b4d1 100644 --- a/src/Test/UnitTests/solve.jl +++ b/src/Test/UnitTests/solve.jl @@ -172,3 +172,18 @@ function solve_result_index(model::MOI.ModelLike, config::TestConfig) end end unittests["solve_result_index"] = solve_result_index + +function solve_twice(model::MOI.ModelLike, config::TestConfig) + MOI.empty!(model) + x = MOI.add_variable(model) + c = MOI.add_constraint(model, MOI.SingleVariable(x), MOI.GreaterThan(1.0)) + MOI.set(model, MOI.ObjectiveSense(), MOI.MIN_SENSE) + MOI.set(model, MOI.ObjectiveFunction{MOI.SingleVariable}(), MOI.SingleVariable(x)) + if config.solve + MOI.optimize!(model) + MOI.optimize!(model) + MOI.get(model, MOI.TerminationStatus()) == MOI.OPTIMAL + MOI.get(model, MOI.VariablePrimal(), x) == 1.0 + end +end +unittests["solve_twice"] = solve_twice diff --git a/test/Test/unit.jl b/test/Test/unit.jl index 210286e130..5596d802e3 100644 --- a/test/Test/unit.jl +++ b/test/Test/unit.jl @@ -49,6 +49,7 @@ end "solve_single_variable_dual_min", "solve_single_variable_dual_max", "solve_result_index", + "solve_twice", ]) MOI.empty!(model) end @@ -392,6 +393,22 @@ end ) MOIT.solve_result_index(mock, config) end + + @testset "solve_twice" begin + MOIU.set_mock_optimize!(mock, + (mock::MOIU.MockOptimizer) -> MOIU.mock_optimize!( + mock, + MOI.OPTIMAL, + (MOI.FEASIBLE_POINT, [1.0]), + ), + (mock::MOIU.MockOptimizer) -> MOIU.mock_optimize!( + mock, + MOI.OPTIMAL, + (MOI.FEASIBLE_POINT, [1.0]), + ) + ) + MOIT.solve_twice(mock, config) + end end @testset "modifications" begin