Merge pull request #442 from OpenWaterAnalytics/lrossman-dev17
Fixes bug in EN_getcurve
This commit is contained in:
@@ -343,7 +343,7 @@ extern "C" {
|
||||
EN_API_FLOAT_TYPE x, EN_API_FLOAT_TYPE y);
|
||||
|
||||
int DLLEXPORT ENgetcurve(int index, char* id, int *nPoints,
|
||||
EN_API_FLOAT_TYPE **xValues, EN_API_FLOAT_TYPE **yValues);
|
||||
EN_API_FLOAT_TYPE *xValues, EN_API_FLOAT_TYPE *yValues);
|
||||
|
||||
int DLLEXPORT ENsetcurve(int index, EN_API_FLOAT_TYPE *xValues,
|
||||
EN_API_FLOAT_TYPE *yValues, int nPoints);
|
||||
|
||||
@@ -1422,7 +1422,7 @@ typedef struct Project *EN_Project;
|
||||
@ref EN_MAXID characters.
|
||||
*/
|
||||
int DLLEXPORT EN_getcurve(EN_Project ph, int index, char* id, int *nPoints,
|
||||
double **xValues, double **yValues);
|
||||
double *xValues, double *yValues);
|
||||
|
||||
/**
|
||||
@brief assigns a set of data points to a curve.
|
||||
|
||||
@@ -139,7 +139,7 @@ int EXPORT_PY_API curv_getlength(Handle ph, int index, int *len);
|
||||
int EXPORT_PY_API curv_gettype(Handle ph, int curveIndex, int *outType);
|
||||
int EXPORT_PY_API curv_getvalue(Handle ph, int curveIndex, int pointIndex, double *x, double *y);
|
||||
int EXPORT_PY_API curv_setvalue(Handle ph, int curveIndex, int pointIndex, double x, double y);
|
||||
int EXPORT_PY_API curv_get(Handle ph, int curveIndex, char* id, int *nValues, double **xValues, double **yValues);
|
||||
int EXPORT_PY_API curv_get(Handle ph, int curveIndex, char* id, int *nValues, double *xValues, double *yValues);
|
||||
int EXPORT_PY_API curv_set(Handle ph, int index, double *x, double *y, int len);
|
||||
|
||||
int EXPORT_PY_API scntl_add(Handle ph, int type, int linkIndex, double setting, int nodeIndex, double level, int *index);
|
||||
|
||||
@@ -4385,7 +4385,7 @@ int DLLEXPORT EN_setcurvevalue(EN_Project p, int curveIndex, int pointIndex,
|
||||
}
|
||||
|
||||
int DLLEXPORT EN_getcurve(EN_Project p, int index, char *id, int *nPoints,
|
||||
double **xValues, double **yValues)
|
||||
double *xValues, double *yValues)
|
||||
/*----------------------------------------------------------------
|
||||
** Input: index = data curve index
|
||||
** Output: id = ID name of data curve
|
||||
@@ -4410,8 +4410,8 @@ int DLLEXPORT EN_getcurve(EN_Project p, int index, char *id, int *nPoints,
|
||||
*nPoints = curve->Npts;
|
||||
for (i = 0; i < curve->Npts; i++)
|
||||
{
|
||||
*xValues[i] = curve->X[i];
|
||||
*yValues[i] = curve->Y[i];
|
||||
xValues[i] = curve->X[i];
|
||||
yValues[i] = curve->Y[i];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -645,7 +645,7 @@ int DLLEXPORT ENsetcurvevalue(int curveIndex, int pointIndex, EN_API_FLOAT_TYPE
|
||||
}
|
||||
|
||||
int DLLEXPORT ENgetcurve(int index, char *id, int *nPoints,
|
||||
EN_API_FLOAT_TYPE **xValues, EN_API_FLOAT_TYPE **yValues)
|
||||
EN_API_FLOAT_TYPE *xValues, EN_API_FLOAT_TYPE *yValues)
|
||||
{
|
||||
int i;
|
||||
Network *net = &_defaultProject->network;
|
||||
@@ -657,8 +657,8 @@ int DLLEXPORT ENgetcurve(int index, char *id, int *nPoints,
|
||||
*nPoints = curve->Npts;
|
||||
for (i = 0; i < curve->Npts; i++)
|
||||
{
|
||||
*xValues[i] = (EN_API_FLOAT_TYPE)curve->X[i];
|
||||
*yValues[i] = (EN_API_FLOAT_TYPE)curve->Y[i];
|
||||
xValues[i] = (EN_API_FLOAT_TYPE)curve->X[i];
|
||||
yValues[i] = (EN_API_FLOAT_TYPE)curve->Y[i];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -624,7 +624,7 @@ int EXPORT_PY_API curv_setvalue(Handle ph, int curveIndex, int pointIndex, doubl
|
||||
return set_error(pr->error, EN_setcurvevalue(pr->project, curveIndex, pointIndex, x, y));
|
||||
}
|
||||
|
||||
int EXPORT_PY_API curv_get(Handle ph, int curveIndex, char* id, int *nValues, double **xValues, double **yValues)
|
||||
int EXPORT_PY_API curv_get(Handle ph, int curveIndex, char* id, int *nValues, double *xValues, double *yValues)
|
||||
{
|
||||
handle_t *pr = (handle_t *)ph;
|
||||
return set_error(pr->error, EN_getcurve(pr->project, curveIndex, id, nValues, xValues, yValues));
|
||||
|
||||
@@ -35,6 +35,35 @@ BOOST_FIXTURE_TEST_CASE(test_curve_comments, FixtureOpenClose)
|
||||
error = EN_getcomment(ph, EN_CURVE, index, comment);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
BOOST_CHECK(check_string(comment, (char *)"Curve 1"));
|
||||
|
||||
// Test of EN_setcurve and EN_getcurve
|
||||
int i;
|
||||
char id1[] = "NewCurve";
|
||||
int n1 = 5;
|
||||
double X1[] = {16.88889, 19.5, 22.13889, 25.94445, 33.33334};
|
||||
double Y1[] = {156.7, 146.5, 136.2, 117.9, 50.0};
|
||||
int n2;
|
||||
double X2[5], Y2[5];
|
||||
char id2[EN_MAXID+1];
|
||||
|
||||
// Add data to a new curve
|
||||
error = EN_addcurve(ph, id1);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
error = EN_getcurveindex(ph, id1, &i);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
error = EN_setcurve(ph, i, X1, Y1, n1);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
|
||||
// Retrieve data from curve
|
||||
error = EN_getcurve(ph, i, id2, &n2, X2, Y2);
|
||||
BOOST_REQUIRE(error == 0);
|
||||
BOOST_CHECK(check_string(id2, id1));
|
||||
BOOST_REQUIRE(n2 == n1);
|
||||
for (i = 0; i < n1; i++)
|
||||
{
|
||||
BOOST_REQUIRE(X1[i] == X2[i]);
|
||||
BOOST_REQUIRE(Y1[i] == Y2[i]);
|
||||
}
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_SUITE_END()
|
||||
|
||||
Reference in New Issue
Block a user