Skip to content

Commit 5124c2f

Browse files
authored
More unit tests (#237)
* More units tests * fmt
1 parent 6b74af4 commit 5124c2f

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

test/test_MathOptInterface.jl

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2524,6 +2524,36 @@ function test_vector_quadratic_no_parameters_affine_get_constraint_function()
25242524
return
25252525
end
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+
25272557
end # module
25282558

25292559
TestMathOptInterfaceTests.runtests()

0 commit comments

Comments
 (0)