[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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.