X-Git-Url: https://git.carlh.net/gitweb/?p=dcpomatic.git;a=blobdiff_plain;f=test%2Ftest.cc;h=c87f4e70b736d9c4e8d561fd8b9c1d0ca22a4fbc;hp=a3235eb626f0b1dcb6027ab41acff00416514beb;hb=1e517fcc4eb35f09b7f02f6843be361a62d20ed9;hpb=45d19dde4861fe9a729ba90ab1d8c486ab956529 diff --git a/test/test.cc b/test/test.cc index a3235eb62..c87f4e70b 100644 --- a/test/test.cc +++ b/test/test.cc @@ -46,6 +46,7 @@ #include #include #include +#include extern "C" { #include } @@ -232,7 +233,17 @@ check_mxf_audio_file (boost::filesystem::path ref, boost::filesystem::path check void check_image (boost::filesystem::path ref, boost::filesystem::path check, double threshold) { - /* XXX */ + using namespace MagickCore; + + Magick::Image ref_image; + ref_image.read (ref.string ()); + Magick::Image check_image; + check_image.read (check.string ()); + /* XXX: this is a hack; we really want the ImageMagick call but GraphicsMagick doesn't have it; + this may cause random test failures on platforms that use GraphicsMagick. + */ + double const dist = ref_image.compare(check_image, Magick::RootMeanSquaredErrorMetric); + BOOST_CHECK_MESSAGE (dist < threshold, ref << " differs from " << check << " " << dist); } void @@ -408,7 +419,10 @@ wait_for_jobs () void write_image (shared_ptr image, boost::filesystem::path file, string format) { - /* XXX */ + using namespace MagickCore; + + Magick::Image m (image->size().width, image->size().height, format.c_str(), CharPixel, (void *) image->data()[0]); + m.write (file.string ()); } void