4 #include <boost/test/unit_test.hpp> 12 using namespace std::chrono;
20 BOOST_CHECK_EQUAL(x.header.stock_locate, 0);
21 BOOST_CHECK_EQUAL(x.header.tracking_number, 1);
22 BOOST_CHECK_EQUAL(x.header.timestamp.ts.count(),
expected_ts.count());
23 BOOST_CHECK_EQUAL(x.stock,
"HSART");
24 BOOST_CHECK_EQUAL(x.market_category, u
'G');
25 BOOST_CHECK_EQUAL(x.financial_status_indicator, u
'N');
26 BOOST_CHECK_EQUAL(x.round_lot_size, 100);
27 BOOST_CHECK_EQUAL(x.roundlots_only, u
'N');
28 BOOST_CHECK_EQUAL(x.issue_classification, u
'O');
29 BOOST_CHECK_EQUAL(x.issue_subtype, u8
"C");
30 BOOST_CHECK_EQUAL(x.authenticity, u
'P');
31 BOOST_CHECK_EQUAL(x.short_sale_threshold_indicator, u
'N');
32 BOOST_CHECK_EQUAL(x.ipo_flag, u
'N');
33 BOOST_CHECK_EQUAL(x.luld_reference_price_tier, u
'1');
34 BOOST_CHECK_EQUAL(x.etp_flag, u
'N');
35 BOOST_CHECK_EQUAL(x.etp_leverage_factor, 0);
36 BOOST_CHECK_EQUAL(x.inverse_indicator, u
'N');
41 BOOST_CHECK_EQUAL(x.header.stock_locate, 0);
42 BOOST_CHECK_EQUAL(x.header.tracking_number, 1);
43 BOOST_CHECK_EQUAL(x.header.timestamp.ts.count(),
expected_ts.count());
44 BOOST_CHECK_EQUAL(x.stock,
"HSART");
45 BOOST_CHECK_EQUAL(x.market_category, u
'G');
46 BOOST_CHECK_EQUAL(x.financial_status_indicator, u
'N');
47 BOOST_CHECK_EQUAL(x.round_lot_size, 100);
48 BOOST_CHECK_EQUAL(x.roundlots_only, u
'N');
49 BOOST_CHECK_EQUAL(x.issue_classification, u
'O');
50 BOOST_CHECK_EQUAL(x.issue_subtype, u8
"C");
51 BOOST_CHECK_EQUAL(x.authenticity, u
'P');
52 BOOST_CHECK_EQUAL(x.short_sale_threshold_indicator, u
'N');
53 BOOST_CHECK_EQUAL(x.ipo_flag, u
'N');
54 BOOST_CHECK_EQUAL(x.luld_reference_price_tier, u
'1');
55 BOOST_CHECK_EQUAL(x.etp_flag, u
'N');
56 BOOST_CHECK_EQUAL(x.etp_leverage_factor, 0);
57 BOOST_CHECK_EQUAL(x.inverse_indicator, u
'N');
65 using namespace std::chrono;
71 std::ostringstream os;
74 os.str(),
"message_type=R,stock_locate=0" 75 ",tracking_number=1,timestamp=113231.123456789" 78 ",financial_status_indicator=N" 81 ",issue_classification=O" 84 ",short_sale_threshold_indicator=N" 86 ",luld_reference_price_tier=1" 88 ",etp_leverage_factor=0" 89 ",inverse_indicator=N");
170 BOOST_CHECK_THROW(
etp_flag_t(u
'*'), std::runtime_error);
static T r(std::size_t size, void const *msg, std::size_t offset)
Read a single message or field.
Contains classes and functions to parse NASDAQ ITCH-5.0 messages, more information about ITCH-5...
char_list_field< u 'Y', u 'N'> inverse_indicator_t
Represent the 'Inverse Indicator' field on a 'Stock Directory' message.
char_list_field< u 'Y', u 'N'> roundlots_only_t
Represent the 'Round Lots Only' field on a 'Stock Directory' message.
char_list_field< u 'A', u 'B', u 'C', u 'F', u 'I', u 'L', u 'N', u 'O', u 'P', u 'Q', u 'R', u 'S', u 'T', u 'U', u 'V', u 'W' > issue_classification_t
Represent the 'Issue Classification' field on a 'Stock Directory' message.
char_list_field< u 'Q', u 'G', u 'S', u 'N', u 'A', u 'P', u 'Z', u' ' > market_category_t
Represent the 'Market Category' field on a 'Stock Directory' message.
static constexpr int message_type
BOOST_AUTO_TEST_CASE(decode_stock_directory_message)
char_list_field< u 'Y', u 'N', u' '> etp_flag_t
Represent the 'ETP Flag' field on a 'Stock Directory' message.
char_list_field< u 'D', u 'E', u 'Q', u 'S', u 'G', u 'H', u 'J', u 'K', u 'C', u 'N', u' ' > financial_status_indicator_t
Represent the 'Financial Status Indicator' field on a 'Stock Directory' message.
std::pair< char const *, std::size_t > stock_directory()
std::chrono::nanoseconds expected_ts()
Return the expected timestamp for all the test messages.
char_list_field< u 'Y', u 'N', u' '> short_sale_threshold_indicator_t
Represent the 'Short Sale Threshold Indicator' field on a 'Stock Directory' message.
char_list_field< u '1', u '2', u' '> luld_reference_price_tier_t
Represent the 'LULD Reference Price Tier' field on a 'Stock Directory' message.