diff --git a/Modules/Core/Common/test/CMakeLists.txt b/Modules/Core/Common/test/CMakeLists.txt index 50d316f30a7..24ff9c24e33 100644 --- a/Modules/Core/Common/test/CMakeLists.txt +++ b/Modules/Core/Common/test/CMakeLists.txt @@ -61,9 +61,6 @@ set( itkPointSetToImageFilterTest2.cxx itkSparseFieldLayerTest.cxx itkDataObjectTest.cxx - itkAtanRegularizedHeavisideStepFunctionTest1.cxx - itkHeavisideStepFunctionTest1.cxx - itkSinRegularizedHeavisideStepFunctionTest1.cxx itkPointGeometryTest.cxx itkNumberToStringTest.cxx itkTimeProbeTest.cxx @@ -665,24 +662,6 @@ itk_add_test( ITKCommon1TestDriver itkDataObjectTest ) -itk_add_test( - NAME itkAtanRegularizedHeavisideStepFunctionTest1 - COMMAND - ITKCommon1TestDriver - itkAtanRegularizedHeavisideStepFunctionTest1 -) -itk_add_test( - NAME itkHeavisideStepFunctionTest1 - COMMAND - ITKCommon1TestDriver - itkHeavisideStepFunctionTest1 -) -itk_add_test( - NAME itkSinRegularizedHeavisideStepFunctionTest1 - COMMAND - ITKCommon1TestDriver - itkSinRegularizedHeavisideStepFunctionTest1 -) itk_add_test( NAME itkPointGeometryTest COMMAND @@ -1627,6 +1606,7 @@ set( itkFilterDispatchGTest.cxx itkThreadedIndexedContainerPartitionerGTest.cxx itkHashTableGTest.cxx + itkHeavisideStepFunctionGTest.cxx itkImportImageGTest.cxx itkImportContainerGTest.cxx itkPixelAccessGTest.cxx diff --git a/Modules/Core/Common/test/itkAtanRegularizedHeavisideStepFunctionTest1.cxx b/Modules/Core/Common/test/itkAtanRegularizedHeavisideStepFunctionTest1.cxx deleted file mode 100644 index 775e5ebaa00..00000000000 --- a/Modules/Core/Common/test/itkAtanRegularizedHeavisideStepFunctionTest1.cxx +++ /dev/null @@ -1,65 +0,0 @@ -/*========================================================================= - * - * Copyright NumFOCUS - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0.txt - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - *=========================================================================*/ - -#include "itkAtanRegularizedHeavisideStepFunction.h" -#include "itkTestingMacros.h" - -int -itkAtanRegularizedHeavisideStepFunctionTest1(int, char *[]) -{ - using InputType = double; - using OutputType = double; - - using HeavisideFunctionBaseType = itk::AtanRegularizedHeavisideStepFunction; - - auto functionBase0 = HeavisideFunctionBaseType::New(); - - std::cout << "GetNameOfClass() = " << functionBase0->GetNameOfClass() << std::endl; - functionBase0->Print(std::cout); - - constexpr double epsilon{ -1.0 }; - - ITK_TRY_EXPECT_EXCEPTION(functionBase0->SetEpsilon(epsilon)); - - - constexpr double epsilon0{ 1.0 }; - constexpr double epsilon1{ 1e-4 }; - - ITK_TEST_SET_GET_VALUE(epsilon0, functionBase0->GetEpsilon()); - - functionBase0->SetEpsilon(epsilon1); - ITK_TEST_SET_GET_VALUE(epsilon1, functionBase0->GetEpsilon()); - - constexpr double epsilon2{ 0.5 }; - functionBase0->SetEpsilon(epsilon2); - - constexpr int minValue{ -20 }; - constexpr int maxValue{ 20 }; - - constexpr InputType incValue{ 0.1 }; - - for (int x = minValue; x < maxValue; ++x) - { - const InputType ix = x * incValue; - const OutputType f = functionBase0->Evaluate(ix); - const OutputType df = functionBase0->EvaluateDerivative(ix); - std::cout << ix << ' ' << f << ' ' << df << std::endl; - } - - return EXIT_SUCCESS; -} diff --git a/Modules/Core/Common/test/itkHeavisideStepFunctionGTest.cxx b/Modules/Core/Common/test/itkHeavisideStepFunctionGTest.cxx new file mode 100644 index 00000000000..f72cddf8ae7 --- /dev/null +++ b/Modules/Core/Common/test/itkHeavisideStepFunctionGTest.cxx @@ -0,0 +1,134 @@ +/*========================================================================= + * + * Copyright NumFOCUS + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0.txt + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *=========================================================================*/ + +#include "itkAtanRegularizedHeavisideStepFunction.h" +#include "itkHeavisideStepFunction.h" +#include "itkSinRegularizedHeavisideStepFunction.h" + +#include "itkGTest.h" + +#include + +// From itkHeavisideStepFunctionTest1.cxx +TEST(HeavisideStepFunction, ExactHeaviside) +{ + using InputType = double; + using OutputType = double; + + using HeavisideFunctionBaseType = itk::HeavisideStepFunction; + + auto functionBase0 = HeavisideFunctionBaseType::New(); + + std::cout << "GetNameOfClass() = " << functionBase0->GetNameOfClass() << std::endl; + functionBase0->Print(std::cout); + + constexpr int minValue{ -20 }; + constexpr int maxValue{ 20 }; + + constexpr InputType incValue{ 0.1 }; + + for (int x = minValue; x < maxValue; ++x) + { + const InputType ix = x * incValue; + const OutputType f = functionBase0->Evaluate(ix); + const OutputType df = functionBase0->EvaluateDerivative(ix); + std::cout << ix << ' ' << f << ' ' << df << std::endl; + } +} + +// From itkAtanRegularizedHeavisideStepFunctionTest1.cxx +TEST(HeavisideStepFunction, AtanRegularized) +{ + using InputType = double; + using OutputType = double; + + using HeavisideFunctionBaseType = itk::AtanRegularizedHeavisideStepFunction; + + auto functionBase0 = HeavisideFunctionBaseType::New(); + + std::cout << "GetNameOfClass() = " << functionBase0->GetNameOfClass() << std::endl; + functionBase0->Print(std::cout); + + constexpr double epsilon{ -1.0 }; + EXPECT_THROW(functionBase0->SetEpsilon(epsilon), itk::ExceptionObject); + + constexpr double epsilon0{ 1.0 }; + constexpr double epsilon1{ 1e-4 }; + + EXPECT_EQ(functionBase0->GetEpsilon(), epsilon0); + + functionBase0->SetEpsilon(epsilon1); + EXPECT_EQ(functionBase0->GetEpsilon(), epsilon1); + + constexpr double epsilon2{ 0.5 }; + functionBase0->SetEpsilon(epsilon2); + + constexpr int minValue{ -20 }; + constexpr int maxValue{ 20 }; + + constexpr InputType incValue{ 0.1 }; + + for (int x = minValue; x < maxValue; ++x) + { + const InputType ix = x * incValue; + const OutputType f = functionBase0->Evaluate(ix); + const OutputType df = functionBase0->EvaluateDerivative(ix); + std::cout << ix << ' ' << f << ' ' << df << std::endl; + } +} + +// From itkSinRegularizedHeavisideStepFunctionTest1.cxx +TEST(HeavisideStepFunction, SinRegularized) +{ + using InputType = double; + using OutputType = double; + + using HeavisideFunctionBaseType = itk::SinRegularizedHeavisideStepFunction; + + auto functionBase0 = HeavisideFunctionBaseType::New(); + + std::cout << "GetNameOfClass() = " << functionBase0->GetNameOfClass() << std::endl; + functionBase0->Print(std::cout); + + constexpr double epsilon{ -1.0 }; + EXPECT_THROW(functionBase0->SetEpsilon(epsilon), itk::ExceptionObject); + + constexpr double epsilon0{ 1.0 }; + constexpr double epsilon1{ 1e-4 }; + + EXPECT_EQ(functionBase0->GetEpsilon(), epsilon0); + + functionBase0->SetEpsilon(epsilon1); + EXPECT_EQ(functionBase0->GetEpsilon(), epsilon1); + + constexpr double epsilon2{ 0.5 }; + functionBase0->SetEpsilon(epsilon2); + + constexpr int minValue{ -20 }; + constexpr int maxValue{ 20 }; + + constexpr InputType incValue{ 0.1 }; + + for (int x = minValue; x < maxValue; ++x) + { + const InputType ix = x * incValue; + const OutputType f = functionBase0->Evaluate(ix); + const OutputType df = functionBase0->EvaluateDerivative(ix); + std::cout << ix << ' ' << f << ' ' << df << std::endl; + } +} diff --git a/Modules/Core/Common/test/itkHeavisideStepFunctionTest1.cxx b/Modules/Core/Common/test/itkHeavisideStepFunctionTest1.cxx deleted file mode 100644 index edaa5d94820..00000000000 --- a/Modules/Core/Common/test/itkHeavisideStepFunctionTest1.cxx +++ /dev/null @@ -1,48 +0,0 @@ -/*========================================================================= - * - * Copyright NumFOCUS - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0.txt - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - *=========================================================================*/ - -#include "itkHeavisideStepFunction.h" - -int -itkHeavisideStepFunctionTest1(int, char *[]) -{ - using InputType = double; - using OutputType = double; - - using HeavisideFunctionBaseType = itk::HeavisideStepFunction; - - auto functionBase0 = HeavisideFunctionBaseType::New(); - - std::cout << "GetNameOfClass() = " << functionBase0->GetNameOfClass() << std::endl; - functionBase0->Print(std::cout); - - constexpr int minValue{ -20 }; - constexpr int maxValue{ 20 }; - - constexpr InputType incValue{ 0.1 }; - - for (int x = minValue; x < maxValue; ++x) - { - const InputType ix = x * incValue; - const OutputType f = functionBase0->Evaluate(ix); - const OutputType df = functionBase0->EvaluateDerivative(ix); - std::cout << ix << ' ' << f << ' ' << df << std::endl; - } - - return EXIT_SUCCESS; -} diff --git a/Modules/Core/Common/test/itkSinRegularizedHeavisideStepFunctionTest1.cxx b/Modules/Core/Common/test/itkSinRegularizedHeavisideStepFunctionTest1.cxx deleted file mode 100644 index 1d56245ad9f..00000000000 --- a/Modules/Core/Common/test/itkSinRegularizedHeavisideStepFunctionTest1.cxx +++ /dev/null @@ -1,65 +0,0 @@ -/*========================================================================= - * - * Copyright NumFOCUS - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0.txt - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - *=========================================================================*/ - -#include "itkSinRegularizedHeavisideStepFunction.h" -#include "itkTestingMacros.h" - -int -itkSinRegularizedHeavisideStepFunctionTest1(int, char *[]) -{ - using InputType = double; - using OutputType = double; - - using HeavisideFunctionBaseType = itk::SinRegularizedHeavisideStepFunction; - - auto functionBase0 = HeavisideFunctionBaseType::New(); - - std::cout << "GetNameOfClass() = " << functionBase0->GetNameOfClass() << std::endl; - functionBase0->Print(std::cout); - - constexpr double epsilon{ -1.0 }; - - ITK_TRY_EXPECT_EXCEPTION(functionBase0->SetEpsilon(epsilon)); - - - constexpr double epsilon0{ 1.0 }; - constexpr double epsilon1{ 1e-4 }; - - ITK_TEST_SET_GET_VALUE(epsilon0, functionBase0->GetEpsilon()); - - functionBase0->SetEpsilon(epsilon1); - ITK_TEST_SET_GET_VALUE(epsilon1, functionBase0->GetEpsilon()); - - constexpr double epsilon2{ 0.5 }; - functionBase0->SetEpsilon(epsilon2); - - constexpr int minValue{ -20 }; - constexpr int maxValue{ 20 }; - - constexpr InputType incValue{ 0.1 }; - - for (int x = minValue; x < maxValue; ++x) - { - const InputType ix = x * incValue; - const OutputType f = functionBase0->Evaluate(ix); - const OutputType df = functionBase0->EvaluateDerivative(ix); - std::cout << ix << ' ' << f << ' ' << df << std::endl; - } - - return EXIT_SUCCESS; -}