Add a unit test for wxImage::Scale() method.

Check that resizing the test horse image produces the same results in the
future as it does now, by saving the current results in files and verifying
that images resized directly and loaded from these files are the same.

See #15281.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74318 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2013-07-01 14:47:12 +00:00
parent 8e125ff114
commit d9a4a0d022
18 changed files with 68 additions and 7 deletions

View File

@@ -79,6 +79,7 @@ private:
CPPUNIT_TEST( GIFComment );
CPPUNIT_TEST( DibPadding );
CPPUNIT_TEST( BMPFlippingAndRLECompression );
CPPUNIT_TEST( ScaleCompare );
CPPUNIT_TEST_SUITE_END();
void LoadFromSocketStream();
@@ -94,6 +95,7 @@ private:
void GIFComment();
void DibPadding();
void BMPFlippingAndRLECompression();
void ScaleCompare();
DECLARE_NO_COPY_CLASS(ImageTestCase)
};
@@ -1343,6 +1345,48 @@ void ImageTestCase::BMPFlippingAndRLECompression()
CompareBMPImage("image/horse_rle4.bmp", "image/horse_rle4_flipped.bmp");
}
#define ASSERT_IMAGE_EQUAL_TO_FILE(image, file) \
{ \
wxImage imageFromFile(file); \
CPPUNIT_ASSERT_MESSAGE( "Failed to load " file, imageFromFile.IsOk() ); \
CPPUNIT_ASSERT_EQUAL( imageFromFile, image ); \
}
void ImageTestCase::ScaleCompare()
{
wxImage original;
CPPUNIT_ASSERT(original.LoadFile("horse.bmp"));
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale( 50, 50, wxIMAGE_QUALITY_BICUBIC),
"image/horse_bicubic_50x50.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(100, 100, wxIMAGE_QUALITY_BICUBIC),
"image/horse_bicubic_100x100.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(150, 150, wxIMAGE_QUALITY_BICUBIC),
"image/horse_bicubic_150x150.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(300, 300, wxIMAGE_QUALITY_BICUBIC),
"image/horse_bicubic_300x300.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale( 50, 50, wxIMAGE_QUALITY_BOX_AVERAGE),
"image/horse_box_average_50x50.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(100, 100, wxIMAGE_QUALITY_BOX_AVERAGE),
"image/horse_box_average_100x100.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(150, 150, wxIMAGE_QUALITY_BOX_AVERAGE),
"image/horse_box_average_150x150.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(300, 300, wxIMAGE_QUALITY_BOX_AVERAGE),
"image/horse_box_average_300x300.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale( 50, 50, wxIMAGE_QUALITY_BILINEAR),
"image/horse_bilinear_50x50.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(100, 100, wxIMAGE_QUALITY_BILINEAR),
"image/horse_bilinear_100x100.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(150, 150, wxIMAGE_QUALITY_BILINEAR),
"image/horse_bilinear_150x150.png");
ASSERT_IMAGE_EQUAL_TO_FILE(original.Scale(300, 300, wxIMAGE_QUALITY_BILINEAR),
"image/horse_bilinear_300x300.png");
}
#endif //wxUSE_IMAGE