test_doc
test_TimeLine.cpp
浏览该文件的文档.
1 /*
2  * test_TimeLine.cpp
3  *
4  * Created on: 2019年2月10日
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/TimeLineRecord_serialization.h>
21 
22 using namespace hku;
23 
24 #if HKU_SUPPORT_SERIALIZATION
25 
33 BOOST_AUTO_TEST_CASE( test_TimeLineRecord_serialize ) {
34  string filename(StockManager::instance().tmpdir());
35  filename += "/TimeLineRecord.xml";
36 
37  TimeLineRecord t1(Datetime(201101010000), 10.0, 80);
38  {
39  std::ofstream ofs(filename);
40  boost::archive::xml_oarchive oa(ofs);
41  oa << BOOST_SERIALIZATION_NVP(t1);
42  }
43 
44  TimeLineRecord 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.datetime == t2.datetime);
52  BOOST_CHECK(t1.price == t2.price);
53  BOOST_CHECK(t1.vol == t2.vol);
54 }
55 
56 
58 BOOST_AUTO_TEST_CASE( test_TimeLineList_serialize ) {
59  string filename(StockManager::instance().tmpdir());
60  filename += "/TimeLineList.xml";
61 
62  TimeLineList line1;
63  line1.push_back(TimeLineRecord(Datetime(201101010000), 10.0, 80));
64  line1.push_back(TimeLineRecord(Datetime(201101020000), 20.0, 90));
65  line1.push_back(TimeLineRecord(Datetime(201101030000), 20.0, 100));
66  {
67  std::ofstream ofs(filename);
68  boost::archive::xml_oarchive oa(ofs);
69  oa << BOOST_SERIALIZATION_NVP(line1);
70  }
71 
72  TimeLineList line2;
73  {
74  std::ifstream ifs(filename);
75  boost::archive::xml_iarchive ia(ifs);
76  ia >> BOOST_SERIALIZATION_NVP(line2);
77  }
78 
79  BOOST_CHECK(line1.size() != 0);
80  BOOST_CHECK(line1.size() == line2.size());
81  size_t total = line1.size();
82  for (size_t i = 0; i < total; i++) {
83  BOOST_CHECK(line1[i] == line2[i]);
84  }
85 }
86 
87 
90 #endif /* HKU_SUPPORT_SERIALIZATION */
91 
92 
BOOST_AUTO_TEST_CASE(test_TimeLine_query_by_index)