Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,13 +67,10 @@ Supported packages include:
| [Bonmin](https://github.com/coin-or/Bonmin) | `Bonmin_jll.jl` | `Bomin_jll.amplexe` |
| [Couenne](https://github.com/coin-or/Couenne) | `Couenne_jll.jl` | `Couenne_jll.amplexe` |
| [Ipopt](https://github.com/coin-or/Ipopt) | `Ipopt_jll.jl` | `Ipopt_jll.amplexe` |
| [KNITRO](https://github.com/jump-dev/KNITRO.jl)| `KNITRO.jl` | `KNITRO.amplexe` |
| [KNITRO](https://github.com/jump-dev/KNITRO_jll.jl)| `KNITRO_jll.jl` | `KNITRO_jll.knitroampl` |
| [SHOT](https://github.com/coin-or/SHOT) | `SHOT_jll.jl` | `SHOT_jll.amplexe` |
| [Uno](https://github.com/cvanaret/Uno) | `Uno_jll.jl` | `Uno_jll.amplexe` |

**Bonmin and Couenne do not work on Apple M-series computers. For compatibility,
install Julia via Rosetta.**

## MathOptInterface API

The AmplNLWriter optimizer supports the following constraints and attributes.
Expand Down
8 changes: 2 additions & 6 deletions test/MINLPTests/Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,13 @@ Ipopt_jll = "9cc047cb-c261-5740-88fc-0cf96f7bdcc7"
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
MINLPTests = "ee0a3090-8ee9-5cdb-b8cb-8eeba3165522"
MathOptInterface = "b8f27783-ece8-5eb3-8dc8-9495eed66fee"
SHOT_jll = "c1ab834c-c4a5-50f5-9156-8f0fe7758b0e"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Uno_jll = "396d5378-14f1-5ab1-981d-48acd51740ed"

[compat]
Bonmin_jll = "100.800.901"
Bonmin_jll = "100.800.902"
Couenne_jll = "0.500.802"
Ipopt_jll = "300.1400.1900"
JuMP = "1"
MathOptInterface = "1.33"
MINLPTests = "0.6"
SHOT_jll = "100.100.0"
Uno_jll = "1"
MathOptInterface = "1.33"
julia = "1.10"
88 changes: 0 additions & 88 deletions test/MINLPTests/run_minlptests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ import Couenne_jll
import Ipopt_jll
import MathOptInterface as MOI
import MINLPTests
import SHOT_jll
import Uno_jll

const TERMINATION_TARGET = Dict(
MINLPTests.FEASIBLE_PROBLEM => MOI.LOCALLY_SOLVED,
Expand Down Expand Up @@ -62,32 +60,6 @@ const CONFIG = Dict{String,Any}(
"nlp_exclude" => ["007_010"],
"nlpcvx_exclude" => ["109_010"],
),
# SHOT fails too many tests to recommend using it.
# e.g., https://github.com/coin-or/SHOT/issues/134
# Even problems such as `@variable(model, x); @objective(model, Min, (x-1)^2)`
# "SHOT" => Dict(
# "amplexe" => SHOT_jll.amplexe,
# "options" => String[
# "Output.Console.LogLevel=6",
# "Output.File.LogLevel=6",
# "Termination.ObjectiveGap.Absolute=1e-6",
# "Termination.ObjectiveGap.Relative=1e-6",
# ],
# "tol" => 1e-2,
# "dual_tol" => NaN,
# "infeasible_point" => AmplNLWriter.MOI.UNKNOWN_RESULT_STATUS,
# ),
"Uno" => Dict(
"mixed-integer" => false,
"amplexe" => Uno_jll.amplexe,
"options" => ["logger=SILENT"],
"nlp_exclude" => [
# See https://github.com/cvanaret/Uno/issues/39
"005_010",
# See https://github.com/cvanaret/Uno/issues/38
"007_010",
],
),
)

@testset "$k" for (k, config) in CONFIG
Expand Down Expand Up @@ -160,63 +132,3 @@ const CONFIG = Dict{String,Any}(
end
end
end

function test_uno_runtests()
optimizer = MOI.instantiate(
() -> AmplNLWriter.Optimizer(Uno_jll.amplexe, ["logger=SILENT"]);
with_cache_type = Float64,
with_bridge_type = Float64,
)
MOI.Test.runtests(
optimizer,
MOI.Test.Config(
atol = 1e-4,
rtol = 1e-4,
optimal_status = MOI.LOCALLY_SOLVED,
infeasible_status = MOI.LOCALLY_INFEASIBLE,
exclude = Any[
MOI.VariableBasisStatus,
MOI.ConstraintBasisStatus,
MOI.ObjectiveBound,
],
);
exclude = [
# OTHER_LIMIT instead of LOCALLY_SOLVED
r"^test_conic_linear_VectorOfVariables_2$",
r"^test_nonlinear_expression_hs109$",
r"^test_quadratic_constraint_GreaterThan$",
r"^test_quadratic_constraint_LessThan$",
r"^test_solve_VariableIndex_ConstraintDual_MAX_SENSE$",
r"^test_solve_VariableIndex_ConstraintDual_MIN_SENSE$",
# OTHER_ERROR instead of LOCALLY_SOLVED
r"^test_linear_integration$",
r"^test_linear_transform$",
# OTHER_LIMIT instead of DUAL_INFEASIBLE
r"^test_solve_TerminationStatus_DUAL_INFEASIBLE$",
# OTHER_LIMIT instead of LOCALLY_INFEASIBLE
r"^test_conic_NormInfinityCone_INFEASIBLE$",
r"^test_conic_NormOneCone_INFEASIBLE$",
r"^test_conic_linear_INFEASIBLE$",
r"^test_conic_linear_INFEASIBLE_2$",
r"^test_linear_INFEASIBLE$",
r"^test_linear_INFEASIBLE_2$",
r"^test_solve_DualStatus_INFEASIBILITY_CERTIFICATE_",
# Uno does not support integrality
"Indicator",
r"[Ii]nteger",
"Semicontinuous",
"Semiinteger",
"SOS1",
"SOS2",
"ZeroOne",
r"^test_cpsat_",
# Existing MOI issues
r"^test_attribute_SolverVersion$",
r"^test_nonlinear_invalid$",
r"^test_basic_VectorNonlinearFunction_",
],
)
return
end

test_uno_runtests()
Loading