From a8f4df2c0a8a2edc2b666572c61a5947e21edb4d Mon Sep 17 00:00:00 2001 From: Avinash Subramanian Date: Thu, 12 Jun 2025 01:11:59 +0200 Subject: [PATCH 1/2] fix: adding test of max sense with OptimizationBBO --- lib/OptimizationBBO/test/runtests.jl | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/OptimizationBBO/test/runtests.jl b/lib/OptimizationBBO/test/runtests.jl index 1295465fc..5eeac9a51 100644 --- a/lib/OptimizationBBO/test/runtests.jl +++ b/lib/OptimizationBBO/test/runtests.jl @@ -158,3 +158,12 @@ using Test end end end + +# Max sense test +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 \ No newline at end of file From 266fa1c61deeddff8cd5175850e5ecfe71104c3a Mon Sep 17 00:00:00 2001 From: Avinash Subramanian Date: Thu, 12 Jun 2025 02:16:22 +0200 Subject: [PATCH 2/2] fix(WIP): testing of OptimizationBBO with max sense --- lib/OptimizationBBO/Project.toml | 1 + lib/OptimizationBBO/src/OptimizationBBO.jl | 3 ++- lib/OptimizationBBO/test/runtests.jl | 19 ++++++++++--------- test/sense.jl | 2 ++ 4 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 test/sense.jl 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 5eeac9a51..7eb648e44 100644 --- a/lib/OptimizationBBO/test/runtests.jl +++ b/lib/OptimizationBBO/test/runtests.jl @@ -157,13 +157,14 @@ using Test @test sol_3.objective[2]≈0.477079 atol=1e-3 end end -end -# Max sense test -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 \ No newline at end of file + @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 +