test_doc
首页
模块
类
文件
文件列表
文件成员
libs
hikyuu
trade_sys
slippage
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
BOOST_AUTO_TEST_CASE(test_Slippage)
Definition:
test_Slippage.cpp:59
SlippageTest::~SlippageTest
virtual ~SlippageTest()
Definition:
test_Slippage.cpp:23
SlippageTest::_clone
virtual SlippagePtr _clone()
Definition:
test_Slippage.cpp:37
SlippageTest::setX
void setX(int x)
Definition:
test_Slippage.cpp:46
SlippageTest::SlippageTest
SlippageTest()
Definition:
test_Slippage.cpp:22
SlippageTest
Definition:
test_Slippage.cpp:20
SlippageTest::getX
int getX() const
Definition:
test_Slippage.cpp:45
SlippageTest::_calculate
virtual void _calculate()
Definition:
test_Slippage.cpp:43
SlippageTest::getRealSellPrice
virtual price_t getRealSellPrice(const Datetime &datetime, price_t price)
Definition:
test_Slippage.cpp:29
SlippageTest::getRealBuyPrice
virtual price_t getRealBuyPrice(const Datetime &datetime, price_t price)
Definition:
test_Slippage.cpp:25
SlippageTest::_reset
virtual void _reset()
Definition:
test_Slippage.cpp:33
hku
1.8.11