13 #define BOOST_TEST_DYN_LINK
14 #define BOOST_TEST_MAIN
15 #define BOOST_TEST_MODULE OptimiseTestSuite
16 #include <boost/test/unit_test.hpp>
18 #include <stdair/basic/BasLogParams.hpp>
19 #include <stdair/basic/BasDBParams.hpp>
20 #include <stdair/basic/BasFileMgr.hpp>
21 #include <stdair/service/Logger.hpp>
27 namespace boost_utf = boost::unit_test;
30 std::ofstream utfReportStream (
"OptimiseTestSuite_utfresults.xml");
35 struct UnitTestConfig {
38 boost_utf::unit_test_log.set_stream (utfReportStream);
39 #if defined(BOOST_VERSION) && BOOST_VERSION >= 105900
40 boost_utf::unit_test_log.set_format (boost_utf::OF_XML);
41 #else // BOOST_VERSION
42 boost_utf::unit_test_log.set_format (boost_utf::XML);
43 #endif // BOOST_VERSION
44 boost_utf::unit_test_log.set_threshold_level (boost_utf::log_test_units);
55 int testOptimiseHelper (
const unsigned short optimisationMethodFlag,
56 const bool isBuiltin) {
59 int oExpectedBookingLimit = 0;
62 std::ostringstream oStr;
63 oStr <<
"OptimiseTestSuite_" << optimisationMethodFlag <<
"_" << isBuiltin
65 const stdair::Filename_T lLogFilename (oStr.str());
68 const stdair::NbOfSamples_T iDraws =
73 const unsigned short METHOD_FLAG = optimisationMethodFlag;
76 const double cabinCapacity = 100.0;
79 std::ofstream logOutputFile;
81 logOutputFile.open (lLogFilename.c_str());
82 logOutputFile.clear();
85 const stdair::BasLogParams lLogParams (stdair::LOG::DEBUG, logOutputFile);
89 if (isBuiltin ==
true) {
92 rmolService.buildSampleBom();
98 rmolService.parseAndLoad (cabinCapacity, lRMInputFileName);
101 switch (METHOD_FLAG) {
104 STDAIR_LOG_DEBUG (
"Optimisation by Monte-Carlo (MC)");
114 STDAIR_LOG_DEBUG (
"Optimisation by Dynamic Programming (DP)");
123 STDAIR_LOG_DEBUG (
"Calculate the Bid-Price Vectors (BPV) by EMSR");
132 STDAIR_LOG_DEBUG (
"Calculate the Authorisation Levels (AUs) by EMSRa");
145 STDAIR_LOG_DEBUG (
"Calculate the Authorisation Levels (AUs) by EMSRb");
156 logOutputFile.close();
158 return oExpectedBookingLimit;
165 BOOST_GLOBAL_FIXTURE (UnitTestConfig);
180 BOOST_AUTO_TEST_SUITE (master_test_suite)
185 BOOST_AUTO_TEST_CASE (rmol_optimisation_monte_carlo) {
188 const bool isBuiltin =
false;
190 BOOST_CHECK_NO_THROW (testOptimiseHelper(0, isBuiltin););
196 BOOST_AUTO_TEST_CASE (rmol_optimisation_dynamic_programming) {
199 const bool isBuiltin =
false;
201 BOOST_CHECK_NO_THROW (testOptimiseHelper(1, isBuiltin););
208 BOOST_AUTO_TEST_CASE (rmol_optimisation_emsr_bpv) {
211 const bool isBuiltin =
false;
213 BOOST_CHECK_NO_THROW (testOptimiseHelper(2, isBuiltin););
220 BOOST_AUTO_TEST_CASE (rmol_optimisation_emsr_a) {
223 const bool isBuiltin =
false;
225 BOOST_CHECK_NO_THROW (testOptimiseHelper(3, isBuiltin););
239 BOOST_AUTO_TEST_CASE (rmol_optimisation_emsr_b) {
242 const bool isBuiltin =
false;
244 BOOST_CHECK_NO_THROW (testOptimiseHelper(4, isBuiltin););
250 BOOST_AUTO_TEST_CASE (rmol_optimisation_monte_carlo_built_in) {
253 const bool isBuiltin =
true;
255 BOOST_CHECK_NO_THROW (testOptimiseHelper(0, isBuiltin););
261 BOOST_AUTO_TEST_CASE (rmol_optimisation_dynamic_programming_built_in) {
264 const bool isBuiltin =
true;
266 BOOST_CHECK_NO_THROW (testOptimiseHelper(1, isBuiltin););
273 BOOST_AUTO_TEST_CASE (rmol_optimisation_emsr_bpv_built_in) {
276 const bool isBuiltin =
true;
278 BOOST_CHECK_NO_THROW (testOptimiseHelper(2, isBuiltin););
285 BOOST_AUTO_TEST_CASE (rmol_optimisation_emsr_a_built_in) {
288 const bool isBuiltin =
true;
290 BOOST_CHECK_NO_THROW (testOptimiseHelper(3, isBuiltin););
297 BOOST_AUTO_TEST_CASE (rmol_optimisation_emsr_b_built_in) {
300 const bool isBuiltin =
true;
302 BOOST_CHECK_NO_THROW (testOptimiseHelper(4, isBuiltin););
306 BOOST_AUTO_TEST_SUITE_END()