From 209241191b4399ff227695b24f51e4f765348c1f Mon Sep 17 00:00:00 2001 From: Anton Firszov Date: Tue, 29 Aug 2017 21:02:54 +0200 Subject: [PATCH] added test cases with images from #313 and #314 --- .../Formats/Png/PngDecoderTests.cs | 4 +++- tests/ImageSharp.Tests/TestImages.cs | 3 +++ tests/Images/Input/Png/banner7-adam.png | Bin 0 -> 16488 bytes tests/Images/Input/Png/banner8-index.png | Bin 0 -> 2327 bytes 4 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 tests/Images/Input/Png/banner7-adam.png create mode 100644 tests/Images/Input/Png/banner8-index.png diff --git a/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs b/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs index bb31c3b1ad..fc759fb56e 100644 --- a/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs +++ b/tests/ImageSharp.Tests/Formats/Png/PngDecoderTests.cs @@ -29,7 +29,9 @@ namespace SixLabors.ImageSharp.Tests TestImages.Png.VersioningImage1, TestImages.Png.VersioningImage2, - TestImages.Png.SnakeGame + TestImages.Png.SnakeGame, + TestImages.Png.Banner7Adam7InterlaceMode, + TestImages.Png.Banner8Index, }; diff --git a/tests/ImageSharp.Tests/TestImages.cs b/tests/ImageSharp.Tests/TestImages.cs index 3fdbecf50d..3b238a8756 100644 --- a/tests/ImageSharp.Tests/TestImages.cs +++ b/tests/ImageSharp.Tests/TestImages.cs @@ -47,6 +47,9 @@ namespace SixLabors.ImageSharp.Tests public const string VersioningImage1 = "Png/versioning-1_1.png"; public const string VersioningImage2 = "Png/versioning-1_2.png"; + public const string Banner7Adam7InterlaceMode = "Png/banner7-adam.png"; + public const string Banner8Index = "Png/banner8-index.png"; + public static class Bad { // Odd chunk lengths diff --git a/tests/Images/Input/Png/banner7-adam.png b/tests/Images/Input/Png/banner7-adam.png new file mode 100644 index 0000000000000000000000000000000000000000..a332f02e022e9726000741bdd1dea0614807c8bd GIT binary patch literal 16488 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

!NS0>F}f%}cjmOgvW*Iiz**yftmV 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 P@)$f_{an^LB{Ts5EXdb2 literal 0 HcmV?d00001 diff --git a/tests/Images/Input/Png/banner8-index.png b/tests/Images/Input/Png/banner8-index.png new file mode 100644 index 0000000000000000000000000000000000000000..ee5d81cb205ec2112813d4ea2fd09ea221cd0ad8 GIT binary patch literal 2327 zcmW-jc{o-38pnT;B=$xVM=~VYLeersbt0P(rOdHA3M(o5mZQv}gl%?r7pp;`IOa=8 zX;NlO$#u{`hfp#cWae7uUDosL=h^T6{oe2U`F`K^$L3idJc zzALO1gl}0-?0+I8P-AUrYXUzagdv0@L?A>WM9~$7Aq+qFYG}kvJj=M3RW4KnYP8qHshJh$0aM1!#jbXhAdFrsz5JgJT$h zVI+o8^jN5H9K#6=Co!C&Dd3R6F@nGd5+f)Y3ht6PMiLlFVk8BO(27wwMiCfAViZgT zY7hfxpad*9gTbH;(x3&+6m5vE;URFG#BqxD2VXJ955KPK^n9uIyw3nYIsP3py(jMAB=^H zBngs&T){3-z#&1A1O+)l(hvY}!F324+(ML)2Vg=s!~slT7#spMhygTo0v2$ zie3?Y8;+rdhk}hkkl+u-LPb&(y}*_A(-bQkrT4kABpPZZcY3`mQPPYn>CoF=F-#+` zc%YZRf<-%6nFP}CI>447Jn*zK3NaWA85tQCi>0HZV{B|}ZEelraL%7U@9*y)85zmv z^D{Csii(P=s;U|r8#_8W`uqDQCMKYFuIfe{yu~6H&76KmNOV2@S=H8kbqOJ%d2_ar zt^b`-CnxS|Rj~o3RMmNdhEAgw%svBq&etTwf1MS5tb?DD;6^VP{O@ zAI^?m^BJ=p9!_7kYFeFOds*0Jo$d`zckr#Y;T3yYj!it=chE_{`CF;ys77--Dd;hawCj%ywy~ z9N{vT#}uz<7qi}9)JRP!UssUgwz=59ywASD{C-;Ynd4lJkfNyBFJEj`RCbP@+rRP0 z!F3^P*L*0ePV)%zzhU)acYO}~QTBB~?O(+0)0vfoQc%}UJ&{?L?JAr6emctD2nutV z%e?G%E|XJdvvcRP;FZ7e_%A|{<=P5H!+c(>u6#oR9gABvN%2G!giO_hHy`nsNK zk}JNi$9H?)tq>XQkf`%GditA>_ABA;%Eok^7OdhPabssjRC$9aPe48mx+on2m_&1%e zvGcW)Ka%qE-ib-RBEv34$*vK14EbTGwE0VinH{@GLZvJ(>QBjLE4~jiKjUcP@WVX= zbJ4?Ss6xxAYNqScK+^d0FuwPP$%NTWs|tQ+*h+id<%d3R->bZ}=ar6TT5jWb>}P~t zuWy*VEV^_e!N)!Rv+eF}i+d;Ht|V?a9zQUy%k;P;?Wp$YljNzW?l|+eX_vIpMjlez zN+!N<*N)@nu(ojbFO^;Q;&!(k)Fp2EoSPij-LKGKHGke$s($3KQQzhHndYcesrR>Q zr$g`dm?Sv3rb)F{rG2&f{!UiqX_|4e%ka-4zXx324rqxFN_)8Q zv~%Ceyc19#9om&D9HdZD{BL2y5JPDv%?)#GMRx0}By0194S^1>e?8JqF|};=U>;Ls zRiHvGX6bG7+?dQV-r9?pzNy2lq;WH6w4+3*itDZa##8H5LCqcZm5H(*fByNGBZbvc zdQvx95ANS=zcsKgA$v=8xLm;4wxvySYEN}n%{|!c;VpEkWy_w<39b8fF126dD{Mx> z+A7T?Ez|cs{&Vno@XMRWUBnJ>K3*+1ST=6uWh@L0xN2Fs4VC@M&{GR8Q&#E7VPq!d zSA2GVweW1wn8&nml(QF${_=@+%GO>!G{7*aG~1UKD|7UaDW5rLT_+}PWY3%aUf;Yd zU)Pfx9ceSrqRjsG5{+;D+gW%vC~$S-PuD0(r9F*&rJ?(K-RknD4^&dZ3L5qwkNz~0 zH9OhV8!AXK_a^eK_2sUM4@N)gG+<`yr*y=rm{m?C8*!Ct!~*gPIT11W0a-H7BoE}= zO3Bt#kJpRxIl#Rj_J_eS-?P4v``WdfdV7xSw-OmUFl!xNF=`&dOWG~FStT)Q3u+E* zA3Oc%Lg3iGAom-i|BC&ea>IP7ySz?$%VJIat)N>)YFVz%9^G+R`7O!cM(A^``(Tih#z;+Dw343jSDuQU5;a`DJ;-_)Qn%!>AULG5fYtMs$xE4`$lauONi1&d R9{LZCxyey>(IMAs{{XWMX>9-i literal 0 HcmV?d00001