test_doc
test_SE_Fixed.cpp
浏览该文件的文档.
1 /*
2  * test_Signal.cpp
3  *
4  * Created on: 2013-3-11
5  * Author: fasiondog
6  */
7 
8 
9 #ifdef TEST_ALL_IN_ONE
10  #include <boost/test/unit_test.hpp>
11 #else
12  #define BOOST_TEST_MODULE test_hikyuu_trade_sys_suite
13  #include <boost/test/unit_test.hpp>
14 #endif
15 
16 #include <hikyuu/StockManager.h>
17 #include <hikyuu/trade_sys/system/crt/SYS_Simple.h>
18 #include <hikyuu/trade_sys/selector/crt/SE_Fixed.h>
19 
20 using namespace hku;
21 
29 BOOST_AUTO_TEST_CASE( test_SE_Fixed) {
30  StockManager& sm = StockManager::instance();
31 
32  SYSPtr sys = SYS_Simple();
33  SEPtr se = SE_Fixed();
34 
36  se->addStock(Stock(), sys);
37  SystemList result = se->getSelectedSystemList(Datetime(200001010000L));
38  BOOST_CHECK(result.size() == 0);
39 
41  se->addStock(sm["sh600000"], SYSPtr());
42  result = se->getSelectedSystemList(Datetime(200001010000L));
43  BOOST_CHECK(result.size() == 0);
44 
46  se->addStock(sm["sh600000"], sys);
47  se->addStock(sm["sz000001"], sys);
48  se->addStock(sm["sz000002"], sys);
49 
50  se->reset();
51  result = se->getSelectedSystemList(Datetime(200001010000L));
52  BOOST_CHECK(result.size() == 3);
53  BOOST_CHECK(sm["sh600000"] == result[0]->getStock());
54  BOOST_CHECK(sm["sz000001"] == result[1]->getStock());
55  BOOST_CHECK(sm["sz000002"] == result[2]->getStock());
56 
58  se->clear();
59  result = se->getSelectedSystemList(Datetime(200001010000L));
60  BOOST_CHECK(result.size() == 0);
61 
63  se->addStock(sm["sh600000"], sys);
64  se->addStock(sm["sz000001"], sys);
65  se->addStock(sm["sz000002"], sys);
66  se->reset();
67  result = se->getSelectedSystemList(Datetime(200001010000L));
68  BOOST_CHECK(result.size() == 3);
69  BOOST_CHECK(sm["sh600000"] == result[0]->getStock());
70  BOOST_CHECK(sm["sz000001"] == result[1]->getStock());
71  BOOST_CHECK(sm["sz000002"] == result[2]->getStock());
72 
74  SEPtr se2;
75  se2 = se->clone();
76  BOOST_CHECK(se2.get() != se.get());
77  result = se2->getSelectedSystemList(Datetime(200001010000L));
78  BOOST_CHECK(result.size() == 3);
79  BOOST_CHECK(sm["sh600000"] == result[0]->getStock());
80  BOOST_CHECK(sm["sz000001"] == result[1]->getStock());
81  BOOST_CHECK(sm["sz000002"] == result[2]->getStock());
82 }
83 
BOOST_AUTO_TEST_CASE(test_SE_Fixed)