1.1 --- a/plugins/testsuite/sorttest.sp Fri Mar 28 06:21:34 2008 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,307 +0,0 @@
1.4 -#include <sourcemod>
1.5 -
1.6 -public Plugin:myinfo =
1.7 -{
1.8 - name = "Sorting Test",
1.9 - author = "AlliedModders LLC",
1.10 - description = "Tests sorting functions",
1.11 - version = "1.0.0.0",
1.12 - url = "http://www.sourcemod.net/"
1.13 -};
1.14 -
1.15 -public OnPluginStart()
1.16 -{
1.17 - RegServerCmd("test_sort_ints", Command_TestSortInts)
1.18 - RegServerCmd("test_sort_floats", Command_TestSortFloats)
1.19 - RegServerCmd("test_sort_strings", Command_TestSortStrings)
1.20 - RegServerCmd("test_sort_1d", Command_TestSort1D)
1.21 - RegServerCmd("test_sort_2d", Command_TestSort2D)
1.22 - RegServerCmd("test_adtsort_ints", Command_TestSortADTInts)
1.23 - RegServerCmd("test_adtsort_floats", Command_TestSortADTFloats)
1.24 - RegServerCmd("test_adtsort_strings", Command_TestSortADTStrings)
1.25 - RegServerCmd("test_adtsort_custom", Command_TestSortADTCustom)
1.26 -}
1.27 -
1.28 -/*****************
1.29 - * INTEGER TESTS *
1.30 - *****************/
1.31 -// Note that integer comparison is just int1-int2 (or a variation therein)
1.32 -
1.33 -PrintIntegers(const array[], size)
1.34 -{
1.35 - for (new i=0; i<size; i++)
1.36 - {
1.37 - PrintToServer("array[%d] = %d", i, array[i])
1.38 - }
1.39 -}
1.40 -
1.41 -public Action:Command_TestSortInts(args)
1.42 -{
1.43 - new array[10] = {6, 7, 3, 2, 8, 5, 0, 1, 4, 9}
1.44 -
1.45 - PrintToServer("Testing ascending sort:")
1.46 - SortIntegers(array, 10, Sort_Ascending)
1.47 - PrintIntegers(array, 10)
1.48 -
1.49 - PrintToServer("Testing descending sort:")
1.50 - SortIntegers(array, 10, Sort_Descending)
1.51 - PrintIntegers(array, 10)
1.52 -
1.53 - return Plugin_Handled
1.54 -}
1.55 -
1.56 -/**************************
1.57 - * Float comparison tests *
1.58 - **************************/
1.59 -
1.60 -PrintFloats(const Float:array[], size)
1.61 -{
1.62 - for (new i=0; i<size; i++)
1.63 - {
1.64 - PrintToServer("array[%d] = %f", i, array[i])
1.65 - }
1.66 -}
1.67 -
1.68 -public Action:Command_TestSortFloats(args)
1.69 -{
1.70 - new Float:array[10] = {6.3, 7.6, 3.2, 2.1, 8.5, 5.2, 0.4, 1.7, 4.8, 8.2}
1.71 -
1.72 - PrintToServer("Testing ascending sort:")
1.73 - SortFloats(array, 10, Sort_Ascending)
1.74 - PrintFloats(array, 10)
1.75 -
1.76 - PrintToServer("Testing descending sort:")
1.77 - SortFloats(array, 10, Sort_Descending)
1.78 - PrintFloats(array, 10)
1.79 -
1.80 - return Plugin_Handled
1.81 -}
1.82 -
1.83 -public Custom1DSort(elem1, elem2, const array[], Handle:hndl)
1.84 -{
1.85 - new Float:f1 = Float:elem1
1.86 - new Float:f2 = Float:elem2
1.87 - if (f1 > f2)
1.88 - {
1.89 - return -1;
1.90 - } else if (f1 < f2) {
1.91 - return 1;
1.92 - }
1.93 -
1.94 - return 0;
1.95 -}
1.96 -
1.97 -public Action:Command_TestSort1D(args)
1.98 -{
1.99 - new Float:array[10] = {6.3, 7.6, 3.2, 2.1, 8.5, 5.2, 0.4, 1.7, 4.8, 8.2}
1.100 -
1.101 - SortCustom1D(_:array, 10, Custom1DSort)
1.102 - PrintFloats(array, 10)
1.103 -
1.104 - return Plugin_Handled
1.105 -}
1.106 -
1.107 -/***************************
1.108 - * String comparison tests *
1.109 - ***************************/
1.110 -
1.111 -PrintStrings(const String:array[][], size)
1.112 -{
1.113 - for (new i=0; i<size; i++)
1.114 - {
1.115 - PrintToServer("array[%d] = %s", i, array[i])
1.116 - }
1.117 -}
1.118 -
1.119 -public Action:Command_TestSortStrings(args)
1.120 -{
1.121 - new String:strarray[][] =
1.122 - {
1.123 - "faluco",
1.124 - "bailopan",
1.125 - "pm onoto",
1.126 - "damaged soul",
1.127 - "sniperbeamer",
1.128 - "sidluke",
1.129 - "johnny got his gun",
1.130 - "gabe newell",
1.131 - "hello",
1.132 - "WHAT?!"
1.133 - }
1.134 -
1.135 - PrintToServer("Testing ascending sort:")
1.136 - SortStrings(strarray, 10, Sort_Ascending)
1.137 - PrintStrings(strarray, 10)
1.138 -
1.139 - PrintToServer("Testing descending sort:")
1.140 - SortStrings(strarray, 10, Sort_Descending)
1.141 - PrintStrings(strarray, 10)
1.142 -
1.143 - return Plugin_Handled
1.144 -}
1.145 -
1.146 -public Custom2DSort(String:elem1[], String:elem2[], String:array[][], Handle:hndl)
1.147 -{
1.148 - return strcmp(elem1, elem2)
1.149 -}
1.150 -
1.151 -public Action:Command_TestSort2D(args)
1.152 -{
1.153 - new String:array[][] =
1.154 - {
1.155 - "faluco",
1.156 - "bailopan",
1.157 - "pm onoto",
1.158 - "damaged soul",
1.159 - "sniperbeamer",
1.160 - "sidluke",
1.161 - "johnny got his gun",
1.162 - "gabe newell",
1.163 - "hello",
1.164 - "WHAT?!"
1.165 - }
1.166 -
1.167 - SortCustom2D(_:array, 10, Custom2DSort)
1.168 - PrintStrings(array, 10)
1.169 -
1.170 - return Plugin_Handled
1.171 -}
1.172 -
1.173 -/*******************
1.174 - * ADT ARRAY TESTS *
1.175 - *******************/
1.176 -// Int and floats work the same as normal comparisions. Strings are direct
1.177 -// comparisions with no hacky memory stuff like Pawn arrays.
1.178 -
1.179 -PrintADTArrayIntegers(Handle:array)
1.180 -{
1.181 - new size = GetArraySize(array);
1.182 - for (new i=0; i<size;i++)
1.183 - {
1.184 - PrintToServer("array[%d] = %d", i, GetArrayCell(array, i));
1.185 - }
1.186 -}
1.187 -
1.188 -public Action:Command_TestSortADTInts(args)
1.189 -{
1.190 - new Handle:array = CreateArray();
1.191 - PushArrayCell(array, 6);
1.192 - PushArrayCell(array, 7);
1.193 - PushArrayCell(array, 3);
1.194 - PushArrayCell(array, 2);
1.195 - PushArrayCell(array, 8);
1.196 - PushArrayCell(array, 5);
1.197 - PushArrayCell(array, 0);
1.198 - PushArrayCell(array, 1);
1.199 - PushArrayCell(array, 4);
1.200 - PushArrayCell(array, 9);
1.201 -
1.202 - PrintToServer("Testing ascending sort:")
1.203 - SortADTArray(array, Sort_Ascending, Sort_Integer)
1.204 - PrintADTArrayIntegers(array)
1.205 -
1.206 - PrintToServer("Testing descending sort:")
1.207 - SortADTArray(array, Sort_Descending, Sort_Integer)
1.208 - PrintADTArrayIntegers(array)
1.209 -
1.210 - return Plugin_Handled
1.211 -
1.212 -}
1.213 -
1.214 -PrintADTArrayFloats(Handle:array)
1.215 -{
1.216 - new size = GetArraySize(array);
1.217 - for (new i=0; i<size;i++)
1.218 - {
1.219 - PrintToServer("array[%d] = %f", i, float:GetArrayCell(array, i));
1.220 - }
1.221 -}
1.222 -
1.223 -public Action:Command_TestSortADTFloats(args)
1.224 -{
1.225 - new Handle:array = CreateArray();
1.226 - PushArrayCell(array, 6.0);
1.227 - PushArrayCell(array, 7.0);
1.228 - PushArrayCell(array, 3.0);
1.229 - PushArrayCell(array, 2.0);
1.230 - PushArrayCell(array, 8.0);
1.231 - PushArrayCell(array, 5.0);
1.232 - PushArrayCell(array, 0.0);
1.233 - PushArrayCell(array, 1.0);
1.234 - PushArrayCell(array, 4.0);
1.235 - PushArrayCell(array, 9.0);
1.236 -
1.237 - PrintToServer("Testing ascending sort:")
1.238 - SortADTArray(array, Sort_Ascending, Sort_Float)
1.239 - PrintADTArrayFloats(array)
1.240 -
1.241 - PrintToServer("Testing descending sort:")
1.242 - SortADTArray(array, Sort_Descending, Sort_Float)
1.243 - PrintADTArrayFloats(array)
1.244 -
1.245 - return Plugin_Handled
1.246 -}
1.247 -
1.248 -PrintADTArrayStrings(Handle:array)
1.249 -{
1.250 - new size = GetArraySize(array);
1.251 - decl String:buffer[64];
1.252 - for (new i=0; i<size;i++)
1.253 - {
1.254 - GetArrayString(array, i, buffer, sizeof(buffer));
1.255 - PrintToServer("array[%d] = %s", i, buffer);
1.256 - }
1.257 -}
1.258 -
1.259 -public Action:Command_TestSortADTStrings(args)
1.260 -{
1.261 - new Handle:array = CreateArray(ByteCountToCells(64));
1.262 - PushArrayString(array, "faluco");
1.263 - PushArrayString(array, "bailopan");
1.264 - PushArrayString(array, "pm onoto");
1.265 - PushArrayString(array, "damaged soul");
1.266 - PushArrayString(array, "sniperbeamer");
1.267 - PushArrayString(array, "sidluke");
1.268 - PushArrayString(array, "johnny got his gun");
1.269 - PushArrayString(array, "gabe newell");
1.270 - PushArrayString(array, "hello");
1.271 - PushArrayString(array, "WHAT?!");
1.272 -
1.273 - PrintToServer("Testing ascending sort:")
1.274 - SortADTArray(array, Sort_Ascending, Sort_String)
1.275 - PrintADTArrayStrings(array)
1.276 -
1.277 - PrintToServer("Testing descending sort:")
1.278 - SortADTArray(array, Sort_Descending, Sort_String)
1.279 - PrintADTArrayStrings(array)
1.280 -
1.281 - return Plugin_Handled
1.282 -}
1.283 -
1.284 -public ArrayADTCustomCallback(index1, index2, Handle:array, Handle:hndl)
1.285 -{
1.286 - decl String:buffer1[64], String:buffer2[64];
1.287 - GetArrayString(array, index1, buffer1, sizeof(buffer1));
1.288 - GetArrayString(array, index2, buffer2, sizeof(buffer2));
1.289 -
1.290 - return strcmp(buffer1, buffer2);
1.291 -}
1.292 -
1.293 -public Action:Command_TestSortADTCustom(args)
1.294 -{
1.295 - new Handle:array = CreateArray(ByteCountToCells(64));
1.296 - PushArrayString(array, "faluco");
1.297 - PushArrayString(array, "bailopan");
1.298 - PushArrayString(array, "pm onoto");
1.299 - PushArrayString(array, "damaged soul");
1.300 - PushArrayString(array, "sniperbeamer");
1.301 - PushArrayString(array, "sidluke");
1.302 - PushArrayString(array, "johnny got his gun");
1.303 - PushArrayString(array, "gabe newell");
1.304 - PushArrayString(array, "hello");
1.305 - PushArrayString(array, "WHAT?!");
1.306 -
1.307 - PrintToServer("Testing custom sort:")
1.308 - SortADTArrayCustom(array, ArrayADTCustomCallback)
1.309 - PrintADTArrayStrings(array);
1.310 -}