[PATCH 2/3] test: Test a variety of scales when downscaling
"Bryce W. Harrington" <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <5A5FB412583EA944A1D0228D52A9C57263B97F@sisaex02sj> |
Downscaling from 96 to 24 is easy since it's an even multiple, so try scaling by -1 pixel too. This adds a 1:1 scaling test case as well, which should pass through the image unchanged. Signed-off-by: Bryce Harrington <[email protected]> --- test/pixman-downscale.c | 25 +++++++++++++++++++------ test/reference/pixman-downscale-24.ref.png | Bin 0 -> 191 bytes test/reference/pixman-downscale-95.ref.png | Bin 0 -> 285 bytes test/reference/pixman-downscale-96.ref.png | Bin 0 -> 301 bytes test/reference/pixman-downscale.ref.png | Bin 191 -> 0 bytes 5 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 test/reference/pixman-downscale-24.ref.png create mode 100644 test/reference/pixman-downscale-95.ref.png create mode 100644 test/reference/pixman-downscale-96.ref.png delete mode 100644 test/reference/pixman-downscale.ref.png diff --git a/test/pixman-downscale.c b/test/pixman-downscale.c index 0562015..1f8a9b4 100644 --- a/test/pixman-downscale.c +++ b/test/pixman-downscale.c @@ -44,13 +44,12 @@ draw (cairo_t *cr, int width, int height) cairo_set_source_rgb (cr, 1, 1, 1); image = cairo_test_create_surface_from_png (ctx, png_filename); - x_scale = WIDTH * 1.0 / cairo_image_surface_get_width (image); - y_scale = HEIGHT * 1.0 / cairo_image_surface_get_height (image); + x_scale = width * 1.0 / cairo_image_surface_get_width (image); + y_scale = height * 1.0 / cairo_image_surface_get_height (image); scale = fmin(x_scale, y_scale); cairo_save (cr); - cairo_set_antialias (cr, CAIRO_ANTIALIAS_NONE); - cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_NEAREST); + cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_FAST); cairo_scale (cr, scale, scale); cairo_set_source_surface (cr, image, 0, 0); cairo_paint (cr); @@ -60,9 +59,23 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } -CAIRO_TEST (pixman_downscale, - "Exposes errors when downscaling", +CAIRO_TEST (pixman_downscale_96, + "Tests scaling to equivalent size", "image, transform, raster", /* keywords */ NULL, /* requirements */ 96, 96, NULL, draw) + +CAIRO_TEST (pixman_downscale_95, + "Tests downscaling by a single pixel", + "image, transform, raster", /* keywords */ + NULL, /* requirements */ + 95, 95, + NULL, draw) + +CAIRO_TEST (pixman_downscale_24, + "Tests downscaling by an even multiple", + "image, transform, raster", /* keywords */ + NULL, /* requirements */ + 24, 24, + NULL, draw) diff --git a/test/reference/pixman-downscale-24.ref.png b/test/reference/pixman-downscale-24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f9c0d84f3f48d00fdb0f3f08ae587754a269d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&awa`qBWUsv|K>|BC!7IA*pm4QNmo-U3d7N_3^pXOpv;3&RWA0EGNU1}T4 zrIUAMg4_8gwy>{ZJlV~aSJYV)vi6&EaICP+3<LMb7lqjZ5!yx;9>LS69R3%PQJ;M; gq~!8p8PysezC2Ei17|)i02<EV>FVdQ&MBb@0ICT&&j0`b literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-95.ref.png b/test/reference/pixman-downscale-95.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0a5917665f68cb6be8c3e80491e0b918111ac9a1 GIT binary patch literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1SA>tdKQ7G;vjb?hIQv;UIICs1s;*b3=G`D zAk4@xYmNj^kiEpy*OmP)JC~q=p!jdMWT4P`PZ!6Kid%1Q2XZwi2sk*J?<z0*^p>TL zLwe?!-@PvEtqZbzC#iS>QN3PT{)scw(?wpd`L@CF#f62=?R;~2tzOFoznj%qbx`8w zTUqsPK3S`h7ad>{q@WL?OxCK}<gcAJoBY8qn>0mxMBYlpZ7iRo15^rB<PIj=L3&)k vWLWmU@6T$g-FBX<dJ8fRqz2-IU%S`?lQ`R|?%m!FbUK5ltDnm{r-UW|k@jd- literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-96.ref.png b/test/reference/pixman-downscale-96.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0d68a82cc27532aa78fc12af7646f6821a730a2b GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^ zD(1Ysy^*iUK*S+1>rej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlH<ByqM{lP1D%YXuKdqK|r@Q}6kF=t0) R<@7`l*VEO{Wt~$(698O(XEy)< literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale.ref.png b/test/reference/pixman-downscale.ref.png deleted file mode 100644 index df0f9c0d84f3f48d00fdb0f3f08ae587754a269d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&awa`qBWUsv|K>|BC!7IA*pm4QNmo-U3d7N_3^pXOpv;3&RWA0EGNU1}T4 zrIUAMg4_8gwy>{ZJlV~aSJYV)vi6&EaICP+3<LMb7lqjZ5!yx;9>LS69R3%PQJ;M; gq~!8p8PysezC2Ei17|)i02<EV>FVdQ&MBb@0ICT&&j0`b -- 1.7.9.5 -- Bryce Harrington Senior Open Source Developer - [email protected] Open Source Group - Samsung Research America -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo