test_doc
test_TimeLine.cpp
浏览该文件的文档.
1 /*
2  * test_TimeLine.cpp
3  *
4  * Created on: 2019年2月10日
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_base
12  #include <boost/test/unit_test.hpp>
13 #endif
14 
15 #include <hikyuu/StockManager.h>
16 #include <hikyuu/Stock.h>
17 
18 using namespace hku;
19 
27 BOOST_AUTO_TEST_CASE( test_TimeLine_query_by_index ) {
28  StockManager& sm = StockManager::instance();
29  Stock stock = sm["sz000001"];
30  KQuery query;
31  TimeLineList result;
32 
34  query = KQuery(1, 1);
35  result = stock.getTimeLineList(query);
36  BOOST_CHECK(result.size() == 0);
37 
39  query = KQuery(-1, -1);
40  result = stock.getTimeLineList(query);
41  BOOST_CHECK(result.size() == 0);
42 
44  query = KQuery(-1, -1);
45  result = stock.getTimeLineList(query);
46  BOOST_CHECK(result.size() == 0);
47 
49  query = KQuery(1, 3);
50  result = stock.getTimeLineList(query);
51  BOOST_CHECK(result.size() == 2);
52  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201812030931), 10.57, 26962));
53  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201812030932), 10.53, 15407));
54 
56  query = KQuery(-3, -1);
57  result = stock.getTimeLineList(query);
58  BOOST_CHECK(result.size() == 2);
59  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
60  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
61 
63  query = KQuery(-3, 0);
64  result = stock.getTimeLineList(query);
65  BOOST_CHECK(result.size() == 0);
66 
68  query = KQuery();
69  result = stock.getTimeLineList(query);
70  BOOST_CHECK(result.size() == 10320);
71  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201812030930), 10.61, 83391));
72  BOOST_CHECK(result[6516] == TimeLineRecord(Datetime(201901111006), 10.18, 2823));
73  BOOST_CHECK(result[10319] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
74 
76  query = KQuery(-3);
77  result = stock.getTimeLineList(query);
78  BOOST_CHECK(result.size() == 3);
79  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
80  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
81  BOOST_CHECK(result[2] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
82 
83  query = KQuery(10317);
84  result = stock.getTimeLineList(query);
85  BOOST_CHECK(result.size() == 3);
86  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
87  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
88  BOOST_CHECK(result[2] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
89 
91  query = KQuery(10317, 10320);
92  result = stock.getTimeLineList(query);
93  BOOST_CHECK(result.size() == 3);
94  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
95  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
96  BOOST_CHECK(result[2] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
97 
99  query = KQuery(10317, 10319);
100  result = stock.getTimeLineList(query);
101  BOOST_CHECK(result.size() == 2);
102  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
103  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
104 
106  query = KQuery(10317, 10321);
107  result = stock.getTimeLineList(query);
108  BOOST_CHECK(result.size() == 3);
109  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
110  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
111  BOOST_CHECK(result[2] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
112 
114  query = KQuery(10320);
115  result = stock.getTimeLineList(query);
116  BOOST_CHECK(result.size() == 0);
117 
119  query = KQuery(10319);
120  result = stock.getTimeLineList(query);
121  BOOST_CHECK(result.size() == 1);
122  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
123 
125  query = KQuery(10321);
126  result = stock.getTimeLineList(query);
127  BOOST_CHECK(result.size() == 0);
128 
130  query = KQuery(10317, -1);
131  result = stock.getTimeLineList(query);
132  BOOST_CHECK(result.size() == 2);
133  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
134  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
135 
137  query = KQuery(-3, 10319);
138  result = stock.getTimeLineList(query);
139  BOOST_CHECK(result.size() == 2);
140  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
141  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
142 }
143 
144 
146 BOOST_AUTO_TEST_CASE( test_TimeLine_query_by_date ) {
147  StockManager& sm = StockManager::instance();
148  Stock stock = sm["sz000001"];
149  KQuery query;
150  TimeLineList result;
151 
153  query = KQueryByDate(Datetime(201812030000));
154  result = stock.getTimeLineList(query);
155  BOOST_CHECK(result.size() == 10320);
156  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201812030930), 10.61, 83391));
157  BOOST_CHECK(result[6516] == TimeLineRecord(Datetime(201901111006), 10.18, 2823));
158  BOOST_CHECK(result[10319] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
159 
161  query = KQueryByDate(Datetime(201812030930));
162  result = stock.getTimeLineList(query);
163  BOOST_CHECK(result.size() == 10320);
164  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201812030930), 10.61, 83391));
165  BOOST_CHECK(result[6516] == TimeLineRecord(Datetime(201901111006), 10.18, 2823));
166  BOOST_CHECK(result[10319] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
167 
169  query = KQueryByDate(Datetime(201902011457));
170  result = stock.getTimeLineList(query);
171  BOOST_CHECK(result.size() == 3);
172  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
173  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
174  BOOST_CHECK(result[2] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
175 
177  query = KQueryByDate(Datetime(201902011457), Datetime(201902011457));
178  result = stock.getTimeLineList(query);
179  BOOST_CHECK(result.size() == 0);
180 
182  query = KQueryByDate(Datetime(201902011457), Datetime(201902011459));
183  result = stock.getTimeLineList(query);
184  BOOST_CHECK(result.size() == 2);
185  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
186  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
187 
189  query = KQueryByDate(Datetime(201902011457), Datetime(201902020000));
190  result = stock.getTimeLineList(query);
191  BOOST_CHECK(result.size() == 3);
192  BOOST_CHECK(result[0] == TimeLineRecord(Datetime(201902011457), 11.20, 46));
193  BOOST_CHECK(result[1] == TimeLineRecord(Datetime(201902011458), 11.20, 0));
194  BOOST_CHECK(result[2] == TimeLineRecord(Datetime(201902011459), 11.20, 20572));
195 }
196 
BOOST_AUTO_TEST_CASE(test_TimeLine_query_by_index)