9 #include <boost/test/unit_test.hpp>
11 #define BOOST_TEST_MODULE test_hikyuu_indicator_suite
12 #include <boost/test/unit_test.hpp>
15 #include <hikyuu/StockManager.h>
16 #include <hikyuu/indicator/crt/MA.h>
17 #include <hikyuu/indicator/crt/KDATA.h>
29 StockManager& sm = StockManager::instance();
30 Stock stock = sm.getStock(
"sh000001");
36 BOOST_CHECK(ma.empty() ==
true);
37 BOOST_CHECK(ma.size() == 0);
38 BOOST_CHECK(ma.discard() == 29);
41 BOOST_CHECK(ma.empty() ==
true);
42 BOOST_CHECK(ma.size() == 0);
43 BOOST_CHECK(ma.discard() == 0);
46 kdata = stock.getKData(KQuery(-10));
49 BOOST_CHECK(ma.empty() ==
false);
50 BOOST_CHECK(ma.size() == kdata.size());
51 BOOST_CHECK(ma.discard() == 0);
52 for (
size_t i = 0; i < kdata.size(); ++i) {
53 BOOST_CHECK(ma[i] == Null<price_t>());
57 kdata = stock.getKData(KQuery(-10));
60 BOOST_CHECK(ma.empty() ==
false);
61 BOOST_CHECK(ma.size() == kdata.size());
62 BOOST_CHECK(ma.discard() == 9);
63 for (
size_t i = 0; i < kdata.size() - 1; ++i) {
64 BOOST_CHECK(ma[i] == Null<price_t>());
66 BOOST_CHECK(std::fabs(ma[9] - 2383.4041) < 0.00001);
69 kdata = stock.getKData(KQuery(-9));
72 BOOST_CHECK(ma.empty() ==
false);
73 BOOST_CHECK(ma.size() == kdata.size());
74 BOOST_CHECK(ma.discard() == 9);
75 for (
size_t i = 0; i < kdata.size(); ++i) {
76 BOOST_CHECK(ma[i] == Null<price_t>());
80 kdata = stock.getKData(KQuery(-11));
83 BOOST_CHECK(ma.empty() ==
false);
84 BOOST_CHECK(ma.size() == kdata.size());
85 BOOST_CHECK(ma.discard() == 9);
86 for (
size_t i = 0; i < 9; ++i) {
87 BOOST_CHECK(ma[i] == Null<price_t>());
89 BOOST_CHECK(std::fabs(ma[9] - 2390.8365) < 0.00001);
90 BOOST_CHECK(std::fabs(ma[10] - 2383.4041) < 0.00001);
93 kdata = stock.getKData(KQuery(-11));
96 BOOST_CHECK(ma.empty() ==
false);
97 BOOST_CHECK(ma.size() == kdata.size());
98 BOOST_CHECK(ma.discard() == 0);
99 for (
size_t i = 0; i < open.size(); ++i) {
100 BOOST_CHECK(std::fabs(ma[i] - open[i]) < 0.0001);