Fixing bug in gettimeparam
This commit is contained in:
12
src/epanet.c
12
src/epanet.c
@@ -1377,12 +1377,12 @@ int DLLEXPORT EN_gettimeparam(EN_Project p, int param, long *value)
|
|||||||
case EN_REPORTSTART:
|
case EN_REPORTSTART:
|
||||||
*value = time->Rstart;
|
*value = time->Rstart;
|
||||||
break;
|
break;
|
||||||
case EN_STATISTIC:
|
|
||||||
*value = rpt->Tstatflag;
|
|
||||||
break;
|
|
||||||
case EN_RULESTEP:
|
case EN_RULESTEP:
|
||||||
*value = time->Rulestep;
|
*value = time->Rulestep;
|
||||||
break;
|
break;
|
||||||
|
case EN_STATISTIC:
|
||||||
|
*value = rpt->Tstatflag;
|
||||||
|
break;
|
||||||
case EN_PERIODS:
|
case EN_PERIODS:
|
||||||
*value = rpt->Nperiods;
|
*value = rpt->Nperiods;
|
||||||
break;
|
break;
|
||||||
@@ -1392,6 +1392,10 @@ int DLLEXPORT EN_gettimeparam(EN_Project p, int param, long *value)
|
|||||||
case EN_HTIME:
|
case EN_HTIME:
|
||||||
*value = time->Htime;
|
*value = time->Htime;
|
||||||
break;
|
break;
|
||||||
|
case EN_QTIME:
|
||||||
|
*value = time->Qtime;
|
||||||
|
case EN_HALTFLAG:
|
||||||
|
break;
|
||||||
case EN_NEXTEVENT:
|
case EN_NEXTEVENT:
|
||||||
*value = time->Hstep; // find the lesser of the hydraulic time step length,
|
*value = time->Hstep; // find the lesser of the hydraulic time step length,
|
||||||
// or the time to next full/empty tank
|
// or the time to next full/empty tank
|
||||||
@@ -1402,6 +1406,8 @@ int DLLEXPORT EN_gettimeparam(EN_Project p, int param, long *value)
|
|||||||
i = tanktimestep(p, value);
|
i = tanktimestep(p, value);
|
||||||
*value = i;
|
*value = i;
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
return 251;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,4 +85,30 @@ BOOST_FIXTURE_TEST_CASE(test_anlys_getoption, FixtureOpenClose)
|
|||||||
BOOST_CHECK(error == 251);
|
BOOST_CHECK(error == 251);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_FIXTURE_TEST_CASE(test_anlys_gettimeparam, FixtureOpenClose)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
long array[16];
|
||||||
|
|
||||||
|
std::vector<long> test;
|
||||||
|
vector<long> ref = {86400, 3600, 300, 7200, 0, 3600, 0, 360, 0, 25, 0, 86400, 86400, 0, 3600, 0};
|
||||||
|
|
||||||
|
error = EN_solveH(ph);
|
||||||
|
BOOST_REQUIRE(error == 0);
|
||||||
|
|
||||||
|
error = EN_solveQ(ph);
|
||||||
|
BOOST_REQUIRE(error == 0);
|
||||||
|
|
||||||
|
|
||||||
|
for (i=EN_DURATION; i<=EN_NEXTEVENTTANK; i++) {
|
||||||
|
error = EN_gettimeparam(ph, i, &array[i]);
|
||||||
|
BOOST_REQUIRE(error == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
test.assign(array, array + 16);
|
||||||
|
BOOST_CHECK_EQUAL_COLLECTIONS(ref.begin(), ref.end(), test.begin(), test.end());
|
||||||
|
|
||||||
|
error = EN_gettimeparam(ph, 18, &array[0]);
|
||||||
|
BOOST_CHECK(error == 251);
|
||||||
|
}
|
||||||
BOOST_AUTO_TEST_SUITE_END()
|
BOOST_AUTO_TEST_SUITE_END()
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
// the test and the ref vectors.
|
// the test and the ref vectors.
|
||||||
boost::test_tools::predicate_result check_cdd_double(std::vector<double>& test,
|
boost::test_tools::predicate_result check_cdd_double(std::vector<double>& test,
|
||||||
std::vector<double>& ref, long cdd_tol){
|
std::vector<double>& ref, long cdd_tol){
|
||||||
float tmp, min_cdd = 10.0;
|
double tmp, min_cdd = 10.0;
|
||||||
|
|
||||||
// TODO: What if the vectors aren't the same length?
|
// TODO: What if the vectors aren't the same length?
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user