3 #include <boost/test/unit_test.hpp> 12 stats.
sample(std::chrono::seconds(1), std::chrono::microseconds(1));
14 std::chrono::seconds(1) + std::chrono::microseconds(1),
15 std::chrono::microseconds(1));
17 std::chrono::seconds(1) + std::chrono::microseconds(2),
18 std::chrono::microseconds(1));
20 std::chrono::seconds(1) + std::chrono::microseconds(3),
21 std::chrono::microseconds(1));
24 std::chrono::seconds(601) + std::chrono::microseconds(1),
25 std::chrono::microseconds(2));
34 std::ostringstream header;
36 BOOST_CHECK_EQUAL(header.str().substr(0, 5), std::string(
"Name,"));
38 std::string h = header.str();
39 int nheaders = std::count(h.begin(), h.end(),
',');
41 std::ostringstream body;
43 BOOST_CHECK_EQUAL(body.str().substr(0, 10), std::string(
"testing,0,"));
44 std::string b = body.str();
45 int nfields = std::count(b.begin(), b.end(),
',');
46 BOOST_CHECK_EQUAL(nfields, nheaders);
48 stats.
sample(std::chrono::seconds(600), std::chrono::microseconds(2));
49 stats.
sample(std::chrono::seconds(601), std::chrono::microseconds(2));
50 stats.
sample(std::chrono::seconds(602), std::chrono::microseconds(2));
51 stats.
sample(std::chrono::seconds(603), std::chrono::microseconds(2));
55 BOOST_CHECK_EQUAL(body.str().substr(0, 10), std::string(
"testing,4,"));
57 nfields = std::count(b.begin(), b.end(),
',');
58 BOOST_CHECK_EQUAL(nfields, nheaders);
60 BOOST_TEST_MESSAGE(
"CSV Output for inspection: \n" << h << b);
69 BOOST_CHECK_NO_THROW(config().validate());
92 stats.
sample(std::chrono::seconds(1), std::chrono::microseconds(1));
96 std::chrono::seconds(1) + std::chrono::microseconds(2),
97 std::chrono::microseconds(2));
99 std::chrono::seconds(1) + std::chrono::microseconds(3),
100 std::chrono::microseconds(3));
102 std::chrono::seconds(1) + std::chrono::microseconds(1002),
103 std::chrono::microseconds(4));
105 std::chrono::seconds(1) + std::chrono::microseconds(1003),
106 std::chrono::microseconds(5));
108 std::chrono::seconds(2) + std::chrono::microseconds(2),
109 std::chrono::microseconds(4));
111 std::chrono::seconds(2) + std::chrono::microseconds(3),
112 std::chrono::microseconds(5));
std::int64_t max_interarrival_time_nanoseconds
int reporting_interval_seconds
int max_messages_per_millisecond
Keep statistics about a feed and its offline processor.
void sample(event_timestamp_t ts, duration_t processing_latency)
Record a sample, that is process a message received at the given timestamp.
int max_messages_per_microsecond
void print_csv(std::string const &name, std::ostream &os) const
Print all the measurements in CSV format.
A simple class to communicate the result of parsing the options.
BOOST_AUTO_TEST_CASE(offline_feed_statististics_simple)
void log_final_progress() const
Final progress report at the end of the input.
static void print_csv_header(std::ostream &os)
Print a CSV header.
int max_processing_latency_nanoseconds
Configure an offline_feed_statistics object.
int max_messages_per_second