Update CS:GO team score gamedata.
6 author = "AlliedModders LLC",
7 description = "Tests sorting functions",
9 url = "http://www.sourcemod.net/"
12 public OnPluginStart()
14 RegServerCmd("test_sort_ints", Command_TestSortInts)
15 RegServerCmd("test_sort_floats", Command_TestSortFloats)
16 RegServerCmd("test_sort_strings", Command_TestSortStrings)
17 RegServerCmd("test_sort_1d", Command_TestSort1D)
18 RegServerCmd("test_sort_2d", Command_TestSort2D)
19 RegServerCmd("test_adtsort_ints", Command_TestSortADTInts)
20 RegServerCmd("test_adtsort_floats", Command_TestSortADTFloats)
21 RegServerCmd("test_adtsort_strings", Command_TestSortADTStrings)
22 RegServerCmd("test_adtsort_custom", Command_TestSortADTCustom)
28 // Note that integer comparison is just int1-int2 (or a variation therein)
30 PrintIntegers(const array[], size)
32 for (new i=0; i<size; i++)
34 PrintToServer("array[%d] = %d", i, array[i])
38 public Action:Command_TestSortInts(args)
40 new array[10] = {6, 7, 3, 2, 8, 5, 0, 1, 4, 9}
42 PrintToServer("Testing ascending sort:")
43 SortIntegers(array, 10, Sort_Ascending)
44 PrintIntegers(array, 10)
46 PrintToServer("Testing descending sort:")
47 SortIntegers(array, 10, Sort_Descending)
48 PrintIntegers(array, 10)
50 PrintToServer("Testing random sort:")
51 SortIntegers(array, 10, Sort_Random)
52 PrintIntegers(array, 10)
57 /**************************
58 * Float comparison tests *
59 **************************/
61 PrintFloats(const Float:array[], size)
63 for (new i=0; i<size; i++)
65 PrintToServer("array[%d] = %f", i, array[i])
69 public Action:Command_TestSortFloats(args)
71 new Float:array[10] = {6.3, 7.6, 3.2, 2.1, 8.5, 5.2, 0.4, 1.7, 4.8, 8.2}
73 PrintToServer("Testing ascending sort:")
74 SortFloats(array, 10, Sort_Ascending)
75 PrintFloats(array, 10)
77 PrintToServer("Testing descending sort:")
78 SortFloats(array, 10, Sort_Descending)
79 PrintFloats(array, 10)
81 PrintToServer("Testing random sort:")
82 SortFloats(array, 10, Sort_Random)
83 PrintFloats(array, 10)
88 public Custom1DSort(elem1, elem2, const array[], Handle:hndl)
90 new Float:f1 = Float:elem1
91 new Float:f2 = Float:elem2
102 public Action:Command_TestSort1D(args)
104 new Float:array[10] = {6.3, 7.6, 3.2, 2.1, 8.5, 5.2, 0.4, 1.7, 4.8, 8.2}
106 SortCustom1D(_:array, 10, Custom1DSort)
107 PrintFloats(array, 10)
109 return Plugin_Handled
112 /***************************
113 * String comparison tests *
114 ***************************/
116 PrintStrings(const String:array[][], size)
118 for (new i=0; i<size; i++)
120 PrintToServer("array[%d] = %s", i, array[i])
124 public Action:Command_TestSortStrings(args)
126 new String:strarray[][] =
134 "johnny got his gun",
140 PrintToServer("Testing ascending sort:")
141 SortStrings(strarray, 10, Sort_Ascending)
142 PrintStrings(strarray, 10)
144 PrintToServer("Testing descending sort:")
145 SortStrings(strarray, 10, Sort_Descending)
146 PrintStrings(strarray, 10)
148 PrintToServer("Testing random sort:")
149 SortStrings(strarray, 10, Sort_Random)
150 PrintStrings(strarray, 10)
152 return Plugin_Handled
155 public Custom2DSort(String:elem1[], String:elem2[], String:array[][], Handle:hndl)
157 return strcmp(elem1, elem2)
160 public Action:Command_TestSort2D(args)
162 new String:array[][] =
170 "johnny got his gun",
176 SortCustom2D(_:array, 10, Custom2DSort)
177 PrintStrings(array, 10)
179 return Plugin_Handled
185 // Int and floats work the same as normal comparisions. Strings are direct
186 // comparisions with no hacky memory stuff like Pawn arrays.
188 PrintADTArrayIntegers(Handle:array)
190 new size = GetArraySize(array);
191 for (new i=0; i<size;i++)
193 PrintToServer("array[%d] = %d", i, GetArrayCell(array, i));
197 public Action:Command_TestSortADTInts(args)
199 new Handle:array = CreateArray();
200 PushArrayCell(array, 6);
201 PushArrayCell(array, 7);
202 PushArrayCell(array, 3);
203 PushArrayCell(array, 2);
204 PushArrayCell(array, 8);
205 PushArrayCell(array, 5);
206 PushArrayCell(array, 0);
207 PushArrayCell(array, 1);
208 PushArrayCell(array, 4);
209 PushArrayCell(array, 9);
211 PrintToServer("Testing ascending sort:")
212 SortADTArray(array, Sort_Ascending, Sort_Integer)
213 PrintADTArrayIntegers(array)
215 PrintToServer("Testing descending sort:")
216 SortADTArray(array, Sort_Descending, Sort_Integer)
217 PrintADTArrayIntegers(array)
219 PrintToServer("Testing random sort:")
220 SortADTArray(array, Sort_Random, Sort_Integer)
221 PrintADTArrayIntegers(array)
223 return Plugin_Handled
227 PrintADTArrayFloats(Handle:array)
229 new size = GetArraySize(array);
230 for (new i=0; i<size;i++)
232 PrintToServer("array[%d] = %f", i, float:GetArrayCell(array, i));
236 public Action:Command_TestSortADTFloats(args)
238 new Handle:array = CreateArray();
239 PushArrayCell(array, 6.0);
240 PushArrayCell(array, 7.0);
241 PushArrayCell(array, 3.0);
242 PushArrayCell(array, 2.0);
243 PushArrayCell(array, 8.0);
244 PushArrayCell(array, 5.0);
245 PushArrayCell(array, 0.0);
246 PushArrayCell(array, 1.0);
247 PushArrayCell(array, 4.0);
248 PushArrayCell(array, 9.0);
250 PrintToServer("Testing ascending sort:")
251 SortADTArray(array, Sort_Ascending, Sort_Float)
252 PrintADTArrayFloats(array)
254 PrintToServer("Testing descending sort:")
255 SortADTArray(array, Sort_Descending, Sort_Float)
256 PrintADTArrayFloats(array)
258 PrintToServer("Testing random sort:")
259 SortADTArray(array, Sort_Random, Sort_Float)
260 PrintADTArrayFloats(array)
262 return Plugin_Handled
265 PrintADTArrayStrings(Handle:array)
267 new size = GetArraySize(array);
268 decl String:buffer[64];
269 for (new i=0; i<size;i++)
271 GetArrayString(array, i, buffer, sizeof(buffer));
272 PrintToServer("array[%d] = %s", i, buffer);
276 public Action:Command_TestSortADTStrings(args)
278 new Handle:array = CreateArray(ByteCountToCells(64));
279 PushArrayString(array, "faluco");
280 PushArrayString(array, "bailopan");
281 PushArrayString(array, "pm onoto");
282 PushArrayString(array, "damaged soul");
283 PushArrayString(array, "sniperbeamer");
284 PushArrayString(array, "sidluke");
285 PushArrayString(array, "johnny got his gun");
286 PushArrayString(array, "gabe newell");
287 PushArrayString(array, "Hello pRED*");
288 PushArrayString(array, "WHAT?!");
290 PrintToServer("Testing ascending sort:")
291 SortADTArray(array, Sort_Ascending, Sort_String)
292 PrintADTArrayStrings(array)
294 PrintToServer("Testing descending sort:")
295 SortADTArray(array, Sort_Descending, Sort_String)
296 PrintADTArrayStrings(array)
298 PrintToServer("Testing random sort:")
299 SortADTArray(array, Sort_Random, Sort_String)
300 PrintADTArrayStrings(array)
302 return Plugin_Handled
305 public ArrayADTCustomCallback(index1, index2, Handle:array, Handle:hndl)
307 decl String:buffer1[64], String:buffer2[64];
308 GetArrayString(array, index1, buffer1, sizeof(buffer1));
309 GetArrayString(array, index2, buffer2, sizeof(buffer2));
311 return strcmp(buffer1, buffer2);
314 public Action:Command_TestSortADTCustom(args)
316 new Handle:array = CreateArray(ByteCountToCells(64));
317 PushArrayString(array, "faluco");
318 PushArrayString(array, "bailopan");
319 PushArrayString(array, "pm onoto");
320 PushArrayString(array, "damaged soul");
321 PushArrayString(array, "sniperbeamer");
322 PushArrayString(array, "sidluke");
323 PushArrayString(array, "johnny got his gun");
324 PushArrayString(array, "gabe newell");
325 PushArrayString(array, "pRED*'s running out of ideas");
326 PushArrayString(array, "WHAT?!");
328 PrintToServer("Testing custom sort:")
329 SortADTArrayCustom(array, ArrayADTCustomCallback)
330 PrintADTArrayStrings(array);