From dee2920e4227cf88f9cc0bba8933edad0f6eff77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Sat, 4 Nov 2023 15:19:18 -0400 Subject: [PATCH 1/3] STYLE: Rename test to honor the tested class Rename test to honor the tested class. --- Modules/IO/XML/test/CMakeLists.txt | 14 +++++++------- .../{itkDOMTest7.cxx => itkFancyStringTest.cxx} | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) rename Modules/IO/XML/test/{itkDOMTest7.cxx => itkFancyStringTest.cxx} (99%) diff --git a/Modules/IO/XML/test/CMakeLists.txt b/Modules/IO/XML/test/CMakeLists.txt index 8c47518904f..81dc864f6a1 100644 --- a/Modules/IO/XML/test/CMakeLists.txt +++ b/Modules/IO/XML/test/CMakeLists.txt @@ -7,8 +7,8 @@ set(ITKIOXMLTests itkDOMTest4.cxx itkDOMTest5.cxx itkDOMTest6.cxx - itkDOMTest7.cxx itkDOMTest8.cxx + itkFancyStringTest.cxx itkFileToolsTest.cxx) createtestdriver(ITKIOXML "${ITKIOXML-Test_LIBRARIES}" "${ITKIOXMLTests}") @@ -303,19 +303,19 @@ itk_add_test( itk_add_test( NAME - itkDOMTest7 + itkDOMTest8 COMMAND ITKIOXMLTestDriver - itkDOMTest7) + itkDOMTest8 + ${ITK_TEST_OUTPUT_DIR}/xmldom-test8/ + output/test_file) itk_add_test( NAME - itkDOMTest8 + itkFancyStringTest COMMAND ITKIOXMLTestDriver - itkDOMTest8 - ${ITK_TEST_OUTPUT_DIR}/xmldom-test8/ - output/test_file) + itkFancyStringTest) itk_add_test( NAME diff --git a/Modules/IO/XML/test/itkDOMTest7.cxx b/Modules/IO/XML/test/itkFancyStringTest.cxx similarity index 99% rename from Modules/IO/XML/test/itkDOMTest7.cxx rename to Modules/IO/XML/test/itkFancyStringTest.cxx index c5c1aaae176..194a03cf365 100644 --- a/Modules/IO/XML/test/itkDOMTest7.cxx +++ b/Modules/IO/XML/test/itkFancyStringTest.cxx @@ -39,7 +39,7 @@ void testFancyStringForStringOperations(); int -itkDOMTest7(int, char *[]) +itkFancyStringTest(int, char *[]) { try { From d8b082db9eb3766f7abf42bc5cbeed535f7f889a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Sat, 4 Nov 2023 15:26:58 -0400 Subject: [PATCH 2/3] ENH: Increase coverage for `itk::FancyString` Increase coverage for `itk::FancyString`: exercise the equality operators. --- Modules/IO/XML/test/itkFancyStringTest.cxx | 80 ++++++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/Modules/IO/XML/test/itkFancyStringTest.cxx b/Modules/IO/XML/test/itkFancyStringTest.cxx index 194a03cf365..6970908cc50 100644 --- a/Modules/IO/XML/test/itkFancyStringTest.cxx +++ b/Modules/IO/XML/test/itkFancyStringTest.cxx @@ -25,6 +25,7 @@ This program tests operations of itk::FancyString. #include #include "itkMacro.h" #include "itkMath.h" +#include "itkTestingMacros.h" void testFancyStringWithBasicType(); @@ -38,6 +39,13 @@ testFancyStringWithItkArray(); void testFancyStringForStringOperations(); +int +testFancyStringUnequalOperator(); + +int +testFancyStringEqualOperator(); + + int itkFancyStringTest(int, char *[]) { @@ -50,6 +58,10 @@ itkFancyStringTest(int, char *[]) testFancyStringWithItkArray(); testFancyStringForStringOperations(); + + testFancyStringUnequalOperator(); + + testFancyStringEqualOperator(); } catch (const itk::ExceptionObject & eo) { @@ -445,3 +457,71 @@ testFancyStringForStringOperations() // all testings were successful if reached here } + +int +testFancyStringUnequalOperator() +{ + { + const std::string str = "Hello World!"; + + itk::FancyString s1{ str }; + const std::string s2{ "Hello World" }; + + ITK_TEST_EXPECT_TRUE(s1 != s2); + + const std::string s3{ "Hello world!" }; + + ITK_TEST_EXPECT_TRUE(s1 != s3); + + ITK_TEST_EXPECT_TRUE(!(s1 != str)); + } + + { + itk::FancyString s1{ "s" }; + const char * s2{ "S" }; + + ITK_TEST_EXPECT_TRUE(s1 != s2); + } + + { + itk::FancyString s1{ "Hello World!" }; + itk::FancyString s2{ "Hello World" }; + + ITK_TEST_EXPECT_TRUE(s1 != s2); + + itk::FancyString s3{ "Hello world!" }; + + ITK_TEST_EXPECT_TRUE(s1 != s3); + } + + return EXIT_SUCCESS; +} + +int +testFancyStringEqualOperator() +{ + { + itk::FancyString s1{ "Hello World!" }; + const std::string s2{ "Hello World!" }; + + ITK_TEST_EXPECT_TRUE(s1 == s2); + + ITK_TEST_EXPECT_TRUE(!(s1 == "Hello")); + } + + { + itk::FancyString s1{ "s" }; + const char * s2{ "s" }; + + ITK_TEST_EXPECT_TRUE(s1 == s2); + } + + { + itk::FancyString s1{ "Hello World!" }; + itk::FancyString s2{ "Hello World!" }; + + ITK_TEST_EXPECT_TRUE(s1 == s2); + } + + return EXIT_SUCCESS; +} From df79d641daa90a6420cdce7ee16b4074feb41a84 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=20Haitz=20Legarreta=20Gorro=C3=B1o?= Date: Sat, 4 Nov 2023 15:32:34 -0400 Subject: [PATCH 3/3] STYLE: Use testing macros in `itkFancyStringTest.cxx` Use testing macros in `itkFancyStringTest.cxx`: - Use the `ITK_TRY_EXPECT_EXCEPTION` macro in lieu of `try/catch` blocks to check for expected exceptions for the sake of readability and compactness, and to save typing/avoid boilerplate code. --- Modules/IO/XML/test/itkFancyStringTest.cxx | 30 +++++----------------- 1 file changed, 6 insertions(+), 24 deletions(-) diff --git a/Modules/IO/XML/test/itkFancyStringTest.cxx b/Modules/IO/XML/test/itkFancyStringTest.cxx index 6970908cc50..f3555c7d959 100644 --- a/Modules/IO/XML/test/itkFancyStringTest.cxx +++ b/Modules/IO/XML/test/itkFancyStringTest.cxx @@ -49,35 +49,17 @@ testFancyStringEqualOperator(); int itkFancyStringTest(int, char *[]) { - try - { - testFancyStringWithBasicType(); + ITK_TRY_EXPECT_NO_EXCEPTION(testFancyStringWithBasicType()); - testFancyStringWithStdVector(); + ITK_TRY_EXPECT_NO_EXCEPTION(testFancyStringWithStdVector()); - testFancyStringWithItkArray(); + ITK_TRY_EXPECT_NO_EXCEPTION(testFancyStringWithItkArray()); - testFancyStringForStringOperations(); + ITK_TRY_EXPECT_NO_EXCEPTION(testFancyStringForStringOperations()); - testFancyStringUnequalOperator(); + ITK_TRY_EXPECT_NO_EXCEPTION(testFancyStringUnequalOperator()); - testFancyStringEqualOperator(); - } - catch (const itk::ExceptionObject & eo) - { - eo.Print(std::cerr); - return EXIT_FAILURE; - } - catch (const char * emsg) - { - std::cerr << emsg << std::endl; - return EXIT_FAILURE; - } - catch (...) - { - std::cerr << "Unknown exception caught!" << std::endl; - return EXIT_FAILURE; - } + ITK_TRY_EXPECT_NO_EXCEPTION(testFancyStringEqualOperator()); std::cout << "Test finished." << std::endl;