|
60 | 60 |
|
61 | 61 | # Test that unnamed objects don't create a key `Symbol("")` in `dual_model`.
|
62 | 62 | @variable(model)
|
63 |
| - @constraint(model, x == y) |
| 63 | + @constraint(model, c, x == y) |
64 | 64 |
|
65 | 65 | dual_model = dualize(model; dual_names = DualNames("dual", ""))
|
66 | 66 |
|
67 | 67 | @test typeof(dual_model[:dualeqcon]) == VariableRef
|
68 | 68 | @test !haskey(dual_model, Symbol(""))
|
| 69 | + |
| 70 | + for var in (x, y, z) |
| 71 | + con = Dualization._get_dual_constraint(dual_model, x) |
| 72 | + @test con[1] isa ConstraintRef |
| 73 | + @test con[2] isa Int |
| 74 | + end |
| 75 | + |
| 76 | + var = Dualization._get_dual_variables(dual_model, soccon) |
| 77 | + @test var === nothing |
| 78 | + con = Dualization._get_dual_constraint(dual_model, soccon) |
| 79 | + @test con === nothing |
| 80 | + |
| 81 | + con = Dualization._get_primal_constraint(dual_model, y) |
| 82 | + @test con[1] isa ConstraintRef |
| 83 | + @test con[2] == 2 |
| 84 | + |
| 85 | + var = Dualization._get_dual_variables(dual_model, eqcon) |
| 86 | + @test length(var) == 1 |
| 87 | + @test var[1] isa VariableRef |
| 88 | + con = Dualization._get_dual_constraint(dual_model, eqcon) |
| 89 | + @test con === nothing |
| 90 | + |
| 91 | + var = Dualization._get_dual_variables(dual_model, c) |
| 92 | + @test length(var) == 1 |
| 93 | + @test var[1] isa VariableRef |
| 94 | + con = Dualization._get_dual_constraint(dual_model, c) |
| 95 | + @test con === nothing |
69 | 96 | end
|
70 | 97 | @testset "JuMP_dualize_kwargs" begin
|
71 | 98 | model = Model()
|
72 | 99 | @variable(model, x >= 0)
|
73 |
| - @constraint(model, x <= 2) |
| 100 | + @constraint(model, c, x <= 2) |
74 | 101 | @objective(model, Max, 2 * x + 1)
|
75 | 102 | dual_model = Dualization.dualize(
|
76 | 103 | model;
|
|
80 | 107 | )
|
81 | 108 | @test dual_model isa Model
|
82 | 109 | @test num_variables(dual_model) == 2
|
| 110 | + con = Dualization._get_dual_constraint(dual_model, x) |
| 111 | + @test con[1] isa ConstraintRef |
| 112 | + @test con[2] == -1 |
| 113 | + |
| 114 | + con = Dualization._get_primal_constraint(dual_model, x) |
| 115 | + @test con[1] === nothing |
| 116 | + @test con[2] == -1 |
| 117 | + |
| 118 | + var = Dualization._get_dual_variables(dual_model, c) |
| 119 | + @test length(var) == 1 |
| 120 | + @test var[] isa VariableRef |
| 121 | + con = Dualization._get_dual_constraint(dual_model, c) |
| 122 | + @test con isa ConstraintRef |
| 123 | + |
| 124 | + cv = LowerBoundRef(x) |
| 125 | + var = Dualization._get_dual_variables(dual_model, cv) |
| 126 | + @test length(var) == 1 |
| 127 | + @test var[] isa VariableRef |
| 128 | + con = Dualization._get_dual_constraint(dual_model, cv) |
| 129 | + @test con isa ConstraintRef |
83 | 130 | end
|
84 | 131 | end
|
0 commit comments