test_doc
test_IKData.cpp
浏览该文件的文档.
1 /*
2  * test_IKData.cpp
3  *
4  * Created on: 2013-2-12
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_indicator_suite
12  #include <boost/test/unit_test.hpp>
13 #endif
14 
15 #include <hikyuu/StockManager.h>
16 #include <hikyuu/indicator/crt/KDATA.h>
17 
18 using namespace hku;
19 
27 BOOST_AUTO_TEST_CASE( test_IKData ) {
28  StockManager& sm = StockManager::instance();
29  Stock stock = sm.getStock("sh000001");
30  KData kdata;
31 
33  Indicator ki, open, high, low, close, amount, count;
34  BOOST_CHECK(open.size() == 0);
35  BOOST_CHECK(open.empty() == true);
36 
38  ki = KDATA(kdata);
39  BOOST_CHECK(ki.size() == 0);
40  BOOST_CHECK(ki.empty() == true);
41 
42  open = OPEN(kdata);
43  BOOST_CHECK(open.size() == 0);
44  BOOST_CHECK(open.empty() == true);
45 
46  high = HIGH(kdata);
47  BOOST_CHECK(high.size() == 0);
48  BOOST_CHECK(high.empty() == true);
49 
50  low = LOW(kdata);
51  BOOST_CHECK(low.size() == 0);
52  BOOST_CHECK(low.empty() == true);
53 
54  close = CLOSE(kdata);
55  BOOST_CHECK(close.size() == 0);
56  BOOST_CHECK(close.empty() == true);
57 
58  amount = AMO(kdata);
59  BOOST_CHECK(amount.size() == 0);
60  BOOST_CHECK(amount.empty() == true);
61 
62  count = VOL(kdata);
63  BOOST_CHECK(count.size() == 0);
64  BOOST_CHECK(count.empty() == true);
65 
66 
68  KQuery query(10);
69  kdata = stock.getKData(query);
70  size_t total = kdata.size();
71 
72  ki = KDATA(kdata);
73  BOOST_CHECK(ki.size() == kdata.size());
74  for (size_t i = 0; i < total; ++i) {
75  BOOST_CHECK(ki.get(i, 0) == kdata[i].openPrice);
76  BOOST_CHECK(ki.get(i, 1) == kdata[i].highPrice);
77  BOOST_CHECK(ki.get(i, 2) == kdata[i].lowPrice);
78  BOOST_CHECK(ki.get(i, 3) == kdata[i].closePrice);
79  BOOST_CHECK(ki.get(i, 4) == kdata[i].transAmount);
80  BOOST_CHECK(ki.get(i, 5) == kdata[i].transCount);
81  }
82 
83  open = OPEN(kdata);
84  BOOST_CHECK(open.size() == kdata.size());
85  for (size_t i = 0; i < total; ++i) {
86  BOOST_CHECK(open[i] == kdata[i].openPrice);
87  }
88 
89  high = HIGH(kdata);
90  BOOST_CHECK(high.size() == kdata.size());
91  for (size_t i = 0; i < total; ++i) {
92  BOOST_CHECK(high[i] == kdata[i].highPrice);
93  }
94 
95  low = LOW(kdata);
96  BOOST_CHECK(low.size() == kdata.size());
97  for (size_t i = 0; i < total; ++i) {
98  BOOST_CHECK(low[i] == kdata[i].lowPrice);
99  }
100 
101  close = CLOSE(kdata);
102  BOOST_CHECK(close.size() == kdata.size());
103  for (size_t i = 0; i < total; ++i) {
104  BOOST_CHECK(close[i] == kdata[i].closePrice);
105  }
106 
107  amount = AMO(kdata);
108  BOOST_CHECK(amount.size() == kdata.size());
109  for (size_t i = 0; i < total; ++i) {
110  BOOST_CHECK(amount[i] == kdata[i].transAmount);
111  }
112 
113  count = VOL(kdata);
114  BOOST_CHECK(count.size() == kdata.size());
115  for (size_t i = 0; i < total; ++i) {
116  BOOST_CHECK(count[i] == kdata[i].transCount);
117  }
118 }
119 
BOOST_AUTO_TEST_CASE(test_IKData)
Definition: test_IKData.cpp:27