3 #include <boost/test/unit_test.hpp> 12 using namespace std::chrono;
15 std::memset(buffer, 0,
sizeof(buffer));
16 std::memcpy(buffer,
"\x00\x00\x64\x59", 4);
19 duration_cast<seconds>(hours(7) + minutes(8) + seconds(9)).count();
21 auto actual = decoder<true, seconds_field>::r(16, buffer, 0);
22 BOOST_CHECK_EQUAL(actual.int_seconds(), expected);
24 actual = decoder<false, seconds_field>::r(16, buffer, 0);
25 BOOST_CHECK_EQUAL(actual.int_seconds(), expected);
29 std::memset(buffer, 0,
sizeof(buffer));
30 BOOST_CHECK_NO_THROW((decoder<true, seconds_field>::r(16, buffer, 2)));
31 BOOST_CHECK_NO_THROW((decoder<true, seconds_field>::r(16, buffer, 12)));
33 (decoder<true, seconds_field>::r(16, buffer, 13)), std::runtime_error);
34 BOOST_CHECK_NO_THROW((decoder<false, seconds_field>::r(16, buffer, 13)));
46 std::memset(buffer, 0,
sizeof(buffer));
47 std::memcpy(buffer,
"\x00\x01\x51\x80", 4);
50 (decoder<true, seconds_field>::r(16, buffer, 0)), std::runtime_error);
51 BOOST_CHECK_NO_THROW((decoder<false, seconds_field>::r(16, buffer, 0)));
59 using namespace std::chrono;
63 auto nn = duration_cast<seconds>(hours(7) + minutes(8) + seconds(9));
64 std::ostringstream os;
65 os << seconds_field(nn);
66 BOOST_CHECK_EQUAL(os.str(),
"07:08:09");
70 auto nn = duration_cast<seconds>(hours(9) + minutes(30) + seconds(0));
71 std::ostringstream os;
72 os << seconds_field{nn};
73 BOOST_CHECK_EQUAL(os.str(),
"09:30:00");
77 auto nn = duration_cast<seconds>(hours(15) + minutes(59) + seconds(59));
78 std::ostringstream os;
79 os << seconds_field{nn};
80 BOOST_CHECK_EQUAL(os.str(),
"15:59:59");
84 auto nn = duration_cast<seconds>(hours(16) + minutes(0) + seconds(0));
85 std::ostringstream os;
86 os << seconds_field{nn};
87 BOOST_CHECK_EQUAL(os.str(),
"16:00:00");
Represent a ITCH-5.0 seconds_field.
BOOST_AUTO_TEST_CASE(decode_seconds_field)
Define the interface to decode ITCH-5.0 messages and message fields.