|
1 | | -const MOIDT = MOI.DeprecatedTest |
2 | | - |
3 | | -@testset "Linear tests" begin |
4 | | - MOIDT.contlineartest(DiffOpt.diff_optimizer(GLPK.Optimizer), MOIDT.Config(basis = true), [ |
5 | | - "partial_start", # see below |
6 | | - "linear12", # see below |
7 | | - ]) |
8 | | - model = DiffOpt.diff_optimizer(Ipopt.Optimizer) |
9 | | - MOI.set(model, MOI.Silent(), true) |
10 | | - MOIDT.partial_start_test( |
11 | | - model, |
12 | | - MOIDT.Config(basis = true, optimal_status=MOI.LOCALLY_SOLVED, atol=ATOL, rtol=RTOL) |
13 | | - ) |
14 | | - |
15 | | - # This requires an infeasiblity certificate for a variable bound. |
16 | | - MOIDT.linear12test( |
17 | | - DiffOpt.diff_optimizer(GLPK.Optimizer), |
18 | | - MOIDT.Config(infeas_certificates=false) |
19 | | - ) |
20 | | -end |
21 | | - |
22 | | -@testset "Convex Quadratic tests" begin |
23 | | - model = DiffOpt.diff_optimizer(OSQP.Optimizer) |
24 | | - MOI.set(model, MOI.Silent(), true) |
25 | | - MOIDT.qp1test(model, MOIDT.Config(atol=1e-2, rtol=1e-2)) |
26 | | - model = DiffOpt.diff_optimizer(OSQP.Optimizer) |
27 | | - MOI.set(model, MOI.Silent(), true) |
28 | | - MOIDT.qp2test(model, MOIDT.Config(atol=1e-2, rtol=1e-2)) |
29 | | - model = DiffOpt.diff_optimizer(Ipopt.Optimizer) |
30 | | - MOI.set(model, MOI.Silent(), true) |
31 | | - MOIDT.qp3test( |
32 | | - model, |
33 | | - MOIDT.Config(optimal_status=MOI.LOCALLY_SOLVED, atol=1e-3), |
34 | | - ) |
35 | | -end |
36 | | - |
37 | | - |
38 | 1 | @testset "FEASIBILITY_SENSE zeros objective" begin |
39 | 2 | model = DiffOpt.diff_optimizer(GLPK.Optimizer) |
40 | 3 | MOI.set(model, MOI.Silent(), true) |
|
50 | 13 | MOI.optimize!(model) |
51 | 14 | @test MOI.get(model, MOI.ObjectiveValue()) == 0.0 |
52 | 15 | end |
53 | | - |
54 | | -@testset "ModelLike" begin |
55 | | - for opt in [GLPK.Optimizer] |
56 | | - MODEL = DiffOpt.diff_optimizer(opt) |
57 | | - @testset "default_objective_test" begin |
58 | | - MOIDT.default_objective_test(MODEL) |
59 | | - end |
60 | | - @testset "default_status_test" begin |
61 | | - MOIDT.default_status_test(MODEL) |
62 | | - end |
63 | | - @testset "nametest" begin |
64 | | - MOIDT.nametest(MODEL) |
65 | | - end |
66 | | - @testset "validtest" begin |
67 | | - MOIDT.validtest(MODEL) |
68 | | - end |
69 | | - @testset "emptytest" begin |
70 | | - MOIDT.emptytest(MODEL) |
71 | | - end |
72 | | - @testset "orderedindicestest" begin |
73 | | - MOIDT.orderedindicestest(MODEL) |
74 | | - end |
75 | | - @testset "copytest" begin |
76 | | - # Requires VectorOfVariables |
77 | | - # MOIDT.copytest(MODEL, MOIU.CachingOptimizer( |
78 | | - # DiffOpt.diff_optimizer(GLPK.Optimizer), |
79 | | - # GLPK.Optimizer() |
80 | | - # )) |
81 | | - end |
82 | | - end |
83 | | -end |
84 | | - |
85 | | - |
86 | | -@testset "Unit" begin |
87 | | - MOIDT.unittest(DiffOpt.diff_optimizer(GLPK.Optimizer), MOIDT.Config(atol=ATOL, rtol=RTOL), [ |
88 | | - "number_threads", # might not work on all solvers |
89 | | - |
90 | | - # not testing integer constraints |
91 | | - "solve_zero_one_with_bounds_1", |
92 | | - "solve_zero_one_with_bounds_2", |
93 | | - "solve_zero_one_with_bounds_3", |
94 | | - "solve_integer_edge_cases", |
95 | | - |
96 | | - "delete_soc_variables", |
97 | | - "solve_qcp_edge_cases", # currently only affine or conic constraints |
98 | | - "solve_objbound_edge_cases", |
99 | | - "solve_qp_edge_cases", # No quadratics |
100 | | - "solve_qp_zero_offdiag", |
101 | | - "update_dimension_nonnegative_variables", # TODO: fix this |
102 | | - |
103 | | - # see below |
104 | | - "solve_duplicate_terms_vector_affine", |
105 | | - # SOC not supportedot supported |
106 | | - "solve_start_soc", |
107 | | - ]) |
108 | | - model = DiffOpt.diff_optimizer(SCS.Optimizer) |
109 | | - MOI.set(model, MOI.Silent(), true) |
110 | | - MOIDT.solve_duplicate_terms_obj(model, MOIDT.Config(atol=ATOL, rtol=RTOL)) |
111 | | -end |
112 | | - |
113 | | -@testset "basic_constraint_tests" begin |
114 | | - # it contains SOCP constraints |
115 | | - model = DiffOpt.diff_optimizer(SCS.Optimizer) |
116 | | - MOI.set(model, MOI.Silent(), true) |
117 | | - MOIDT.basic_constraint_tests(model, MOIDT.Config()) |
118 | | -end |
119 | | - |
120 | | -# TODO: re-organiza conic tests |
121 | | -@testset "contconic.jl tests" begin |
122 | | - model = DiffOpt.diff_optimizer(SCS.Optimizer) |
123 | | - MOI.set(model, MOI.Silent(), true) |
124 | | - # Needed for `lin2v` |
125 | | - MOI.Bridges.remove_bridge(model.optimizer.optimizer, MOI.Bridges.Variable.ZerosBridge{Float64}) |
126 | | - # linear tests |
127 | | - for (name, test) in MOIDT.lintests |
128 | | - test(model, MOIDT.Config(atol=ATOL, rtol=RTOL)) |
129 | | - end |
130 | | - |
131 | | - CONFIG_LOW_TOL = MOIDT.Config(atol = 1e-3, rtol = 1e-2, duals = false, infeas_certificates = false) |
132 | | - # SOCP tests |
133 | | - for (name, test) in MOIDT.soctests |
134 | | - test(model, CONFIG_LOW_TOL) |
135 | | - end |
136 | | -end |
0 commit comments