@@ -2524,6 +2524,36 @@ function test_vector_quadratic_no_parameters_affine_get_constraint_function()
25242524 return
25252525end
25262526
2527+ function test_delete_variable_errors ()
2528+ model = POI. Optimizer (MOI. Utilities. Model {Float64} ())
2529+ p, _ = MOI. add_constrained_variable (model, MOI. Parameter (1.0 ))
2530+ @test_throws (
2531+ ErrorException (" Cannot delete parameters in ParametricOptInterface." ),
2532+ MOI. delete (model, p),
2533+ )
2534+ @test_throws MOI. InvalidIndex MOI. delete (model, MOI. VariableIndex (999999 ))
2535+ return
2536+ end
2537+
2538+ function test_parameter_only_affine_objective ()
2539+ # Objective with only parameter terms (no decision variable terms).
2540+ # This tests MOI.ScalarConstantChange in isolation.
2541+ model = POI. Optimizer (HiGHS. Optimizer)
2542+ MOI. set (model, MOI. Silent (), true )
2543+ x = MOI. add_variable (model)
2544+ MOI. add_constraint (model, x, MOI. GreaterThan (0.0 ))
2545+ p, pc = MOI. add_constrained_variable (model, MOI. Parameter (3.0 ))
2546+ f = MOI. ScalarAffineFunction ([MOI. ScalarAffineTerm (2.0 , p)], 1.0 )
2547+ MOI. set (model, MOI. ObjectiveFunction {typeof(f)} (), f)
2548+ MOI. set (model, MOI. ObjectiveSense (), MOI. MIN_SENSE)
2549+ MOI. optimize! (model)
2550+ @test MOI. get (model, MOI. ObjectiveValue ()) ≈ 7.0 # 2*3 + 1
2551+ MOI. set (model, MOI. ConstraintSet (), pc, MOI. Parameter (5.0 ))
2552+ MOI. optimize! (model)
2553+ @test MOI. get (model, MOI. ObjectiveValue ()) ≈ 11.0 # 2*5 + 1
2554+ return
2555+ end
2556+
25272557end # module
25282558
25292559TestMathOptInterfaceTests. runtests ()
0 commit comments