1
+ using System . Diagnostics ;
2
+ using System . IO ;
3
+ using System . Linq ;
4
+ using ElasticSea . Framework . Util ;
5
+ using Newtonsoft . Json ;
6
+ using Newtonsoft . Json . Converters ;
7
+ using Newtonsoft . Json . UnityConverters . Math ;
8
+ using NUnit . Framework ;
9
+ using PhysicalGizmos ;
10
+ using Debug = UnityEngine . Debug ;
11
+
12
+ namespace Tests . Editor . Gizmos
13
+ {
14
+ public class UtilsGetPagesTests
15
+ {
16
+ [ Test ]
17
+ public static void GetPagesTest2Elements ( )
18
+ {
19
+ var elements = new [ ] { ( "0" , 0.3f ) , ( "1" , 0.3f ) } ;
20
+ var maxSize = 1.5f ;
21
+ var navSize = 0.3f ;
22
+ var pages = Utils . CalculatePages ( elements , maxSize , navSize , navSize ) ;
23
+
24
+ var expected = new [ ]
25
+ {
26
+ new [ ]
27
+ {
28
+ new PageElement < string >
29
+ {
30
+ Element = "0" ,
31
+ Type = ElementType . Element
32
+ } ,
33
+ new PageElement < string >
34
+ {
35
+ Element = "1" ,
36
+ Type = ElementType . Element
37
+ }
38
+ }
39
+ } ;
40
+
41
+ PagesEqual ( expected , pages ) ;
42
+ }
43
+
44
+ [ Test ]
45
+ public static void GetPagesSmall ( )
46
+ {
47
+ var elements = new [ ] { ( "0" , 0.3f ) , ( "1" , 0.3f ) , ( "2" , 0.3f ) , ( "3" , 0.3f ) , ( "4" , 0.3f ) } ;
48
+ var maxSize = 0.1f ;
49
+ var navSize = 0.3f ;
50
+ var pages = Utils . CalculatePages ( elements , maxSize , navSize , navSize ) ;
51
+
52
+ var expected = new [ ]
53
+ {
54
+ new [ ]
55
+ {
56
+ new PageElement < string >
57
+ {
58
+ Element = "0" ,
59
+ Type = ElementType . Element
60
+ } ,
61
+ new PageElement < string >
62
+ {
63
+ Element = "1" ,
64
+ Type = ElementType . Element
65
+ } ,
66
+ new PageElement < string >
67
+ {
68
+ Element = null ,
69
+ Type = ElementType . RightNav
70
+ }
71
+ } ,
72
+ new [ ]
73
+ {
74
+ new PageElement < string >
75
+ {
76
+ Element = null ,
77
+ Type = ElementType . LeftNav
78
+ } ,
79
+ new PageElement < string >
80
+ {
81
+ Element = "2" ,
82
+ Type = ElementType . Element
83
+ } ,
84
+ new PageElement < string >
85
+ {
86
+ Element = null ,
87
+ Type = ElementType . RightNav
88
+ }
89
+ } ,
90
+ new [ ]
91
+ {
92
+ new PageElement < string >
93
+ {
94
+ Element = null ,
95
+ Type = ElementType . LeftNav
96
+ } ,
97
+ new PageElement < string >
98
+ {
99
+ Element = "3" ,
100
+ Type = ElementType . Element
101
+ } ,
102
+ new PageElement < string >
103
+ {
104
+ Element = "4" ,
105
+ Type = ElementType . Element
106
+ }
107
+ }
108
+ } ;
109
+
110
+ PagesEqual ( expected , pages ) ;
111
+ }
112
+
113
+ [ Test ]
114
+ public static void GetPages4ElementsTooBig ( )
115
+ {
116
+ var elements = new [ ] { ( "0" , 146.9f ) , ( "1" , 146.9f ) , ( "2" , 146.9f ) , ( "3" , 146.9f ) } ;
117
+ var maxSize = 500f ;
118
+ var navSize = 13.96f ;
119
+ var pages = Utils . CalculatePages ( elements , maxSize , navSize , navSize ) ;
120
+
121
+ var expected = new [ ]
122
+ {
123
+ new [ ]
124
+ {
125
+ new PageElement < string >
126
+ {
127
+ Element = "0" ,
128
+ Type = ElementType . Element
129
+ } ,
130
+ new PageElement < string >
131
+ {
132
+ Element = "1" ,
133
+ Type = ElementType . Element
134
+ } ,
135
+ new PageElement < string >
136
+ {
137
+ Element = "2" ,
138
+ Type = ElementType . Element
139
+ } ,
140
+ new PageElement < string >
141
+ {
142
+ Element = null ,
143
+ Type = ElementType . RightNav
144
+ }
145
+ } ,
146
+ new [ ]
147
+ {
148
+ new PageElement < string >
149
+ {
150
+ Element = null ,
151
+ Type = ElementType . LeftNav
152
+ } ,
153
+ new PageElement < string >
154
+ {
155
+ Element = "3" ,
156
+ Type = ElementType . Element
157
+ }
158
+ }
159
+ } ;
160
+
161
+ PagesEqual ( expected , pages ) ;
162
+ }
163
+
164
+ // [Test]
165
+ // public static void GetPagesTestPageTooSmall()
166
+ // {
167
+ // var elements = new[] { "0", "1" };
168
+ // var maxSize = 0f;
169
+ // var navSize = 0.3f;
170
+ // var buttonSizeFormatter = new TestFormater(0.3f);
171
+ // var pages = PhysicsButtonUtils.GetPages(elements, maxSize, navSize, buttonSizeFormatter);
172
+ //
173
+ // var expected = new[]
174
+ // {
175
+ // new[]
176
+ // {
177
+ // new PageElement<string>
178
+ // {
179
+ // Element = "0",
180
+ // Type = ElementType.Element
181
+ // },
182
+ // new PageElement<string>
183
+ // {
184
+ // Type = ElementType.RightNav
185
+ // }
186
+ // }
187
+ // };
188
+ //
189
+ // PagesEqual(expected, pages);
190
+ // }
191
+
192
+ [ Test ]
193
+ public static void GetPagesTest4Elements3MaxInPage ( )
194
+ {
195
+ var elements = new [ ] { ( "0" , 0.5f ) , ( "1" , 0.5f ) , ( "2" , 0.5f ) , ( "3" , 0.5f ) } ;
196
+ var maxSize = 1.5f ;
197
+ var navSize = 0.5f ;
198
+ var pages = Utils . CalculatePages ( elements , maxSize , navSize , navSize ) ;
199
+
200
+ var expected = new [ ]
201
+ {
202
+ new [ ]
203
+ {
204
+ new PageElement < string > ( )
205
+ {
206
+ Element = "0" ,
207
+ Type = ElementType . Element
208
+ } ,
209
+ new PageElement < string > ( )
210
+ {
211
+ Element = "1" ,
212
+ Type = ElementType . Element
213
+ } ,
214
+ new PageElement < string > ( )
215
+ {
216
+ Type = ElementType . RightNav
217
+ }
218
+ } ,
219
+ new [ ]
220
+ {
221
+ new PageElement < string >
222
+ {
223
+ Type = ElementType . LeftNav
224
+ } ,
225
+ new PageElement < string >
226
+ {
227
+ Element = "2" ,
228
+ Type = ElementType . Element
229
+ } ,
230
+ new PageElement < string >
231
+ {
232
+ Element = "3" ,
233
+ Type = ElementType . Element
234
+ }
235
+ }
236
+ } ;
237
+
238
+ PagesEqual ( expected , pages ) ;
239
+ }
240
+
241
+ // [Test]
242
+ // public static void GetPagesTest()
243
+ // {
244
+ // var elements = Enumerable.Range(0, 11).Select(i => i.ToString()).ToArray();
245
+ // var maxSize = 1.5f;
246
+ // var navSize = 0.3f;
247
+ // var buttonSizeFormatter = new TestFormater(0.3f);
248
+ // var pages = PhysicsButtonUtils.GetPages(elements, maxSize, navSize, buttonSizeFormatter);
249
+ //
250
+ // // var expected = new PageElement<string>[][]
251
+ // // {
252
+ // // new PageElement<string>[]
253
+ // // {
254
+ // //
255
+ // // }
256
+ // // }
257
+ // // Assert.AreEqual(pages.Length, 3);
258
+ // // Assert.AreEqual(pages[0].Length, 5);
259
+ // // Assert.AreEqual(pages[1].Length, 5);
260
+ // // Assert.AreEqual(pages[2].Length, 5);
261
+ // // Debug.Log("hhelo");
262
+ // // PagesEqual()
263
+ // }
264
+
265
+ private static void PagesEqual ( PageElement < string > [ ] [ ] expected , PageElement < string > [ ] [ ] actual )
266
+ {
267
+ Assert . AreEqual ( expected . Length , actual . Length ) ;
268
+ for ( int i = 0 ; i < expected . Length ; i ++ )
269
+ {
270
+ var e = expected [ i ] ;
271
+ var a = actual [ i ] ;
272
+
273
+ Assert . AreEqual ( e . Length , a . Length ) ;
274
+ for ( int j = 0 ; j < e . Length ; j ++ )
275
+ {
276
+ var e1 = e [ j ] ;
277
+ var a1 = a [ j ] ;
278
+
279
+ Assert . AreEqual ( e1 . Type , a1 . Type ) ;
280
+ Assert . AreEqual ( e1 . Element , a1 . Element ) ;
281
+ }
282
+ }
283
+ }
284
+ }
285
+ }
0 commit comments