@@ -10,69 +10,35 @@ using Test
1010
1111import MathOptInterface as MOI
1212
13- const _MOSEK_API_COUNTER = Ref {Int} (0 )
14-
1513if isdefined (MOI. Test, :_error_handler )
1614 @eval function MOI. Test. _error_handler (
1715 err:: Mosek.MosekError ,
1816 name:: String ,
1917 warn_unsupported:: Bool ,
2018 )
21- if Mosek. Rescode (err. rcode) == Mosek. MSK_RES_ERR_SERVER_STATUS
22- _MOSEK_API_COUNTER[] += 1
23- return # Server returned non-ok HTTP status code
24- elseif Mosek. Rescode (err. rcode) == Mosek. MSK_RES_ERR_CONE_OVERLAP_APPEND
19+ if Mosek. Rescode (err. rcode) == Mosek. MSK_RES_ERR_CONE_OVERLAP_APPEND
2520 return # Mosek doesn't support this problem formulation
2621 end
2722 return rethrow (err)
2823 end
2924end
3025
31- _is_intermittent (:: Any ) = false
32- function _is_intermittent (err:: Mosek.MosekError )
33- return Mosek. Rescode (err. rcode) == Mosek. MSK_RES_ERR_SERVER_STATUS
34- end
35-
3626function runtests ()
37- _MOSEK_API_COUNTER[] = 0
38- for name in names (@__MODULE__ ; all = true )
39- if startswith (" $name " , " test_" )
40- @testset " $name " begin
41- try
42- getfield (@__MODULE__ , name)()
43- catch err
44- if _is_intermittent (err) # A flakey failure. Retry once.
45- getfield (@__MODULE__ , name)()
46- else
47- rethrow (err)
48- end
49- end
50- end
51- end
27+ is_test (name) = startswith (" $name " , " test_" )
28+ @testset " $name " for name in filter (is_test, names (@__MODULE__ ; all = true ))
29+ getfield (@__MODULE__ , name)()
5230 end
53- # Test that there are less than 5 API call failures during a test run
54- @test _MOSEK_API_COUNTER[] < 5
5531 return
5632end
5733
58- function MosekOptimizerWithFallback ()
59- optimizer = Mosek. Optimizer ()
60- MOI. set (
61- optimizer,
62- MOI. RawOptimizerAttribute (" fallback" ),
63- " mosek://solve.mosek.com:30080" ,
64- )
65- MOI. set (optimizer, MOI. Silent (), true )
66- return optimizer
67- end
68-
6934function test_SolverName ()
7035 @test MOI. get (Mosek. Optimizer (), MOI. SolverName ()) == " Mosek"
7136 return
7237end
7338
7439function test_Double_Parameter ()
75- optimizer = MosekOptimizerWithFallback ()
40+ optimizer = Mosek. Optimizer ()
41+ MOI. set (optimizer, MOI. Silent (), true )
7642 MOI. set (optimizer, MOI. RawOptimizerAttribute (" INTPNT_CO_TOL_DFEAS" ), 1e-7 )
7743 @test MOI. get (
7844 optimizer,
@@ -100,7 +66,8 @@ function test_Double_Parameter()
10066end
10167
10268function test_Integer_Parameter ()
103- optimizer = MosekOptimizerWithFallback ()
69+ optimizer = Mosek. Optimizer ()
70+ MOI. set (optimizer, MOI. Silent (), true )
10471 MOI. set (
10572 optimizer,
10673 MOI. RawOptimizerAttribute (" MSK_IPAR_INTPNT_MAX_ITERATIONS" ),
@@ -138,7 +105,8 @@ function test_String_Parameter()
138105end
139106
140107function test_TimeLimitSec ()
141- optimizer = MosekOptimizerWithFallback ()
108+ optimizer = Mosek. Optimizer ()
109+ MOI. set (optimizer, MOI. Silent (), true )
142110 @test MOI. get (
143111 optimizer,
144112 MOI. RawOptimizerAttribute (" MSK_DPAR_OPTIMIZER_MAX_TIME" ),
@@ -165,7 +133,8 @@ function test_supports_incremental_interface()
165133end
166134
167135function test_Number_of_variables_and_deletion ()
168- optimizer = MosekOptimizerWithFallback ()
136+ optimizer = Mosek. Optimizer ()
137+ MOI. set (optimizer, MOI. Silent (), true )
169138 x = MOI. add_variable (optimizer)
170139 @test MOI. get (optimizer, MOI. NumberOfVariables ()) == 1
171140 y, cy = MOI. add_constrained_variables (
@@ -188,7 +157,8 @@ function test_Number_of_variables_and_deletion()
188157end
189158
190159function test_Matrix_name ()
191- optimizer = MosekOptimizerWithFallback ()
160+ optimizer = Mosek. Optimizer ()
161+ MOI. set (optimizer, MOI. Silent (), true )
192162 x, cx = MOI. add_constrained_variables (
193163 optimizer,
194164 MOI. PositiveSemidefiniteConeTriangle (3 ),
212182
213183# See https://github.com/jump-dev/MosekTools.jl/issues/95
214184function test_Mapping_enums ()
215- optimizer = MosekOptimizerWithFallback ()
185+ optimizer = Mosek. Optimizer ()
186+ MOI. set (optimizer, MOI. Silent (), true )
216187 # Force variable bridging to test attribute substitution
217188 bridged = MOI. Bridges. Variable. Zeros {Float64} (optimizer)
218189 cache = MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ())
@@ -233,7 +204,8 @@ function test_Mapping_enums()
233204end
234205
235206function test_LMIs ()
236- optimizer = MosekOptimizerWithFallback ()
207+ optimizer = Mosek. Optimizer ()
208+ MOI. set (optimizer, MOI. Silent (), true )
237209 @test MOI. supports_constraint (
238210 optimizer,
239211 MOI. VectorAffineFunction{Float64},
@@ -354,8 +326,10 @@ function test_modify_psd()
354326end
355327
356328function test_moi_test_runtests_Mosek ()
329+ optimizer = Mosek. Optimizer ()
330+ MOI. set (optimizer, MOI. Silent (), true )
357331 MOI. Test. runtests (
358- MosekOptimizerWithFallback () ,
332+ optimizer ,
359333 MOI. Test. Config (; atol = 1e-3 , rtol = 1e-3 );
360334 # Evaluated: MOI.OTHER_ERROR in (MOI.OPTIMAL, MOI.INVALID_MODEL)
361335 exclude = [" test_conic_empty_matrix" ],
@@ -364,8 +338,10 @@ function test_moi_test_runtests_Mosek()
364338end
365339
366340function test_moi_test_runtests_Bridge_Mosek ()
341+ model = MOI. instantiate (Mosek. Optimizer; with_bridge_type = Float64)
342+ MOI. set (model, MOI. Silent (), true )
367343 MOI. Test. runtests (
368- MOI . instantiate (MosekOptimizerWithFallback; with_bridge_type = Float64) ,
344+ model ,
369345 MOI. Test. Config (; atol = 1e-3 , rtol = 1e-3 );
370346 exclude = [
371347 # Evaluated: MOI.OTHER_ERROR in (MOI.OPTIMAL, MOI.INVALID_MODEL)
@@ -379,12 +355,14 @@ function test_moi_test_runtests_Bridge_Mosek()
379355end
380356
381357function test_moi_test_runtests_Bridge_Cache_Mosek ()
358+ model = MOI. instantiate (
359+ Mosek. Optimizer;
360+ with_bridge_type = Float64,
361+ with_cache_type = Float64,
362+ )
363+ MOI. set (model, MOI. Silent (), true )
382364 MOI. Test. runtests (
383- MOI. instantiate (
384- MosekOptimizerWithFallback;
385- with_bridge_type = Float64,
386- with_cache_type = Float64,
387- ),
365+ model,
388366 MOI. Test. Config (; atol = 1e-3 , rtol = 1e-3 );
389367 # Evaluated: MOI.OTHER_ERROR in (MOI.OPTIMAL, MOI.INVALID_MODEL)
390368 exclude = [" test_conic_empty_matrix" ],
@@ -397,11 +375,12 @@ function test_more_SDP_tests_by_forced_bridging()
397375 MOI. Bridges. Constraint. RSOCtoPSD {Float64} ( # Forced bridging
398376 MOI. Utilities. CachingOptimizer (
399377 MOI. Utilities. UniversalFallback (MOI. Utilities. Model {Float64} ()),
400- MosekOptimizerWithFallback (),
378+ Mosek . Optimizer (),
401379 ),
402380 ),
403381 Float64,
404382 )
383+ MOI. set (model, MOI. Silent (), true )
405384 config = MOI. Test. Config (
406385 Float64;
407386 atol = 1e-3 ,
415394
416395function test_VariableBasisStatus ()
417396 attr = MOI. VariableBasisStatus ()
418- model = MosekOptimizerWithFallback ()
397+ model = Mosek. Optimizer ()
398+ MOI. set (model, MOI. Silent (), true )
419399 x_low, _ = MOI. add_constrained_variable (model, MOI. GreaterThan (0.0 ))
420400 x_upr, _ = MOI. add_constrained_variable (model, MOI. LessThan (0.0 ))
421401 x_fix, _ = MOI. add_constrained_variable (model, MOI. EqualTo (0.0 ))
@@ -440,7 +420,8 @@ function test_VariableBasisStatus()
440420end
441421
442422function test_variable_name ()
443- model = MosekOptimizerWithFallback ()
423+ model = Mosek. Optimizer ()
424+ MOI. set (model, MOI. Silent (), true )
444425 x = MOI. add_variable (model)
445426 set = MOI. PositiveSemidefiniteConeTriangle (2 )
446427 y, _ = MOI. add_constrained_variables (model, set)
519500
520501function test_issue_134 ()
521502 model = MOI. instantiate (
522- MosekOptimizerWithFallback ;
503+ Mosek . Optimizer ;
523504 with_bridge_type = Float64,
524505 with_cache_type = Float64,
525506 )
@@ -618,15 +599,17 @@ function _solve_knapsack_model(model, n; integer::Bool = true)
618599end
619600
620601function test_simplex_iterations ()
621- model = MosekOptimizerWithFallback ()
602+ model = Mosek. Optimizer ()
603+ MOI. set (model, MOI. Silent (), true )
622604 @test MOI. get (model, MOI. SimplexIterations ()) == 0
623605 _solve_knapsack_model (model, 100 )
624606 @test MOI. get (model, MOI. SimplexIterations ()) >= 0
625607 return
626608end
627609
628610function test_barrier_iterations ()
629- model = MosekOptimizerWithFallback ()
611+ model = Mosek. Optimizer ()
612+ MOI. set (model, MOI. Silent (), true )
630613 MOI. set (
631614 model,
632615 MOI. RawOptimizerAttribute (" MSK_IPAR_PRESOLVE_USE" ),
@@ -639,15 +622,17 @@ function test_barrier_iterations()
639622end
640623
641624function test_node_count ()
642- model = MosekOptimizerWithFallback ()
625+ model = Mosek. Optimizer ()
626+ MOI. set (model, MOI. Silent (), true )
643627 @test MOI. get (model, MOI. NodeCount ()) == 0
644628 _solve_knapsack_model (model, 100 )
645629 @test MOI. get (model, MOI. NodeCount ()) >= 0
646630 return
647631end
648632
649633function test_objective_bound_relative_gap ()
650- model = MosekOptimizerWithFallback ()
634+ model = Mosek. Optimizer ()
635+ MOI. set (model, MOI. Silent (), true )
651636 @test isnan (MOI. get (model, MOI. ObjectiveBound ()))
652637 _solve_knapsack_model (model, 100 )
653638 @test isapprox (
@@ -660,7 +645,8 @@ function test_objective_bound_relative_gap()
660645end
661646
662647function test_variable_primal_start ()
663- model = MosekOptimizerWithFallback ()
648+ model = Mosek. Optimizer ()
649+ MOI. set (model, MOI. Silent (), true )
664650 set = MOI. PositiveSemidefiniteConeTriangle (2 )
665651 x, _ = MOI. add_constrained_variables (model, set)
666652 MOI. set .(model, MOI. VariablePrimalStart (), x, [1.0 , 0.0 , 1.0 ])
@@ -669,7 +655,8 @@ function test_variable_primal_start()
669655end
670656
671657function test_raw_status_string ()
672- model = MosekOptimizerWithFallback ()
658+ model = Mosek. Optimizer ()
659+ MOI. set (model, MOI. Silent (), true )
673660 @test MOI. get (model, MOI. RawStatusString ()) == " MOI.OPTIMIZE_NOT_CALLED"
674661 MOI. set (
675662 model,
@@ -704,7 +691,12 @@ function test_show_linked_ints()
704691end
705692
706693function test_get_fallback ()
707- model = MosekOptimizerWithFallback ()
694+ model = Mosek. Optimizer ()
695+ MOI. set (
696+ model,
697+ MOI. RawOptimizerAttribute (" fallback" ),
698+ " mosek://solve.mosek.com:30080" ,
699+ )
708700 @test MOI. get (model, MOI. RawOptimizerAttribute (" fallback" )) ==
709701 " mosek://solve.mosek.com:30080"
710702 return
0 commit comments