3 #include <boost/test/unit_test.hpp> 9 template <
typename price_field_t>
10 void check_price_levels() {
11 auto d = price_field_t::denom;
12 price_field_t p0_9995 = price_field_t(
int(0.9995 * d));
13 price_field_t p0_9999 = price_field_t(
int(0.9999 * d));
14 price_field_t p1_00 = price_field_t(
int(1.00 * d));
15 price_field_t p10_00 = price_field_t(
int(10.00 * d));
16 price_field_t p10_01 = price_field_t(
int(10.01 * d));
17 price_field_t p11_01 = price_field_t(
int(11.01 * d));
29 template <
typename price_field_t>
30 void check_level_to_price() {
31 auto d = price_field_t::denom;
32 price_field_t p0_5000 = price_field_t(
int(0.5000 * d));
33 price_field_t p1_00 = price_field_t(
int(1.00 * d));
34 price_field_t p10_00 = price_field_t(
int(10.00 * d));
37 jb::itch5::level_to_price<price_field_t>(
int(0.5000 * d)), p0_5000);
39 jb::itch5::level_to_price<price_field_t>(
int(1.00 * d)), p1_00);
41 jb::itch5::level_to_price<price_field_t>(
int(1.00 * d + 9 * d / 100)),
45 jb::itch5::level_to_price<price_field_t>(
int(-1.00 * d)),
47 price_field_t
const max_price =
48 jb::itch5::max_price_field_value<price_field_t>();
49 std::size_t
const max_level =
52 jb::itch5::level_to_price<price_field_t>(max_level + 1),
62 check_price_levels<jb::itch5::price4_t>();
69 check_price_levels<jb::itch5::price8_t>();
76 check_level_to_price<jb::itch5::price4_t>();
83 check_level_to_price<jb::itch5::price8_t>();
BOOST_AUTO_TEST_CASE(price_levels_4)
Verify that jb::itch5::price_levels() works correctly for price4_t.
std::size_t price_levels(price_field_t lo, price_field_t hi)
Compute the number of price levels between two prices.