test_doc
test_TransRecord.cpp
浏览该文件的文档.
1 /*
2  * test_TransRecord.cpp
3  *
4  * Created on: 2019-2-11
5  * Author: fasiondog
6  */
7 
8 
9 #ifdef TEST_ALL_IN_ONE
10  #include <boost/test/unit_test.hpp>
11 #else
12  #define BOOST_TEST_MODULE test_hikyuu_serialize_suite
13  #include <boost/test/unit_test.hpp>
14 #endif
15 
16 #include <fstream>
17 #include <boost/archive/xml_oarchive.hpp>
18 #include <boost/archive/xml_iarchive.hpp>
19 #include <hikyuu/StockManager.h>
20 #include <hikyuu/serialization/TransRecord_serialization.h>
21 
22 using namespace hku;
23 
24 #if HKU_SUPPORT_SERIALIZATION
25 
33 BOOST_AUTO_TEST_CASE( test_TransRecord_serialize ) {
34  string filename(StockManager::instance().tmpdir());
35  filename += "/TransRecord.xml";
36 
37  TransRecord t1(Datetime(201101010000), 10.0, 80, TransRecord::SELL);
38  {
39  std::ofstream ofs(filename);
40  boost::archive::xml_oarchive oa(ofs);
41  oa << BOOST_SERIALIZATION_NVP(t1);
42  }
43 
44  TransRecord t2;
45  {
46  std::ifstream ifs(filename);
47  boost::archive::xml_iarchive ia(ifs);
48  ia >> BOOST_SERIALIZATION_NVP(t2);
49  }
50 
51  BOOST_CHECK(t1 == t2);
52 }
53 
54 
56 BOOST_AUTO_TEST_CASE( test_TransList_serialize ) {
57  string filename(StockManager::instance().tmpdir());
58  filename += "/TransList.xml";
59 
60  TransList line1;
61  line1.push_back(TransRecord(Datetime(201101010000), 10.0, 80, TransRecord::BUY));
62  line1.push_back(TransRecord(Datetime(201101020000), 20.0, 90, TransRecord::SELL));
63  line1.push_back(TransRecord(Datetime(201101030000), 20.0, 100, TransRecord::AUCTION));
64  {
65  std::ofstream ofs(filename);
66  boost::archive::xml_oarchive oa(ofs);
67  oa << BOOST_SERIALIZATION_NVP(line1);
68  }
69 
70  TransList line2;
71  {
72  std::ifstream ifs(filename);
73  boost::archive::xml_iarchive ia(ifs);
74  ia >> BOOST_SERIALIZATION_NVP(line2);
75  }
76 
77  BOOST_CHECK(line1.size() != 0);
78  BOOST_CHECK(line1.size() == line2.size());
79  size_t total = line1.size();
80  for (size_t i = 0; i < total; i++) {
81  BOOST_CHECK(line1[i] == line2[i]);
82  }
83 }
84 
85 
88 #endif /* HKU_SUPPORT_SERIALIZATION */
89 
90 
BOOST_AUTO_TEST_CASE(test_Datetime)