9 #include <boost/test/unit_test.hpp>
11 #define BOOST_TEST_MODULE test_hikyuu_base
12 #include <boost/test/unit_test.hpp>
15 #include <hikyuu/StockManager.h>
16 #include <hikyuu/utilities/util.h>
17 #include <hikyuu/Log.h>
29 StockManager& sm = StockManager::instance();
31 BOOST_CHECK(sm.size() == 4729);
36 StockManager& sm = StockManager::instance();
38 Stock null_stock = Null<Stock>();
41 BOOST_CHECK(sm.getStock(
"z000001") == null_stock);
44 BOOST_CHECK(sm.getStock(
"sh1000001") == null_stock);
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);
66 StockManager& sm = StockManager::instance();
69 BOOST_CHECK(Null<MarketInfo>() == sm.getMarketInfo(
"XXX"));
70 BOOST_CHECK(Null<MarketInfo>() == sm.getMarketInfo(
""));
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));
82 marketInfo = sm.getMarketInfo(
"sh");
83 BOOST_CHECK(marketInfo != Null<MarketInfo>());
84 BOOST_CHECK(marketInfo.market() ==
"SH");
88 marketInfo = sm.getMarketInfo(
"Sh");
89 BOOST_CHECK(marketInfo != Null<MarketInfo>());
90 BOOST_CHECK(marketInfo.market() ==
"SH");
95 StockManager& sm = StockManager::instance();
96 StockTypeInfo stockTypeInfo;
99 BOOST_CHECK(sm.getStockTypeInfo(999) == Null<StockTypeInfo>());
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);
112 stockTypeInfo = sm.getStockTypeInfo(8);
113 BOOST_CHECK(stockTypeInfo != Null<StockTypeInfo>());
114 BOOST_CHECK(stockTypeInfo.type() == 8);
115 #if !defined(BOOST_MSVC)
117 BOOST_CHECK(stockTypeInfo.description() == HKU_STR(
"创业板"));
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);
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);
137 StockManager& sm = StockManager::instance();
140 MarketList result(sm.getAllMarket());
141 BOOST_CHECK(result.size() == 2);
142 BOOST_CHECK(result[0] ==
"SH");
143 BOOST_CHECK(result[1] ==
"SZ");
148 StockManager& sm = StockManager::instance();
150 StockList result(sm.getAllStock());
151 BOOST_CHECK(result.size() == sm.size());