@@ -218,7 +218,13 @@ function _test_structural_identical(a::MOI.ModelLike, b::MOI.ModelLike)
218218end
219219
220220"""
221- runtests(Bridge::Type{<:AbstractBridge}, input::String, output::String)
221+ runtests(
222+ Bridge::Type{<:AbstractBridge},
223+ input::String,
224+ output::String;
225+ variable_start = 1.2,
226+ constraint_start = 1.2,
227+ )
222228
223229Run a series of tests that check the correctness of `Bridge`.
224230
@@ -246,6 +252,7 @@ function runtests(
246252 Bridge:: Type{<:AbstractBridge} ,
247253 input:: String ,
248254 output:: String ;
255+ variable_start = 1.2 ,
249256 constraint_start = 1.2 ,
250257)
251258 # Load model and bridge it
@@ -263,6 +270,19 @@ function runtests(
263270 target = MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ())
264271 MOI. Utilities. loadfromstring! (target, output)
265272 _test_structural_identical (target, inner)
273+ # Test VariablePrimalStart
274+ attr = MOI. VariablePrimalStart ()
275+ bridge_supported = all (values (Variable. bridges (model))) do bridge
276+ return MOI. supports (model, attr, typeof (bridge))
277+ end
278+ if MOI. supports (model, attr, MOI. VariableIndex) && bridge_supported
279+ x = MOI. get (model, MOI. ListOfVariableIndices ())
280+ MOI. set (model, attr, x, fill (nothing , length (x)))
281+ Test. @test all (isnothing, MOI. get (model, attr, x))
282+ primal_start = fill (constraint_start, length (x))
283+ MOI. set (model, attr, x, primal_start)
284+ Test. @test MOI. get (model, attr, x) ≈ primal_start
285+ end
266286 # Test ConstraintPrimalStart and ConstraintDualStart
267287 for (F, S) in MOI. get (model, MOI. ListOfConstraintTypesPresent ())
268288 for ci in MOI. get (model, MOI. ListOfConstraintIndices {F,S} ())
0 commit comments