3 #include <boost/test/unit_test.hpp> 14 std::memset(buffer, 0,
sizeof(buffer));
15 std::memcpy(buffer,
"\x00\x12\xD6\x87", 4);
16 auto actual = decoder<true, tested>::r(16, buffer, 0);
17 BOOST_CHECK_EQUAL(actual.as_integer(), 1234567);
18 BOOST_CHECK_CLOSE(actual.as_double(), 123.4567, 0.0001);
20 actual = decoder<false, tested>::r(16, buffer, 0);
21 BOOST_CHECK_EQUAL(actual.as_integer(), 1234567);
22 BOOST_CHECK_CLOSE(actual.as_double(), 123.4567, 0.0001);
24 std::memset(buffer, 0,
sizeof(buffer));
25 std::memcpy(buffer,
"\x0D\xFB\x38\xD2", 4);
26 actual = decoder<true, tested>::r(16, buffer, 0);
27 BOOST_CHECK_EQUAL(actual.as_integer(), 234567890);
28 BOOST_CHECK_CLOSE(actual.as_double(), 23456.7890, 0.0001);
30 actual = decoder<false, tested>::r(16, buffer, 0);
31 BOOST_CHECK_EQUAL(actual.as_integer(), 234567890);
32 BOOST_CHECK_CLOSE(actual.as_double(), 23456.7890, 0.0001);
44 std::memset(buffer, 0,
sizeof(buffer));
45 std::memcpy(buffer,
"\x00\x04\x62\xD5\x37\xE7\xEF\x4E", 8);
46 auto actual = decoder<true, tested>::r(16, buffer, 0);
47 BOOST_CHECK_EQUAL(actual.as_integer(), 1234567812345678ULL);
48 BOOST_CHECK_CLOSE(actual.as_double(), 12345678.12345678, 0.0001);
50 actual = decoder<false, tested>::r(16, buffer, 0);
51 BOOST_CHECK_EQUAL(actual.as_integer(), 1234567812345678ULL);
52 BOOST_CHECK_CLOSE(actual.as_double(), 12345678.12345678, 0.0001);
64 std::memset(buffer, 0,
sizeof(buffer));
65 std::memcpy(buffer,
"\x00\xBC\x4B\x9B", 4);
66 auto actual = decoder<true, tested>::r(16, buffer, 0);
68 std::ostringstream os;
70 BOOST_CHECK_EQUAL(os.str(),
"1234.0123");
82 std::memset(buffer, 0,
sizeof(buffer));
83 std::memcpy(buffer,
"\x00\x2B\xDC\x54\x5D\x58\xA3\xE0", 8);
84 auto actual = decoder<true, tested>::r(16, buffer, 0);
86 std::ostringstream os;
88 BOOST_CHECK_EQUAL(os.str(),
"123456789.00012000");
100 px_res = px_1 + px_2;
113 px_res = px_1 + px_2;
Define the interface to decode ITCH-5.0 messages and message fields.
BOOST_AUTO_TEST_CASE(decode_price_field_4)