test_doc  0.1
 全部  文件 函数 变量 宏定义 
test_StockManager.cpp
浏览该文件的文档.
1 /*
2  * test_StockManager.cpp
3  *
4  * Created on: 2011-11-10
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_base
12  #include <boost/test/unit_test.hpp>
13 #endif
14 
15 #include <hikyuu/StockManager.h>
16 #include <hikyuu/utilities/util.h>
17 #include <hikyuu/Log.h>
18 
19 using namespace hku;
20 
28 BOOST_AUTO_TEST_CASE( test_StockManager_size ) {
29  StockManager& sm = StockManager::instance();
31  BOOST_CHECK(sm.size() == 4729);
32 }
33 
35 BOOST_AUTO_TEST_CASE( test_StockManager_getStock ) {
36  StockManager& sm = StockManager::instance();
37  Stock stock;
38  Stock null_stock = Null<Stock>();
39 
41  BOOST_CHECK(sm.getStock("z000001") == null_stock);
42 
44  BOOST_CHECK(sm.getStock("sh1000001") == null_stock);
45 
47  stock = sm.getStock("sh000001");
48  BOOST_CHECK(stock.market() == "SH");
49  BOOST_CHECK(stock.code() == "000001");
50  BOOST_CHECK(stock.name() == HKU_STR("上证指数"));
51  BOOST_CHECK(stock.type() == 2);
52  BOOST_CHECK(stock.valid() == true);
53  BOOST_CHECK(stock.startDatetime() == Datetime(199012190000));
54  BOOST_CHECK(stock.lastDatetime() == Null<Datetime>());
55  BOOST_CHECK(stock.tick() == 0.001);
56  BOOST_CHECK(stock.tickValue() == 0.001);
57  BOOST_CHECK(stock.unit() == 1.0);
58  BOOST_CHECK(stock.precision() == 3);
59  BOOST_CHECK(stock.atom() == 1);
60  BOOST_CHECK(stock.minTradeNumber() == 1);
61  BOOST_CHECK(stock.maxTradeNumber() == 1000000);
62 }
63 
65 BOOST_AUTO_TEST_CASE( test_StockManager_getMarketInfo ) {
66  StockManager& sm = StockManager::instance();
67 
69  BOOST_CHECK(Null<MarketInfo>() == sm.getMarketInfo("XXX"));
70  BOOST_CHECK(Null<MarketInfo>() == sm.getMarketInfo(""));
71 
73  MarketInfo marketInfo = sm.getMarketInfo("SH");
74  BOOST_CHECK(marketInfo != Null<MarketInfo>());
75  BOOST_CHECK(marketInfo.market() == "SH");
76  BOOST_CHECK(marketInfo.code() == "000001");
77  BOOST_CHECK(marketInfo.name() == HKU_STR("上海证劵交易所"));
78  BOOST_CHECK(marketInfo.description() == HKU_STR("上海市场"));
79  BOOST_CHECK(marketInfo.lastDate() == Datetime(201112060000L));
80 
82  marketInfo = sm.getMarketInfo("sh");
83  BOOST_CHECK(marketInfo != Null<MarketInfo>());
84  BOOST_CHECK(marketInfo.market() == "SH");
85 
86 
88  marketInfo = sm.getMarketInfo("Sh");
89  BOOST_CHECK(marketInfo != Null<MarketInfo>());
90  BOOST_CHECK(marketInfo.market() == "SH");
91 }
92 
94 BOOST_AUTO_TEST_CASE( test_StockManager_getStockTypeInfo ) {
95  StockManager& sm = StockManager::instance();
96  StockTypeInfo stockTypeInfo;
97 
99  BOOST_CHECK(sm.getStockTypeInfo(999) == Null<StockTypeInfo>());
100 
102  stockTypeInfo = sm.getStockTypeInfo(0);
103  BOOST_CHECK(stockTypeInfo != Null<StockTypeInfo>());
104  BOOST_CHECK(stockTypeInfo.type() == 0);
105  BOOST_CHECK(stockTypeInfo.description() == HKU_STR("Block"));
106  BOOST_CHECK(stockTypeInfo.tick() == 100);
107  BOOST_CHECK(stockTypeInfo.precision() == 2);
108  BOOST_CHECK(stockTypeInfo.minTradeNumber() == 100);
109  BOOST_CHECK(stockTypeInfo.maxTradeNumber() == 1000000);
110 
112  stockTypeInfo = sm.getStockTypeInfo(8);
113  BOOST_CHECK(stockTypeInfo != Null<StockTypeInfo>());
114  BOOST_CHECK(stockTypeInfo.type() == 8);
115 #if !defined(BOOST_MSVC)
116  //msvc中文支持不好,此处无法编译
117  BOOST_CHECK(stockTypeInfo.description() == HKU_STR("创业板"));
118 #endif
119  BOOST_CHECK(stockTypeInfo.tick() == 0.01);
120  BOOST_CHECK(stockTypeInfo.precision() == 2);
121  BOOST_CHECK(stockTypeInfo.minTradeNumber() == 100);
122  BOOST_CHECK(stockTypeInfo.maxTradeNumber() == 1000000);
123 
125  stockTypeInfo = sm.getStockTypeInfo(2);
126  BOOST_CHECK(stockTypeInfo != Null<StockTypeInfo>());
127  BOOST_CHECK(stockTypeInfo.type() == 2);
128  BOOST_CHECK(stockTypeInfo.description() == HKU_STR("指数"));
129  BOOST_CHECK(stockTypeInfo.tick() == 0.001);
130  BOOST_CHECK(stockTypeInfo.precision() == 3);
131  BOOST_CHECK(stockTypeInfo.minTradeNumber() == 1);
132  BOOST_CHECK(stockTypeInfo.maxTradeNumber() == 1000000);
133 }
134 
136 BOOST_AUTO_TEST_CASE( test_StockManager_getAllMarket ) {
137  StockManager& sm = StockManager::instance();
138 
140  MarketList result(sm.getAllMarket());
141  BOOST_CHECK(result.size() == 2);
142  BOOST_CHECK(result[0] == "SH");
143  BOOST_CHECK(result[1] == "SZ");
144 }
145 
147 BOOST_AUTO_TEST_CASE( test_StockManager_getAllStock ) {
148  StockManager& sm = StockManager::instance();
150  StockList result(sm.getAllStock());
151  BOOST_CHECK(result.size() == sm.size());
152 }
153