Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions Common/GTesting/elxConversionGTest.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -97,16 +97,16 @@ Expect_successful_round_trip_of_parameter_value(const TParameterValue & paramete
const std::string parameterName("Key");
const itk::ParameterMapInterface::ParameterMapType parameterMap{ { parameterName,
{ Conversion::ToString(parameterValue) } } };
const auto parameterMapInterface = CheckNew<itk::ParameterMapInterface>();
itk::ParameterMapInterface parameterMapInterface{};

parameterMapInterface->SetParameterMap(parameterMap);
parameterMapInterface.SetParameterMap(parameterMap);

TParameterValue actualParameterValue{};

std::string errorMessage;
try
{
EXPECT_TRUE(parameterMapInterface->ReadParameter(actualParameterValue, parameterName, 0, errorMessage));
EXPECT_TRUE(parameterMapInterface.ReadParameter(actualParameterValue, parameterName, 0, errorMessage));
}
catch (const itk::ExceptionObject & exceptionObject)
{
Expand Down Expand Up @@ -203,13 +203,13 @@ Expect_parameter_with_decimal_point_and_trailing_zeros_can_be_read_as_integer()
const std::string parameterName("Key");
const std::string parameterStringValue = std::to_string(integer) + '.' + std::string(numberOfTrailingZeros, '0');

const auto parameterMapInterface = CheckNew<itk::ParameterMapInterface>();
parameterMapInterface->SetParameterMap({ { parameterName, { parameterStringValue } } });
itk::ParameterMapInterface parameterMapInterface{};
parameterMapInterface.SetParameterMap({ { parameterName, { parameterStringValue } } });

TInteger actualParameterValue{};

std::string errorMessage;
EXPECT_TRUE(parameterMapInterface->ReadParameter(actualParameterValue, parameterName, 0, errorMessage));
EXPECT_TRUE(parameterMapInterface.ReadParameter(actualParameterValue, parameterName, 0, errorMessage));
EXPECT_EQ(errorMessage, std::string{});
EXPECT_EQ(actualParameterValue, integer);
}
Expand All @@ -230,13 +230,13 @@ Expect_parameter_with_decimal_point_and_non_zero_trailing_chars_can_not_be_read_
const std::string parameterName("Key");
const std::string parameterStringValue = std::to_string(integer) + '.' + trail;

const auto parameterMapInterface = CheckNew<itk::ParameterMapInterface>();
parameterMapInterface->SetParameterMap({ { parameterName, { parameterStringValue } } });
itk::ParameterMapInterface parameterMapInterface{};
parameterMapInterface.SetParameterMap({ { parameterName, { parameterStringValue } } });

TInteger actualParameterValue{};

std::string errorMessage;
EXPECT_THROW(parameterMapInterface->ReadParameter(actualParameterValue, parameterName, 0, errorMessage),
EXPECT_THROW(parameterMapInterface.ReadParameter(actualParameterValue, parameterName, 0, errorMessage),
itk::ExceptionObject);
}
}
Expand All @@ -254,7 +254,7 @@ Expect_negative_parameter_value_can_not_be_read_as_unsigned()
const std::string parameterName("Key");
const std::string parameterStringValue = std::to_string(integer);

elx::DefaultConstruct<itk::ParameterMapInterface> parameterMapInterface;
itk::ParameterMapInterface parameterMapInterface{};
parameterMapInterface.SetParameterMap({ { parameterName, { parameterStringValue } } });

std::make_unsigned_t<TSignedInteger> actualParameterValue{};
Expand Down
76 changes: 38 additions & 38 deletions Common/GTesting/itkParameterMapInterfaceTest.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -30,52 +30,52 @@ using itk::ParameterMapInterface;

GTEST_TEST(ParameterMapInterface, RetrieveValuesReturnsNullWhenParameterMapIsEmpty)
{
const auto parameterMapInterface = ParameterMapInterface::New();
EXPECT_EQ(parameterMapInterface->RetrieveValues<bool>("parameterName"), nullptr);
EXPECT_EQ(parameterMapInterface->RetrieveValues<double>("parameterName"), nullptr);
const ParameterMapInterface parameterMapInterface{};
EXPECT_EQ(parameterMapInterface.RetrieveValues<bool>("parameterName"), nullptr);
EXPECT_EQ(parameterMapInterface.RetrieveValues<double>("parameterName"), nullptr);
}


GTEST_TEST(ParameterMapInterface, RetrieveValuesReturnsNullWhenParameterNameIsMissing)
{
const auto parameterMapInterface = ParameterMapInterface::New();
parameterMapInterface->SetParameterMap({ { "ParameterName", { "0", "1" } } });
ParameterMapInterface parameterMapInterface{};
parameterMapInterface.SetParameterMap({ { "ParameterName", { "0", "1" } } });

EXPECT_EQ(parameterMapInterface->RetrieveValues<bool>("MissingParameterName"), nullptr);
EXPECT_EQ(parameterMapInterface->RetrieveValues<double>("MissingParameterName"), nullptr);
EXPECT_EQ(parameterMapInterface.RetrieveValues<bool>("MissingParameterName"), nullptr);
EXPECT_EQ(parameterMapInterface.RetrieveValues<double>("MissingParameterName"), nullptr);
}


GTEST_TEST(ParameterMapInterface, RetrieveValuesSupportsZeroValues)
{
const auto parameterMapInterface = ParameterMapInterface::New();
const std::string parameterName("Key");
parameterMapInterface->SetParameterMap({ { parameterName, {} } });
ParameterMapInterface parameterMapInterface{};
const std::string parameterName("Key");
parameterMapInterface.SetParameterMap({ { parameterName, {} } });

const auto retrievedValues = parameterMapInterface->RetrieveValues<double>(parameterName);
const auto retrievedValues = parameterMapInterface.RetrieveValues<double>(parameterName);
ASSERT_NE(retrievedValues, nullptr);
EXPECT_EQ(*retrievedValues, std::vector<double>{});
}


GTEST_TEST(ParameterMapInterface, RetrieveValuesSupportsSingleValue)
{
const auto parameterMapInterface = ParameterMapInterface::New();
const std::string parameterName("Key");
ParameterMapInterface parameterMapInterface{};
const std::string parameterName("Key");

for (const double testValue : { -1.0, 0.0, 1.0 })
{
parameterMapInterface->SetParameterMap({ { parameterName, { itk::NumberToString<double>{}(testValue) } } });
parameterMapInterface.SetParameterMap({ { parameterName, { itk::NumberToString<double>{}(testValue) } } });

const auto retrievedValues = parameterMapInterface->RetrieveValues<double>(parameterName);
const auto retrievedValues = parameterMapInterface.RetrieveValues<double>(parameterName);
ASSERT_NE(retrievedValues, nullptr);
EXPECT_EQ(*retrievedValues, std::vector<double>{ testValue });
}
for (const bool testValue : { false, true })
{
parameterMapInterface->SetParameterMap({ { parameterName, { testValue ? "true" : "false" } } });
parameterMapInterface.SetParameterMap({ { parameterName, { testValue ? "true" : "false" } } });

const auto retrievedValues = parameterMapInterface->RetrieveValues<bool>(parameterName);
const auto retrievedValues = parameterMapInterface.RetrieveValues<bool>(parameterName);
ASSERT_NE(retrievedValues, nullptr);
EXPECT_EQ(*retrievedValues, std::vector<bool>{ testValue });
}
Expand All @@ -84,18 +84,18 @@ GTEST_TEST(ParameterMapInterface, RetrieveValuesSupportsSingleValue)

GTEST_TEST(ParameterMapInterface, RetrieveValuesSupportsMultipleValues)
{
const auto parameterMapInterface = ParameterMapInterface::New();
const std::string parameterName("Key");
ParameterMapInterface parameterMapInterface{};
const std::string parameterName("Key");
using NumberToString = itk::NumberToString<double>;

for (const double testValue1 : { 0.0, 1.0 })
{
for (const double testValue2 : { 0.0, 1.0 })
{
parameterMapInterface->SetParameterMap(
parameterMapInterface.SetParameterMap(
{ { parameterName, { NumberToString{}(testValue1), NumberToString{}(testValue2) } } });

const auto retrievedValues = parameterMapInterface->RetrieveValues<double>(parameterName);
const auto retrievedValues = parameterMapInterface.RetrieveValues<double>(parameterName);
ASSERT_NE(retrievedValues, nullptr);
const std::vector<double> expectedValues{ testValue1, testValue2 };
EXPECT_EQ(*retrievedValues, expectedValues);
Expand All @@ -106,35 +106,35 @@ GTEST_TEST(ParameterMapInterface, RetrieveValuesSupportsMultipleValues)

GTEST_TEST(ParameterMapInterface, RetrieveValuesThrowsExceptionWhenConversionFails)
{
const auto parameterMapInterface = ParameterMapInterface::New();
const std::string parameterName("Key");
ParameterMapInterface parameterMapInterface{};
const std::string parameterName("Key");

parameterMapInterface->SetParameterMap({ { parameterName, { "not-a-valid-bool-or-double-value" } } });
EXPECT_THROW(parameterMapInterface->RetrieveValues<bool>(parameterName), itk::ExceptionObject);
EXPECT_THROW(parameterMapInterface->RetrieveValues<double>(parameterName), itk::ExceptionObject);
parameterMapInterface.SetParameterMap({ { parameterName, { "not-a-valid-bool-or-double-value" } } });
EXPECT_THROW(parameterMapInterface.RetrieveValues<bool>(parameterName), itk::ExceptionObject);
EXPECT_THROW(parameterMapInterface.RetrieveValues<double>(parameterName), itk::ExceptionObject);

// A typical input error where floating point value 1.25 might have been intended:
parameterMapInterface->SetParameterMap({ { parameterName, { "1,25" } } });
EXPECT_THROW(parameterMapInterface->RetrieveValues<double>(parameterName), itk::ExceptionObject);
parameterMapInterface.SetParameterMap({ { parameterName, { "1,25" } } });
EXPECT_THROW(parameterMapInterface.RetrieveValues<double>(parameterName), itk::ExceptionObject);

// Either 2375 (using comma as thousands separator) or 2.375 might have been intended:
parameterMapInterface->SetParameterMap({ { parameterName, { "2,375" } } });
EXPECT_THROW(parameterMapInterface->RetrieveValues<double>(parameterName), itk::ExceptionObject);
parameterMapInterface.SetParameterMap({ { parameterName, { "2,375" } } });
EXPECT_THROW(parameterMapInterface.RetrieveValues<double>(parameterName), itk::ExceptionObject);
}


GTEST_TEST(ParameterMapInterface, HasParameter)
{
const auto parameterMapInterface = ParameterMapInterface::New();
const std::string parameterName("Key");
ParameterMapInterface parameterMapInterface{};
const std::string parameterName("Key");

EXPECT_FALSE(parameterMapInterface->HasParameter(parameterName));
EXPECT_FALSE(parameterMapInterface.HasParameter(parameterName));

parameterMapInterface->SetParameterMap({ { parameterName, {} } });
EXPECT_TRUE(parameterMapInterface->HasParameter(parameterName));
parameterMapInterface.SetParameterMap({ { parameterName, {} } });
EXPECT_TRUE(parameterMapInterface.HasParameter(parameterName));

parameterMapInterface->SetParameterMap({ { parameterName, { "a", "b", "c" } } });
EXPECT_TRUE(parameterMapInterface->HasParameter(parameterName));
parameterMapInterface.SetParameterMap({ { parameterName, { "a", "b", "c" } } });
EXPECT_TRUE(parameterMapInterface.HasParameter(parameterName));

EXPECT_FALSE(parameterMapInterface->HasParameter("This-is-not-a-key-from-this-map-" + parameterName));
EXPECT_FALSE(parameterMapInterface.HasParameter("This-is-not-a-key-from-this-map-" + parameterName));
}
20 changes: 10 additions & 10 deletions Common/ParameterFileParser/itkParameterMapInterface.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -98,10 +98,10 @@ ParameterMapInterface::ReadParameter(bool & parameterValue,
if (!elastix::Conversion::StringToValue(parameterValueString, parameterValue))
{
/** Trying to read a string other than "true" or "false" as a boolean. */
itkExceptionMacro("ERROR: Entry number "
<< entry_nr << " for the parameter \"" << parameterName
<< "\" should be a boolean, i.e. either \"true\" or \"false\", but it reads \""
<< parameterValueString << "\".");
itkGenericExceptionMacro("ERROR: Entry number "
<< entry_nr << " for the parameter \"" << parameterName
<< "\" should be a boolean, i.e. either \"true\" or \"false\", but it reads \""
<< parameterValueString << "\".");
}

return dummy;
Expand Down Expand Up @@ -145,17 +145,17 @@ ParameterMapInterface::ReadParameter(std::vector<std::string> & parameterValues,
if (entry_nr_start > entry_nr_end)
{
/** Programming error: just throw an exception. */
itkExceptionMacro("WARNING: The entry number start ("
<< entry_nr_start << ") should be smaller than entry number end (" << entry_nr_end
<< "). It was requested for parameter \"" << parameterName << "\".\n");
itkGenericExceptionMacro("WARNING: The entry number start ("
<< entry_nr_start << ") should be smaller than entry number end (" << entry_nr_end
<< "). It was requested for parameter \"" << parameterName << "\".\n");
}

/** Check if it exists at the requested entry numbers. */
if (entry_nr_end >= numberOfEntries)
{
itkExceptionMacro("WARNING: The parameter \"" << parameterName << "\" does not exist at entry number "
<< entry_nr_end
<< ".\nThe default empty string \"\" is used instead.\n");
itkGenericExceptionMacro("WARNING: The parameter \"" << parameterName << "\" does not exist at entry number "
<< entry_nr_end
<< ".\nThe default empty string \"\" is used instead.\n");
}

/** Get the vector of parameters. */
Expand Down
Loading
Loading