summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2016-08-22 16:06:29 +0100
committerCarl Hetherington <cth@carlh.net>2016-08-22 16:06:29 +0100
commitc178a9d89e489e37cd1db73c6b0d470616937966 (patch)
tree78476fabe6dc23a47ea4bb1fafb0ba8d7d2294ba
parentfab8525a625f1ad65f2ddcfbf6ac6c7a99c36b0e (diff)
Fix ridiculous thinko in Time::operator{<,>}
Before this x < x and x > x were true.
-rw-r--r--src/dcp_time.cc12
-rw-r--r--test/dcp_time_test.cc14
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));
}