@@ -118,6 +118,75 @@ defmodule Scenic.ScriptTest do
118118 [ { :draw_rrect , { 13.0 , 12.0 , 6.0 , :stroke } } ]
119119 end
120120
121+ test "draw_rounded_rectangle varying all corners works" do
122+ expected = [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 4.0 , 5.0 , :fill } } ]
123+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , 4 , 5 , :fill ) == expected
124+ assert expected == Script . serialize ( expected ) |> Script . deserialize ( )
125+
126+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , 4 , 5 , :stroke ) ==
127+ [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 4.0 , 5.0 , :stroke } } ]
128+
129+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , 4 , 5 , :fill_stroke ) ==
130+ [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 4.0 , 5.0 , :fill_stroke } } ]
131+ end
132+
133+ test "draw_rounded_rectangle varying 3 corners works" do
134+ expected = [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 4.0 , 3.0 , :fill } } ]
135+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , 4 , :fill ) == expected
136+ assert expected == Script . serialize ( expected ) |> Script . deserialize ( )
137+
138+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , 4 , :stroke ) ==
139+ [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 4.0 , 3.0 , :stroke } } ]
140+
141+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , 4 , :fill_stroke ) ==
142+ [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 4.0 , 3.0 , :fill_stroke } } ]
143+ end
144+
145+ test "draw_rounded_rectangle varying 2 corners works" do
146+ expected = [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 2.0 , 3.0 , :fill } } ]
147+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , :fill ) == expected
148+ assert expected == Script . serialize ( expected ) |> Script . deserialize ( )
149+
150+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , :stroke ) ==
151+ [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 2.0 , 3.0 , :stroke } } ]
152+
153+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 11 , 2 , 3 , :fill_stroke ) ==
154+ [ { :draw_rrectv , { 10.0 , 11.0 , 2.0 , 3.0 , 2.0 , 3.0 , :fill_stroke } } ]
155+ end
156+
157+ test "draw_rounded_rectangle varying all corners shrinks radius if too big" do
158+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 12 , 30 , 40 , 50 , 4 , :fill ) ==
159+ [ { :draw_rrectv , { 10.0 , 12.0 , 5.0 , 5.0 , 5.0 , 4.0 , :fill } } ]
160+
161+ assert Script . draw_rounded_rectangle ( [ ] , 13 , 12 , 30 , 40 , 5 , 60 , :stroke ) ==
162+ [ { :draw_rrectv , { 13.0 , 12.0 , 6.0 , 6.0 , 5.0 , 6.0 , :stroke } } ]
163+
164+ assert Script . draw_rounded_rectangle ( [ ] , 13 , 12 , 30 , 4 , 50 , 60 , :stroke ) ==
165+ [ { :draw_rrectv , { 13.0 , 12.0 , 6.0 , 4.0 , 6.0 , 6.0 , :stroke } } ]
166+
167+ assert Script . draw_rounded_rectangle ( [ ] , 13 , 12 , 3 , 40 , 50 , 60 , :stroke ) ==
168+ [ { :draw_rrectv , { 13.0 , 12.0 , 3.0 , 6.0 , 6.0 , 6.0 , :stroke } } ]
169+ end
170+
171+ test "draw_rounded_rectangle varying 3 corners shrinks radius if too big" do
172+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 12 , 30 , 40 , 5 , :fill ) ==
173+ [ { :draw_rrectv , { 10.0 , 12.0 , 5.0 , 5.0 , 5.0 , 5.0 , :fill } } ]
174+
175+ assert Script . draw_rounded_rectangle ( [ ] , 13 , 12 , 30 , 4 , 50 , :stroke ) ==
176+ [ { :draw_rrectv , { 13.0 , 12.0 , 6.0 , 4.0 , 6.0 , 4.0 , :stroke } } ]
177+
178+ assert Script . draw_rounded_rectangle ( [ ] , 13 , 12 , 3 , 40 , 50 , :stroke ) ==
179+ [ { :draw_rrectv , { 13.0 , 12.0 , 3.0 , 6.0 , 6.0 , 6.0 , :stroke } } ]
180+ end
181+
182+ test "draw_rounded_rectangle varying 2 corners shrinks radius if too big" do
183+ assert Script . draw_rounded_rectangle ( [ ] , 10 , 12 , 30 , 4 , :fill ) ==
184+ [ { :draw_rrectv , { 10.0 , 12.0 , 5.0 , 4.0 , 5.0 , 4.0 , :fill } } ]
185+
186+ assert Script . draw_rounded_rectangle ( [ ] , 13 , 12 , 3 , 40 , :stroke ) ==
187+ [ { :draw_rrectv , { 13.0 , 12.0 , 3.0 , 6.0 , 3.0 , 6.0 , :stroke } } ]
188+ end
189+
121190 test "draw_sector works" do
122191 expected = [ { :draw_sector , { 10.0 , 3.0 , :fill } } ]
123192 assert Script . draw_sector ( [ ] , 10 , 3 , :fill ) == expected
0 commit comments