Return object index from EN_addnode and EN_addlink (issue #432)

Adds an output argument to EN_addnode and EN_addlink that returns the index of the newly added object.
Also refactors the validity check on object ID names.
This commit is contained in:
Lew Rossman
2019-04-18 07:00:07 -04:00
parent 4494db8f56
commit 1583bea154
18 changed files with 149 additions and 154 deletions

View File

@@ -128,7 +128,7 @@ BOOST_FIXTURE_TEST_CASE(test_build_net1, FixtureInitClose)
//BOOST_REQUIRE(error == 0);
for (i = 0; i < 9; i++)
{
error = EN_addnode(ph, juncs[i], EN_JUNCTION);
error = EN_addnode(ph, juncs[i], EN_JUNCTION, &ind);
BOOST_REQUIRE(error == 0);
error = EN_setnodevalue(ph, i + 1, EN_ELEVATION, e[i]);
BOOST_REQUIRE(error == 0);
@@ -141,14 +141,14 @@ BOOST_FIXTURE_TEST_CASE(test_build_net1, FixtureInitClose)
//error = EN_setdemandpattern(ph, i + 1, 1, 1);
//BOOST_REQUIRE(error == 0);
}
error = EN_addnode(ph, (char *)"9", EN_RESERVOIR);
error = EN_addnode(ph, (char *)"9", EN_RESERVOIR, &ind);
BOOST_REQUIRE(error == 0);
error = EN_setcoord(ph, 10, 10, 70);
BOOST_REQUIRE(error == 0);
error = EN_setnodevalue(ph, 10, EN_ELEVATION, 800);
BOOST_REQUIRE(error == 0);
error = EN_addnode(ph, (char *)"2", EN_TANK);
error = EN_addnode(ph, (char *)"2", EN_TANK, &ind);
BOOST_REQUIRE(error == 0);
error = EN_setcoord(ph, 11, 50, 90);
BOOST_REQUIRE(error == 0);
@@ -165,29 +165,29 @@ BOOST_FIXTURE_TEST_CASE(test_build_net1, FixtureInitClose)
error = EN_setnodevalue(ph, 11, EN_MIXFRACTION, 1);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"10", EN_PIPE, (char *)"10", (char *)"11");
error = EN_addlink(ph, (char *)"10", EN_PIPE, (char *)"10", (char *)"11", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"11", EN_PIPE, (char *)"11", (char *)"12");
error = EN_addlink(ph, (char *)"11", EN_PIPE, (char *)"11", (char *)"12", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"12", EN_PIPE, (char *)"12", (char *)"13");
error = EN_addlink(ph, (char *)"12", EN_PIPE, (char *)"12", (char *)"13", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"21", EN_PIPE, (char *)"21", (char *)"22");
error = EN_addlink(ph, (char *)"21", EN_PIPE, (char *)"21", (char *)"22", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"22", EN_PIPE, (char *)"22", (char *)"23");
error = EN_addlink(ph, (char *)"22", EN_PIPE, (char *)"22", (char *)"23", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"31", EN_PIPE, (char *)"31", (char *)"32");
error = EN_addlink(ph, (char *)"31", EN_PIPE, (char *)"31", (char *)"32", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"110", EN_PIPE, (char *)"2", (char *)"12");
error = EN_addlink(ph, (char *)"110", EN_PIPE, (char *)"2", (char *)"12", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"111", EN_PIPE, (char *)"11", (char *)"21");
error = EN_addlink(ph, (char *)"111", EN_PIPE, (char *)"11", (char *)"21", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"112", EN_PIPE, (char *)"12", (char *)"22");
error = EN_addlink(ph, (char *)"112", EN_PIPE, (char *)"12", (char *)"22", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"113", EN_PIPE, (char *)"13", (char *)"23");
error = EN_addlink(ph, (char *)"113", EN_PIPE, (char *)"13", (char *)"23", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"121", EN_PIPE, (char *)"21", (char *)"31");
error = EN_addlink(ph, (char *)"121", EN_PIPE, (char *)"21", (char *)"31", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"122", EN_PIPE, (char *)"22", (char *)"32");
error = EN_addlink(ph, (char *)"122", EN_PIPE, (char *)"22", (char *)"32", &ind);
BOOST_REQUIRE(error == 0);
for (i = 0; i < 12; i++)
{
@@ -197,7 +197,7 @@ BOOST_FIXTURE_TEST_CASE(test_build_net1, FixtureInitClose)
BOOST_REQUIRE(error == 0);
}
error = EN_addlink(ph, (char *)"9", EN_PUMP, (char *)"9", (char *)"10");
error = EN_addlink(ph, (char *)"9", EN_PUMP, (char *)"9", (char *)"10", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addcurve(ph, (char *)"1");
BOOST_REQUIRE(error == 0);
@@ -306,19 +306,19 @@ BOOST_FIXTURE_TEST_CASE(test_save_net2, FixtureInitClose)
double q1_1, q2_1; // q1_2, q2_2;
// Build a network
error = EN_addnode(ph, (char *)"N1", EN_JUNCTION);
error = EN_addnode(ph, (char *)"N1", EN_JUNCTION, &ind);
BOOST_REQUIRE(error == 0);
error = EN_addnode(ph, (char *)"N2", EN_JUNCTION);
error = EN_addnode(ph, (char *)"N2", EN_JUNCTION, &ind);
BOOST_REQUIRE(error == 0);
error = EN_addnode(ph, (char *)"N3", EN_RESERVOIR);
error = EN_addnode(ph, (char *)"N3", EN_RESERVOIR, &ind);
BOOST_REQUIRE(error == 0);
error = EN_addnode(ph, (char *)"N4", EN_TANK);
error = EN_addnode(ph, (char *)"N4", EN_TANK, &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"L1", EN_PUMP, (char *)"N3", (char *)"N1");
error = EN_addlink(ph, (char *)"L1", EN_PUMP, (char *)"N3", (char *)"N1", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"L2", EN_PIPE, (char *)"N1", (char *)"N3");
error = EN_addlink(ph, (char *)"L2", EN_PIPE, (char *)"N1", (char *)"N3", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addlink(ph, (char *)"L3", EN_PIPE, (char *)"N1", (char *)"N2");
error = EN_addlink(ph, (char *)"L3", EN_PIPE, (char *)"N1", (char *)"N2", &ind);
BOOST_REQUIRE(error == 0);
error = EN_addcurve(ph, (char *)"C1");
BOOST_REQUIRE(error == 0);