Skip to content

Commit

Permalink
Fix quadratic tests
Browse files Browse the repository at this point in the history
  • Loading branch information
blegat committed Jul 5, 2024
1 parent 2ce16ca commit 3fc901d
Show file tree
Hide file tree
Showing 3 changed files with 65 additions and 5 deletions.
6 changes: 3 additions & 3 deletions test/Mock/mock_tests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ using Test, JuMP
#@testset "Quartic constant" begin
# include("quartic_constant.jl")
#end
#@testset "Quadratic" begin
# include("quadratic.jl")
#end
@testset "Quadratic" begin
include("quadratic.jl")
end
@testset "Quartic ideal" begin
include("quartic_ideal.jl")
end
Expand Down
21 changes: 19 additions & 2 deletions test/Mock/quadratic.jl
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,27 @@ for mock in [bridged_mock(optimize_bridged!), cached_mock(optimize_cached!)]
Tests.sdsos_scaled_univariate_quadratic_test(mock, config)
Tests.sdsos_scaled_bivariate_quadratic_test(mock, config)
Tests.sos_cheby_univariate_quadratic_test(mock, config)
Tests.sos_cheby_bivariate_quadratic_test(mock, config)
Tests.sdsos_cheby_univariate_quadratic_test(mock, config)
Tests.sdsos_cheby_bivariate_quadratic_test(mock, config)
end
function optimize!(mock)
return MOI.Utilities.mock_optimize!(
mock,
[2.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0],
(
MOI.VectorOfVariables,
MOI.MathOptInterface.PositiveSemidefiniteConeTriangle,
) => [[0.0, 0.0, 1.0, 0.0, -1.0, 1.0]],
(MOI.VectorAffineFunction{Float64}, MOI.Zeros) =>
[[0.0, 0.0, 0.0, 2.0, -1.0, 2.0]],
)
end
for mock in [
bridged_mock(optimize!),
cached_mock(optimize!),
]
Tests.sos_cheby_bivariate_quadratic_test(mock, config)
end
#Tests.sdsos_cheby_bivariate_quadratic_test(mock, config)
function optimize!(mock)
return MOI.Utilities.mock_optimize!(
mock,
Expand Down
43 changes: 43 additions & 0 deletions test/Solvers/generate.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import SumOfSquares as SOS
import MultivariateBases as MB
using SemialgebraicSets
using DynamicPolynomials

function generate(test, solver, config)
optimizer = MOI.instantiate(solver, with_bridge_type = Float64)
# We don't use `UniversalFallback` so that the SOS bridges
# are applied
cached = MOI.Utilities.CachingOptimizer(
MOI.Utilities.Model{Float64}(),
optimizer,
)
bridged = MOI.Bridges.full_bridge_optimizer(cached, Float64)
# Second cache needed for the fallback for `ConstraintPrimal`
model = MOI.Utilities.CachingOptimizer(
MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()),
bridged,
)
MOI.Bridges.add_bridge(
bridged,
SOS.Bridges.Constraint.SOSPolynomialBridge{Float64},
)
MOI.Bridges.add_bridge(bridged, SOS.Bridges.Variable.KernelBridge{Float64})
MOI.Bridges.add_bridge(bridged, SOS.Bridges.Constraint.EmptyBridge{Float64})
MOI.Bridges.add_bridge(
bridged,
SOS.Bridges.Constraint.PositiveSemidefinite2x2Bridge{Float64},
)
MOI.Bridges.add_bridge(
bridged,
SOS.Bridges.Constraint.DiagonallyDominantBridge{Float64},
)
MOI.Bridges.add_bridge(
bridged,
SOS.Bridges.Constraint.ScaledDiagonallyDominantBridge{Float64},
)
MOI.Bridges.add_bridge(
bridged,
SOS.Bridges.Constraint.SOSPolynomialInSemialgebraicSetBridge{Float64},
)
return test(model, config)
end

0 comments on commit 3fc901d

Please sign in to comment.