test_doc
test_STDEV.cpp
浏览该文件的文档.
1 /*
2  * test_STD.cpp
3  *
4  * Created on: 2013-4-18
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/STDEV.h>
17 #include <hikyuu/indicator/crt/PRICELIST.h>
18 
19 using namespace hku;
20 
28 BOOST_AUTO_TEST_CASE( test_STDEV ) {
30  PriceList d;
31  for (size_t i = 0; i < 15; ++i) {
32  d.push_back(i+1);
33  }
34  d[5] = 4.0;
35  d[7] = 4.0;
36  d[11] = 6.0;
37 
38  Indicator ind = PRICELIST(d);
39  Indicator dev = STDEV(ind, 10);
40  BOOST_CHECK(dev.size() == 15);
41  BOOST_CHECK(dev[8] == Null<price_t>());
42  BOOST_CHECK(std::fabs(dev[9] - 2.923088) < 0.000001 );
43  BOOST_CHECK(std::fabs(dev[10] - 3.142893) < 0.000001 );
44  BOOST_CHECK(std::fabs(dev[11] - 2.830390) < 0.000001 );
45  BOOST_CHECK(std::fabs(dev[12] - 3.267686) < 0.000001 );
46  BOOST_CHECK(std::fabs(dev[13] - 3.653004) < 0.000001 );
47  BOOST_CHECK(std::fabs(dev[14] - 4.001388) < 0.000001 );
48 
50  dev = STDEV(ind, 1);
51  BOOST_CHECK(dev.size() == 15);
52  for (size_t i = 0; i < dev.size(); ++i) {
53  BOOST_CHECK(dev[i] == Null<price_t>());
54  }
55 
57  Indicator expect = STDEV(ind, 10);
58  dev = STDEV(10);
59  Indicator result = dev(ind);
60  BOOST_CHECK(result.size() == expect.size());
61  for (size_t i = 0; i < expect.size(); ++i) {
62  BOOST_CHECK(result[i] == expect[i]);
63  }
64 }
65 
BOOST_AUTO_TEST_CASE(test_STDEV)
Definition: test_STDEV.cpp:28