Skip to content

Commit abaf4e3

Browse files
authored
Fix mock tests (#372)
* Fix mock tests * Fix format
1 parent 8c5be8f commit abaf4e3

File tree

9 files changed

+105
-138
lines changed

9 files changed

+105
-138
lines changed

test/Mock/BPT12e399.jl

Lines changed: 7 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
config = MOI.Test.Config()
2-
function optimize!_max_bridged(mock)
2+
function optimize!_max(mock)
33
return MOI.Utilities.mock_optimize!(
44
mock,
55
[6.0, 9.0, 1.0, -3.0 * 2],
66
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1 / 3, 1, 3]],
77
(MOI.VectorOfVariables, MOI.RotatedSecondOrderCone) => [[3, 1 / 3, 2]],
88
)
99
end
10-
function optimize!_min_bridged(mock)
10+
function optimize!_min(mock)
1111
return MOI.Utilities.mock_optimize!(
1212
mock,
1313
[-6.0, 9.0, 1.0, 3.0 * 2],
@@ -16,60 +16,26 @@ function optimize!_min_bridged(mock)
1616
[[3, 1 / 3, -√2]],
1717
)
1818
end
19-
function optimize!_max_cached(mock)
20-
return MOI.Utilities.mock_optimize!(
21-
mock,
22-
[9.0, 1.0, -3.0 * 2, 6.0],
23-
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1 / 3, 1, 3]],
24-
(MOI.VectorOfVariables, MOI.RotatedSecondOrderCone) => [[1 / 3, 3, 2]],
25-
)
26-
end
27-
function optimize!_min_cached(mock)
28-
return MOI.Utilities.mock_optimize!(
29-
mock,
30-
[9.0, 1.0, 3.0 * 2, -6.0],
31-
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1 / 3, -1, 3]],
32-
(MOI.VectorOfVariables, MOI.RotatedSecondOrderCone) =>
33-
[[1 / 3, 3, -√2]],
34-
)
35-
end
36-
for mock in [
37-
bridged_mock(optimize!_max_bridged, optimize!_min_bridged),
38-
cached_mock(optimize!_max_cached, optimize!_min_cached),
39-
]
19+
for mock in mocks(optimize!_max, optimize!_min)
4020
Tests.BPT12e399_rem_test(mock, config)
4121
end
42-
function optimize!_max_bridged(mock)
22+
function optimize!_max(mock)
4323
return MOI.Utilities.mock_optimize!(
4424
mock,
4525
[10.0, 5.0, -5.0, 5.0, 0.0, 0.0, 4.0],
4626
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1, 1, 0.0, 1, 0]],
4727
)
4828
end
49-
function optimize!_min_bridged(mock)
29+
function optimize!_min(mock)
5030
return MOI.Utilities.mock_optimize!(
5131
mock,
5232
[-10.0, 5.0, 5.0, 5.0, 0.0, 0.0, 4.0],
5333
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1, -1, 0.0, 1, 0]],
5434
)
5535
end
56-
function optimize!_max_cached(mock)
57-
return MOI.Utilities.mock_optimize!(
58-
mock,
59-
[5.0, -5.0, 5.0, 0.0, 0.0, 4.0, 10.0],
60-
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1, 1, 0.0, 1, 0]],
61-
)
62-
end
63-
function optimize!_min_cached(mock)
64-
return MOI.Utilities.mock_optimize!(
65-
mock,
66-
[5.0, 5.0, 5.0, 0.0, 0.0, 4.0, -10.0],
67-
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1, -1, 0.0, 1, 0]],
68-
)
69-
end
7036
for mock in [
71-
bridged_mock(optimize!_max_bridged, optimize!_min_bridged),
72-
cached_mock(optimize!_max_cached, optimize!_min_cached),
37+
bridged_mock(optimize!_max, optimize!_min),
38+
cached_mock(optimize!_max, optimize!_min),
7339
]
7440
Tests.BPT12e399_maxdegree_test(mock, config)
7541
end

test/Mock/chebyshev.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ function optimize!(mock)
55
[[128.0, 1.0, -0.0, -32.0, 0.0, 160.0, -0.0, -256.0, 0.0]; zeros(90)],
66
)
77
end
8-
for mock in [bridged_mock(optimize!), cached_mock(optimize!)]
8+
for mock in mocks(optimize!)
99
Tests.chebyshev_test(mock, config)
1010
end

test/Mock/concave_then_convex_cubic.jl

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,7 @@ end
1313
for mock in mocks(optimize!)
1414
Tests.dsos_concave_then_convex_cubic_test(mock, config)
1515
end
16-
function optimize_bridged!(mock)
17-
return MOI.Utilities.mock_optimize!(
18-
mock,
19-
vals,
20-
(MOI.ScalarAffineFunction{Float64}, MOI.EqualTo{Float64}) => zeros(4),
21-
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [zeros(2), zeros(2)],
22-
(MOI.VectorOfVariables, MOI.RotatedSecondOrderCone) =>
23-
[zeros(3) for i in 1:8],
24-
)
25-
end
26-
function optimize_cached!(mock)
16+
function optimize!(mock)
2717
return MOI.Utilities.mock_optimize!(
2818
mock,
2919
vals,
@@ -33,22 +23,10 @@ function optimize_cached!(mock)
3323
[zeros(3) for i in 1:8],
3424
)
3525
end
36-
for mock in [bridged_mock(optimize_bridged!), cached_mock(optimize_cached!)]
26+
for mock in mocks(optimize!)
3727
Tests.sdsos_concave_then_convex_cubic_test(mock, config)
3828
end
39-
function optimize_bridged!(mock)
40-
return MOI.Utilities.mock_optimize!(
41-
mock,
42-
vals,
43-
(MOI.ScalarAffineFunction{Float64}, MOI.EqualTo{Float64}) => zeros(4),
44-
(MOI.VectorOfVariables, MOI.PositiveSemidefiniteConeTriangle) =>
45-
[zeros(6), zeros(6)],
46-
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [zeros(2), zeros(2)],
47-
(MOI.VectorOfVariables, MOI.RotatedSecondOrderCone) =>
48-
[zeros(3), zeros(3)],
49-
)
50-
end
51-
function optimize_cached!(mock)
29+
function optimize!(mock)
5230
return MOI.Utilities.mock_optimize!(
5331
mock,
5432
vals,
@@ -60,6 +38,6 @@ function optimize_cached!(mock)
6038
[zeros(3), zeros(3)],
6139
)
6240
end
63-
for mock in [bridged_mock(optimize_bridged!), cached_mock(optimize_cached!)]
41+
for mock in mocks(optimize!)
6442
Tests.sos_concave_then_convex_cubic_test(mock, config)
6543
end

test/Mock/mock_tests.jl

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ using Test, JuMP
66
@testset "Term" begin
77
include("term.jl")
88
end
9-
#@testset "Term fixed" begin
10-
# include("term_fixed.jl")
11-
#end
12-
#@testset "Quartic constant" begin
13-
# include("quartic_constant.jl")
14-
#end
15-
#@testset "Quadratic" begin
16-
# include("quadratic.jl")
17-
#end
9+
@testset "Term fixed" begin
10+
include("term_fixed.jl")
11+
end
12+
@testset "Quartic constant" begin
13+
include("quartic_constant.jl")
14+
end
15+
@testset "Quadratic" begin
16+
include("quadratic.jl")
17+
end
1818
@testset "Quartic ideal" begin
1919
include("quartic_ideal.jl")
2020
end
@@ -42,18 +42,18 @@ end
4242
@testset "Motzkin" begin
4343
include("motzkin.jl")
4444
end
45-
#@testset "BPT12e399" begin
46-
# include("BPT12e399.jl")
47-
#end
45+
@testset "BPT12e399" begin
46+
include("BPT12e399.jl")
47+
end
4848
@testset "Max Cut" begin
4949
include("maxcut.jl")
5050
end
5151
@testset "Chebyshev" begin
5252
include("chebyshev.jl")
5353
end
54-
#@testset "Quartic comparison" begin
55-
# include("quartic_comparison.jl")
56-
#end
54+
@testset "Quartic comparison" begin
55+
include("quartic_comparison.jl")
56+
end
5757
@testset "SOSDEMO5" begin
5858
include("sosdemo5.jl")
5959
end

test/Mock/quadratic.jl

Lines changed: 62 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
config = MOI.Test.Config()
2-
function optimize_bridged!(mock)
1+
config = MOI.Test.Config(atol = 1e-6)
2+
function optimize!(mock)
33
return MOI.Utilities.mock_optimize!(
44
mock,
55
[2.0, 1.0, 1.0, 2],
@@ -8,40 +8,40 @@ function optimize_bridged!(mock)
88
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1.0, -1.0, 1.0]],
99
)
1010
end
11-
function optimize_cached!(mock)
12-
return MOI.Utilities.mock_optimize!(
13-
mock,
14-
[1.0, 1.0, 2, 2.0],
15-
(MOI.VectorOfVariables, MOI.RotatedSecondOrderCone) =>
16-
[[1.0, 1.0, -√2]],
17-
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1.0, -1.0, 1.0]],
18-
)
19-
end
20-
for mock in [bridged_mock(optimize_bridged!), cached_mock(optimize_cached!)]
11+
for mock in mocks(optimize!)
2112
Tests.sos_univariate_quadratic_test(mock, config)
2213
Tests.sos_bivariate_quadratic_test(mock, config)
2314
Tests.sdsos_univariate_quadratic_test(mock, config)
2415
Tests.sdsos_bivariate_quadratic_test(mock, config)
2516
Tests.sos_scaled_univariate_quadratic_test(mock, config)
26-
Tests.sos_scaled_bivariate_quadratic_test(mock, config)
2717
Tests.sdsos_scaled_univariate_quadratic_test(mock, config)
28-
Tests.sdsos_scaled_bivariate_quadratic_test(mock, config)
2918
Tests.sos_cheby_univariate_quadratic_test(mock, config)
3019
Tests.sdsos_cheby_univariate_quadratic_test(mock, config)
3120
end
21+
function optimize!(mock)
22+
return MOI.Utilities.mock_optimize!(
23+
mock,
24+
[2.0, 1.0, 1.0, 2],
25+
(MOI.VectorOfVariables, MOI.RotatedSecondOrderCone) =>
26+
[[1.0, 1.0, -√2]],
27+
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1.0, -√2, 1.0]],
28+
)
29+
end
30+
for mock in mocks(optimize!)
31+
Tests.sos_scaled_bivariate_quadratic_test(mock, config)
32+
Tests.sdsos_scaled_bivariate_quadratic_test(mock, config)
33+
end
3234
function optimize!(mock)
3335
return MOI.Utilities.mock_optimize!(
3436
mock,
3537
[2.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0],
36-
(
37-
MOI.VectorOfVariables,
38-
MOI.MathOptInterface.PositiveSemidefiniteConeTriangle,
39-
) => [[0.0, 0.0, 1.0, 0.0, -1.0, 1.0]],
38+
(MOI.VectorOfVariables, MOI.PositiveSemidefiniteConeTriangle) =>
39+
[[0.0, 0.0, 1.0, 0.0, -1.0, 1.0]],
4040
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) =>
4141
[[0.0, 0.0, 0.0, 2.0, -1.0, 2.0]],
4242
)
4343
end
44-
for mock in [bridged_mock(optimize!), cached_mock(optimize!)]
44+
for mock in mocks(optimize!)
4545
Tests.sos_cheby_bivariate_quadratic_test(mock, config)
4646
end
4747
function optimize!(mock)
@@ -54,7 +54,7 @@ function optimize!(mock)
5454
[[0.0, 0.0, 0.0, 2.0, -1.0, 2.0]],
5555
)
5656
end
57-
for mock in [bridged_mock(optimize!), cached_mock(optimize!)]
57+
for mock in mocks(optimize!)
5858
Tests.sdsos_cheby_bivariate_quadratic_test(mock, config)
5959
end
6060
function optimize!(mock)
@@ -70,7 +70,48 @@ for mock in mocks(optimize!)
7070
Tests.dsos_univariate_quadratic_test(mock, config)
7171
Tests.dsos_bivariate_quadratic_test(mock, config)
7272
Tests.dsos_scaled_univariate_quadratic_test(mock, config)
73-
Tests.dsos_scaled_bivariate_quadratic_test(mock, config)
7473
Tests.dsos_cheby_univariate_quadratic_test(mock, config)
74+
end
75+
function optimize!(mock)
76+
return MOI.Utilities.mock_optimize!(
77+
mock,
78+
(MOI.FEASIBLE_POINT, [2.0, 1.0, 1.0, 1.0, 1.0]),
79+
(MOI.ScalarAffineFunction{Float64}, MOI.GreaterThan{Float64}) =>
80+
[0.0, 2.0, 1.0, 1.0],
81+
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1.0, -√2, 1.0]],
82+
)
83+
end
84+
for mock in mocks(optimize!)
85+
Tests.dsos_scaled_bivariate_quadratic_test(mock, config)
86+
end
87+
function optimize!(mock)
88+
return MOI.Utilities.mock_optimize!(
89+
mock,
90+
(
91+
MOI.FEASIBLE_POINT,
92+
[2.0, 0.0, 0.0, 1.0, -0.0, 1.0, 1.0, 0.0, 0.0, 1.0],
93+
),
94+
(MOI.ScalarAffineFunction{Float64}, MOI.GreaterThan{Float64}) => [
95+
0.7624324421943409,
96+
0.7624324421943427,
97+
0.7624324421943439,
98+
0.7624324421943471,
99+
0.0,
100+
2.0,
101+
0.5248650317582692,
102+
1.0,
103+
1.0,
104+
],
105+
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[
106+
0.5248650317582707,
107+
0.0,
108+
0.0,
109+
1.4751346735031994,
110+
-1.0,
111+
1.4751346735032143,
112+
]],
113+
)
114+
end
115+
for mock in mocks(optimize!)
75116
Tests.dsos_cheby_bivariate_quadratic_test(mock, config)
76117
end

test/Mock/quartic_comparison.jl

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,21 @@
11
config = MOI.Test.Config()
22
# The test does not check the solution except the first variable so we just set zeros.
3-
function optimize_bridged!(mock)
3+
function optimize!(mock)
44
return MOI.Utilities.mock_optimize!(
55
mock,
66
[-0.184667; zeros(MOI.get(mock, MOI.NumberOfVariables()) - 1)],
77
)
88
end
9-
function optimize_cached!(mock)
10-
return MOI.Utilities.mock_optimize!(
11-
mock,
12-
[zeros(MOI.get(mock, MOI.NumberOfVariables()) - 1); -0.184667],
13-
)
14-
end
15-
for mock in [bridged_mock(optimize_bridged!), cached_mock(optimize_cached!)]
9+
for mock in [bridged_mock(optimize!)]
1610
Tests.sos_quartic_comparison_test(mock, config)
1711
end
18-
function optimize_bridged!(mock)
12+
function optimize!(mock)
1913
return MOI.Utilities.mock_optimize!(
2014
mock,
2115
[-3.172412; zeros(MOI.get(mock, MOI.NumberOfVariables()) - 1)],
2216
)
2317
end
24-
function optimize_cached!(mock)
25-
return MOI.Utilities.mock_optimize!(
26-
mock,
27-
[zeros(MOI.get(mock, MOI.NumberOfVariables()) - 1); -3.172412],
28-
)
29-
end
30-
for mock in [bridged_mock(optimize_bridged!), cached_mock(optimize_cached!)]
18+
for mock in mocks(optimize!)
3119
Tests.sdsos_quartic_comparison_test(mock, config)
3220
end
3321
function optimize!(mock)

test/Mock/quartic_constant.jl

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
config = MOI.Test.Config()
2-
optimize_bridged!(mock) = MOI.Utilities.mock_optimize!(mock, [4.0, 1.0])
3-
optimize_cached!(mock) = MOI.Utilities.mock_optimize!(mock, [1.0, 4.0])
4-
for mock in [bridged_mock(optimize_bridged!), cached_mock(optimize_cached!)]
2+
optimize!(mock) = MOI.Utilities.mock_optimize!(mock, [4.0, 1.0])
3+
for mock in mocks(optimize!)
54
Tests.dsos_quartic_constant_test(mock, config)
65
Tests.sdsos_quartic_constant_test(mock, config)
76
Tests.sos_quartic_constant_test(mock, config)

test/Mock/term_fixed.jl

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
config = MOI.Test.Config()
2-
function optimize_bridged!(mock)
2+
function optimize!(mock)
33
return MOI.Utilities.mock_optimize!(
44
mock,
55
[1.0, 0.0],
66
(MOI.VectorAffineFunction{Float64}, MOI.Nonnegatives) => [[1.0]],
77
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1.0]],
88
)
99
end
10-
function optimize_cached!(mock)
11-
return MOI.Utilities.mock_optimize!(
12-
mock,
13-
[0.0, 1.0],
14-
(MOI.VectorAffineFunction{Float64}, MOI.Nonnegatives) => [[1.0]],
15-
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) => [[1.0]],
16-
)
17-
end
18-
for mock in [bridged_mock(optimize_bridged!), cached_mock(optimize_cached!)]
10+
for mock in mocks(optimize!)
1911
Tests.sos_term_fixed_test(mock, config)
2012
Tests.sdsos_term_fixed_test(mock, config)
2113
Tests.dsos_term_fixed_test(mock, config)

0 commit comments

Comments
 (0)