Files
EPANET/tests/test_toolkit.hpp
Michael Tryby 9c4665a661 Fixes memory leak in EN_addnode() (#455)
* Fixing memory leak in EN_addnode()

* Separating test_net_builder from test_toolkit

Making test_net_builder a standalone test

* Removing BOOST_TEST_MAIN

* Work in progress
2019-04-11 18:04:20 -04:00

111 lines
2.3 KiB
C++

/*
******************************************************************************
Project: OWA EPANET
Version: 2.2
Module: test_toolkit.hpp
Description: Tests EPANET toolkit api functions
Authors: see AUTHORS
Copyright: see AUTHORS
License: see LICENSE
Last Updated: 03/21/2019
******************************************************************************
*/
#ifndef TEST_TOOLKIT_HPP
#define TEST_TOOLKIT_HPP
#include "epanet2_2.h"
#define DATA_PATH_NET1 "./net1.inp"
#define DATA_PATH_TMP "./tmp.inp"
#define DATA_PATH_RPT "./test.rpt"
#define DATA_PATH_OUT "./test.out"
struct FixtureOpenClose{
FixtureOpenClose() {
error = 0;
ph = NULL;
EN_createproject(&ph);
error = EN_open(ph, DATA_PATH_NET1, DATA_PATH_RPT, DATA_PATH_OUT);
}
~FixtureOpenClose() {
error = EN_close(ph);
EN_deleteproject(&ph);
}
int error;
EN_Project ph;
};
struct FixtureInitClose {
FixtureInitClose() {
error = 0;
ph = NULL;
EN_createproject(&ph);
EN_init(ph, DATA_PATH_RPT, DATA_PATH_OUT, EN_GPM, EN_HW);
}
~FixtureInitClose() {
EN_close(ph);
EN_deleteproject(&ph);
}
int error;
EN_Project ph;
};
struct FixtureAfterStep{
FixtureAfterStep() {
error = 0;
ph = NULL;
flag = 0;
tstop = 10800;
EN_createproject(&ph);
error = EN_open(ph, DATA_PATH_NET1, DATA_PATH_RPT, DATA_PATH_OUT);
error = EN_solveH(ph);
BOOST_REQUIRE(error == 0);
error = EN_openQ(ph);
BOOST_REQUIRE(error == 0);
error = EN_initQ(ph, flag);
BOOST_REQUIRE(error == 0);
do {
error = EN_runQ(ph, &t);
BOOST_REQUIRE(error == 0);
error = EN_stepQ(ph, &tstep);
BOOST_REQUIRE(error == 0);
} while (tstep > 0 && t < tstop);
}
~FixtureAfterStep() {
error = EN_closeQ(ph);
BOOST_REQUIRE(error == 0);
error = EN_close(ph);
EN_deleteproject(&ph);
}
int error, flag;
long t, tstep, tstop;
EN_Project ph;
};
boost::test_tools::predicate_result check_cdd_double(std::vector<double>& test,
std::vector<double>& ref, long cdd_tol);
boost::test_tools::predicate_result check_string(std::string test, std::string ref);
#endif //TEST_TOOLKIT_HPP