From: Vadim Zeitlin Date: Mon, 1 Jul 2013 14:47:12 +0000 (+0000) Subject: Add a unit test for wxImage::Scale() method. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d9a4a0d022f4a2d03422411eb93e5b9dc28d5d4c 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 --- diff --git a/tests/image/horse_bicubic_100x100.png b/tests/image/horse_bicubic_100x100.png new file mode 100644 index 0000000000..1ac57b0585 Binary files /dev/null and b/tests/image/horse_bicubic_100x100.png differ diff --git a/tests/image/horse_bicubic_150x150.png b/tests/image/horse_bicubic_150x150.png new file mode 100644 index 0000000000..7e4c81de25 Binary files /dev/null and b/tests/image/horse_bicubic_150x150.png differ diff --git a/tests/image/horse_bicubic_300x300.png b/tests/image/horse_bicubic_300x300.png new file mode 100644 index 0000000000..1bcce1ca8a Binary files /dev/null and b/tests/image/horse_bicubic_300x300.png differ diff --git a/tests/image/horse_bicubic_50x50.png b/tests/image/horse_bicubic_50x50.png new file mode 100644 index 0000000000..1ad94a2609 Binary files /dev/null and b/tests/image/horse_bicubic_50x50.png differ diff --git a/tests/image/horse_bilinear_100x100.png b/tests/image/horse_bilinear_100x100.png new file mode 100644 index 0000000000..390ed5843c Binary files /dev/null and b/tests/image/horse_bilinear_100x100.png differ diff --git a/tests/image/horse_bilinear_150x150.png b/tests/image/horse_bilinear_150x150.png new file mode 100644 index 0000000000..b17ca3a603 Binary files /dev/null and b/tests/image/horse_bilinear_150x150.png differ diff --git a/tests/image/horse_bilinear_300x300.png b/tests/image/horse_bilinear_300x300.png new file mode 100644 index 0000000000..d4c5d06f76 Binary files /dev/null and b/tests/image/horse_bilinear_300x300.png differ diff --git a/tests/image/horse_bilinear_50x50.png b/tests/image/horse_bilinear_50x50.png new file mode 100644 index 0000000000..6e7a7eee2d Binary files /dev/null and b/tests/image/horse_bilinear_50x50.png differ diff --git a/tests/image/horse_box_average_100x100.png b/tests/image/horse_box_average_100x100.png new file mode 100644 index 0000000000..7e4b0a069d Binary files /dev/null and b/tests/image/horse_box_average_100x100.png differ diff --git a/tests/image/horse_box_average_150x150.png b/tests/image/horse_box_average_150x150.png new file mode 100644 index 0000000000..bd42d0ca70 Binary files /dev/null and b/tests/image/horse_box_average_150x150.png differ diff --git a/tests/image/horse_box_average_300x300.png b/tests/image/horse_box_average_300x300.png new file mode 100644 index 0000000000..bb4bb6bbf6 Binary files /dev/null and b/tests/image/horse_box_average_300x300.png differ diff --git a/tests/image/horse_box_average_50x50.png b/tests/image/horse_box_average_50x50.png new file mode 100644 index 0000000000..5d06ced576 Binary files /dev/null and b/tests/image/horse_box_average_50x50.png differ diff --git a/tests/image/image.cpp b/tests/image/image.cpp index f0f8ad2c4c..0201f271e5 100644 --- a/tests/image/image.cpp +++ b/tests/image/image.cpp @@ -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 diff --git a/tests/makefile.bcc b/tests/makefile.bcc index 74b2218b56..331b2563cb 100644 --- a/tests/makefile.bcc +++ b/tests/makefile.bcc @@ -486,7 +486,7 @@ data: data-images: if not exist image mkdir image - for %f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp) do if not exist image\%f copy .\image\%f image + for %f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp horse_bicubic_50x50.png horse_bicubic_100x100.png horse_bicubic_150x150.png horse_bicubic_300x300.png horse_bilinear_50x50.png horse_bilinear_100x100.png horse_bilinear_150x150.png horse_bilinear_300x300.png horse_box_average_50x50.png horse_box_average_100x100.png horse_box_average_150x150.png horse_box_average_300x300.png) do if not exist image\%f copy .\image\%f image fr: if not exist $(OBJS)\intl\fr mkdir $(OBJS)\intl\fr diff --git a/tests/makefile.gcc b/tests/makefile.gcc index 252a63a5c0..b64a38ad07 100644 --- a/tests/makefile.gcc +++ b/tests/makefile.gcc @@ -475,7 +475,7 @@ data: data-images: if not exist image mkdir image - for %%f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp) do if not exist image\%%f copy .\image\%%f image + for %%f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp horse_bicubic_50x50.png horse_bicubic_100x100.png horse_bicubic_150x150.png horse_bicubic_300x300.png horse_bilinear_50x50.png horse_bilinear_100x100.png horse_bilinear_150x150.png horse_bilinear_300x300.png horse_box_average_50x50.png horse_box_average_100x100.png horse_box_average_150x150.png horse_box_average_300x300.png) do if not exist image\%%f copy .\image\%%f image fr: if not exist $(OBJS)\intl\fr mkdir $(OBJS)\intl\fr diff --git a/tests/makefile.vc b/tests/makefile.vc index 5890b203a1..4054a2f575 100644 --- a/tests/makefile.vc +++ b/tests/makefile.vc @@ -626,7 +626,7 @@ data: data-images: if not exist image mkdir image - for %f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp) do if not exist image\%f copy .\image\%f image + for %f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp horse_bicubic_50x50.png horse_bicubic_100x100.png horse_bicubic_150x150.png horse_bicubic_300x300.png horse_bilinear_50x50.png horse_bilinear_100x100.png horse_bilinear_150x150.png horse_bilinear_300x300.png horse_box_average_50x50.png horse_box_average_100x100.png horse_box_average_150x150.png horse_box_average_300x300.png) do if not exist image\%f copy .\image\%f image fr: if not exist $(OBJS)\intl\fr mkdir $(OBJS)\intl\fr diff --git a/tests/makefile.wat b/tests/makefile.wat index 8c4d53fdb5..88a3f23823 100644 --- a/tests/makefile.wat +++ b/tests/makefile.wat @@ -535,7 +535,7 @@ data : .SYMBOLIC data-images : .SYMBOLIC if not exist image mkdir image - for %f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp) do if not exist image\%f copy .\image\%f image + for %f in (horse_grey.bmp horse_grey_flipped.bmp horse_rle4.bmp horse_rle4_flipped.bmp horse_rle8.bmp horse_rle8_flipped.bmp horse_bicubic_50x50.png horse_bicubic_100x100.png horse_bicubic_150x150.png horse_bicubic_300x300.png horse_bilinear_50x50.png horse_bilinear_100x100.png horse_bilinear_150x150.png horse_bilinear_300x300.png horse_box_average_50x50.png horse_box_average_100x100.png horse_box_average_150x150.png horse_box_average_300x300.png) do if not exist image\%f copy .\image\%f image fr : .SYMBOLIC if not exist $(OBJS)\intl\fr mkdir $(OBJS)\intl\fr diff --git a/tests/test.bkl b/tests/test.bkl index cedfbe8c58..4fc52db5a8 100644 --- a/tests/test.bkl +++ b/tests/test.bkl @@ -246,9 +246,26 @@ $(SRCDIR)/image image - horse_grey.bmp horse_grey_flipped.bmp - horse_rle4.bmp horse_rle4_flipped.bmp - horse_rle8.bmp horse_rle8_flipped.bmp + + horse_grey.bmp horse_grey_flipped.bmp + horse_rle4.bmp horse_rle4_flipped.bmp + horse_rle8.bmp horse_rle8_flipped.bmp + + horse_bicubic_50x50.png + horse_bicubic_100x100.png + horse_bicubic_150x150.png + horse_bicubic_300x300.png + + horse_bilinear_50x50.png + horse_bilinear_100x100.png + horse_bilinear_150x150.png + horse_bilinear_300x300.png + + horse_box_average_50x50.png + horse_box_average_100x100.png + horse_box_average_150x150.png + horse_box_average_300x300.png +