test_doc
test_export.cpp
浏览该文件的文档.
1 /*
2  * test_export.cpp
3  *
4  * Created on: 2013-4-30
5  * Author: fasiondog
6  */
7 
8 #ifdef TEST_ALL_IN_ONE
9  #include <boost/test/unit_test.hpp>
10 #else
11  #define BOOST_TEST_MODULE test_hikyuu_trade_sys_suite
12  #include <boost/test/unit_test.hpp>
13 #endif
14 
15 #include <hikyuu/config.h>
16 
17 #if HKU_SUPPORT_SERIALIZATION
18 
19 #include <fstream>
20 #include <boost/archive/xml_oarchive.hpp>
21 #include <boost/archive/xml_iarchive.hpp>
22 #include <hikyuu/StockManager.h>
23 #include <hikyuu/trade_sys/system/build_in.h>
24 
25 using namespace hku;
26 
34 BOOST_AUTO_TEST_CASE( test_TradeRequest_export ) {
35  StockManager& sm = StockManager::instance();
36  string filename(sm.tmpdir());
37  filename += "/TradeRequest.xml";
38 
39  TradeRequest tr1;
40  tr1.valid = 1;
41  tr1.business = BUSINESS_BUY;
42  tr1.datetime = Datetime(201001100000);
43  tr1.stoploss = 11.13;
44  tr1.number = 1000;
45  tr1.from = PART_SIGNAL;
46  tr1.count = 1;
47  {
48  std::ofstream ofs(filename);
49  boost::archive::xml_oarchive oa(ofs);
50  oa << BOOST_SERIALIZATION_NVP(tr1);
51  }
52 
53  TradeRequest tr2;
54  {
55  std::ifstream ifs(filename);
56  boost::archive::xml_iarchive ia(ifs);
57  ia >> BOOST_SERIALIZATION_NVP(tr2);
58  }
59 
60  BOOST_CHECK(tr1.valid == tr2.valid);
61  BOOST_CHECK(tr1.business == tr2.business);
62  BOOST_CHECK(tr1.datetime == tr2.datetime);
63  BOOST_CHECK(tr1.stoploss == tr2.stoploss);
64  BOOST_CHECK(tr1.number == tr2.number);
65  BOOST_CHECK(tr1.from == tr2.from);
66  BOOST_CHECK(tr1.count == tr2.count);
67 }
68 
69 
71 BOOST_AUTO_TEST_CASE( test_SYS_Simple_export ) {
72  StockManager& sm = StockManager::instance();
73  string filename(sm.tmpdir());
74  filename += "/SYS_Simple.xml";
75 
76  SystemPtr sg1 = SYS_Simple();
77  {
78  std::ofstream ofs(filename);
79  boost::archive::xml_oarchive oa(ofs);
80  oa << BOOST_SERIALIZATION_NVP(sg1);
81  }
82 
83  SystemPtr sg2;
84  {
85  std::ifstream ifs(filename);
86  boost::archive::xml_iarchive ia(ifs);
87  ia >> BOOST_SERIALIZATION_NVP(sg2);
88  }
89 
90  BOOST_CHECK(sg1->name() == sg2->name());
91 }
92 
95 #endif /* HKU_SUPPORT_SERIALIZATION */
96 
97 
98 
99 
BOOST_AUTO_TEST_CASE(test_Datetime)