From 5286bdb2f3de0498714e2ac74ff3650909924e2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Sat, 31 Dec 2022 19:36:05 -0500 Subject: [PATCH] ENH: Increase coverage for `itk::OnePlusOneEvolutionaryOptimizer` Increase coverage for `itk::OnePlusOneEvolutionaryOptimizer`: - Exercise basic object methods using the `ITK_EXERCISE_BASIC_OBJECT_METHODS` macro. - Test the Set/Get methods using the `ITK_TEST_SET_GET_VALUE` macro. - Test the boolean ivars using the `ITK_TEST_SET_GET_BOOLEAN` macro. --- ...itkOnePlusOneEvolutionaryOptimizerTest.cxx | 40 ++++++++++++++++++- 1 file changed, 38 insertions(+), 2 deletions(-) diff --git a/Modules/Numerics/Optimizers/test/itkOnePlusOneEvolutionaryOptimizerTest.cxx b/Modules/Numerics/Optimizers/test/itkOnePlusOneEvolutionaryOptimizerTest.cxx index a5a788556a4..9f18b8562c5 100644 --- a/Modules/Numerics/Optimizers/test/itkOnePlusOneEvolutionaryOptimizerTest.cxx +++ b/Modules/Numerics/Optimizers/test/itkOnePlusOneEvolutionaryOptimizerTest.cxx @@ -153,6 +153,9 @@ itkOnePlusOneEvolutionaryOptimizerTest(int, char *[]) // Declaration of an itkOptimizer auto itkOptimizer = OptimizerType::New(); + ITK_EXERCISE_BASIC_OBJECT_METHODS(itkOptimizer, OnePlusOneEvolutionaryOptimizer, SingleValuedNonLinearOptimizer); + + ITK_TEST_EXPECT_TRUE(!itkOptimizer->GetInitialized()); itk::OnePlusOneCommandIterationUpdate::Pointer observer = itk::OnePlusOneCommandIterationUpdate::New(); @@ -175,11 +178,44 @@ itkOnePlusOneEvolutionaryOptimizerTest(int, char *[]) initialPosition[0] = 100; initialPosition[1] = -100; + auto maximize = false; itkOptimizer->MinimizeOn(); - itkOptimizer->Initialize(10); - itkOptimizer->SetEpsilon(0.1); + ITK_TEST_SET_GET_VALUE(!maximize, itkOptimizer->GetMinimize()); + ITK_TEST_SET_GET_BOOLEAN(itkOptimizer, Maximize, maximize); + + unsigned int maximumIteration = 8000; itkOptimizer->SetMaximumIteration(8000); + ITK_TEST_SET_GET_VALUE(maximumIteration, itkOptimizer->GetMaximumIteration()); + + auto growthFactor = 1.05; + itkOptimizer->SetGrowthFactor(growthFactor); + ITK_TEST_SET_GET_VALUE(growthFactor, itkOptimizer->GetGrowthFactor()); + + auto shrinkFactor = std::pow(growthFactor, -0.25); + itkOptimizer->SetShrinkFactor(shrinkFactor); + ITK_TEST_SET_GET_VALUE(shrinkFactor, itkOptimizer->GetShrinkFactor()); + + auto initialRadius = 1.01; + itkOptimizer->SetInitialRadius(initialRadius); + ITK_TEST_SET_GET_VALUE(initialRadius, itkOptimizer->GetInitialRadius()); + + auto epsilon = 0.1; + itkOptimizer->SetEpsilon(epsilon); + ITK_TEST_SET_GET_VALUE(epsilon, itkOptimizer->GetEpsilon()); + + auto catchGetValueException = false; + itkOptimizer->SetCatchGetValueException(catchGetValueException); + ITK_TEST_SET_GET_VALUE(catchGetValueException, itkOptimizer->GetCatchGetValueException()); + + auto metricWorstPossibleValue = 0; + itkOptimizer->SetMetricWorstPossibleValue(metricWorstPossibleValue); + ITK_TEST_SET_GET_VALUE(metricWorstPossibleValue, itkOptimizer->GetMetricWorstPossibleValue()); + initialRadius = 10; + itkOptimizer->Initialize(initialRadius); + ITK_TEST_SET_GET_VALUE(initialRadius, itkOptimizer->GetInitialRadius()); + ITK_TEST_SET_GET_VALUE(growthFactor, itkOptimizer->GetGrowthFactor()); + ITK_TEST_SET_GET_VALUE(shrinkFactor, itkOptimizer->GetShrinkFactor()); ITK_TEST_EXPECT_TRUE(itkOptimizer->GetInitialized());