Skip to content

Commit 603f76a

Browse files
committed
add test
1 parent 83666cb commit 603f76a

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

test/nlp_program.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -977,6 +977,22 @@ function test_changing_factorization()
977977
)
978978
end
979979

980+
function test_reverse_bounds()
981+
model = DiffOpt.nonlinear_diff_model(Ipopt.Optimizer)
982+
set_silent(model)
983+
@variable(model, x[1:3] >= 0) # x[3] ≥ 0 is active
984+
@variable(model, p in MOI.Parameter(4.5))
985+
@constraint(model, 6x[1] + 3x[2] + 2x[3] == p)
986+
@constraint(model, x[1] + x[2] - x[3] == 1)
987+
@objective(model, Min, sum(x.^2))
988+
optimize!(model)
989+
MOI.set(model, DiffOpt.ReverseConstraintDual(), LowerBoundRef(x[3]), 1.0)
990+
DiffOpt.reverse_differentiate!(model)
991+
dp = MOI.get(model, DiffOpt.ReverseConstraintSet(), ParameterRef(p)).value
992+
@test abs(dp) > 0.0 # test contribution is not ignored
993+
@test isapprox(dp, -2.88888; atol = 1e-4)
994+
end
995+
980996
end # module
981997

982998
TestNLPProgram.runtests()

0 commit comments

Comments
 (0)