From a68d11e11a41792aca99d910fe176d0f399f72f0 Mon Sep 17 00:00:00 2001 From: Thomas Friedel Date: Fri, 27 Jul 2018 16:55:03 +0200 Subject: [PATCH] two more tests --- canvas_test.go | 75 ++++++++++++++++++++++++++++++++++++++ testimages/DrawPath.png | Bin 0 -> 455 bytes testimages/MiterLimit.png | Bin 0 -> 877 bytes 3 files changed, 75 insertions(+) create mode 100755 testimages/DrawPath.png create mode 100755 testimages/MiterLimit.png diff --git a/canvas_test.go b/canvas_test.go index 5646916..9dee506 100644 --- a/canvas_test.go +++ b/canvas_test.go @@ -131,3 +131,78 @@ func TestFillConcavePath(t *testing.T) { cv.Fill() }) } + +func TestDrawPath(t *testing.T) { + run(t, func(cv *canvas.Canvas) { + cv.SetStrokeStyle("#00F") + cv.SetLineJoin(canvas.Miter) + cv.SetLineWidth(4) + cv.BeginPath() + cv.MoveTo(10, 10) + cv.LineTo(30, 10) + cv.LineTo(30, 30) + cv.LineTo(10, 30) + cv.ClosePath() + cv.Stroke() + + cv.SetLineJoin(canvas.Round) + cv.BeginPath() + cv.MoveTo(40, 10) + cv.LineTo(60, 10) + cv.LineTo(60, 30) + cv.LineTo(40, 30) + cv.ClosePath() + cv.Stroke() + + cv.SetLineJoin(canvas.Bevel) + cv.BeginPath() + cv.MoveTo(70, 10) + cv.LineTo(90, 10) + cv.LineTo(90, 30) + cv.LineTo(70, 30) + cv.ClosePath() + cv.Stroke() + + cv.SetLineEnd(canvas.Butt) + cv.BeginPath() + cv.MoveTo(10, 40) + cv.LineTo(30, 40) + cv.LineTo(30, 60) + cv.LineTo(10, 60) + cv.Stroke() + + cv.SetLineEnd(canvas.Round) + cv.BeginPath() + cv.MoveTo(40, 40) + cv.LineTo(60, 40) + cv.LineTo(60, 60) + cv.LineTo(40, 60) + cv.Stroke() + + cv.SetLineEnd(canvas.Square) + cv.BeginPath() + cv.MoveTo(70, 40) + cv.LineTo(90, 40) + cv.LineTo(90, 60) + cv.LineTo(70, 60) + cv.Stroke() + }) +} + +func TestMiterLimit(t *testing.T) { + run(t, func(cv *canvas.Canvas) { + cv.SetStrokeStyle("#0F0") + cv.SetLineJoin(canvas.Miter) + cv.SetLineWidth(2.5) + cv.SetMiterLimit(30) + y, step := 20.0, 4.0 + for i := 0; i < 20; i++ { + cv.LineTo(20, y) + y += step + cv.LineTo(80, y) + y += step + step *= 0.9 + } + cv.Stroke() + }) +} diff --git a/testimages/DrawPath.png b/testimages/DrawPath.png new file mode 100755 index 0000000000000000000000000000000000000000..af92becb79900e3dec9d31056de0573490b5bf38 GIT binary patch literal 455 zcmeAS@N?(olHy`uVBq!ia0vp^DIm;EHyXBYKvJXtlr{ZJ391h;`$g3f`6hK&r#jMf|1 zxyEPbC+qB-dHVYV-|2UroZi@1yK&OeyuGKq@4o!HMSAs-s!mCD{`Zk*yx-g|(>vh% z@%{&&$$K{eH6LR_GYui2uw#DcR%XlZDeH9}Oo^DE>ujf`CNKGDwSj8IdAP0zd29NP z7yOHFzprLKkE`=V#O@~|XP-U!bEA2AM&4=lwbLVxRrvP*)nA@*uiNgUjg)PcP)Tm| zqcbP%cp359z95soEkKlSaTdZc=HDClWc)I$ztaD0e0su2ludM(8 literal 0 HcmV?d00001 diff --git a/testimages/MiterLimit.png b/testimages/MiterLimit.png new file mode 100755 index 0000000000000000000000000000000000000000..cb005dda3aff732632157bd2b8b27868eb2f0daf GIT binary patch literal 877 zcmeAS@N?(olHy`uVBq!ia0vp^DImQKsz>$Nc6^xm;yDen;@{%5LgH`l9Q;!R}? z5Mv;Uc#%?T^KTDtd`SK8`>*Ey-tuF2&Hv)4KS8k0p&iW4bM*S==o~ctcw7glQcWf&=EVsY;$+s`-4eNN_+m{_w5=D{AXfm7n^3&DLDK zt@!t;AZfK2>&KS%mImwi<}Niq_N77O$FUs=IXeTZ-1r2xxtr(}H@k?RP;_rs3IE15 zyD-srl69u6rB%r`?%!K-OZwBEeLKmu`|ZcaO;2ie+0{wCuk>|s=KfITDv$vnsGj&vQ>3`YwR-=3Jxwm2)yEb*L`6|rQ z%O|m_uJ=vn^UH5PUN*m?`udm9vx1!=n->JV)s}iSiL>>iA?v=mM?0CNw!dmSdVI$t zk$*j2@)t@Ezuxje_vfUt{g+jjz5X2OpLvH_HOIRyCz5xbTYyqh-!;lC*Jo{g@&2}b&WC^~ zoj-a@vyQDzGi|#xV`JEw?7K1x(^5_PRE@srrLa%A>bchP-<^LG51)IGekn&ZQO5Vj z`AB2N*H`NHxJcc5ZQj->$J1G+a<@5J>R;TxHL~q;r_<(6_c%QBn1t!`mC@!sYTAom zoO@gLTztHH?K<(Pg72Qh-M+w@Y=&zW%5F`k~L>yDOW8 zwx6gn*5Gc~#DIrzC=dGOUjFfJ{ry`H&s~p`Sf+@XuK(}@bI$+mh3ii+-RKMlW+Mhq LS3j3^P6