Skip to content

Commit

Permalink
CurveManager: check that Min Input <= Max Input and normalize the out…
Browse files Browse the repository at this point in the history
…put format
  • Loading branch information
jmarrec committed Jan 28, 2025
1 parent 70ec7f1 commit 767701e
Showing 1 changed file with 64 additions and 9 deletions.
73 changes: 64 additions & 9 deletions src/EnergyPlus/CurveManager.cc
Original file line number Diff line number Diff line change
Expand Up @@ -773,10 +773,42 @@ namespace Curve {

thisCurve->inputLimits[0].min = Numbers(13);
thisCurve->inputLimits[0].max = Numbers(14);
if (Numbers(13) > Numbers(14)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(13),
Numbers(13),
state.dataIPShortCut->cNumericFieldNames(14),
Numbers(14)));
ErrorsFound = true;
}

thisCurve->inputLimits[1].min = Numbers(15);
thisCurve->inputLimits[1].max = Numbers(16);
if (Numbers(15) > Numbers(16)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(15),
Numbers(15),
state.dataIPShortCut->cNumericFieldNames(16),
Numbers(16)));
ErrorsFound = true;
}

thisCurve->inputLimits[2].min = Numbers(17);
thisCurve->inputLimits[2].max = Numbers(18);
if (Numbers(17) > Numbers(18)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(17),
Numbers(17),
state.dataIPShortCut->cNumericFieldNames(18),
Numbers(18)));
ErrorsFound = true;
}

if (NumNumbers > 18 && !state.dataIPShortCut->lNumericFieldBlanks(19)) {
thisCurve->outputLimits.min = Numbers(19);
Expand Down Expand Up @@ -854,7 +886,7 @@ namespace Curve {
if (Numbers(5) > Numbers(6)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(5),
Numbers(5),
state.dataIPShortCut->cNumericFieldNames(6),
Expand Down Expand Up @@ -918,7 +950,7 @@ namespace Curve {
if (Numbers(6) > Numbers(7)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(6),
Numbers(6),
state.dataIPShortCut->cNumericFieldNames(7),
Expand Down Expand Up @@ -1622,6 +1654,18 @@ namespace Curve {
}
thisCurve->inputLimits[0].min = Numbers(4);
thisCurve->inputLimits[0].max = Numbers(5);

if (Numbers(4) > Numbers(5)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(4),
Numbers(4),
state.dataIPShortCut->cNumericFieldNames(5),
Numbers(5)));
ErrorsFound = true;
}

if (NumNumbers > 5 && !state.dataIPShortCut->lNumericFieldBlanks(6)) {
thisCurve->outputLimits.min = Numbers(6);
thisCurve->outputLimits.minPresent = true;
Expand Down Expand Up @@ -1690,7 +1734,7 @@ namespace Curve {
if (Numbers(5) > Numbers(6)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(5),
Numbers(5),
state.dataIPShortCut->cNumericFieldNames(6),
Expand All @@ -1700,7 +1744,7 @@ namespace Curve {
if (Numbers(7) > Numbers(8)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(7),
Numbers(7),
state.dataIPShortCut->cNumericFieldNames(8),
Expand Down Expand Up @@ -1756,7 +1800,7 @@ namespace Curve {
if (Numbers(5) > Numbers(6)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(5),
Numbers(5),
state.dataIPShortCut->cNumericFieldNames(6),
Expand Down Expand Up @@ -1822,7 +1866,7 @@ namespace Curve {
if (Numbers(6) > Numbers(7)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(6),
Numbers(6),
state.dataIPShortCut->cNumericFieldNames(7),
Expand Down Expand Up @@ -1888,7 +1932,7 @@ namespace Curve {
if (Numbers(4) > Numbers(5)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(4),
Numbers(4),
state.dataIPShortCut->cNumericFieldNames(5),
Expand Down Expand Up @@ -1954,7 +1998,7 @@ namespace Curve {
if (Numbers(4) > Numbers(5)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(4),
Numbers(4),
state.dataIPShortCut->cNumericFieldNames(5),
Expand Down Expand Up @@ -2020,7 +2064,7 @@ namespace Curve {
if (Numbers(4) > Numbers(5)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{}[{:.2R}] > {} [{:.2R}]",
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(4),
Numbers(4),
state.dataIPShortCut->cNumericFieldNames(5),
Expand Down Expand Up @@ -2074,6 +2118,17 @@ namespace Curve {
thisCurve->inputLimits[0].min = Numbers(6);
thisCurve->inputLimits[0].max = Numbers(7);

if (Numbers(6) > Numbers(7)) { // error
ShowSevereError(state, format("GetCurveInput: For {}: ", CurrentModuleObject));
ShowContinueError(state,
format("{} [{:.2R}] > {} [{:.2R}]",
state.dataIPShortCut->cNumericFieldNames(6),
Numbers(6),
state.dataIPShortCut->cNumericFieldNames(7),
Numbers(7)));
ErrorsFound = true;
}

if (NumNumbers > 7 && !state.dataIPShortCut->lNumericFieldBlanks(8)) {
thisCurve->outputLimits.min = Numbers(8);
thisCurve->outputLimits.minPresent = true;
Expand Down

3 comments on commit 767701e

@nrel-bot-2c
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

10916_Broken_Format_CurveManager (jmarrec) - x86_64-Linux-Ubuntu-24.04-gcc-13.3-UnitTestsCoverage-RelWithDebInfo: OK (2103 of 2103 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

@nrel-bot-2
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

10916_Broken_Format_CurveManager (jmarrec) - x86_64-Linux-Ubuntu-24.04-gcc-13.3: OK (2922 of 2922 tests passed, 0 test warnings)

Build Badge Test Badge

@nrel-bot-2c
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

10916_Broken_Format_CurveManager (jmarrec) - x86_64-Linux-Ubuntu-24.04-gcc-13.3-IntegrationCoverage-RelWithDebInfo: OK (802 of 802 tests passed, 0 test warnings)

Build Badge Test Badge Coverage Badge

Please sign in to comment.