Skip to content

Commit 7196833

Browse files
Create solver_missing_error_messages.jl
1 parent 163a7be commit 7196833

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
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)