Skip to content

Commit

Permalink
Merge pull request #38769 from mantidproject/Fit_Parameter_cppcheck_b…
Browse files Browse the repository at this point in the history
…ug_v2

Fix bug in Fit_Parameter getConstraint
  • Loading branch information
SilkeSchomann authored Jan 31, 2025
2 parents cba714b + cc2aeee commit 09e34d1
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 2 deletions.
2 changes: 1 addition & 1 deletion Framework/Geometry/src/Instrument/FitParameter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ std::string FitParameter::getConstraint() const {
max = std::stod(m_constraintMax);
}

if (!(m_constraintMin.empty() && m_constraintMax.empty())) {
if (!m_constraintMin.empty() && !m_constraintMax.empty()) {
constraint << min << " < " << m_name << " < " << max;
} else if (!m_constraintMin.empty()) {
constraint << min << " < " << m_name;
Expand Down
22 changes: 22 additions & 0 deletions Framework/Geometry/test/FitParameterTest.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,26 @@ class FitParameterTest : public CxxTest::TestSuite {
TS_ASSERT(fitP.getTie().compare("") == 0);
TS_ASSERT(fitP.getConstraint().compare("3 < name < 8") == 0);
}

void testConstraintMinEmptyandMaxNotEmpty() {
FitParameter fitP;

std::istringstream input("9.1 , function , name ,3 , , , , , , ");

input >> fitP;

auto foo = fitP.getConstraint();

TS_ASSERT(fitP.getConstraint().compare("3 < name") == 0);
}

void testConstraintMinNotEmptyandMaxEmpty() {
FitParameter fitP;

std::istringstream input("9.1 , function , name , ,8 , , , , , ");

input >> fitP;

TS_ASSERT(fitP.getConstraint().compare("name < 8") == 0);
}
};
1 change: 0 additions & 1 deletion buildconfig/CMake/CppCheck_Suppressions.txt.in
Original file line number Diff line number Diff line change
Expand Up @@ -706,7 +706,6 @@ constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/Geometry/src/Instrument/CompA
constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/Geometry/src/Instrument/CompAssembly.cpp:405
constParameterPointer:${CMAKE_SOURCE_DIR}/Framework/Geometry/src/Instrument/ComponentInfo.cpp:129
knownConditionTrueFalse:${CMAKE_SOURCE_DIR}/Framework/Geometry/src/Instrument/ComponentInfoBankHelpers.cpp:113
knownConditionTrueFalse:${CMAKE_SOURCE_DIR}/Framework/Geometry/src/Instrument/FitParameter.cpp:54
constParameterReference:${CMAKE_SOURCE_DIR}/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp:593
unreadVariable:${CMAKE_SOURCE_DIR}/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp:1552
constVariablePointer:${CMAKE_SOURCE_DIR}/Framework/Geometry/src/Instrument/InstrumentDefinitionParser.cpp:2330
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Fixed logic in FitParameter so that if only a Minimum constraint or only a Maximum constraint is available the string returned will not record a 0 for the unavailable constraint.

0 comments on commit 09e34d1

Please sign in to comment.