Adding tests for save and use hydraulics file

This commit is contained in:
Michael Tryby
2019-02-28 11:14:15 -05:00
parent 91120b8e71
commit a4b2e53768
3 changed files with 37 additions and 10 deletions

View File

@@ -220,7 +220,7 @@ typedef struct Project *EN_Project;
Do not call this function while the hydraulics solver is open.
*/
int DLLEXPORT EN_usehydfile(EN_Project ph, char *filename);
int DLLEXPORT EN_usehydfile(EN_Project ph, const char *filename);
/**
@brief Opens a project's hydraulic solver.
@@ -343,7 +343,7 @@ typedef struct Project *EN_Project;
called ::EN_solveH or the ::EN_initH - ::EN_runH - ::EN_nextH sequence with the initflag
argument of ::EN_initH set to `EN_SAVE` or `EN_SAVE_AND_INIT`.
*/
int DLLEXPORT EN_savehydfile(EN_Project ph, char *filename);
int DLLEXPORT EN_savehydfile(EN_Project ph, const char *filename);
/**
@brief Closes the hydraulic solver freeing all of its allocated memory.
@@ -617,7 +617,7 @@ typedef struct Project *EN_Project;
@return an error code
*/
int DLLEXPORT EN_getstatistic(EN_Project ph, int type, double* value);
/********************************************************************
Analysis Options Functions

View File

@@ -583,7 +583,7 @@ int DLLEXPORT EN_closeH(EN_Project p)
return 0;
}
int DLLEXPORT EN_savehydfile(EN_Project p, char *filename)
int DLLEXPORT EN_savehydfile(EN_Project p, const char *filename)
/*----------------------------------------------------------------
** Input: filename = name of file to which hydraulic results are saved
** Output: none
@@ -611,7 +611,7 @@ int DLLEXPORT EN_savehydfile(EN_Project p, char *filename)
return 0;
}
int DLLEXPORT EN_usehydfile(EN_Project p, char *filename)
int DLLEXPORT EN_usehydfile(EN_Project p, const char *filename)
/*----------------------------------------------------------------
** Input: filename = name of previously saved hydraulics file
** Output: none
@@ -2484,7 +2484,7 @@ int DLLEXPORT EN_settankdata(EN_Project p, int index, double elev,
if (initlvl < 0.0 || minlvl < 0.0 || maxlvl < 0.0) return 209;
if (minlvl > initlvl || minlvl > maxlvl || initlvl > maxlvl) return 225;
if (diam < 0.0 || minvol < 0.0) return 209;
// volume curve supplied
if (strlen(volcurve) > 0)
{
@@ -3459,13 +3459,13 @@ int DLLEXPORT EN_getlinkvalue(EN_Project p, int index, int property, double *val
v = (double)Pump[findpump(&p->network, index)].Ecurve;
}
break;
case EN_PUMP_ECOST:
if (Link[index].Type == PUMP)
{
v = (double)Pump[findpump(&p->network, index)].Ecost;
}
break;
break;
case EN_PUMP_EPAT:
if (Link[index].Type == PUMP)
@@ -4392,7 +4392,7 @@ int DLLEXPORT EN_setcurve(EN_Project p, int index, double *xValues,
if (!p->Openflag) return 102;
if (index <= 0 || index > net->Ncurves) return 206;
if (nPoints <= 0) return 202;
// Check that x values are increasing
for (j = 1; j < nPoints; j++) if (xValues[j-1] >= xValues[j]) return 230;

View File

@@ -19,6 +19,7 @@
#define BOOST_TEST_MODULE "hydqual"
#include <boost/test/included/unit_test.hpp>
#include <boost/filesystem.hpp>
#include "test_fixtures.hpp"
@@ -26,7 +27,7 @@ using namespace std;
using namespace boost;
BOOST_AUTO_TEST_SUITE (test_hydraulics_quality)
BOOST_AUTO_TEST_SUITE (test_hyd_qual)
BOOST_FIXTURE_TEST_CASE(test_solveH_solveQ, FixtureOpenClose)
{
@@ -131,4 +132,30 @@ BOOST_FIXTURE_TEST_CASE(test_progressive_step, FixtureOpenClose)
}
// saveH
BOOST_FIXTURE_TEST_CASE(test_hydr_savefile, FixtureOpenClose)
{
string hyd_file("test_savefile.hyd");
error = EN_solveH(ph);
BOOST_REQUIRE(error == 0);
error = EN_savehydfile(ph, hyd_file.c_str());
BOOST_REQUIRE(error == 0);
BOOST_CHECK(filesystem::exists(hyd_file) == true);
}
BOOST_FIXTURE_TEST_CASE(test_hydr_usefile, FixtureOpenClose, * unit_test::depends_on("test_hyd_qual/test_hydr_savefile"))
{
string hyd_file("test_savefile.hyd");
error = EN_usehydfile(ph, hyd_file.c_str());
BOOST_REQUIRE(error == 0);
error = EN_solveQ(ph);
BOOST_REQUIRE(error == 0);
}
BOOST_AUTO_TEST_SUITE_END()