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:
@@ -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
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user