@@ -10,6 +10,8 @@ using Gurobi
10
10
using Random
11
11
using Test
12
12
13
+ import MathOptInterface as MOI
14
+
13
15
function runtests ()
14
16
for name in names (@__MODULE__ ; all = true )
15
17
if startswith (" $(name) " , " test_" )
@@ -21,8 +23,6 @@ function runtests()
21
23
return
22
24
end
23
25
24
- const MOI = Gurobi. MOI
25
-
26
26
const GRB_ENV =
27
27
isdefined (Main, :GRB_ENV ) ? Main. GRB_ENV : Gurobi. Env (output_flag = 0 )
28
28
@@ -122,6 +122,12 @@ function test_lazy_constraint_callback()
122
122
@test lazy_called
123
123
@test MOI. get (model, MOI. VariablePrimal (), x) == 1
124
124
@test MOI. get (model, MOI. VariablePrimal (), y) == 2
125
+ attrs = MOI. get (model, MOI. ListOfModelAttributesSet ())
126
+ @test MOI. LazyConstraintCallback () in attrs
127
+ MOI. set (model, MOI. LazyConstraintCallback (), nothing )
128
+ attrs = MOI. get (model, MOI. ListOfModelAttributesSet ())
129
+ @test ! (MOI. LazyConstraintCallback () in attrs)
130
+ return
125
131
end
126
132
127
133
function test_lazy_constraint_callback_fractional ()
@@ -148,6 +154,7 @@ function test_lazy_constraint_callback_fractional()
148
154
MOI. optimize! (model)
149
155
@test lazy_called_integer
150
156
@test lazy_called_fractional
157
+ return
151
158
end
152
159
153
160
function test_lazy_constraint_callback_OptimizeInProgress ()
@@ -170,7 +177,8 @@ function test_lazy_constraint_callback_OptimizeInProgress()
170
177
)
171
178
end ,
172
179
)
173
- return MOI. optimize! (model)
180
+ MOI. optimize! (model)
181
+ return
174
182
end
175
183
176
184
function test_lazy_constraint_callback_UserCut ()
@@ -193,6 +201,7 @@ function test_lazy_constraint_callback_UserCut()
193
201
MOI. InvalidCallbackUsage (MOI. LazyConstraintCallback (), MOI. UserCut (cb)),
194
202
MOI. optimize! (model)
195
203
)
204
+ return
196
205
end
197
206
198
207
function test_lazy_constraint_callback_HeuristicSolution ()
@@ -213,6 +222,7 @@ function test_lazy_constraint_callback_HeuristicSolution()
213
222
),
214
223
MOI. optimize! (model)
215
224
)
225
+ return
216
226
end
217
227
218
228
function test_user_cut_callback ()
@@ -245,6 +255,12 @@ function test_user_cut_callback()
245
255
@test MOI. supports (model, MOI. UserCutCallback ())
246
256
MOI. optimize! (model)
247
257
@test user_cut_submitted
258
+ attrs = MOI. get (model, MOI. ListOfModelAttributesSet ())
259
+ @test MOI. UserCutCallback () in attrs
260
+ MOI. set (model, MOI. UserCutCallback (), nothing )
261
+ attrs = MOI. get (model, MOI. ListOfModelAttributesSet ())
262
+ @test ! (MOI. UserCutCallback () in attrs)
263
+ return
248
264
end
249
265
250
266
function test_user_cut_callback_LazyConstraint ()
@@ -267,6 +283,7 @@ function test_user_cut_callback_LazyConstraint()
267
283
MOI. InvalidCallbackUsage (MOI. UserCutCallback (), MOI. LazyConstraint (cb)),
268
284
MOI. optimize! (model)
269
285
)
286
+ return
270
287
end
271
288
272
289
function test_user_cut_callback_HeuristicSolution ()
@@ -287,6 +304,7 @@ function test_user_cut_callback_HeuristicSolution()
287
304
),
288
305
MOI. optimize! (model)
289
306
)
307
+ return
290
308
end
291
309
292
310
function test_heuristic_callback ()
@@ -329,6 +347,12 @@ function test_heuristic_callback()
329
347
MOI. optimize! (model)
330
348
@test solution_accepted
331
349
@test solution_rejected
350
+ attrs = MOI. get (model, MOI. ListOfModelAttributesSet ())
351
+ @test MOI. HeuristicCallback () in attrs
352
+ MOI. set (model, MOI. HeuristicCallback (), nothing )
353
+ attrs = MOI. get (model, MOI. ListOfModelAttributesSet ())
354
+ @test ! (MOI. HeuristicCallback () in attrs)
355
+ return
332
356
end
333
357
334
358
function test_heuristic_callback_LazyConstraint ()
@@ -354,6 +378,7 @@ function test_heuristic_callback_LazyConstraint()
354
378
),
355
379
MOI. optimize! (model)
356
380
)
381
+ return
357
382
end
358
383
359
384
function test_heuristic_callback_UserCut ()
@@ -376,6 +401,7 @@ function test_heuristic_callback_UserCut()
376
401
MOI. InvalidCallbackUsage (MOI. HeuristicCallback (), MOI. UserCut (cb)),
377
402
MOI. optimize! (model)
378
403
)
404
+ return
379
405
end
380
406
381
407
function test_CallbackFunction_callback_OptimizeInProgress ()
@@ -399,7 +425,8 @@ function test_CallbackFunction_callback_OptimizeInProgress()
399
425
end ,
400
426
)
401
427
@test MOI. supports (model, Gurobi. CallbackFunction ())
402
- return MOI. optimize! (model)
428
+ MOI. optimize! (model)
429
+ return
403
430
end
404
431
405
432
function test_CallbackFunction_callback_LazyConstraint ()
@@ -443,6 +470,12 @@ function test_CallbackFunction_callback_LazyConstraint()
443
470
@test Gurobi. GRB_CB_MESSAGE in cb_calls
444
471
@test Gurobi. GRB_CB_PRESOLVE in cb_calls
445
472
@test Gurobi. GRB_CB_MIPSOL in cb_calls
473
+ attrs = MOI. get (model, MOI. ListOfModelAttributesSet ())
474
+ @test Gurobi. CallbackFunction () in attrs
475
+ MOI. set (model, Gurobi. CallbackFunction (), nothing )
476
+ attrs = MOI. get (model, MOI. ListOfModelAttributesSet ())
477
+ @test ! (Gurobi. CallbackFunction () in attrs)
478
+ return
446
479
end
447
480
448
481
function test_CallbackFunction_callback_UserCut ()
@@ -490,6 +523,7 @@ function test_CallbackFunction_callback_UserCut()
490
523
MOI. optimize! (model)
491
524
@test user_cut_submitted
492
525
@test Gurobi. GRB_CB_MIPNODE in cb_calls
526
+ return
493
527
end
494
528
495
529
function test_CallbackFunction_callback_HeuristicSolution ()
@@ -548,6 +582,7 @@ function test_CallbackFunction_callback_HeuristicSolution()
548
582
@test solution_rejected
549
583
@test solution_unknown
550
584
@test Gurobi. GRB_CB_MIPNODE in cb_calls
585
+ return
551
586
end
552
587
553
588
function test_CallbackFunction_CallbackNodeStatus ()
@@ -565,6 +600,7 @@ function test_CallbackFunction_CallbackNodeStatus()
565
600
)
566
601
MOI. optimize! (model)
567
602
@test unknown_reached
603
+ return
568
604
end
569
605
570
606
function test_CallbackFunction_broadcast ()
@@ -584,6 +620,7 @@ function test_CallbackFunction_broadcast()
584
620
MOI. optimize! (model)
585
621
@test length (solutions) > 0
586
622
@test length (solutions[1 ]) == length (x)
623
+ return
587
624
end
588
625
589
626
end # module TestCallbacks
0 commit comments