From bc25a3103f2fdb2e94e7ebfbc65335bf13583f71 Mon Sep 17 00:00:00 2001 From: Ryan Oldenburg <ryan@guzba.com> Date: Sun, 3 Oct 2021 19:56:02 -0500 Subject: [PATCH] f --- tests/images/diffs/smooth1.png | Bin 0 -> 376 bytes tests/images/diffs/smooth2.png | Bin 0 -> 841 bytes tests/images/diffs/smooth3.png | Bin 0 -> 371 bytes tests/images/diffs/smooth4.png | Bin 0 -> 415 bytes tests/images/masters/smooth1.png | Bin 0 -> 367 bytes tests/images/masters/smooth2.png | Bin 0 -> 763 bytes tests/images/masters/smooth3.png | Bin 0 -> 379 bytes tests/images/masters/smooth4.png | Bin 0 -> 420 bytes tests/images/rendered/smooth1.png | Bin 0 -> 369 bytes tests/images/rendered/smooth2.png | Bin 0 -> 896 bytes tests/images/rendered/smooth3.png | Bin 0 -> 366 bytes tests/images/rendered/smooth4.png | Bin 0 -> 390 bytes tests/test_images_draw.nim | 48 +++++++++++++++++++++++++++++- 13 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 tests/images/diffs/smooth1.png create mode 100644 tests/images/diffs/smooth2.png create mode 100644 tests/images/diffs/smooth3.png create mode 100644 tests/images/diffs/smooth4.png create mode 100644 tests/images/masters/smooth1.png create mode 100644 tests/images/masters/smooth2.png create mode 100644 tests/images/masters/smooth3.png create mode 100644 tests/images/masters/smooth4.png create mode 100644 tests/images/rendered/smooth1.png create mode 100644 tests/images/rendered/smooth2.png create mode 100644 tests/images/rendered/smooth3.png create mode 100644 tests/images/rendered/smooth4.png diff --git a/tests/images/diffs/smooth1.png b/tests/images/diffs/smooth1.png new file mode 100644 index 0000000000000000000000000000000000000000..9a5edb05e5877f8035363457e36070b1ba47600a GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$}jSV6^viaSW+oe0y;tFJpp;+eP)L z<`=pL7|MQqJ$7;S0UwpBi-q0Alfw5u*?s$V@x0xpuOIx|cQEzrt#{YgyiR*oSor^5 z!v3^v%S~U`Niz90ZQ&47_UKVCY&tR|7$?F%2QN3>Y`Zq{`)U9GpBjm9_!;XHrDv_y i%-sC@H{0=<m5guw+P^tw>pupDD1)b~pUXO@geCx@jfn^V literal 0 HcmV?d00001 diff --git a/tests/images/diffs/smooth2.png b/tests/images/diffs/smooth2.png new file mode 100644 index 0000000000000000000000000000000000000000..08fc36e4de98f5d71a97716e451ebaa484e2e0dc GIT binary patch literal 841 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$}jSU>5LnaSW+oe0$Z}>u7*T>qAy? z7U}LSP0bs`WZJjxO)g-0#3R#Wyg}&p?VGnUs%JN>bcuY#wpZ!Z$;vggo9aC#JCqge zvk7B}W1Mq**+w=NMK_h8h7M7MB-V}yMx`+9OnHUh4Br@fl2*^2P%n^V^OoT;*NytZ z{zuYB3<_8tFi6b5v-k(=&!$4=2aE?cR*TG6xNo5IU*n%c-H{D7i+?cv6g~W@`w{z- z^AgkiMdTI!AKUO};frRK<cNI%TO8ApBkBT595*FK*aet4Zc2{$rBS7D)IcX!M0dg? ziD`OWd>*De-omcTORU<KwqKH4BH6aI^^({U%eJM>m-t-R4qtM}WL9cV-0HrPU#UBB ztLsW`rT)aN&MVm;u^rB84q`td+ZHOn)TSevXSJSJq`-HHFxx3b3U?DCN&`+cl(Z*K zbw9~}Nw+OjOjX|lC}}yRMxp!QhEofkFh<I>O_fizJCS6#W{<{a2eJOdr_P@2oIPtl zEm+drvz*}^LrhNWjY-O<L=E^Du6c4#<TF~+_)_eE=cf<<9ywQW@{}K#Qda&_LB_&{ z`Ev4tJ?=f(2{#yKf0y-K+PuNxrv^XUZ1zK9{ge2c&$1_WyPoVm_^DyT(S=WrC;W7{ zkrZ$$VZ$DUHPus!By{XKUW+Z&Vbf+lw98qu|KO>{4S4~t5;km7IAiN&%M&KoveR{C z_rX^U2IU%G4I^v?p0O?EWn0aC=t<zM#0|d`e8iUOvSl+LdJ=Fec|)0k51T7<^H$cx zvw<ZB5!C|McwD)gGaEL%(x{T~VQ&d_zIY@dN@0yfmmb??=ES1`TMTEYah&d3)PJzV zF~UqlUcyJZ<*eJs=7V1xBaFKAd7d%1{FOc`&-R)5(7&EZ+{{;_87<b^mHG)cJd~Uv z$2f-}B7g2%kprd%ISps8DYE}$PPAY2<5+^7;|=pE&e!wXo{G2BI_@n0J@eO`e1SBL u-IGt(A1nLkC=s}$G(cWK7Ju5jCcSfe*|vFSGm?Q>gu&C*&t;ucLK6VOKU$#x literal 0 HcmV?d00001 diff --git a/tests/images/diffs/smooth3.png b/tests/images/diffs/smooth3.png new file mode 100644 index 0000000000000000000000000000000000000000..59ca693ff4460a3e635adbb8332b577628007341 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$}jSV6^gdaSW+oe0%30CzGLo!$rpE z4eX~kO<jA`PUoc56kP|wgC8RAHOsV5`15;C+A~Yz*_VGb+n$hX=5S16=@e9Pn;=0v zBh7ch?=yFj^#7ksO_Q_tt;_bE@H((*4r?Zf=8$A5s^UJOCjz&hl>NV}wmo`tVBdO9 zA!Uyq1;eHz9G@=gl+T)(`*ZCcRj3GD3M=CbxAK$I6CQXS&jJP}gQu&X%Q~loCIC`> BdWir4 literal 0 HcmV?d00001 diff --git a/tests/images/diffs/smooth4.png b/tests/images/diffs/smooth4.png new file mode 100644 index 0000000000000000000000000000000000000000..78aa339e241b06c07324e072966ac322ff8290a9 GIT binary patch literal 415 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$}jSU`+FLaSW+oe0#@`>yU#8+e7)F zn_W{Ak{|2t=?d=*|EQH&%qxBHR?tmm4YS`fS|lsJe)_aDrp)7$pOIBh{sjlAHb)_r zX$l)y8dW)T91}R1yaghf4iF<`s*t_2>$`{1chNPBmg<&jJN0Uw1y4#3pC~oKds6gu z+pb%jhrEb2j5sUtt6H<QL1vQAZI#)r=j~4JeeECgx#8xOvI^Di`THc+N(ub7hI#Lg o&Qo5`W1oWGX5%*y5gxx7N~Y>xsM(ro1q^rwPgg&ebxsLQ0B*dB3jhEB literal 0 HcmV?d00001 diff --git a/tests/images/masters/smooth1.png b/tests/images/masters/smooth1.png new file mode 100644 index 0000000000000000000000000000000000000000..9271e45f79cc4d685363e572be87a2116eacce48 GIT binary patch literal 367 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$`B3oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBITlYB$B+ufw-+4+4;u(D7;YC%aMwMNllGRy z^_ybgh4lA-t)J`MGdF%+W%TZMoJozirc+YO5spqlA!QXekDdt<iiSg2;QARIsd?S@ Y+GRZ6Y#pipfZ@a7>FVdQ&MBb@014=7?*IS* literal 0 HcmV?d00001 diff --git a/tests/images/masters/smooth2.png b/tests/images/masters/smooth2.png new file mode 100644 index 0000000000000000000000000000000000000000..de657ea7e9e73fb15382c439b4c0604e6265012a GIT binary patch literal 763 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$`B3oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&di3``R|T^vIy7~kH#oqNbZq$SbXYyJh!0L~H@ zPd_z(M<<Rq#WN$%>qiDwd{J*Xusi+v)9oiOelfLN#p5*1@q`gaB%9)Cg%rsao#qLt z0-I0-c^QlB=Ko(O_-oz~<|9vwDu2Z9a@}$HWlMWDzj$1*pV$-0V;mZj6xJJD34G#k z?_hx2M5doC&Z4etDZFh;T`VWWcuYmACUEemieydj;1Lyxn!v-uD&jT4ho?-$Y62He znuyi}FP<<FsR?{MZX#S0{CLc!lnJo$s7(nIP~#DsVkY3m!!|`sAgw2FN|69-kKdFa z0o5M8DMkXWJ$zGy1X6plrj$$&G|&nRa&$Yi!pW0aQgAVoDr-tgPtKHr3APC-i&~oA za4K`F@}%@jNNOl5R3GbbyUCN(6EVeC;aG=zByZ9F`%Cjep0-wR-sby$!t1YErHi%J z-F~|*C-ZZ9N8lp^CkL^`Er|;@yjQGt>pbMJ@cxzW9YURrhw4w?6817-^ZL29oL@sy zLgQ`ai4z);5*lASA9iTWl+gG)^OuLlO^FpLS5I<ih)S%;iJfNTCCa81yK_ZHP-o+* z>)*5%h9obTcJ)1%hOESj+<FdUFLAc4yN*XYE_F8E`YvI#uq0WbD|QEu29HEX+WabY zE^f9(vz}aNJk-+oB5iKSq78`(r!pNxHF_jE%HqP*xU|_8&C{6Pc&MlGMY^8bq7BIk zohz3JYH&$-q~*OA6A|T6F}+#E+a<&{Y4+cLoLy3ElWb%k%8I!1s8rXT&=v{hQK>z2 z&R8UsM}@cP-{KX?3O}6>_8otG|9<7X<%b^{tTcB{Ei(C;;E9?<Fw@OzcFnXED+)rc R>I2g%gQu&X%Q~loCIE3z93lV! literal 0 HcmV?d00001 diff --git a/tests/images/masters/smooth3.png b/tests/images/masters/smooth3.png new file mode 100644 index 0000000000000000000000000000000000000000..93668606794cfdc6e4b2a3db47ddd53fab3288ae GIT binary patch literal 379 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$`B3oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBIRQ@>$B+ufw|6gc9x>oyb$qQ={PNwKNoqo7 z2F$AxD(}zwpF8nm^b!ssWse>O!=@u7FxIo&tX@C!=byR7*DmX*xJ{67Ok(L2qz5By hPh9Rsvg~`tRCk0Yh=28-^T4oT@O1TaS?83{1OUvZZJz)D literal 0 HcmV?d00001 diff --git a/tests/images/masters/smooth4.png b/tests/images/masters/smooth4.png new file mode 100644 index 0000000000000000000000000000000000000000..71072c8250100a4602823b384976efc3d589e7a8 GIT binary patch literal 420 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$`B3oCO|{#S9GG!XV7ZFl&wkP>``W z$lZxy-8q?;Kn_c~qpu?a!^VE@KZ&eBIZIC$$B+ufw|4@2TO34KFU~v5b%4ohLqmv6 z0w?<!1*RaC=PGL#O!|Ix=lsv<6F!=I2&%YEkZ??5=_G;i?>O_eT<PP5J=>$Nm-<{b z$t$%>h@AGi{K@P4``$mlJ7*2429jhuisEMzU3X@8=FWTmv26SLlYeX0iEegmn=GpA j(W7A4bc92QXh!^3EzYpi<DdQj1C_zk)z4*}Q$iB}Y^sJd literal 0 HcmV?d00001 diff --git a/tests/images/rendered/smooth1.png b/tests/images/rendered/smooth1.png new file mode 100644 index 0000000000000000000000000000000000000000..c83aeca821e91d58b915316983a999740530882a GIT binary patch literal 369 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$}jSV6^abaSW+oe0y;tZzH3K+r{Y; zCm9xr?RD%~CeFQrcage_rq_SnbDnX3C%s>nmS%2zeCEyFN6jntG|AXGUNg>n$eXub zVfM_Me5~n?Q7oN;DsB@b9Fv9w<H`1)+dpTenHg{X`#pW15D_k~WZ!xIOlg{5-bY?N Z|F+^UOM5n6wgm<ygQu&X%Q~loCIB>BbGZNj literal 0 HcmV?d00001 diff --git a/tests/images/rendered/smooth2.png b/tests/images/rendered/smooth2.png new file mode 100644 index 0000000000000000000000000000000000000000..56d925a122ce3eababd315ed33a5a6af65520fe9 GIT binary patch literal 896 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$}jSV0QO(aSW+oe0z1T*O35$wuc8d zBwBCunVFTyeR^->-j<SkT?)5zQs3&{<cN-{;0(*Wk|Z8xmwG_d#rNEKbM?<ovsjGO zpDTKn+Q{`w_b=np7VKAJS3K=_qDWwqOp6Xy<{Bl3d-v`=DX=(^W2Suj-v4wt7K!cK zw-?pd>#x3g%BCw*;OLIsyC=7|v)_FG{aN6drkbM_b#>FGPZzJOsWItK5_)3Y7RJ<N zIbptm$!m>e4t0kw=q#SW_*1(rP4p<siF!kmZjCPr&W0x08dnsO4Nbf?wkRw#FwxeS zqOj1=gj=ITVWWXbnTXbe8xm5+T)ZAyJiVf=Oe&^r$2um-s))B8YnvphV%~PFWfE@- zt8=pBNv1<>3k?^juqPh9P_$TuHSzd`qD3mq8=DqBb@F6N;&ndVC?tDCt8JQ;s#ZrS zkFKhh$%G(-Eg>3#4qk^Z1TA1;*A#W`?iCVQQo^IF=4CKpWkSZrfTji?Ugz#cBdL^C z5>Xjb0u_RfUvOH)!&caH*=ZpUTV-wS)Y-G8E32xkVsExEbA5aI>Xp~C&p#K;mEb8V zD^q*^{Q0KaZ<oCP?ReOGb#C;|efy@JKJC47Rn~>ayle*#98FU6y=>8Sg8f+8?y2iu zFIks8N9sy~z!Q!656^NmHo7$~Sh=|6h{IyX3n76{$qN(|GO{!b4FU`VOhl(dNN8wq zXvwOov2pP=dAWA>HZE#da48@tVL^t%3Xv%x5*k_@oBAdRF}t!mh6M&CFHli9A?3x# zGlhpG((z<#<D@2qvMF;UG%PuiTu=5kZfa046Jg_-!ppL8!G?qdYZNrhxrEtH@ii4K z+>ofiB``&*Rgn2&!-5cvH4+_MEJxiEk2#bmXozuHvn^tATo|a6pb#Y>!gZ93Z4sMe za-dG4LY07t$WbXaBgUqG-ARJXGZ`K0T{+toPp&qbeOB$~6~WL@)$XHCvzAS~o2OoT zfBv1dxzRWCwqGipd!@9t=&aK-hYS81*9<3k3Ve}$`smT2FS8fUWOa-Wy!LwQ>2T z`!p-KM(Ryh`!9Lln7^r^X>m&zgQh0dlnhVb_ZWS7Z9@}^yq5!W7K5j&pUXO@geCwn C8D^gV literal 0 HcmV?d00001 diff --git a/tests/images/rendered/smooth3.png b/tests/images/rendered/smooth3.png new file mode 100644 index 0000000000000000000000000000000000000000..59db7c671e9764aa49a98a380c674d2bb478d955 GIT binary patch literal 366 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$}jSU^Mk~aSW+oe0%30XS0KdYv576 zHz&>3B(J%Xz{q*iCGUyMkJpkres7=iypqpo+G}-T$)+P5LdqUJ3Wmfp&geQmtDM*O z_{Z<t+j66>e_hU*&slV|qN(;itEQle+XM;6B$iH^GvtI*dOmji{yOW<(`l}j`_$on qIN^Tz?KHz<JN|~=6C%nr&sam3?=IHNc0LFUM+Q$<KbLh*2~7YL;d++< literal 0 HcmV?d00001 diff --git a/tests/images/rendered/smooth4.png b/tests/images/rendered/smooth4.png new file mode 100644 index 0000000000000000000000000000000000000000..d59f752cb0ee00e9c01d1402b19568776e45836a GIT binary patch literal 390 zcmeAS@N?(olHy`uVBq!ia0vp^DIm<j1|$m}O$}jSVD$BLaSW+oe0ygjZ&QGXLtqc{ zh23o47dEgJKiJaOn8?uE`y}g}XWZYqqWZt<e(!rPEqVR1DzjwM5e^|`j~)d>;u&W& z9rdQ4F4%v+zHVBoWZw4M;llHTo^*WVzg8-`#ASknV-icJpo$x<89!$$^dC>2vFzpZ z^m)${Wsa|}n;finN_P3je~J5K9~XED*r`MP_32u{uGiagZ@-ML^d!nvGt_^-*;l;E T?m;Oqd>K4l{an^LB{Ts58>xvU literal 0 HcmV?d00001 diff --git a/tests/test_images_draw.nim b/tests/test_images_draw.nim index 4f619a6..1932781 100644 --- a/tests/test_images_draw.nim +++ b/tests/test_images_draw.nim @@ -1,4 +1,4 @@ -import pixie +import pixie, strformat block: let @@ -127,3 +127,49 @@ block: a.draw(b, translate(vec2(250, 250)) * scale(vec2(0.5, 0.5))) a.writeFile("tests/images/scaleHalf.png") + +proc doDiff(rendered: Image, name: string) = + rendered.writeFile(&"tests/images/rendered/{name}.png") + let + master = readImage(&"tests/images/masters/{name}.png") + (diffScore, diffImage) = diff(master, rendered) + echo &"{name} score: {diffScore}" + diffImage.writeFile(&"tests/images/diffs/{name}.png") + +block: + let + image = newImage(100, 100) + path = newPath() + path.rect(0, 0, 99, 99) + image.fillPath(path, rgba(0, 0, 0, 255), translate(vec2(0.5, 0.5))) + doDiff(image, "smooth1") + +block: + let + a = newImage(100, 100) + b = newImage(100, 100) + path = newPath() + path.rect(-25, -25, 50, 50) + path.transform(rotate(45 * PI.float32 / 180)) + b.fillPath(path, rgba(0, 0, 0, 255), translate(vec2(50, 50))) + a.fill(rgba(255, 255, 255, 255)) + a.draw(b, translate(vec2(0, 0.4))) + doDiff(a, "smooth2") + +block: + let + a = newImage(100, 100) + b = newImage(50, 50) + a.fill(rgba(255, 255, 255, 255)) + b.fill(rgba(0, 0, 0, 255)) + a.draw(b, translate(vec2(25.2, 25))) + doDiff(a, "smooth3") + +block: + let + a = newImage(100, 100) + b = newImage(50, 50) + a.fill(rgba(255, 255, 255, 255)) + b.fill(rgba(0, 0, 0, 255)) + a.draw(b, translate(vec2(25.2, 25.6))) + doDiff(a, "smooth4")