10 #include <boost/test/unit_test.hpp> 12 #define BOOST_TEST_MODULE test_hikyuu_indicator_suite 13 #include <boost/test/unit_test.hpp> 16 #include <hikyuu/StockManager.h> 17 #include <hikyuu/indicator/crt/AMA.h> 18 #include <hikyuu/indicator/crt/PRICELIST.h> 54 Indicator ind = PRICELIST(d);
55 BOOST_CHECK(ind.size() == 20);
56 result = AMA(ind, 10, 2, 30);
57 BOOST_CHECK(result.getParam<
int>(
"n") == 10);
58 BOOST_CHECK(result.getParam<
int>(
"fast_n") == 2);
59 BOOST_CHECK(result.getParam<
int>(
"slow_n") == 30);
60 BOOST_CHECK(result.size() == 20);
61 BOOST_CHECK(result.empty() ==
false);
62 BOOST_CHECK(result.discard() == 0);
63 BOOST_CHECK(result.getResultNumber() == 2);
64 BOOST_CHECK(result[0] == 6063);
65 BOOST_CHECK(std::fabs(result[9] - 6103.6781) < 0.000001);
66 BOOST_CHECK(std::fabs(result[10] - 6120.760197) < 0.000001);
67 BOOST_CHECK(std::fabs(result[18] - 6216.376893) < 0.000001);
68 BOOST_CHECK(std::fabs(result[19] - 6239.100742) < 0.000001);
70 BOOST_CHECK(result.get(0,1) == 1.0);
71 BOOST_CHECK(std::fabs(result.get(9, 1) - 0.557895) < 0.000001);
72 BOOST_CHECK(std::fabs(result.get(10, 1) - 0.611111) < 0.000001);
73 BOOST_CHECK(std::fabs(result.get(11, 1) - 0.826484) < 0.000001);
74 BOOST_CHECK(std::fabs(result.get(18, 1) - 0.517799) < 0.000001);
75 BOOST_CHECK(std::fabs(result.get(19, 1) - 0.585526) < 0.000001);
78 Indicator ama = AMA(10, 2, 30);
79 BOOST_CHECK(ama.size() == 0);
80 Indicator expect = AMA(ind, 10, 2, 30);
82 BOOST_CHECK(result.size() == expect.size());
83 BOOST_CHECK(result.getResultNumber() == expect.getResultNumber());
84 BOOST_CHECK(result.discard() == expect.discard());
85 for (
size_t i = 0; i < expect.size(); ++i) {
86 BOOST_CHECK(result[i] == expect[i]);
87 BOOST_CHECK(result.get(i, 1) == expect.get(i, 1));
BOOST_AUTO_TEST_CASE(test_AMA)