Add another unit test.
authorCarl Hetherington <cth@carlh.net>
Wed, 2 Sep 2015 11:37:54 +0000 (12:37 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 2 Sep 2015 11:37:54 +0000 (12:37 +0100)
test/colour_conversion_test.cc

index da6600f08abc58b042b16ea357dcbb48852dc45b..eb4b79ef892b52d6050009b6f66d7163de994b3f 100644 (file)
  */
 
 #include "lib/colour_conversion.h"
  */
 
 #include "lib/colour_conversion.h"
+#include "lib/film.h"
 #include <dcp/colour_matrix.h>
 #include <dcp/gamma_transfer_function.h>
 #include <libxml++/libxml++.h>
 #include <boost/test/unit_test.hpp>
 #include <dcp/colour_matrix.h>
 #include <dcp/gamma_transfer_function.h>
 #include <libxml++/libxml++.h>
 #include <boost/test/unit_test.hpp>
+#include <boost/foreach.hpp>
 
 using std::cout;
 using boost::shared_ptr;
 
 using std::cout;
 using boost::shared_ptr;
@@ -97,3 +99,16 @@ BOOST_AUTO_TEST_CASE (colour_conversion_test3)
                "</Test>\n"
                );
 }
                "</Test>\n"
                );
 }
+
+/** Test a round trip via the XML representation */
+BOOST_AUTO_TEST_CASE (colour_conversion_test4)
+{
+       BOOST_FOREACH (PresetColourConversion const & i, PresetColourConversion::all ()) {
+               xmlpp::Document out;
+               xmlpp::Element* out_root = out.create_root_node ("Test");
+               i.conversion.as_xml (out_root);
+               shared_ptr<cxml::Document> in (new cxml::Document ("Test"));
+               in->read_string (out.write_to_string ("UTF-8"));
+               BOOST_CHECK (ColourConversion::from_xml (in, Film::current_state_version).get () == i.conversion);
+       }
+}