1+ using NUnit . Framework ;
2+ using UnityEngine ;
3+
4+ namespace Toolbox . Tests
5+ {
6+ public class RectExtensionsAlignTest
7+ {
8+ public class AlignTestData
9+ {
10+ public float alignValue ;
11+ public Rect sourceRect ;
12+ public Rect actualRect ;
13+
14+ public override string ToString ( )
15+ {
16+ return sourceRect . ToString ( ) ;
17+ }
18+ }
19+
20+ private static readonly AlignTestData [ ] alignRightData = new AlignTestData [ ]
21+ {
22+ new AlignTestData ( )
23+ {
24+ alignValue = 20 ,
25+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
26+ actualRect = new Rect ( 80 , 0 , 20 , 500 )
27+ } ,
28+ new AlignTestData ( )
29+ {
30+ alignValue = 0 ,
31+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
32+ actualRect = new Rect ( 100 , 0 , 0 , 500 )
33+ } ,
34+ new AlignTestData ( )
35+ {
36+ alignValue = 50 ,
37+ sourceRect = new Rect ( 15 , 100 , 100 , 500 ) ,
38+ actualRect = new Rect ( 65 , 100 , 50 , 500 )
39+ } ,
40+ new AlignTestData ( )
41+ {
42+ alignValue = 100 ,
43+ sourceRect = new Rect ( 15 , 100 , 100 , 50 ) ,
44+ actualRect = new Rect ( 15 , 100 , 100 , 50 )
45+ } ,
46+ new AlignTestData ( )
47+ {
48+ alignValue = - 50 ,
49+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
50+ actualRect = new Rect ( 150 , 0 , - 50 , 500 )
51+ }
52+ } ;
53+
54+ private static readonly AlignTestData [ ] alignLeftData = new AlignTestData [ ]
55+ {
56+ new AlignTestData ( )
57+ {
58+ alignValue = 20 ,
59+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
60+ actualRect = new Rect ( 0 , 0 , 20 , 500 )
61+ } ,
62+ new AlignTestData ( )
63+ {
64+ alignValue = 0 ,
65+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
66+ actualRect = new Rect ( 0 , 0 , 0 , 500 )
67+ } ,
68+ new AlignTestData ( )
69+ {
70+ alignValue = 50 ,
71+ sourceRect = new Rect ( 15 , 100 , 100 , 500 ) ,
72+ actualRect = new Rect ( 15 , 100 , 50 , 500 )
73+ } ,
74+ new AlignTestData ( )
75+ {
76+ alignValue = 100 ,
77+ sourceRect = new Rect ( 15 , 100 , 100 , 50 ) ,
78+ actualRect = new Rect ( 15 , 100 , 100 , 50 )
79+ } ,
80+ new AlignTestData ( )
81+ {
82+ alignValue = - 50 ,
83+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
84+ actualRect = new Rect ( 0 , 0 , - 50 , 500 )
85+ }
86+ } ;
87+
88+ private static readonly AlignTestData [ ] alignBottomData = new AlignTestData [ ]
89+ {
90+ new AlignTestData ( )
91+ {
92+ alignValue = 20 ,
93+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
94+ actualRect = new Rect ( 0 , 480 , 100 , 20 )
95+ } ,
96+ new AlignTestData ( )
97+ {
98+ alignValue = 0 ,
99+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
100+ actualRect = new Rect ( 0 , 500 , 100 , 0 )
101+ } ,
102+ new AlignTestData ( )
103+ {
104+ alignValue = 50 ,
105+ sourceRect = new Rect ( 15 , 100 , 100 , 500 ) ,
106+ actualRect = new Rect ( 15 , 550 , 100 , 50 )
107+ } ,
108+ new AlignTestData ( )
109+ {
110+ alignValue = 50 ,
111+ sourceRect = new Rect ( 15 , 100 , 100 , 50 ) ,
112+ actualRect = new Rect ( 15 , 100 , 100 , 50 )
113+ } ,
114+ new AlignTestData ( )
115+ {
116+ alignValue = - 50 ,
117+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
118+ actualRect = new Rect ( 0 , 550 , 100 , - 50 )
119+ }
120+ } ;
121+
122+ private static readonly AlignTestData [ ] alignTopData = new AlignTestData [ ]
123+ {
124+ new AlignTestData ( )
125+ {
126+ alignValue = 20 ,
127+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
128+ actualRect = new Rect ( 0 , 0 , 100 , 20 )
129+ } ,
130+ new AlignTestData ( )
131+ {
132+ alignValue = 0 ,
133+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
134+ actualRect = new Rect ( 0 , 0 , 100 , 0 )
135+ } ,
136+ new AlignTestData ( )
137+ {
138+ alignValue = 50 ,
139+ sourceRect = new Rect ( 15 , 100 , 100 , 500 ) ,
140+ actualRect = new Rect ( 15 , 100 , 100 , 50 )
141+ } ,
142+ new AlignTestData ( )
143+ {
144+ alignValue = 50 ,
145+ sourceRect = new Rect ( 15 , 100 , 100 , 50 ) ,
146+ actualRect = new Rect ( 15 , 100 , 100 , 50 )
147+ } ,
148+ new AlignTestData ( )
149+ {
150+ alignValue = - 50 ,
151+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
152+ actualRect = new Rect ( 0 , 0 , 100 , - 50 )
153+ }
154+ } ;
155+
156+ private static readonly AlignTestData [ ] alignCenterXData = new AlignTestData [ ]
157+ {
158+ new AlignTestData ( )
159+ {
160+ alignValue = 20 ,
161+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
162+ actualRect = new Rect ( 40 , 0 , 20 , 500 )
163+ } ,
164+ new AlignTestData ( )
165+ {
166+ alignValue = 0 ,
167+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
168+ actualRect = new Rect ( 50 , 0 , 0 , 500 )
169+ } ,
170+ new AlignTestData ( )
171+ {
172+ alignValue = 50 ,
173+ sourceRect = new Rect ( 15 , 100 , 100 , 500 ) ,
174+ actualRect = new Rect ( 40 , 100 , 50 , 500 )
175+ } ,
176+ new AlignTestData ( )
177+ {
178+ alignValue = 50 ,
179+ sourceRect = new Rect ( 15 , 100 , 100 , 50 ) ,
180+ actualRect = new Rect ( 40 , 100 , 50 , 50 )
181+ } ,
182+ new AlignTestData ( )
183+ {
184+ alignValue = - 50 ,
185+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
186+ actualRect = new Rect ( 75 , 0 , - 50 , 500 )
187+ }
188+ } ;
189+
190+ private static readonly AlignTestData [ ] alignCenterYData = new AlignTestData [ ]
191+ {
192+ new AlignTestData ( )
193+ {
194+ alignValue = 20 ,
195+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
196+ actualRect = new Rect ( 0 , 240 , 100 , 20 )
197+ } ,
198+ new AlignTestData ( )
199+ {
200+ alignValue = 0 ,
201+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
202+ actualRect = new Rect ( 0 , 250 , 100 , 0 )
203+ } ,
204+ new AlignTestData ( )
205+ {
206+ alignValue = 50 ,
207+ sourceRect = new Rect ( 15 , 100 , 100 , 500 ) ,
208+ actualRect = new Rect ( 15 , 325 , 100 , 50 )
209+ } ,
210+ new AlignTestData ( )
211+ {
212+ alignValue = 50 ,
213+ sourceRect = new Rect ( 15 , 100 , 100 , 50 ) ,
214+ actualRect = new Rect ( 15 , 100 , 100 , 50 )
215+ } ,
216+ new AlignTestData ( )
217+ {
218+ alignValue = - 50 ,
219+ sourceRect = new Rect ( 0 , 0 , 100 , 500 ) ,
220+ actualRect = new Rect ( 0 , 275 , 100 , - 50 )
221+ }
222+ } ;
223+
224+ [ Test ]
225+ public void TestAlignRightPass ( [ ValueSource ( nameof ( alignRightData ) ) ] AlignTestData data )
226+ {
227+ var alignValue = data . alignValue ;
228+ var sourceRect = data . sourceRect ;
229+ var actualRect = sourceRect . AlignRight ( alignValue ) ;
230+ Assert . AreEqual ( data . actualRect , actualRect ) ;
231+ }
232+
233+ [ Test ]
234+ public void TestAlignLeftPass ( [ ValueSource ( nameof ( alignLeftData ) ) ] AlignTestData data )
235+ {
236+ var alignValue = data . alignValue ;
237+ var sourceRect = data . sourceRect ;
238+ var actualRect = sourceRect . AlignLeft ( alignValue ) ;
239+ Assert . AreEqual ( data . actualRect , actualRect ) ;
240+ }
241+
242+ [ Test ]
243+ public void TestAlignBottomPass ( [ ValueSource ( nameof ( alignBottomData ) ) ] AlignTestData data )
244+ {
245+ var alignValue = data . alignValue ;
246+ var sourceRect = data . sourceRect ;
247+ var actualRect = sourceRect . AlignBottom ( alignValue ) ;
248+ Assert . AreEqual ( data . actualRect , actualRect ) ;
249+ }
250+
251+ [ Test ]
252+ public void TestAlignTopPass ( [ ValueSource ( nameof ( alignTopData ) ) ] AlignTestData data )
253+ {
254+ var alignValue = data . alignValue ;
255+ var sourceRect = data . sourceRect ;
256+ var actualRect = sourceRect . AlignTop ( alignValue ) ;
257+ Assert . AreEqual ( data . actualRect , actualRect ) ;
258+ }
259+
260+ [ Test ]
261+ public void TestAlignCenterXPass ( [ ValueSource ( nameof ( alignCenterXData ) ) ] AlignTestData data )
262+ {
263+ var alignValue = data . alignValue ;
264+ var sourceRect = data . sourceRect ;
265+ var actualRect = sourceRect . AlignCenterX ( alignValue ) ;
266+ Assert . AreEqual ( data . actualRect , actualRect ) ;
267+ }
268+
269+ [ Test ]
270+ public void TestAlignCenterYPass ( [ ValueSource ( nameof ( alignCenterYData ) ) ] AlignTestData data )
271+ {
272+ var alignValue = data . alignValue ;
273+ var sourceRect = data . sourceRect ;
274+ var actualRect = sourceRect . AlignCenterY ( alignValue ) ;
275+ Assert . AreEqual ( data . actualRect , actualRect ) ;
276+ }
277+ }
278+ }
0 commit comments