|
206 | 206 | info = VariableInfo(false, num, false, num, false, num, false, NaN, false, false) |
207 | 207 | info2 = VariableInfo(true, num, true, num, true, num, true, func1, false, false) |
208 | 208 | info3 = VariableInfo(true, num, true, num, true, num, true, 42, false, true) |
209 | | - info4 = VariableInfo(true, num, false, num, false, num, false, s -> NaN, false, false) |
| 209 | + info4 = VariableInfo(true, num, false, num, false, num, true, s -> NaN, false, false) |
| 210 | + info5 = VariableInfo(false, num, false, num, false, num, false, s -> NaN, false, false) |
210 | 211 | # build_derivative |
211 | 212 | @testset "build_derivative" begin |
212 | 213 | # test errors |
@@ -302,12 +303,22 @@ end |
302 | 303 | idx = DerivativeIndex(1) |
303 | 304 | dref = DerivativeRef(m, idx) |
304 | 305 | gvref = InfiniteOpt._make_variable_ref(m, idx) |
305 | | - d = Derivative(info4, true, x, pref) |
| 306 | + d = Derivative(info4, false, x, pref) |
306 | 307 | @test isequal(add_derivative(m, d, "name2"), gvref) |
307 | 308 | @test haskey(InfiniteOpt._data_dictionary(dref), idx) |
308 | 309 | @test InfiniteOpt._core_variable_object(dref) == d |
309 | 310 | @test name(dref) == "name2" |
310 | 311 | @test lower_bound(dref) == 0 |
| 312 | + # test redundant build with warning |
| 313 | + idx = DerivativeIndex(1) |
| 314 | + dref = DerivativeRef(m, idx) |
| 315 | + d = Derivative(info5, true, x, pref) |
| 316 | + warn = "Overwriting name2(pref, prefs), any previous properties (e.g., lower bound " * |
| 317 | + "or start value) will be lost/changed." |
| 318 | + @test_logs (:warn, warn) add_derivative(m, d, "name3") |
| 319 | + @test haskey(InfiniteOpt._data_dictionary(dref), idx) |
| 320 | + @test InfiniteOpt._core_variable_object(dref) == d |
| 321 | + @test name(dref) == "name3" |
311 | 322 | end |
312 | 323 | # test JuMP.add_variable |
313 | 324 | @testset "JuMP.add_variable" begin |
|
0 commit comments