diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-08-22 16:06:29 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-08-22 16:06:29 +0100 |
| commit | c178a9d89e489e37cd1db73c6b0d470616937966 (patch) | |
| tree | 78476fabe6dc23a47ea4bb1fafb0ba8d7d2294ba | |
| parent | fab8525a625f1ad65f2ddcfbf6ac6c7a99c36b0e (diff) | |
Fix ridiculous thinko in Time::operator{<,>}
Before this x < x and x > x were true.
| -rw-r--r-- | src/dcp_time.cc | 12 | ||||
| -rw-r--r-- | test/dcp_time_test.cc | 14 |
2 files changed, 16 insertions, 10 deletions
diff --git a/src/dcp_time.cc b/src/dcp_time.cc index d397d9d7..50946f4c 100644 --- a/src/dcp_time.cc +++ b/src/dcp_time.cc @@ -208,11 +208,7 @@ dcp::operator< (Time const & a, Time const & b) return a.s < b.s; } - if ((a.e * b.tcr) != (b.e * a.tcr)) { - return (a.e * b.tcr) < (b.e * a.tcr); - } - - return true; + return (a.e * b.tcr) < (b.e * a.tcr); } bool @@ -230,11 +226,7 @@ dcp::operator> (Time const & a, Time const & b) return a.s > b.s; } - if ((a.e * b.tcr) != (b.e * a.tcr)) { - return (a.e * b.tcr) > (b.e * a.tcr); - } - - return true; + return (a.e * b.tcr) > (b.e * a.tcr); } ostream & diff --git a/test/dcp_time_test.cc b/test/dcp_time_test.cc index 0d559011..099892b1 100644 --- a/test/dcp_time_test.cc +++ b/test/dcp_time_test.cc @@ -136,4 +136,18 @@ BOOST_AUTO_TEST_CASE (dcp_time) BOOST_CHECK_THROW (dcp::Time ("01:23::123", 250), dcp::DCPReadError); BOOST_CHECK_THROW (dcp::Time ("01::45:123", 250), dcp::DCPReadError); BOOST_CHECK_THROW (dcp::Time (":23:45:123", 250), dcp::DCPReadError); + + /* Check operator< and operator> */ + BOOST_CHECK (dcp::Time (3, 2, 3, 4, 24) < dcp::Time (3, 2, 3, 5, 24)); + BOOST_CHECK (!(dcp::Time (3, 2, 3, 4, 24) < dcp::Time (3, 2, 3, 4, 24))); + BOOST_CHECK (dcp::Time (3, 2, 3, 5, 24) > dcp::Time (3, 2, 3, 4, 24)); + BOOST_CHECK (!(dcp::Time (3, 2, 3, 4, 24) > dcp::Time (3, 2, 3, 4, 24))); + BOOST_CHECK (dcp::Time (6, 0, 0, 0, 24) < dcp::Time (7, 0, 0, 0, 24)); + BOOST_CHECK (dcp::Time (0, 6, 0, 0, 24) < dcp::Time (0, 7, 0, 0, 24)); + BOOST_CHECK (dcp::Time (0, 0, 6, 0, 24) < dcp::Time (0, 0, 7, 0, 24)); + BOOST_CHECK (dcp::Time (0, 0, 0, 6, 24) < dcp::Time (0, 0, 0, 7, 24)); + BOOST_CHECK (dcp::Time (7, 0, 0, 0, 24) > dcp::Time (6, 0, 0, 0, 24)); + BOOST_CHECK (dcp::Time (0, 7, 0, 0, 24) > dcp::Time (0, 6, 0, 0, 24)); + BOOST_CHECK (dcp::Time (0, 0, 7, 0, 24) > dcp::Time (0, 0, 6, 0, 24)); + BOOST_CHECK (dcp::Time (0, 0, 0, 7, 24) > dcp::Time (0, 0, 0, 6, 24)); } |
