diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-06-14 14:09:52 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-06-14 14:09:52 +0100 |
| commit | 07e94266c1225d99c462bc43a7f2704dcaf0413c (patch) | |
| tree | bd058f3fd67f53a79775514cc0f9c6253aea9c18 /test | |
| parent | b86d99bcf4f588b4f07f94bd14f44d559072f384 (diff) | |
| parent | 8837fe70049bd5ed7ab583c06d6c9a620a01b351 (diff) | |
Merge branch '1.0' of git.carlh.net:git/libdcp into 1.0
Diffstat (limited to 'test')
| -rw-r--r-- | test/dcp_time_test.cc | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/test/dcp_time_test.cc b/test/dcp_time_test.cc index 9cd253c1..aff883ad 100644 --- a/test/dcp_time_test.cc +++ b/test/dcp_time_test.cc @@ -19,6 +19,9 @@ #include <boost/test/unit_test.hpp> #include "dcp_time.h" +#include "exceptions.h" + +using boost::optional; /** Check that dcp::Time works */ BOOST_AUTO_TEST_CASE (dcp_time) @@ -100,4 +103,36 @@ BOOST_AUTO_TEST_CASE (dcp_time) /* We must round down in rebase() */ a = dcp::Time (0, 2, 57, 999, 1000); BOOST_CHECK_EQUAL (a.rebase (250), dcp::Time (0, 2, 57, 249, 250)); + + /* Check some allowed constructions from string */ + + /* Interop type 1 */ + a = dcp::Time ("01:23:45:123", optional<int>()); + BOOST_CHECK_EQUAL (a, dcp::Time (1, 23, 45, 123, 250)); + /* Interop type 2 */ + a = dcp::Time ("01:23:45.123", optional<int>()); + BOOST_CHECK_EQUAL (a, dcp::Time (1, 23, 45, 123, 1000)); + /* SMPTE */ + a = dcp::Time ("01:23:45:12", 250); + BOOST_CHECK_EQUAL (a, dcp::Time (1, 23, 45, 12, 250)); + + /* Check some disallowed constructions from string */ + BOOST_CHECK_THROW (dcp::Time ("01:23:45:1234", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:45:1234:66", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:45:", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23::123", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01::45:123", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time (":23:45:123", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:45.1234", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:45.1234.66", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:45.", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:.123", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01::45.123", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time (":23:45.123", optional<int>()), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:45:123", 250), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:45:123:66", 250), dcp::DCPReadError); + BOOST_CHECK_THROW (dcp::Time ("01:23:45:", 250), dcp::DCPReadError); + 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); } |
