diff --git a/lib/OptimizationBBO/Project.toml b/lib/OptimizationBBO/Project.toml index 8deb4617f..7cd829c97 100644 --- a/lib/OptimizationBBO/Project.toml +++ b/lib/OptimizationBBO/Project.toml @@ -6,6 +6,7 @@ version = "0.4.1" [deps] BlackBoxOptim = "a134a8b2-14d6-55f6-9291-3336d3ab0209" Optimization = "7f7a1694-90dd-40f0-9382-eb1efda571ba" +OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" Reexport = "189a3867-3050-52da-a836-e630ba90ab69" [compat] diff --git a/lib/OptimizationBBO/src/OptimizationBBO.jl b/lib/OptimizationBBO/src/OptimizationBBO.jl index 0e203de62..a7c949795 100644 --- a/lib/OptimizationBBO/src/OptimizationBBO.jl +++ b/lib/OptimizationBBO/src/OptimizationBBO.jl @@ -176,7 +176,8 @@ function SciMLBase.__solve(cache::Optimization.OptimizationCache{ fevals = opt_res.f_calls) SciMLBase.build_solution(cache, cache.opt, BlackBoxOptim.best_candidate(opt_res), - BlackBoxOptim.best_fitness(opt_res); + cache.sense === Optimization.MaxSense ? + -BlackBoxOptim.best_fitness(opt_res) : BlackBoxOptim.best_fitness(opt_res); original = opt_res, retcode = opt_ret, stats = stats) diff --git a/lib/OptimizationBBO/test/runtests.jl b/lib/OptimizationBBO/test/runtests.jl index 1295465fc..7eb648e44 100644 --- a/lib/OptimizationBBO/test/runtests.jl +++ b/lib/OptimizationBBO/test/runtests.jl @@ -157,4 +157,14 @@ using Test @test sol_3.objective[2]≈0.477079 atol=1e-3 end end -end + + @testset "Max sense test" begin + J(x,p) = x[1] + + F = OptimizationFunction(J) + prob = Optimization.OptimizationProblem(F, [0.0]; lb = [-10], ub =[10], sense = MaxSense) + sol = solve(prob, BBO_adaptive_de_rand_1_bin_radiuslimited()) + + @test sol.objective == 10.0 + end +end \ No newline at end of file diff --git a/test/sense.jl b/test/sense.jl new file mode 100644 index 000000000..78eecdda1 --- /dev/null +++ b/test/sense.jl @@ -0,0 +1,2 @@ +using Optimization +