test_doc
test_PRICELIST.cpp
浏览该文件的文档.
1 /*
2  * test_PRICELIST.cpp
3  *
4  * Created on: 2013-2-14
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/PRICELIST.h>
17 #include <hikyuu/indicator/crt/KDATA.h>
18 #include <hikyuu/indicator/crt/MA.h>
19 
20 using namespace hku;
21 
29 BOOST_AUTO_TEST_CASE( test_PRICELIST ) {
30  PriceList tmp_list;
31  Indicator result;
32 
34  result = PRICELIST(tmp_list);
35  BOOST_CHECK(result.size() == tmp_list.size());
36  BOOST_CHECK(result.empty() == true);
37 
39  for (size_t i = 0; i < 10; ++i) {
40  tmp_list.push_back(i);
41  }
42  result = PRICELIST(tmp_list);
43  BOOST_CHECK(result.size() == tmp_list.size());
44  BOOST_CHECK(result.empty() == false);
45  for (size_t i = 0; i < 10; ++i) {
46  BOOST_CHECK(result[i] == tmp_list[i]);
47  }
48 
50  price_t *p_tmp = NULL;
51  result = PRICELIST(p_tmp, 10);
52  BOOST_CHECK(result.size() == 0);
53  BOOST_CHECK(result.empty() == true);
54 
56  price_t tmp[10];
57  for (size_t i = 0; i < 10; ++i) {
58  tmp[i] = i;
59  }
60  result = PRICELIST(tmp, 10);
61  for (size_t i = 0; i < 10; ++i) {
62  BOOST_CHECK(result[i] == tmp[i]);
63  }
64 
66  result = PRICELIST(tmp_list);
67  BOOST_CHECK(result.size() == 10);
68  for (size_t i = 0; i < 10; ++i) {
69  BOOST_CHECK(result[i] == tmp_list[i]);
70  }
71 
73  result = PRICELIST(tmp_list, 1);
74  BOOST_CHECK(result.size() == 10);
75  BOOST_CHECK(result.discard() == 1);
76  BOOST_CHECK(result[0] == Null<price_t>());
77  for (size_t i = 1; i < 10; ++i) {
78  BOOST_CHECK(result[i] == tmp_list[i]);
79  }
80 
82  result = PRICELIST(Indicator());
83  BOOST_CHECK(result.size() == 0);
84 
86  StockManager& sm = StockManager::instance();
87  Stock stock = sm.getStock("sh000001");
88  KQuery query(0, 30);
89  KData kdata = stock.getKData(query);
90  Indicator ikdata = KDATA(kdata);
91  result = PRICELIST(ikdata);
92  BOOST_CHECK(result.size() == ikdata.size());
93  BOOST_CHECK(result.discard() == ikdata.discard());
94  for (size_t i = 0; i < result.size(); ++i) {
95  BOOST_CHECK(result[i] == ikdata[i]);
96  }
97 
99  result = PRICELIST(ikdata, 1);
100  BOOST_CHECK(result.size() == ikdata.size());
101  BOOST_CHECK(result.discard() == ikdata.discard());
102  for (size_t i = 0; i < result.size(); ++i) {
103  BOOST_CHECK(result[i] == ikdata.get(i, 1));
104  }
105 }
106 
BOOST_AUTO_TEST_CASE(test_PRICELIST)