test_doc
test_TransList.cpp
浏览该文件的文档.
1 /*
2  * test_TransList.cpp
3  *
4  * Created on: 2019-2-11
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_TransList_query_by_index ) {
28  StockManager& sm = StockManager::instance();
29  Stock stock = sm["sz000001"];
30  KQuery query;
31  TransList result;
32 
34  query = KQuery(1, 1);
35  result = stock.getTransList(query);
36  BOOST_CHECK(result.size() == 0);
37 
39  query = KQuery(-1, -1);
40  result = stock.getTransList(query);
41  BOOST_CHECK(result.size() == 0);
42 
44  query = KQuery(-1, -1);
45  result = stock.getTransList(query);
46  BOOST_CHECK(result.size() == 0);
47 
49  query = KQuery(1, 3);
50  result = stock.getTransList(query);
51  BOOST_CHECK(result.size() == 2);
52  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,1,9,30,2), 11.21, 1339, TransRecord::BUY));
53  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,1,9,30,5), 11.21, 5263, TransRecord::BUY));
54 
56  query = KQuery(-3, -1);
57  result = stock.getTransList(query);
58  BOOST_CHECK(result.size() == 2);
59  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
60  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
61 
63  query = KQuery(-3, 0);
64  result = stock.getTransList(query);
65  BOOST_CHECK(result.size() == 0);
66 
68  query = KQuery();
69  result = stock.getTransList(query);
70  BOOST_CHECK(result.size() == 8884);
71  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,1,9,25,2), 11.20, 15714, TransRecord::AUCTION));
72  BOOST_CHECK(result[563] == TransRecord(Datetime(2019,2,1,9,58,47), 11.04, 91, TransRecord::BUY));
73  BOOST_CHECK(result[8883] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
74 
76  query = KQuery(-3);
77  result = stock.getTransList(query);
78  BOOST_CHECK(result.size() == 3);
79  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
80  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
81  BOOST_CHECK(result[2] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
82 
83  query = KQuery(8881);
84  result = stock.getTransList(query);
85  BOOST_CHECK(result.size() == 3);
86  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
87  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
88  BOOST_CHECK(result[2] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
89 
91  query = KQuery(8881, 8884);
92  result = stock.getTransList(query);
93  BOOST_CHECK(result.size() == 3);
94  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
95  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
96  BOOST_CHECK(result[2] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
97 
99  query = KQuery(8881, 8883);
100  result = stock.getTransList(query);
101  BOOST_CHECK(result.size() == 2);
102  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
103  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
104 
106  query = KQuery(8881, 8885);
107  result = stock.getTransList(query);
108  BOOST_CHECK(result.size() == 3);
109  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
110  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
111  BOOST_CHECK(result[2] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
112 
114  query = KQuery(8884);
115  result = stock.getTransList(query);
116  BOOST_CHECK(result.size() == 0);
117 
119  query = KQuery(8883);
120  result = stock.getTransList(query);
121  BOOST_CHECK(result.size() == 1);
122  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
123 
125  query = KQuery(8885);
126  result = stock.getTransList(query);
127  BOOST_CHECK(result.size() == 0);
128 
129 
131  query = KQuery(8881, -1);
132  result = stock.getTransList(query);
133  BOOST_CHECK(result.size() == 2);
134  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
135  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
136 
138  query = KQuery(-3, 8883);
139  result = stock.getTransList(query);
140  BOOST_CHECK(result.size() == 2);
141  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
142  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
143 }
144 
145 
147 BOOST_AUTO_TEST_CASE( test_TransList_query_by_date ) {
148  StockManager& sm = StockManager::instance();
149  Stock stock = sm["sz000001"];
150  KQuery query;
151  TransList result;
152 
154  query = KQueryByDate(Datetime(201812030000));
155  result = stock.getTransList(query);
156  BOOST_CHECK(result.size() == 8884);
157  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,1,9,25,2), 11.20, 15714, TransRecord::AUCTION));
158  BOOST_CHECK(result[563] == TransRecord(Datetime(2019,2,1,9,58,47), 11.04, 91, TransRecord::BUY));
159  BOOST_CHECK(result[8883] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
160 
162  query = KQueryByDate(Datetime(2019,2,1,9,25,2));
163  result = stock.getTransList(query);
164  BOOST_CHECK(result.size() == 8884);
165  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,1,9,25,2), 11.20, 15714, TransRecord::AUCTION));
166  BOOST_CHECK(result[563] == TransRecord(Datetime(2019,2,1,9,58,47), 11.04, 91, TransRecord::BUY));
167  BOOST_CHECK(result[8883] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
168 
169 
171  query = KQueryByDate(Datetime(2019,2,11,14,56,59));
172  result = stock.getTransList(query);
173  BOOST_CHECK(result.size() == 3);
174  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
175  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
176  BOOST_CHECK(result[2] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
177 
179  query = KQueryByDate(Datetime(2019,2,11,14,56,59), Datetime(2019,2,11,14,56,59));
180  result = stock.getTransList(query);
181  BOOST_CHECK(result.size() == 0);
182 
184  query = KQueryByDate(Datetime(2019,2,11,14,56,59),
185  Datetime(2019,2,11,15,0,0));
186  result = stock.getTransList(query);
187  BOOST_CHECK(result.size() == 2);
188  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
189  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
190 
192  query = KQueryByDate(Datetime(2019,2,11,14,56,59),
193  Datetime(201902120000));
194  result = stock.getTransList(query);
195  BOOST_CHECK(result.size() == 3);
196  BOOST_CHECK(result[0] == TransRecord(Datetime(2019,2,11,14,56,59), 11.20, 210, TransRecord::SELL));
197  BOOST_CHECK(result[1] == TransRecord(Datetime(2019,2,11,14,57,2), 11.20, 31, TransRecord::SELL));
198  BOOST_CHECK(result[2] == TransRecord(Datetime(2019,2,11,15,0,0), 11.21, 5794, TransRecord::AUCTION));
199 }
200 
201 
BOOST_AUTO_TEST_CASE(test_TransList_query_by_index)