@@ -27,6 +27,7 @@ function test_knapsack()
27
27
model = MOA. Optimizer (HiGHS. Optimizer)
28
28
MOI. set (model, MOA. Algorithm (), MOA. Lexicographic ())
29
29
@test MOI. supports (model, MOA. LexicographicAllPermutations ())
30
+ @test MOI. supports (model, MOA. ObjectiveRelativeTolerance (1 ))
30
31
MOI. set (model, MOA. LexicographicAllPermutations (), false )
31
32
MOI. set (model, MOA. ObjectiveRelativeTolerance (1 ), 0.1 )
32
33
MOI. set (model, MOI. Silent (), true )
@@ -175,6 +176,27 @@ function test_warn_all_permutations()
175
176
return
176
177
end
177
178
179
+ function test_knapsack_time_limit ()
180
+ P = Float64[1 0 0 0 ; 0 1 0 0 ; 0 0 0 1 ; 0 0 1 0 ]
181
+ model = MOA. Optimizer (HiGHS. Optimizer)
182
+ MOI. set (model, MOA. Algorithm (), MOA. Lexicographic ())
183
+ MOI. set (model, MOA. LexicographicAllPermutations (), false )
184
+ MOI. set (model, MOA. ObjectiveRelativeTolerance (1 ), 0.1 )
185
+ MOI. set (model, MOI. Silent (), true )
186
+ x = MOI. add_variables (model, 4 )
187
+ MOI. add_constraint .(model, x, MOI. GreaterThan (0.0 ))
188
+ MOI. add_constraint .(model, x, MOI. LessThan (1.0 ))
189
+ MOI. set (model, MOI. ObjectiveSense (), MOI. MAX_SENSE)
190
+ f = MOI. Utilities. operate (vcat, Float64, P * x... )
191
+ f. constants[4 ] = 1_000.0
192
+ MOI. set (model, MOI. ObjectiveFunction {typeof(f)} (), f)
193
+ MOI. add_constraint (model, sum (1.0 * x[i] for i in 1 : 4 ), MOI. LessThan (2.0 ))
194
+ MOI. set (model, MOI. TimeLimitSec (), 0.0 )
195
+ MOI. optimize! (model)
196
+ @test MOI. get (model, MOI. TerminationStatus ()) == MOI. TIME_LIMIT
197
+ return
198
+ end
199
+
178
200
end
179
201
180
202
TestLexicographic. run_tests ()
0 commit comments