test_doc
test_Slippage.cpp
浏览该文件的文档.
1 /*
2  * test_Slippage.cpp
3  *
4  * Created on: 2013-3-21
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_trade_sys_suite
12  #include <boost/test/unit_test.hpp>
13 #endif
14 
15 #include <hikyuu/StockManager.h>
16 #include <hikyuu/trade_sys/slippage/SlippageBase.h>
17 
18 using namespace hku;
19 
20 class SlippageTest: public SlippageBase {
21 public:
22  SlippageTest(): SlippageBase("SlippageTest"), m_x(0) {}
23  virtual ~SlippageTest() {}
24 
25  virtual price_t getRealBuyPrice(const Datetime& datetime, price_t price) {
26  return m_x < 10 ? 0.0 : 1.0;
27  }
28 
29  virtual price_t getRealSellPrice(const Datetime& datetime, price_t price) {
30  return m_x < 10 ? 0.0 : 1.0;
31  }
32 
33  virtual void _reset() {
34  m_x = 0;
35  }
36 
37  virtual SlippagePtr _clone() {
38  SlippageTest *p = new SlippageTest;
39  p->m_x = m_x;
40  return SlippagePtr(p);
41  }
42 
43  virtual void _calculate() {}
44 
45  int getX() const { return m_x;}
46  void setX(int x) { m_x = x; }
47 
48 private:
49  int m_x;
50 };
51 
59 BOOST_AUTO_TEST_CASE( test_Slippage) {
61  SlippagePtr p(new SlippageTest);
62  BOOST_CHECK(p->name() == "SlippageTest");
63  BOOST_CHECK(p->getRealBuyPrice(Datetime(200101010000), 1.0) == 0.0);
64  BOOST_CHECK(p->getRealSellPrice(Datetime(200101010000), 1.0) == 0.0);
65  SlippageTest *p_src = (SlippageTest *)p.get();
66  BOOST_CHECK(p_src->getX() == 0);
67 
68  p_src->setX(10);
69  BOOST_CHECK(p->getRealBuyPrice(Datetime(200101010000), 1.0) == 1.0);
70  BOOST_CHECK(p->getRealSellPrice(Datetime(200101010000), 1.0) == 1.0);
71  BOOST_CHECK(p_src->getX() == 10);
72  p->reset();
73  BOOST_CHECK(p_src->getX() == 0);
74 
76  p_src->setX(10);
77  SlippagePtr p_clone = p->clone();
78  BOOST_CHECK(p_clone->name() == "SlippageTest");
79  p_src = (SlippageTest *)p_clone.get();
80  BOOST_CHECK(p_src->getX() == 10);
81  BOOST_CHECK(p != p_clone);
82 }
83 
BOOST_AUTO_TEST_CASE(test_Slippage)
virtual ~SlippageTest()
virtual SlippagePtr _clone()
void setX(int x)
int getX() const
virtual void _calculate()
virtual price_t getRealSellPrice(const Datetime &datetime, price_t price)
virtual price_t getRealBuyPrice(const Datetime &datetime, price_t price)
virtual void _reset()