Skip to content

Commit 627344c

Browse files
Merge pull request #1013 from SciML/ChrisRackauckas-patch-2
Create solver_missing_error_messages.jl
2 parents 6351cde + 1a4d194 commit 627344c

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

lib/OptimizationBase/test/runtests.jl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,5 @@ using Test
55
include("adtests.jl")
66
include("cvxtest.jl")
77
include("matrixvalued.jl")
8+
include("solver_missing_error_messages.jl")
89
end
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using OptimizationBase, Test
2+
prob = OptimizationProblem((x, p) -> sum(x), zeros(2))
3+
@test_throws OptimizationBase.OptimizerMissingError solve(prob, nothing)
4+
5+
struct OptAlg end
6+
7+
SciMLBase.allowscallback(::OptAlg) = false
8+
@test_throws OptimizationBase.IncompatibleOptimizerError solve(prob, OptAlg(),
9+
callback = (args...) -> false)
10+
11+
SciMLBase.requiresbounds(::OptAlg) = true
12+
@test_throws OptimizationBase.IncompatibleOptimizerError solve(prob, OptAlg())
13+
SciMLBase.requiresbounds(::OptAlg) = false
14+
15+
prob = OptimizationProblem((x, p) -> sum(x), zeros(2), lb = [-1.0, -1.0], ub = [1.0, 1.0])
16+
@test_throws OptimizationBase.IncompatibleOptimizerError solve(prob, OptAlg()) #by default allowsbounds is false
17+
18+
cons = (res, x, p) -> (res .= [x[1]^2 + x[2]^2])
19+
optf = OptimizationFunction((x, p) -> sum(x), SciMLBase.NoAD(), cons = cons)
20+
prob = OptimizationProblem(optf, zeros(2))
21+
@test_throws OptimizationBase.IncompatibleOptimizerError solve(prob, OptAlg()) #by default allowsconstraints is false
22+
23+
SciMLBase.requiresconstraints(::OptAlg) = true
24+
optf = OptimizationFunction((x, p) -> sum(x), SciMLBase.NoAD())
25+
prob = OptimizationProblem(optf, zeros(2))
26+
@test_throws OptimizationBase.IncompatibleOptimizerError solve(prob, OptAlg())

0 commit comments

Comments
 (0)