-
Notifications
You must be signed in to change notification settings - Fork 94
Closed
Labels
Milestone
Description
If I run ]test
on Hypatia on the branch https://github.com/chriscoey/Hypatia.jl/blob/318a20dd7f9c19ac62eb6914e1bdf6624439c25e/test/moi.jl#L76, with MOI dev'd on branch from #1178, I get an error from MOI:
Test threw exception
Expression: ≈(MOI.get(model, MOI.ConstraintPrimal(), gmc), [2.0; 2.0], atol = atol, rtol = rtol)
Stacktrace:
[1] throw_if_not_valid at /Users/coey/.julia/dev/MathOptInterface/src/indextypes.jl:75 [inlined]
[2] get(::MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.RelativeEntropyBridge{Float64,F,G,H} where H where G where F,MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.GeoMeantoRelEntrBridge{Float64,F,G,H} where H where G where F,MathOptInterface.Utilities.CachingOptimizer{Hypatia.Optimizer{Float64},MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}}, ::MathOptInterface.ConstraintPrimal, ::MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables,MathOptInterface.GeometricMeanCone}) at /Users/coey/.julia/dev/MathOptInterface/src/Bridges/bridge_optimizer.jl:919
[3] _geomean3test(::MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.RelativeEntropyBridge{Float64,F,G,H} where H where G where F,MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.GeoMeantoRelEntrBridge{Float64,F,G,H} where H where G where F,MathOptInterface.Utilities.CachingOptimizer{Hypatia.Optimizer{Float64},MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}}, ::MathOptInterface.Test.TestConfig{Float64}, ::Bool) at /Users/coey/.julia/dev/MathOptInterface/src/Test/contconic.jl:1546
[4] geomean3vtest(::MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.RelativeEntropyBridge{Float64,F,G,H} where H where G where F,MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.GeoMeantoRelEntrBridge{Float64,F,G,H} where H where G where F,MathOptInterface.Utilities.CachingOptimizer{Hypatia.Optimizer{Float64},MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}}, ::MathOptInterface.Test.TestConfig{Float64}) at /Users/coey/.julia/dev/MathOptInterface/src/Test/contconic.jl:1556
[5] macro expansion at /Users/coey/.julia/dev/MathOptInterface/src/Test/config.jl:48 [inlined]
[6] macro expansion at /Users/coey/julia/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1115 [inlined]
[7] geomeantest(::MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.RelativeEntropyBridge{Float64,F,G,H} where H where G where F,MathOptInterface.Bridges.Constraint.SingleBridgeOptimizer{MathOptInterface.Bridges.Constraint.GeoMeantoRelEntrBridge{Float64,F,G,H} where H where G where F,MathOptInterface.Utilities.CachingOptimizer{Hypatia.Optimizer{Float64},MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}}, ::MathOptInterface.Test.TestConfig{Float64}, ::Array{String,1}) at /Users/coey/.julia/dev/MathOptInterface/src/Test/config.jl:48
specifically, excluding all conic tests except the geomean tests, the failure happens on the second line below but not the first:
MOIT.contconictest(MOI.Bridges.Constraint.GeoMeantoRelEntr{T}(MOI.Bridges.Constraint.RelativeEntropy{T}(optimizer)), config, conic_exclude)
MOIT.contconictest(MOI.Bridges.Constraint.RelativeEntropy{T}(MOI.Bridges.Constraint.GeoMeantoRelEntr{T}(optimizer)), config, conic_exclude)
with the only difference being the order of application of those two bridges. The first line successfully bridges the geomean cone to exponential cones via the relative entropy cone (see #1178).
@blegat my guess is this isn't a problem introduced in #1178 so hopefully it doesn't block that.