9 #include <boost/test/unit_test.hpp>
11 #define BOOST_TEST_MODULE test_hikyuu_base
12 #include <boost/test/unit_test.hpp>
16 #include <hikyuu/StockManager.h>
17 #include <hikyuu/KQuery.h>
18 #include <hikyuu/KData.h>
19 #include <hikyuu/Stock.h>
31 StockManager& sm = StockManager::instance();
34 KRecord record, expect;
39 kdata = stock.getKData(KQuery());
40 BOOST_CHECK(kdata.getStock() == Null<Stock>());
41 BOOST_CHECK(kdata.size() == 0);
42 BOOST_CHECK(kdata.empty() ==
true);
43 BOOST_CHECK(kdata.startPos() == 0);
44 BOOST_CHECK(kdata.endPos() == 0);
45 BOOST_CHECK(kdata.lastPos() == 0);
52 stock = sm.getStock(
"sh000001");
54 kdata = stock.getKData(query);
55 BOOST_CHECK(kdata.getStock() == stock);
56 BOOST_CHECK(kdata.empty() ==
false);
57 BOOST_CHECK(kdata.size() == 5121);
58 BOOST_CHECK(kdata.startPos() == 0);
59 BOOST_CHECK(kdata.lastPos() == 5120);
60 BOOST_CHECK(kdata.endPos() == 5121);
62 expect = KRecord(Datetime(199012190000),96.05,99.98,95.79,99.98,49.4,1260);
63 BOOST_CHECK(record == expect);
65 record = kdata[kdata.size() - 1];
66 expect = KRecord(Datetime(201112060000),2326.66,2331.892 ,2310.155, 2325.905, 4262559.5, 45917078);
67 BOOST_CHECK(record == expect);
70 total = stock.getCount(KQuery::DAY);
71 query = KQuery(total - 1);
72 kdata = stock.getKData(query);
73 BOOST_CHECK(kdata.empty() ==
false);
74 BOOST_CHECK(kdata.size() == 1);
75 BOOST_CHECK(kdata.startPos() == 5120);
76 BOOST_CHECK(kdata.endPos() == 5121);
77 BOOST_CHECK(kdata.lastPos() == 5120);
79 expect = KRecord(Datetime(201112060000),2326.66,2331.892 ,2310.155, 2325.905, 4262559.5, 45917078);
80 BOOST_CHECK(record == expect);
83 total = stock.getCount(KQuery::DAY);
84 query = KQuery(total);
85 kdata = stock.getKData(query);
86 BOOST_CHECK(kdata.getStock() == stock);
87 BOOST_CHECK(kdata.size() == 0);
88 BOOST_CHECK(kdata.empty() ==
true);
89 BOOST_CHECK(kdata.startPos() == 0);
90 BOOST_CHECK(kdata.lastPos() == 0);
91 BOOST_CHECK(kdata.endPos() == 0);
95 kdata = stock.getKData(query);
96 BOOST_CHECK(kdata.size() == 1);
97 BOOST_CHECK(kdata.empty() ==
false);
98 BOOST_CHECK(kdata.startPos() == 0);
99 BOOST_CHECK(kdata.endPos() == 1);
100 BOOST_CHECK(kdata.lastPos() == 0);
102 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
103 BOOST_CHECK(record == expect);
106 query = KQuery(1, 2);
107 kdata = stock.getKData(query);
108 BOOST_CHECK(kdata.size() == 1);
109 BOOST_CHECK(kdata.empty() ==
false);
110 BOOST_CHECK(kdata.startPos() == 1);
111 BOOST_CHECK(kdata.endPos() == 2);
112 BOOST_CHECK(kdata.lastPos() == 1);
114 expect = KRecord(Datetime(199012200000), 104.3, 104.39, 99.98, 104.39, 8.4, 197);
115 BOOST_CHECK(record == expect);
118 query = KQuery(1, 10);
119 kdata = stock.getKData(query);
120 BOOST_CHECK(kdata.size() == 9);
121 BOOST_CHECK(kdata.empty() ==
false);
122 BOOST_CHECK(kdata.startPos() == 1);
123 BOOST_CHECK(kdata.endPos() == 10);
124 BOOST_CHECK(kdata.lastPos() == 9);
126 expect = KRecord(Datetime(199012200000), 104.3, 104.39, 99.98, 104.39, 8.4, 197);
127 BOOST_CHECK(record == expect);
129 record = kdata[kdata.size()-1];
130 expect = KRecord(Datetime(199101020000), 127.61, 128.84, 127.61, 128.84, 5.9, 91);
131 BOOST_CHECK(record == expect);
134 total = stock.getCount(KQuery::DAY);
135 query = KQuery(total - 1, total);
136 kdata = stock.getKData(query);
137 BOOST_CHECK(kdata.size() == 1);
138 BOOST_CHECK(kdata.empty() ==
false);
139 BOOST_CHECK(kdata.startPos() == total - 1);
140 BOOST_CHECK(kdata.endPos() == total);
141 BOOST_CHECK(kdata.lastPos() == total - 1);
143 expect = KRecord(Datetime(201112060000), 2326.66, 2331.892, 2310.155, 2325.905, 4262559.5, 45917078);
144 BOOST_CHECK(record == expect);
147 query = KQuery(0, 0);
148 kdata = stock.getKData(query);
149 BOOST_CHECK(kdata.size() == 0);
150 BOOST_CHECK(kdata.empty() ==
true);
151 BOOST_CHECK(kdata.startPos() == 0);
152 BOOST_CHECK(kdata.endPos() == 0);
153 BOOST_CHECK(kdata.lastPos() == 0);
156 query = KQuery(1, 1);
157 kdata = stock.getKData(query);
158 BOOST_CHECK(kdata.size() == 0);
159 BOOST_CHECK(kdata.empty() ==
true);
160 BOOST_CHECK(kdata.startPos() == 0);
161 BOOST_CHECK(kdata.endPos() == 0);
162 BOOST_CHECK(kdata.lastPos() == 0);
165 total = stock.getCount();
166 query = KQuery(total-1, total-1);
167 kdata = stock.getKData(query);
168 BOOST_CHECK(kdata.size() == 0);
169 BOOST_CHECK(kdata.empty() ==
true);
170 BOOST_CHECK(kdata.startPos() == 0);
171 BOOST_CHECK(kdata.endPos() == 0);
172 BOOST_CHECK(kdata.lastPos() == 0);
176 total = stock.getCount();
177 kdata = stock.getKData(query);
178 BOOST_CHECK(kdata.size() == 1);
179 BOOST_CHECK(kdata.empty() ==
false);
180 BOOST_CHECK(kdata.startPos() == total - 1);
181 BOOST_CHECK(kdata.endPos() == total);
182 BOOST_CHECK(kdata.lastPos() == total - 1);
184 expect = KRecord(Datetime(201112060000), 2326.66, 2331.892, 2310.155, 2325.905, 4262559.5, 45917078);
185 BOOST_CHECK(record == expect);
188 total = stock.getCount();
189 query = KQuery(-(hku_int64)total);
190 kdata = stock.getKData(query);
191 BOOST_CHECK(kdata.size() == 5121);
192 BOOST_CHECK(kdata.empty() ==
false);
193 BOOST_CHECK(kdata.startPos() == 0);
194 BOOST_CHECK(kdata.endPos() == total);
195 BOOST_CHECK(kdata.lastPos() == total - 1);
197 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
198 BOOST_CHECK(record == expect);
200 record = kdata[kdata.size()-1];
201 expect = KRecord(Datetime(201112060000), 2326.66, 2331.892, 2310.155, 2325.905, 4262559.5, 45917078);
202 BOOST_CHECK(record == expect);
205 total = stock.getCount();
206 query = KQuery(-1-(hku_int64)total);
207 kdata = stock.getKData(query);
208 BOOST_CHECK(kdata.size() == 5121);
209 BOOST_CHECK(kdata.empty() ==
false);
210 BOOST_CHECK(kdata.startPos() == 0);
211 BOOST_CHECK(kdata.endPos() == total);
212 BOOST_CHECK(kdata.lastPos() == total - 1);
214 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
215 BOOST_CHECK(record == expect);
217 record = kdata[kdata.size()-1];
218 expect = KRecord(Datetime(201112060000), 2326.66, 2331.892, 2310.155, 2325.905, 4262559.5, 45917078);
219 BOOST_CHECK(record == expect);
222 total = stock.getCount();
223 query = KQuery(1-(hku_int64)total);
224 kdata = stock.getKData(query);
225 BOOST_CHECK(kdata.size() == 5120);
226 BOOST_CHECK(kdata.empty() ==
false);
227 BOOST_CHECK(kdata.startPos() == 1);
228 BOOST_CHECK(kdata.endPos() == total);
229 BOOST_CHECK(kdata.lastPos() == total - 1);
231 expect = KRecord(Datetime(199012200000), 104.3, 104.39, 99.98, 104.39, 8.4, 197);
232 BOOST_CHECK(record == expect);
234 record = kdata[kdata.size()-1];
235 expect = KRecord(Datetime(201112060000), 2326.66, 2331.892, 2310.155, 2325.905, 4262559.5, 45917078);
236 BOOST_CHECK(record == expect);
239 total = stock.getCount();
240 query = KQuery(-2, -1);
241 kdata = stock.getKData(query);
242 BOOST_CHECK(kdata.size() == 1);
243 BOOST_CHECK(kdata.empty() ==
false);
244 BOOST_CHECK(kdata.startPos() == total - 2);
245 BOOST_CHECK(kdata.endPos() == total -1);
246 BOOST_CHECK(kdata.lastPos() == total - 2);
248 expect = KRecord(Datetime(201112050000), 2363.111, 2363.127, 2327.61, 2333.229, 4864121.6, 52214970);
249 BOOST_CHECK(record == expect);
252 query = KQuery(-10, -2);
253 kdata = stock.getKData(query);
254 BOOST_CHECK(kdata.size() == 8);
255 BOOST_CHECK(kdata.empty() ==
false);
256 BOOST_CHECK(kdata.startPos() == total - 10);
257 BOOST_CHECK(kdata.endPos() == total -2);
258 BOOST_CHECK(kdata.lastPos() == total - 2 - 1);
260 expect = KRecord(Datetime(201111230000), 2415.197, 2418.56, 2390.654, 2395.065, 5004336, 50547851);
261 BOOST_CHECK(record == expect);
263 record = kdata[kdata.size()-1];
264 expect = KRecord(Datetime(201112020000), 2374.899, 2378.299, 2344.846, 2360.664, 5732015.7, 59868846);
265 BOOST_CHECK(record == expect);
268 query = KQuery(-1, 1);
269 kdata = stock.getKData(query);
270 BOOST_CHECK(kdata.size() == 0);
271 BOOST_CHECK(kdata.empty() ==
true);
272 BOOST_CHECK(kdata.startPos() == 0);
273 BOOST_CHECK(kdata.endPos() == 0);
274 BOOST_CHECK(kdata.lastPos() == 0);
277 query = KQuery(-(hku_int64)total, 1);
278 kdata = stock.getKData(query);
279 BOOST_CHECK(kdata.size() == 1);
280 BOOST_CHECK(kdata.empty() ==
false);
281 BOOST_CHECK(kdata.startPos() == 0);
282 BOOST_CHECK(kdata.endPos() == 1);
283 BOOST_CHECK(kdata.lastPos() == 0);
285 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.980, 49.4, 1260);
286 BOOST_CHECK(record == expect);
289 query = KQuery(-(hku_int64)total, 2);
290 kdata = stock.getKData(query);
291 BOOST_CHECK(kdata.size() == 2);
292 BOOST_CHECK(kdata.empty() ==
false);
293 BOOST_CHECK(kdata.startPos() == 0);
294 BOOST_CHECK(kdata.endPos() == 2);
295 BOOST_CHECK(kdata.lastPos() == 1);
297 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.980, 49.4, 1260);
298 BOOST_CHECK(record == expect);
300 record = kdata[kdata.size()-1];
301 BOOST_CHECK(record.datetime == Datetime(199012200000));
304 query = KQuery(0, -(hku_int64)total);
305 kdata = stock.getKData(query);
306 BOOST_CHECK(kdata.size() == 0);
307 BOOST_CHECK(kdata.empty() ==
true);
308 BOOST_CHECK(kdata.startPos() == 0);
309 BOOST_CHECK(kdata.endPos() == 0);
310 BOOST_CHECK(kdata.lastPos() == 0);
313 query = KQuery(1, -1);
314 kdata = stock.getKData(query);
315 BOOST_CHECK(kdata.size() == 5119);
316 BOOST_CHECK(kdata.empty() ==
false);
317 BOOST_CHECK(kdata.startPos() == 1);
318 BOOST_CHECK(kdata.endPos() == total - 1);
319 BOOST_CHECK(kdata.lastPos() == total - 2);
321 expect = KRecord(Datetime(199012200000), 104.3, 104.39, 99.98, 104.39, 8.4, 197);
322 BOOST_CHECK(record == expect);
324 record = kdata[kdata.size()-1];
325 expect = KRecord(Datetime(201112050000), 2363.111, 2363.127, 2327.61, 2333.229, 4864121.6, 52214970);
326 BOOST_CHECK(record == expect);
333 query = KQuery(0, Null<hku_int64>(), KQuery::MIN);
334 kdata = stock.getKData(query);
335 BOOST_CHECK(kdata.size() == 682823L);
337 expect = KRecord(Datetime(200001040931), 1366.58, 1368.692, 1366.579, 1368.692, 4124880, 191158);
338 BOOST_CHECK(record == expect);
340 record = kdata[kdata.size()-1];
341 expect = KRecord(Datetime(201112061500), 2325.38, 2326.1, 2324.6, 2325.90, 5215150, 566312);
342 BOOST_CHECK(record == expect);
345 total = stock.getCount(KQuery::MIN);
346 query = KQuery(total - 1, Null<hku_int64>(), KQuery::MIN);
347 kdata = stock.getKData(query);
348 BOOST_CHECK(kdata.size() == 1);
350 expect = KRecord(Datetime(201112061500), 2325.38, 2326.1, 2324.6, 2325.90, 5215150, 566312);
351 BOOST_CHECK(record == expect);
354 total = stock.getCount(KQuery::MIN);
355 query = KQuery(total, Null<hku_int64>(), KQuery::MIN);
356 kdata = stock.getKData(query);
357 BOOST_CHECK(kdata.size() == 0);
360 query = KQuery(0, 1, KQuery::MIN);
361 kdata = stock.getKData(query);
362 BOOST_CHECK(kdata.size() == 1);
364 expect = KRecord(Datetime(200001040931), 1366.58, 1368.692, 1366.579, 1368.692, 4124880, 191158);
365 BOOST_CHECK(record == expect);
368 query = KQuery(1, 2, KQuery::MIN);
369 kdata = stock.getKData(query);
370 BOOST_CHECK(kdata.size() == 1);
372 BOOST_CHECK(record.datetime == Datetime(200001040932));
375 query = KQuery(1, 10, KQuery::MIN);
376 kdata = stock.getKData(query);
377 BOOST_CHECK(kdata.size() == 9);
379 BOOST_CHECK(record.datetime == Datetime(200001040932));
381 record = kdata[kdata.size()-1];
382 BOOST_CHECK(record.datetime == Datetime(200001040940));
385 total = stock.getCount(KQuery::MIN);
386 query = KQuery(total - 1, total, KQuery::MIN);
387 kdata = stock.getKData(query);
388 BOOST_CHECK(kdata.size() == 1);
390 BOOST_CHECK(record.datetime == Datetime(201112061500));
393 query = KQuery(0, 0, KQuery::MIN);
394 kdata = stock.getKData(query);
395 BOOST_CHECK(kdata.size() == 0);
398 query = KQuery(1, 1, KQuery::MIN);
399 kdata = stock.getKData(query);
400 BOOST_CHECK(kdata.size() == 0);
403 total = stock.getCount(KQuery::MIN);
404 query = KQuery(total-1, total-1, KQuery::MIN);
405 kdata = stock.getKData(query);
406 BOOST_CHECK(kdata.size() == 0);
409 query = KQuery(-1, Null<hku_int64>(), KQuery::MIN);
410 kdata = stock.getKData(query);
411 BOOST_CHECK(kdata.size() == 1);
413 BOOST_CHECK(record.datetime == Datetime(201112061500));
416 total = stock.getCount(KQuery::MIN);
417 query = KQuery(-(hku_int64)total, Null<hku_int64>(), KQuery::MIN);
418 kdata = stock.getKData(query);
419 BOOST_CHECK(kdata.size() == 682823);
421 BOOST_CHECK(record.datetime == Datetime(200001040931));
423 record = kdata[kdata.size()-1];
424 BOOST_CHECK(record.datetime == Datetime(201112061500));
427 total = stock.getCount(KQuery::MIN);
428 query = KQuery(-1-(hku_int64)total, Null<hku_int64>(), KQuery::MIN);
429 kdata = stock.getKData(query);
430 BOOST_CHECK(kdata.size() == 682823);
432 BOOST_CHECK(record.datetime == Datetime(200001040931));
434 record = kdata[kdata.size() - 1];
435 BOOST_CHECK(record.datetime == Datetime(201112061500));
438 total = stock.getCount(KQuery::MIN);
439 query = KQuery(1-(hku_int64)total, Null<hku_int64>(), KQuery::MIN);
440 kdata = stock.getKData(query);
441 BOOST_CHECK(kdata.size() == 682822);
443 BOOST_CHECK(record.datetime == Datetime(200001040932));
445 record = kdata[kdata.size() - 1 ];
446 BOOST_CHECK(record.datetime == Datetime(201112061500));
449 query = KQuery(-2, -1, KQuery::MIN);
450 kdata = stock.getKData(query);
451 BOOST_CHECK(kdata.size() == 1);
453 BOOST_CHECK(record.datetime == Datetime(201112061459));
456 query = KQuery(-10, -2, KQuery::MIN);
457 kdata = stock.getKData(query);
458 BOOST_CHECK(kdata.size() == 8);
460 BOOST_CHECK(record.datetime == Datetime(201112061451));
462 record = kdata[kdata.size()-1];
463 BOOST_CHECK(record.datetime == Datetime(201112061458));
466 query = KQuery(-1, 1, KQuery::MIN);
467 kdata = stock.getKData(query);
468 BOOST_CHECK(kdata.size() == 0);
471 query = KQuery(-(hku_int64)total, 1, KQuery::MIN);
472 kdata = stock.getKData(query);
473 BOOST_CHECK(kdata.size() == 1);
475 BOOST_CHECK(record.datetime == Datetime(200001040931));
478 query = KQuery(-(hku_int64)total, 2, KQuery::MIN);
479 kdata = stock.getKData(query);
480 BOOST_CHECK(kdata.size() == 2);
482 BOOST_CHECK(record.datetime == Datetime(200001040931));
484 record = kdata[kdata.size()-1];
485 BOOST_CHECK(record.datetime == Datetime(200001040932));
488 query = KQuery(0, -(hku_int64)total, KQuery::MIN);
489 kdata = stock.getKData(query);
490 BOOST_CHECK(kdata.size() == 0);
493 query = KQuery(1, -1, KQuery::MIN);
494 kdata = stock.getKData(query);
495 BOOST_CHECK(kdata.size() == 682821);
497 BOOST_CHECK(record.datetime == Datetime(200001040932));
499 record = kdata[kdata.size()-1];
500 BOOST_CHECK(record.datetime == Datetime(201112061459));
504 query = KQuery(1,3, KQuery::WEEK);
505 kdata = stock.getKData(query);
506 BOOST_CHECK(kdata.size() == 2);
507 BOOST_CHECK(kdata.empty() ==
false);
508 BOOST_CHECK(kdata.startPos() == 1);
509 BOOST_CHECK(kdata.endPos() == 3);
510 BOOST_CHECK(kdata.lastPos() == 2);
511 BOOST_CHECK(kdata[0] == KRecord(Datetime(199012240000), 113.57, 126.45, 109.13, 126.45, 28.2, 321));
512 BOOST_CHECK(kdata[1] == KRecord(Datetime(199012310000), 126.56, 131.44, 126.48, 131.44, 47.3, 730));
515 query = KQuery(1,4, KQuery::MONTH);
516 kdata = stock.getKData(query);
517 BOOST_CHECK(kdata.size() == 3);
518 BOOST_CHECK(kdata.empty() ==
false);
519 BOOST_CHECK(kdata.startPos() == 1);
520 BOOST_CHECK(kdata.endPos() == 4);
521 BOOST_CHECK(kdata.lastPos() == 3);
522 BOOST_CHECK(kdata[0] == KRecord(Datetime(199101010000), 127.61, 135.19, 127.61, 129.97, 3637.1, 67197));
523 BOOST_CHECK(kdata[1] == KRecord(Datetime(199102010000), 129.5, 134.87, 128.06, 133.01, 3027.3, 50982));
524 BOOST_CHECK(kdata[2] == KRecord(Datetime(199103010000), 132.53, 132.53, 120.11, 120.19, 1725.3, 24528));
527 query = KQuery(1,4, KQuery::QUARTER);
528 kdata = stock.getKData(query);
529 BOOST_CHECK(kdata.size() == 3);
530 BOOST_CHECK(kdata.empty() ==
false);
531 BOOST_CHECK(kdata.startPos() == 1);
532 BOOST_CHECK(kdata.endPos() == 4);
533 BOOST_CHECK(kdata.lastPos() == 3);
534 BOOST_CHECK(kdata[0] == KRecord(Datetime(199101010000), 127.61, 135.19, 120.11, 120.19, 8389.7, 142707));
535 BOOST_CHECK(kdata[1] == KRecord(Datetime(199104010000), 120.69, 137.56, 104.96, 137.56, 12095.6, 222753));
536 BOOST_CHECK(kdata[2] == KRecord(Datetime(199107010000), 136.64, 191.18, 131.87, 180.92, 32436.9, 527079));
539 query = KQuery(1,4, KQuery::MIN5);
540 kdata = stock.getKData(query);
541 BOOST_CHECK(kdata.size() == 3);
542 BOOST_CHECK(kdata.empty() ==
false);
543 BOOST_CHECK(kdata.startPos() == 1);
544 BOOST_CHECK(kdata.endPos() == 4);
545 BOOST_CHECK(kdata.lastPos() == 3);
546 BOOST_CHECK(kdata[0] == KRecord(Datetime(200001040940), 1369.187, 1369.371, 1367.389, 1367.389, 70687.3, 251473));
547 BOOST_CHECK(kdata[1] == KRecord(Datetime(200001040945), 1367.389, 1367.389, 1364.645, 1364.763, 73577.1, 223346));
548 BOOST_CHECK(kdata[2] == KRecord(Datetime(200001040950), 1364.763, 1364.763, 1363.128, 1363.192, 65066.3, 167971));
551 query = KQuery(1,4, KQuery::MIN15);
552 kdata = stock.getKData(query);
553 BOOST_CHECK(kdata.size() == 3);
554 BOOST_CHECK(kdata.empty() ==
false);
555 BOOST_CHECK(kdata.startPos() == 1);
556 BOOST_CHECK(kdata.endPos() == 4);
557 BOOST_CHECK(kdata.lastPos() == 3);
558 BOOST_CHECK(kdata[0] == KRecord(Datetime(200001041000), 1364.7630, 1364.7630, 1361.4590, 1361.4590, 204277.1000, 457452.0000));
559 BOOST_CHECK(kdata[1] == KRecord(Datetime(200001041015), 1361.5580, 1366.0930, 1361.2950, 1365.9270, 307531.8000, 548313.0000));
560 BOOST_CHECK(kdata[2] == KRecord(Datetime(200001041030), 1366.0430, 1367.6830, 1365.9460, 1367.6830, 279102.7000, 451981.0000));
567 StockManager& sm = StockManager::instance();
570 KRecord record, expect;
579 stock = sm.getStock(
"sh000001");
580 total = stock.getCount();
581 query = KQueryByDate();
582 kdata = stock.getKData(query);
583 BOOST_CHECK(kdata.size() == total);
584 BOOST_CHECK(kdata.size() == 5121);
585 BOOST_CHECK(kdata.empty() ==
false);
586 BOOST_CHECK(kdata.startPos() == 0);
587 BOOST_CHECK(kdata.endPos() == total);
588 BOOST_CHECK(kdata.lastPos() == total - 1);
590 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
591 BOOST_CHECK(record == expect);
594 expect = KRecord(Datetime(199012200000), 104.3, 104.39, 99.98, 104.39, 8.4, 197);
595 BOOST_CHECK(record == expect);
597 record = kdata[kdata.size()-1];
598 expect = KRecord(Datetime(201112060000), 2326.66, 2331.892, 2310.155, 2325.905, 4262559.5, 45917078);
599 BOOST_CHECK(record == expect);
602 stock = sm.getStock(
"sh000001");
603 query = KQueryByDate(Datetime(199012180000));
604 kdata = stock.getKData(query);
605 BOOST_CHECK(kdata.size() == 5121);
606 BOOST_CHECK(kdata.empty() ==
false);
607 BOOST_CHECK(kdata.startPos() == 0);
608 BOOST_CHECK(kdata.endPos() == total);
609 BOOST_CHECK(kdata.lastPos() == total - 1);
611 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
612 BOOST_CHECK(record == expect);
614 record = kdata[kdata.size()-1];
615 expect = KRecord(Datetime(201112060000), 2326.66, 2331.892, 2310.155, 2325.905, 4262559.5, 45917078);
616 BOOST_CHECK(record == expect);
619 stock = sm.getStock(
"sh000001");
620 query = KQueryByDate(Datetime(199012190000));
621 kdata = stock.getKData(query);
622 BOOST_CHECK(kdata.size() == 5121);
623 BOOST_CHECK(kdata.empty() ==
false);
624 BOOST_CHECK(kdata.startPos() == 0);
625 BOOST_CHECK(kdata.endPos() == total);
626 BOOST_CHECK(kdata.lastPos() == total - 1);
628 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
629 BOOST_CHECK(record == expect);
631 record = kdata[kdata.size()-1];
632 expect = KRecord(Datetime(201112060000), 2326.66, 2331.892, 2310.155, 2325.905, 4262559.5, 45917078);
633 BOOST_CHECK(record == expect);
636 stock = sm.getStock(
"sh000001");
637 query = KQueryByDate(Datetime(199012200000));
638 kdata = stock.getKData(query);
639 BOOST_CHECK(kdata.size() == 5120);
640 BOOST_CHECK(kdata.empty() ==
false);
641 BOOST_CHECK(kdata.startPos() == 1);
642 BOOST_CHECK(kdata.endPos() == total);
643 BOOST_CHECK(kdata.lastPos() == total - 1);
645 BOOST_CHECK(record.datetime == Datetime(199012200000));
647 record = kdata[kdata.size()-1];
648 BOOST_CHECK(record.datetime == Datetime(201112060000));
651 stock = sm.getStock(
"sh000001");
652 query = KQueryByDate(Datetime(199012190000), Datetime(201112050000));
653 kdata = stock.getKData(query);
654 BOOST_CHECK(kdata.size() == 5119);
655 BOOST_CHECK(kdata.empty() ==
false);
656 BOOST_CHECK(kdata.startPos() == 0);
657 BOOST_CHECK(kdata.endPos() == total - 2);
658 BOOST_CHECK(kdata.lastPos() == total - 3);
660 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
661 BOOST_CHECK(record == expect);
663 record = kdata[kdata.size()-1];
664 BOOST_CHECK(record == KRecord(Datetime(201112020000), 2374.8990, 2378.2990, 2344.8460, 2360.6640, 5732015.7000, 59868846.0000));
667 stock = sm.getStock(
"sh000001");
668 query = KQueryByDate(Datetime(199012190000), Datetime(201112060000));
669 kdata = stock.getKData(query);
670 BOOST_CHECK(kdata.size() == 5120);
671 BOOST_CHECK(kdata.empty() ==
false);
672 BOOST_CHECK(kdata.startPos() == 0);
673 BOOST_CHECK(kdata.endPos() == total - 1);
674 BOOST_CHECK(kdata.lastPos() == total - 2);
676 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
677 BOOST_CHECK(record == expect);
679 record = kdata[kdata.size()-1];
680 BOOST_CHECK(record == KRecord(Datetime(201112050000), 2363.1110, 2363.1270, 2327.6100, 2333.2290, 4864121.6000, 52214970.0000));
683 stock = sm.getStock(
"sh000001");
684 query = KQueryByDate(Datetime(199012190000), Datetime(201112070000));
685 kdata = stock.getKData(query);
686 BOOST_CHECK(kdata.size() == 5121);
687 BOOST_CHECK(kdata.empty() ==
false);
688 BOOST_CHECK(kdata.startPos() == 0);
689 BOOST_CHECK(kdata.endPos() == total);
690 BOOST_CHECK(kdata.lastPos() == total - 1);
692 expect = KRecord(Datetime(199012190000), 96.05, 99.98, 95.79, 99.98, 49.4, 1260);
693 BOOST_CHECK(record == expect);
695 record = kdata[kdata.size()-1];
696 BOOST_CHECK(record == KRecord(Datetime(201112060000), 2326.6600, 2331.8920, 2310.1550, 2325.9050, 4262559.5000, 45917078.0000));
699 stock = sm.getStock(
"sh000001");
700 query = KQueryByDate(Datetime(199510180000), Datetime(199510240000));
701 kdata = stock.getKData(query);
702 BOOST_CHECK(kdata.size() == 4);
703 BOOST_CHECK(kdata.empty() ==
false);
704 BOOST_CHECK(kdata.startPos() == 1210);
705 BOOST_CHECK(kdata.endPos() == 1214);
706 BOOST_CHECK(kdata.lastPos() == 1213);
708 BOOST_CHECK(record == KRecord(Datetime(199510180000), 705.7200, 716.8300, 705.7200, 716.8300, 232685.5000, 4273054.0000));
710 record = kdata[kdata.size()-1];
711 BOOST_CHECK(record == KRecord(Datetime(199510230000), 729.7600, 729.9700, 718.4400, 723.0900, 235482.7000, 3877994.0000));
714 stock = sm.getStock(
"sh000001");
715 query = KQueryByDate(Datetime(199001010000), Datetime(199001010000));
716 kdata = stock.getKData(query);
717 BOOST_CHECK(kdata.size() == 0);
718 BOOST_CHECK(kdata.empty() ==
true);
719 BOOST_CHECK(kdata.startPos() == 0);
720 BOOST_CHECK(kdata.endPos() == 0);
721 BOOST_CHECK(kdata.lastPos() == 0);
723 query = KQueryByDate(Datetime(199012190000), Datetime(199012190000));
724 kdata = stock.getKData(query);
725 BOOST_CHECK(kdata.size() == 0);
726 BOOST_CHECK(kdata.empty() ==
true);
727 BOOST_CHECK(kdata.startPos() == 0);
728 BOOST_CHECK(kdata.endPos() == 0);
729 BOOST_CHECK(kdata.lastPos() == 0);
731 query = KQueryByDate(Datetime(199510240000), Datetime(199510240000));
732 kdata = stock.getKData(query);
733 BOOST_CHECK(kdata.size() == 0);
734 BOOST_CHECK(kdata.empty() ==
true);
735 BOOST_CHECK(kdata.startPos() == 0);
736 BOOST_CHECK(kdata.endPos() == 0);
737 BOOST_CHECK(kdata.lastPos() == 0);
739 query = KQueryByDate(Datetime(201112060000), Datetime(201112060000));
740 kdata = stock.getKData(query);
741 BOOST_CHECK(kdata.size() == 0);
742 BOOST_CHECK(kdata.empty() ==
true);
743 BOOST_CHECK(kdata.startPos() == 0);
744 BOOST_CHECK(kdata.endPos() == 0);
745 BOOST_CHECK(kdata.lastPos() == 0);
748 stock = sm.getStock(
"sh000001");
749 query = KQueryByDate(Datetime(199012190000), Datetime(199012200000));
750 kdata = stock.getKData(query);
751 BOOST_CHECK(kdata.size() == 1);
752 BOOST_CHECK(kdata.empty() ==
false);
753 BOOST_CHECK(kdata.startPos() == 0);
754 BOOST_CHECK(kdata.endPos() == 1);
755 BOOST_CHECK(kdata.lastPos() == 0);
757 BOOST_CHECK(record == KRecord(Datetime(199012190000), 96.0500, 99.9800, 95.7900, 99.9800, 49.4000, 1260.0000));
759 query = KQueryByDate(Datetime(201111140000), Datetime(201111150000));
760 kdata = stock.getKData(query);
761 BOOST_CHECK(kdata.size() == 1);
762 BOOST_CHECK(kdata.empty() ==
false);
763 BOOST_CHECK(kdata.startPos() == 5104);
764 BOOST_CHECK(kdata.endPos() == 5105);
765 BOOST_CHECK(kdata.lastPos() == 5104);
767 BOOST_CHECK(record == KRecord(Datetime(201111140000), 2498.6720, 2529.6320, 2496.3350, 2528.7140, 8252378.1000, 81229813.0000));
769 query = KQueryByDate(Datetime(201112060000), Datetime(201112070000));
770 kdata = stock.getKData(query);
771 BOOST_CHECK(kdata.size() == 1);
772 BOOST_CHECK(kdata.empty() ==
false);
773 BOOST_CHECK(kdata.startPos() == 5120);
774 BOOST_CHECK(kdata.endPos() == 5121);
775 BOOST_CHECK(kdata.lastPos() == 5120);
777 BOOST_CHECK(record == KRecord(Datetime(201112060000), 2326.6600, 2331.8920, 2310.1550, 2325.9050, 4262559.5000, 45917078.0000));
784 total = stock.getCount(KQuery::WEEK);
785 query = KQueryByDate(Datetime(199012160000), Null<Datetime>(), KQuery::WEEK);
786 kdata = stock.getKData(query);
787 BOOST_CHECK(kdata.size() == total);
788 BOOST_CHECK(kdata.empty() ==
false);
789 BOOST_CHECK(kdata.startPos() == 0);
790 BOOST_CHECK(kdata.endPos() == total);
791 BOOST_CHECK(kdata.lastPos() == total - 1);
792 BOOST_CHECK(kdata[0] == KRecord(Datetime(199012170000), 96.0500, 109.1300, 95.7900, 109.1300, 59.4000, 1485.0000));
793 BOOST_CHECK(kdata[1] == KRecord(Datetime(199012240000), 113.5700, 126.4500, 109.1300, 126.4500, 28.2000, 321.0000));
794 BOOST_CHECK(kdata[kdata.size()-1] == KRecord(Datetime(201112050000), 2363.1110, 2363.1270, 2310.1550, 2325.9050, 9126681.1000, 98132048.0000));
797 stock = sm.getStock(
"sh000001");
798 query = KQueryByDate(Datetime(199012170000), Null<Datetime>(), KQuery::WEEK);
799 kdata = stock.getKData(query);
800 BOOST_CHECK(kdata.size() == total);
801 BOOST_CHECK(kdata.empty() ==
false);
802 BOOST_CHECK(kdata.startPos() == 0);
803 BOOST_CHECK(kdata.endPos() == total);
804 BOOST_CHECK(kdata.lastPos() == total - 1);
805 BOOST_CHECK(kdata[0] == KRecord(Datetime(199012170000), 96.0500, 109.1300, 95.7900, 109.1300, 59.4000, 1485.0000));
806 BOOST_CHECK(kdata[10] == KRecord(Datetime(199102250000), 134.3700, 134.8700, 132.4700, 132.5300, 827.1000, 11500.0000));
807 BOOST_CHECK(kdata[kdata.size()-1] == KRecord(Datetime(201112050000), 2363.1110, 2363.1270, 2310.1550, 2325.9050, 9126681.1000, 98132048.0000));
810 stock = sm.getStock(
"sh000001");
811 query = KQueryByDate(Datetime(199012180000), Null<Datetime>(), KQuery::WEEK);
812 kdata = stock.getKData(query);
813 BOOST_CHECK(kdata.size() == total - 1);
814 BOOST_CHECK(kdata.empty() ==
false);
815 BOOST_CHECK(kdata.startPos() == 1);
816 BOOST_CHECK(kdata.endPos() == total);
817 BOOST_CHECK(kdata.lastPos() == total - 1);
818 BOOST_CHECK(kdata[0] == KRecord(Datetime(199012240000), 113.5700, 126.4500, 109.1300, 126.4500, 28.2000, 321.0000));
819 BOOST_CHECK(kdata[1] == KRecord(Datetime(199012310000), 126.5600, 131.4400, 126.4800, 131.4400, 47.3000, 730.0000));
820 BOOST_CHECK(kdata[kdata.size()-1] == KRecord(Datetime(201112050000), 2363.1110, 2363.1270, 2310.1550, 2325.9050, 9126681.1000, 98132048.0000));
823 stock = sm.getStock(
"sh000001");
824 query = KQueryByDate(Datetime(199012170000), Datetime(201112040000), KQuery::WEEK);
825 kdata = stock.getKData(query);
826 BOOST_CHECK(kdata.size() == total - 1);
827 BOOST_CHECK(kdata.empty() ==
false);
828 BOOST_CHECK(kdata.startPos() == 0);
829 BOOST_CHECK(kdata.endPos() == total - 1);
830 BOOST_CHECK(kdata.lastPos() == total - 2);
831 BOOST_CHECK(kdata[0] == KRecord(Datetime(199012170000), 96.0500, 109.1300, 95.7900, 109.1300, 59.4000, 1485.0000));
832 BOOST_CHECK(kdata[kdata.size()-1] == KRecord(Datetime(201111280000), 2383.8930, 2423.5590, 2319.4400, 2360.6640, 32821965.5000, 336317856.0000));
835 query = KQueryByDate(Datetime(199012170000), Datetime(201112050000), KQuery::WEEK);
836 kdata = stock.getKData(query);
837 BOOST_CHECK(kdata.size() == total - 1);
838 BOOST_CHECK(kdata.empty() ==
false);
839 BOOST_CHECK(kdata.startPos() == 0);
840 BOOST_CHECK(kdata.endPos() == total - 1);
841 BOOST_CHECK(kdata.lastPos() == total - 2);
842 BOOST_CHECK(kdata[0] == KRecord(Datetime(199012170000), 96.0500, 109.1300, 95.7900, 109.1300, 59.4000, 1485.0000));
843 BOOST_CHECK(kdata[kdata.size()-1] == KRecord(Datetime(201111280000), 2383.8930, 2423.5590, 2319.4400, 2360.6640, 32821965.5000, 336317856.0000));
846 query = KQueryByDate(Datetime(199012170000), Datetime(201112060000), KQuery::WEEK);
847 kdata = stock.getKData(query);
848 BOOST_CHECK(kdata.size() == total);
849 BOOST_CHECK(kdata.empty() ==
false);
850 BOOST_CHECK(kdata.startPos() == 0);
851 BOOST_CHECK(kdata.endPos() == total);
852 BOOST_CHECK(kdata.lastPos() == total - 1);
853 BOOST_CHECK(kdata[0] == KRecord(Datetime(199012170000), 96.0500, 109.1300, 95.7900, 109.1300, 59.4000, 1485.0000));
854 BOOST_CHECK(kdata[kdata.size()-1] == KRecord(Datetime(201112050000), 2363.1110, 2363.1270, 2310.1550, 2325.9050, 9126681.1000, 98132048.0000));
857 stock = sm.getStock(
"sh000001");
858 query = KQueryByDate(Datetime(201108150000), Datetime(201111070000), KQuery::WEEK);
859 kdata = stock.getKData(query);
860 BOOST_CHECK(kdata.size() == 11);
861 BOOST_CHECK(kdata.empty() ==
false);
862 BOOST_CHECK(kdata.startPos() == 1043);
863 BOOST_CHECK(kdata.endPos() == 1054);
864 BOOST_CHECK(kdata.lastPos() == 1053);
865 BOOST_CHECK(kdata[0] == KRecord(Datetime(201108150000), 2598.1380, 2636.3600, 2513.7540, 2534.3580, 40330572.2000, 385608932.0000));
866 BOOST_CHECK(kdata[kdata.size()-1] == KRecord(Datetime(201110310000), 2470.2540, 2536.7790, 2433.7150, 2528.2940, 50520578.9000, 516983184.0000));
869 stock = sm.getStock(
"sh000001");
870 query = KQueryByDate(Datetime(199012170000), Datetime(199012170000), KQuery::WEEK);
871 kdata = stock.getKData(query);
872 BOOST_CHECK(kdata.size() == 0);
873 BOOST_CHECK(kdata.empty() ==
true);
874 BOOST_CHECK(kdata.startPos() == 0);
875 BOOST_CHECK(kdata.endPos() == 0);
876 BOOST_CHECK(kdata.lastPos() == 0);
878 query = KQueryByDate(Datetime(199104220000), Datetime(199104220000), KQuery::WEEK);
879 kdata = stock.getKData(query);
880 BOOST_CHECK(kdata.size() == 0);
881 BOOST_CHECK(kdata.empty() ==
true);
882 BOOST_CHECK(kdata.startPos() == 0);
883 BOOST_CHECK(kdata.endPos() == 0);
884 BOOST_CHECK(kdata.lastPos() == 0);
886 query = KQueryByDate(Datetime(199507170000), Datetime(199507170000), KQuery::WEEK);
887 kdata = stock.getKData(query);
888 BOOST_CHECK(kdata.size() == 0);
889 BOOST_CHECK(kdata.empty() ==
true);
890 BOOST_CHECK(kdata.startPos() == 0);
891 BOOST_CHECK(kdata.endPos() == 0);
892 BOOST_CHECK(kdata.lastPos() == 0);
894 query = KQueryByDate(Datetime(201112050000), Datetime(201112050000), KQuery::WEEK);
895 kdata = stock.getKData(query);
896 BOOST_CHECK(kdata.size() == 0);
897 BOOST_CHECK(kdata.empty() ==
true);
898 BOOST_CHECK(kdata.startPos() == 0);
899 BOOST_CHECK(kdata.endPos() == 0);
900 BOOST_CHECK(kdata.lastPos() == 0);
903 stock = sm.getStock(
"sh000001");
904 query = KQueryByDate(Datetime(199012170000), Datetime(199012240000), KQuery::WEEK);
905 kdata = stock.getKData(query);
906 BOOST_CHECK(kdata.size() == 1);
907 BOOST_CHECK(kdata.empty() ==
false);
908 BOOST_CHECK(kdata.startPos() == 0);
909 BOOST_CHECK(kdata.endPos() == 1);
910 BOOST_CHECK(kdata.lastPos() == 0);
911 BOOST_CHECK(kdata[0] == KRecord(Datetime(199012170000), 96.0500, 109.1300, 95.7900, 109.1300, 59.4000, 1485.0000));
913 query = KQueryByDate(Datetime(199707210000), Datetime(199707280000), KQuery::WEEK);
914 kdata = stock.getKData(query);
915 BOOST_CHECK(kdata.size() == 1);
916 BOOST_CHECK(kdata.empty() ==
false);
917 BOOST_CHECK(kdata.startPos() == 338);
918 BOOST_CHECK(kdata.endPos() == 339);
919 BOOST_CHECK(kdata.lastPos() == 338);
920 BOOST_CHECK(kdata[0] == KRecord(Datetime(199707210000), 1215.8390, 1223.8230, 1158.1360, 1170.8620, 2433586.7000, 20739544.0000));
922 query = KQueryByDate(Datetime(201112050000), Datetime(201112060000), KQuery::WEEK);
923 kdata = stock.getKData(query);
924 BOOST_CHECK(kdata.size() == 1);
925 BOOST_CHECK(kdata.empty() ==
false);
926 BOOST_CHECK(kdata.startPos() == 1058);
927 BOOST_CHECK(kdata.endPos() == 1059);
928 BOOST_CHECK(kdata.lastPos() == 1058);
929 BOOST_CHECK(kdata[0] == KRecord(Datetime(201112050000), 2363.1110, 2363.1270, 2310.1550, 2325.9050, 9126681.1000, 98132048.0000));
936 stock = sm.getStock(
"sh000001");
937 query = KQueryByDate(Datetime::minDatetime(), Null<Datetime>(), KQuery::MIN);
938 kdata = stock.getKData(query);
939 BOOST_CHECK(kdata.size() == 682823L);
941 expect = KRecord(Datetime(200001040931), 1366.58, 1368.692, 1366.579, 1368.692, 4124880, 191158);
942 BOOST_CHECK(record == expect);
945 expect = KRecord(Datetime(200001040932), 1368.3, 1368.491, 1368.3, 1368.491, 2783200, 106916);
946 BOOST_CHECK(record == expect);
948 record = kdata[kdata.size()-1];
949 expect = KRecord(Datetime(201112061500), 2325.38, 2326.1, 2324.6, 2325.90, 5215150, 566312);
950 BOOST_CHECK(record == expect);
953 stock = sm.getStock(
"sh000001");
954 query = KQueryByDate(Datetime(200001040930), Null<Datetime>(), KQuery::MIN);
955 kdata = stock.getKData(query);
956 BOOST_CHECK(kdata.size() == 682823L);
958 expect = KRecord(Datetime(200001040931), 1366.58, 1368.692, 1366.579, 1368.692, 4124880, 191158);
959 BOOST_CHECK(record == expect);
962 expect = KRecord(Datetime(200001040932), 1368.3, 1368.491, 1368.3, 1368.491, 2783200, 106916);
963 BOOST_CHECK(record == expect);
965 record = kdata[kdata.size()-1];
966 expect = KRecord(Datetime(201112061500), 2325.38, 2326.1, 2324.6, 2325.90, 5215150, 566312);
967 BOOST_CHECK(record == expect);
970 stock = sm.getStock(
"sh000001");
971 query = KQueryByDate(Datetime(200001040931), Null<Datetime>(), KQuery::MIN);
972 kdata = stock.getKData(query);
973 BOOST_CHECK(kdata.size() == 682823L);
975 BOOST_CHECK(record.datetime == Datetime(200001040931));
977 record = kdata[kdata.size()-1];
978 BOOST_CHECK(record.datetime == Datetime(201112061500));
982 stock = sm.getStock(
"sh000001");
983 query = KQueryByDate(Datetime(200001040932), Null<Datetime>(), KQuery::MIN);
984 kdata = stock.getKData(query);
985 BOOST_CHECK(kdata.size() == 682822L);
987 BOOST_CHECK(record.datetime == Datetime(200001040932));
989 record = kdata[kdata.size()-1];
990 BOOST_CHECK(record.datetime == Datetime(201112061500));
993 stock = sm.getStock(
"sh000001");
994 query = KQueryByDate(Datetime(200001040931), Datetime(201112061459), KQuery::MIN);
995 kdata = stock.getKData(query);
996 BOOST_CHECK(kdata.size() == 682821L);
998 BOOST_CHECK(record.datetime == Datetime(200001040931));
1000 record = kdata[kdata.size()-1];
1001 BOOST_CHECK(record.datetime == Datetime(201112061458));
1004 stock = sm.getStock(
"sh000001");
1005 query = KQueryByDate(Datetime(200001040931), Datetime(201112061500), KQuery::MIN);
1006 kdata = stock.getKData(query);
1007 BOOST_CHECK(kdata.size() == 682822L);
1009 BOOST_CHECK(record.datetime == Datetime(200001040931));
1011 record = kdata[kdata.size()-1];
1012 BOOST_CHECK(record.datetime == Datetime(201112061459));
1015 stock = sm.getStock(
"sh000001");
1016 query = KQueryByDate(Datetime(200001040931), Datetime(201112061501), KQuery::MIN);
1017 kdata = stock.getKData(query);
1018 BOOST_CHECK(kdata.size() == 682823L);
1020 BOOST_CHECK(record.datetime == Datetime(200001040931));
1022 record = kdata[kdata.size()-1];
1023 BOOST_CHECK(record.datetime == Datetime(201112061500));
1026 stock = sm.getStock(
"sh000001");
1027 query = KQueryByDate(Datetime(200303051451), Datetime(200303051455), KQuery::MIN);
1028 kdata = stock.getKData(query);
1029 BOOST_CHECK(kdata.size() == 4);
1031 BOOST_CHECK(record.datetime == Datetime(200303051451));
1033 record = kdata[kdata.size()-1];
1034 BOOST_CHECK(record.datetime == Datetime(200303051454));
1037 stock = sm.getStock(
"sh000001");
1038 query = KQueryByDate(Datetime(200001040931), Datetime(200001040931), KQuery::MIN);
1039 kdata = stock.getKData(query);
1040 BOOST_CHECK(kdata.size() == 0);
1041 query = KQueryByDate(Datetime(200601041446), Datetime(200601041446), KQuery::MIN);
1042 kdata = stock.getKData(query);
1043 BOOST_CHECK(kdata.size() == 0);
1044 query = KQueryByDate(Datetime(200801300955), Datetime(200601041446), KQuery::MIN);
1045 kdata = stock.getKData(query);
1046 BOOST_CHECK(kdata.size() == 0);
1047 query = KQueryByDate(Datetime(201112061500), Datetime(201112061500), KQuery::MIN);
1048 kdata = stock.getKData(query);
1049 BOOST_CHECK(kdata.size() == 0);
1052 stock = sm.getStock(
"sh000001");
1053 query = KQueryByDate(Datetime(200001040931), Datetime(200001040932), KQuery::MIN);
1054 kdata = stock.getKData(query);
1055 BOOST_CHECK(kdata.size() == 1);
1057 BOOST_CHECK(record.datetime == Datetime(200001040931));
1059 query = KQueryByDate(Datetime(200601041446), Datetime(200601041447), KQuery::MIN);
1060 kdata = stock.getKData(query);
1061 BOOST_CHECK(kdata.size() == 1);
1063 BOOST_CHECK(record.datetime == Datetime(200601041446));
1065 query = KQueryByDate(Datetime(201112061500), Datetime(201112061501), KQuery::MIN);
1066 kdata = stock.getKData(query);
1067 BOOST_CHECK(kdata.size() == 1);
1069 BOOST_CHECK(record.datetime == Datetime(201112061500));
1075 StockManager& sm = StockManager::instance();
1076 Stock stock = sm.getStock(
"sh600000");
1081 query = KQuery(0, Null<hku_int64>(), KQuery::DAY, KQuery::FORWARD);
1082 kdata = stock.getKData(query);
1083 BOOST_CHECK(kdata[2710] == KRecord(Datetime(201106030000), 10.02, 10.14, 10.0, 10.09, 38726.1, 384820));
1084 BOOST_CHECK(kdata[2709] == KRecord(Datetime(201106020000), 10.34, 10.38, 9.93, 10.04, 103909.3, 780543.0));
1085 BOOST_CHECK(kdata[2554] == KRecord(Datetime(201010140000), 11.04, 11.42, 10.91, 10.95, 322428.8, 2195006));
1086 BOOST_CHECK(kdata[2548] == KRecord(Datetime(201009290000), 9.26, 9.64, 9.20, 9.48, 99719.8, 799165));
1087 BOOST_CHECK(kdata[2547] == KRecord(Datetime(201009280000), 8.80, 8.80, 8.55, 8.56, 81241.5, 639882));
1090 query = KQuery(0, Null<hku_int64>(), KQuery::DAY, KQuery::BACKWARD);
1091 kdata = stock.getKData(query);
1092 BOOST_CHECK(kdata[0] == KRecord(Datetime(199911100000), 29.5, 29.8, 27.0, 27.75, 485910.2, 1740850));
1093 BOOST_CHECK(kdata[151] == KRecord(Datetime(200007050000), 23.25, 23.47, 23.15, 23.22, 3298.8, 14218));
1094 BOOST_CHECK(kdata[152] == KRecord(Datetime(200007060000), 29.09, 29.24, 28.91, 29.0, 3049.5, 13200));
1095 BOOST_CHECK(kdata[657] == KRecord(Datetime(200208210000), 22.9, 23.4, 22.69, 23.15, 36409.8, 197640));
1096 BOOST_CHECK(kdata[658] == KRecord(Datetime(200208220000), 23.43, 23.57, 23.24, 23.49, 13101.3, 106872));
1099 query = KQuery(0, Null<hku_int64>(), KQuery::DAY, KQuery::EQUAL_FORWARD);
1100 kdata = stock.getKData(query);
1101 BOOST_CHECK(kdata[2710] == KRecord(Datetime(201106030000), 10.02, 10.14, 10.0, 10.09, 38726.1, 384820));
1102 BOOST_CHECK(kdata[2709] == KRecord(Datetime(201106020000), 10.33, 10.37, 9.93, 10.04, 103909.3, 780543.0));
1103 BOOST_CHECK(kdata[2554] == KRecord(Datetime(201010140000), 11.03, 11.40, 10.90, 10.94, 322428.8, 2195006));
1104 BOOST_CHECK(kdata[2548] == KRecord(Datetime(201009290000), 9.27, 9.64, 9.21, 9.49, 99719.8, 799165));
1105 BOOST_CHECK(kdata[2547] == KRecord(Datetime(201009280000), 8.81, 8.81, 8.57, 8.58, 81241.5, 639882));
1108 query = KQuery(0, Null<hku_int64>(), KQuery::DAY, KQuery::EQUAL_BACKWARD);
1109 kdata = stock.getKData(query);
1110 BOOST_CHECK(kdata[0] == KRecord(Datetime(199911100000), 29.5, 29.8, 27.0, 27.75, 485910.2, 1740850));
1111 BOOST_CHECK(kdata[151] == KRecord(Datetime(200007050000), 23.25, 23.47, 23.15, 23.22, 3298.8, 14218));
1112 BOOST_CHECK(kdata[152] == KRecord(Datetime(200007060000), 29.13, 29.28, 28.95, 29.04, 3049.5, 13200));
1113 BOOST_CHECK(kdata[657] == KRecord(Datetime(200208210000), 22.9, 23.4, 22.68, 23.15, 36409.8, 197640));
1114 BOOST_CHECK(kdata[658] == KRecord(Datetime(200208220000), 23.43, 23.58, 23.24, 23.49, 13101.3, 106872));