JayBeams  0.1
Another project to have fun coding.
ut_as_hhmmss.cpp
Go to the documentation of this file.
1 #include <jb/as_hhmmss.hpp>
2 
3 #include <boost/test/unit_test.hpp>
4 
5 namespace {
6 
7 std::chrono::microseconds::rep usec = 1000000;
8 
9 } // anonymous namespace
10 
11 /**
12  * @test Verify that hhmmssu works correctly:
13  */
14 BOOST_AUTO_TEST_CASE(hhmmssu_ios) {
15  {
16  // 13:14:15.123 in microseconds
17  std::chrono::microseconds t(((13 * 60 + 14) * 60 + 15) * usec + 123000);
18 
19  std::ostringstream os;
20  os << jb::as_hhmmssu(t);
21  BOOST_CHECK_EQUAL(os.str(), "131415.123000");
22  }
23 
24  {
25  // 09:05:04.000123 in microseconds
26  std::chrono::microseconds t(((9 * 60 + 5) * 60 + 4) * usec + 123);
27 
28  std::ostringstream os;
29  os << jb::as_hhmmssu(t);
30  BOOST_CHECK_EQUAL(os.str(), "090504.000123");
31  }
32 }
33 
34 /**
35  * @test Verify that hhmmss works correctly:
36  */
37 BOOST_AUTO_TEST_CASE(hhmmss_ios) {
38  {
39  // 13:14:15.123 in microseconds
40  std::chrono::microseconds t(((13 * 60 + 14) * 60 + 15) * usec + 123000);
41 
42  std::ostringstream os;
43  os << jb::as_hhmmss(t);
44  BOOST_CHECK_EQUAL(os.str(), "131415");
45  }
46 
47  {
48  // 09:05:02.123 in microseconds
49  std::chrono::microseconds t(((9 * 60 + 5) * 60 + 2) * usec + 123000);
50 
51  std::ostringstream os;
52  os << jb::as_hhmmss(t);
53  BOOST_CHECK_EQUAL(os.str(), "090502");
54  }
55 }
56 
57 /**
58  * @test Verify that as_hh_mm_ss_u works correctly:
59  */
60 BOOST_AUTO_TEST_CASE(as_hh_mm_ss_u_ios) {
61  {
62  // 13:14:15.123 in microseconds
63  std::chrono::microseconds t(((13 * 60 + 14) * 60 + 15) * usec + 123000);
64 
65  std::ostringstream os;
66  os << jb::as_hh_mm_ss_u(t);
67  BOOST_CHECK_EQUAL(os.str(), "13:14:15.123000");
68  }
69 
70  {
71  // 09:05:04.000123 in microseconds
72  std::chrono::microseconds t(((9 * 60 + 5) * 60 + 4) * usec + 123);
73 
74  std::ostringstream os;
75  os << jb::as_hh_mm_ss_u(t);
76  BOOST_CHECK_EQUAL(os.str(), "09:05:04.000123");
77  }
78 }
Helper class to print time durations s in HHMMSS format.
Definition: as_hhmmss.hpp:35
Helper class to print time durations in a HHMMSS.UUUUUU format.
Definition: as_hhmmss.hpp:12
Helper class to print time durations in HH:MM:SS.UUUUUU format.
Definition: as_hhmmss.hpp:58
BOOST_AUTO_TEST_CASE(hhmmssu_ios)