test_doc  0.1
 全部  文件 函数 变量 宏定义 
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 open, high, low, close, amount, count;
34  BOOST_CHECK(open.size() == 0);
35  BOOST_CHECK(open.empty() == true);
36 
38  open = OPEN(kdata);
39  BOOST_CHECK(open.size() == 0);
40  BOOST_CHECK(open.empty() == true);
41 
42  high = HIGH(kdata);
43  BOOST_CHECK(high.size() == 0);
44  BOOST_CHECK(high.empty() == true);
45 
46  low = LOW(kdata);
47  BOOST_CHECK(low.size() == 0);
48  BOOST_CHECK(low.empty() == true);
49 
50  close = CLOSE(kdata);
51  BOOST_CHECK(close.size() == 0);
52  BOOST_CHECK(close.empty() == true);
53 
54  amount = TRANSAMOUNT(kdata);
55  BOOST_CHECK(amount.size() == 0);
56  BOOST_CHECK(amount.empty() == true);
57 
58  count = TRANSCOUNT(kdata);
59  BOOST_CHECK(count.size() == 0);
60  BOOST_CHECK(count.empty() == true);
61 
62 
64  KQuery query(10);
65  kdata = stock.getKData(query);
66  size_t total = kdata.size();
67  open = OPEN(kdata);
68  BOOST_CHECK(open.size() == kdata.size());
69  for (size_t i = 0; i < total; ++i) {
70  BOOST_CHECK(open[i] == kdata[i].openPrice);
71  }
72 
73  high = HIGH(kdata);
74  BOOST_CHECK(high.size() == kdata.size());
75  for (size_t i = 0; i < total; ++i) {
76  BOOST_CHECK(high[i] == kdata[i].highPrice);
77  }
78 
79  low = LOW(kdata);
80  BOOST_CHECK(low.size() == kdata.size());
81  for (size_t i = 0; i < total; ++i) {
82  BOOST_CHECK(low[i] == kdata[i].lowPrice);
83  }
84 
85  close = CLOSE(kdata);
86  BOOST_CHECK(close.size() == kdata.size());
87  for (size_t i = 0; i < total; ++i) {
88  BOOST_CHECK(close[i] == kdata[i].closePrice);
89  }
90 
91  amount = TRANSAMOUNT(kdata);
92  BOOST_CHECK(amount.size() == kdata.size());
93  for (size_t i = 0; i < total; ++i) {
94  BOOST_CHECK(amount[i] == kdata[i].transAmount);
95  }
96 
97  count = TRANSCOUNT(kdata);
98  BOOST_CHECK(count.size() == kdata.size());
99  for (size_t i = 0; i < total; ++i) {
100  BOOST_CHECK(count[i] == kdata[i].transCount);
101  }
102 }
103