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/IND_LOGIC.h> 17 #include <hikyuu/indicator/crt/PRICELIST.h> 18 #include <hikyuu/indicator/crt/KDATA.h> 31 for (
size_t i = 0; i < 10; ++i) {
37 Indicator data1 = PRICELIST(d1);
38 Indicator data2 = PRICELIST(d2);
39 Indicator data3 = PRICELIST(d3);
42 Indicator result = IND_AND(data1, data2);
43 BOOST_CHECK(result.size() == 10);
44 BOOST_CHECK(result.getResultNumber() == 1);
45 BOOST_CHECK(result.discard() == 0);
46 for (
size_t i = 0; i < 10; ++i) {
47 BOOST_CHECK(result[i] == 0.0);
51 result = IND_AND(data1, 1.0);
52 BOOST_CHECK(result.size() == 10);
53 BOOST_CHECK(result.getResultNumber() == 1);
54 BOOST_CHECK(result.discard() == 0);
55 for (
size_t i = 0; i < 10; ++i) {
56 BOOST_CHECK(result[i] == 0.0);
60 result = IND_AND(data1, data3);
61 BOOST_CHECK(result.size() == 10);
62 BOOST_CHECK(result.getResultNumber() == 1);
63 BOOST_CHECK(result.discard() == 0);
64 for (
size_t i = 0; i < 10; ++i) {
65 BOOST_CHECK(result[i] == 0.0);
69 result = IND_AND(data2, data3);
70 BOOST_CHECK(result.size() == 10);
71 BOOST_CHECK(result.getResultNumber() == 1);
72 BOOST_CHECK(result.discard() == 0);
73 BOOST_CHECK(result[0] == 0.0);
74 for (
size_t i = 1; i < 10; ++i) {
75 BOOST_CHECK(result[i] == 1.0);
80 result = data1 < data4;
81 BOOST_CHECK(result.empty());
82 BOOST_CHECK(result.size() == 0);
85 StockManager& sm = StockManager::instance();
86 Stock stock = sm.getStock(
"sh600000");
88 KData kdata = stock.getKData(query);
89 Indicator k = KDATA(kdata);
90 BOOST_CHECK(k.size() == data1.size());
92 BOOST_CHECK(result.size() == k.size());
93 for (
size_t i = 0; i < result.size(); ++i) {
94 BOOST_CHECK(result[i] == 0.0);
100 PriceList d1, d2, d3;
101 for (
size_t i = 0; i < 10; ++i) {
107 Indicator data1 = PRICELIST(d1);
108 Indicator data2 = PRICELIST(d2);
109 Indicator data3 = PRICELIST(d3);
112 Indicator result = IND_OR(data1, data2);
113 BOOST_CHECK(result.size() == 10);
114 BOOST_CHECK(result.getResultNumber() == 1);
115 BOOST_CHECK(result.discard() == 0);
116 for (
size_t i = 0; i < 10; ++i) {
117 BOOST_CHECK(result[i] == 1.0);
121 result = IND_OR(data1, 1.0);
122 BOOST_CHECK(result.size() == 10);
123 BOOST_CHECK(result.getResultNumber() == 1);
124 BOOST_CHECK(result.discard() == 0);
125 for (
size_t i = 0; i < 10; ++i) {
126 BOOST_CHECK(result[i] == 1.0);
130 result = IND_OR(data1, data3);
131 BOOST_CHECK(result.size() == 10);
132 BOOST_CHECK(result.getResultNumber() == 1);
133 BOOST_CHECK(result.discard() == 0);
134 BOOST_CHECK(result[0] == 0.0);
135 for (
size_t i = 1; i < 10; ++i) {
136 BOOST_CHECK(result[i] == 1.0);
140 result = IND_OR(data2, data3);
141 BOOST_CHECK(result.size() == 10);
142 BOOST_CHECK(result.getResultNumber() == 1);
143 BOOST_CHECK(result.discard() == 0);
144 for (
size_t i = 0; i < 10; ++i) {
145 BOOST_CHECK(result[i] == 1.0);
150 result = data1 < data4;
151 BOOST_CHECK(result.empty());
152 BOOST_CHECK(result.size() == 0);
155 StockManager& sm = StockManager::instance();
156 Stock stock = sm.getStock(
"sh600000");
158 KData kdata = stock.getKData(query);
159 Indicator k = KDATA(kdata);
160 BOOST_CHECK(k.size() == data1.size());
161 result = (k < data1);
162 BOOST_CHECK(result.size() == k.size());
163 for (
size_t i = 0; i < result.size(); ++i) {
164 BOOST_CHECK(result[i] == 0.0);
BOOST_AUTO_TEST_CASE(test_LOGIC_AND)