1.1 --- a/plugins/testsuite/sorttest.sp Tue Nov 20 02:24:10 2007 +0000
1.2 +++ b/plugins/testsuite/sorttest.sp Tue Nov 20 03:02:11 2007 +0000
1.3 @@ -9,13 +9,17 @@
1.4 url = "http://www.sourcemod.net/"
1.5 };
1.6
1.7 -public OnPluginStart(Handle:myself)
1.8 +public OnPluginStart()
1.9 {
1.10 RegServerCmd("test_sort_ints", Command_TestSortInts)
1.11 RegServerCmd("test_sort_floats", Command_TestSortFloats)
1.12 RegServerCmd("test_sort_strings", Command_TestSortStrings)
1.13 RegServerCmd("test_sort_1d", Command_TestSort1D)
1.14 RegServerCmd("test_sort_2d", Command_TestSort2D)
1.15 + RegServerCmd("test_adtsort_ints", Command_TestSortADTInts)
1.16 + RegServerCmd("test_adtsort_floats", Command_TestSortADTFloats)
1.17 + RegServerCmd("test_adtsort_strings", Command_TestSortADTStrings)
1.18 + RegServerCmd("test_adtsort_custom", Command_TestSortADTCustom)
1.19 }
1.20
1.21 /*****************
1.22 @@ -138,7 +142,7 @@
1.23
1.24 public Custom2DSort(String:elem1[], String:elem2[], String:array[][], Handle:hndl)
1.25 {
1.26 - return StrCompare(elem1, elem2)
1.27 + return strcmp(elem1, elem2)
1.28 }
1.29
1.30 public Action:Command_TestSort2D(args)
1.31 @@ -162,3 +166,142 @@
1.32
1.33 return Plugin_Handled
1.34 }
1.35 +
1.36 +/*******************
1.37 + * ADT ARRAY TESTS *
1.38 + *******************/
1.39 +// Int and floats work the same as normal comparisions. Strings are direct
1.40 +// comparisions with no hacky memory stuff like Pawn arrays.
1.41 +
1.42 +PrintADTArrayIntegers(Handle:array)
1.43 +{
1.44 + new size = GetArraySize(array);
1.45 + for (new i=0; i<size;i++)
1.46 + {
1.47 + PrintToServer("array[%d] = %d", i, GetArrayCell(array, i));
1.48 + }
1.49 +}
1.50 +
1.51 +public Action:Command_TestSortADTInts(args)
1.52 +{
1.53 + new Handle:array = CreateArray();
1.54 + PushArrayCell(array, 6);
1.55 + PushArrayCell(array, 7);
1.56 + PushArrayCell(array, 3);
1.57 + PushArrayCell(array, 2);
1.58 + PushArrayCell(array, 8);
1.59 + PushArrayCell(array, 5);
1.60 + PushArrayCell(array, 0);
1.61 + PushArrayCell(array, 1);
1.62 + PushArrayCell(array, 4);
1.63 + PushArrayCell(array, 9);
1.64 +
1.65 + PrintToServer("Testing ascending sort:")
1.66 + SortADTArray(array, Sort_Ascending, Sort_Integer)
1.67 + PrintADTArrayIntegers(array)
1.68 +
1.69 + PrintToServer("Testing descending sort:")
1.70 + SortADTArray(array, Sort_Descending, Sort_Integer)
1.71 + PrintADTArrayIntegers(array)
1.72 +
1.73 + return Plugin_Handled
1.74 +
1.75 +}
1.76 +
1.77 +PrintADTArrayFloats(Handle:array)
1.78 +{
1.79 + new size = GetArraySize(array);
1.80 + for (new i=0; i<size;i++)
1.81 + {
1.82 + PrintToServer("array[%d] = %f", i, float:GetArrayCell(array, i));
1.83 + }
1.84 +}
1.85 +
1.86 +public Action:Command_TestSortADTFloats(args)
1.87 +{
1.88 + new Handle:array = CreateArray();
1.89 + PushArrayCell(array, 6.0);
1.90 + PushArrayCell(array, 7.0);
1.91 + PushArrayCell(array, 3.0);
1.92 + PushArrayCell(array, 2.0);
1.93 + PushArrayCell(array, 8.0);
1.94 + PushArrayCell(array, 5.0);
1.95 + PushArrayCell(array, 0.0);
1.96 + PushArrayCell(array, 1.0);
1.97 + PushArrayCell(array, 4.0);
1.98 + PushArrayCell(array, 9.0);
1.99 +
1.100 + PrintToServer("Testing ascending sort:")
1.101 + SortADTArray(array, Sort_Ascending, Sort_Float)
1.102 + PrintADTArrayFloats(array)
1.103 +
1.104 + PrintToServer("Testing descending sort:")
1.105 + SortADTArray(array, Sort_Descending, Sort_Float)
1.106 + PrintADTArrayFloats(array)
1.107 +
1.108 + return Plugin_Handled
1.109 +}
1.110 +
1.111 +PrintADTArrayStrings(Handle:array)
1.112 +{
1.113 + new size = GetArraySize(array);
1.114 + decl String:buffer[64];
1.115 + for (new i=0; i<size;i++)
1.116 + {
1.117 + GetArrayString(array, i, buffer, sizeof(buffer));
1.118 + PrintToServer("array[%d] = %s", i, buffer);
1.119 + }
1.120 +}
1.121 +
1.122 +public Action:Command_TestSortADTStrings(args)
1.123 +{
1.124 + new Handle:array = CreateArray(ByteCountToCells(64));
1.125 + PushArrayString(array, "faluco");
1.126 + PushArrayString(array, "bailopan");
1.127 + PushArrayString(array, "pm onoto");
1.128 + PushArrayString(array, "damaged soul");
1.129 + PushArrayString(array, "sniperbeamer");
1.130 + PushArrayString(array, "sidluke");
1.131 + PushArrayString(array, "johnny got his gun");
1.132 + PushArrayString(array, "gabe newell");
1.133 + PushArrayString(array, "hello");
1.134 + PushArrayString(array, "WHAT?!");
1.135 +
1.136 + PrintToServer("Testing ascending sort:")
1.137 + SortADTArray(array, Sort_Ascending, Sort_String)
1.138 + PrintADTArrayStrings(array)
1.139 +
1.140 + PrintToServer("Testing descending sort:")
1.141 + SortADTArray(array, Sort_Descending, Sort_String)
1.142 + PrintADTArrayStrings(array)
1.143 +
1.144 + return Plugin_Handled
1.145 +}
1.146 +
1.147 +public ArrayADTCustomCallback(index1, index2, Handle:array, Handle:hndl)
1.148 +{
1.149 + decl String:buffer1[64], String:buffer2[64];
1.150 + GetArrayString(array, index1, buffer1, sizeof(buffer1));
1.151 + GetArrayString(array, index2, buffer2, sizeof(buffer2));
1.152 +
1.153 + return strcmp(buffer1, buffer2);
1.154 +}
1.155 +
1.156 +public Action:Command_TestSortADTCustom(args)
1.157 +{
1.158 + new Handle:array = CreateArray(ByteCountToCells(64));
1.159 + PushArrayString(array, "faluco");
1.160 + PushArrayString(array, "bailopan");
1.161 + PushArrayString(array, "pm onoto");
1.162 + PushArrayString(array, "damaged soul");
1.163 + PushArrayString(array, "sniperbeamer");
1.164 + PushArrayString(array, "sidluke");
1.165 + PushArrayString(array, "johnny got his gun");
1.166 + PushArrayString(array, "gabe newell");
1.167 + PushArrayString(array, "hello");
1.168 + PushArrayString(array, "WHAT?!");
1.169 +
1.170 + PrintToServer("Testing custom sort:")
1.171 + SortADTArrayCustom(array, ArrayADTCustomCallback)
1.172 + PrintADTArrayStrings(array);
1.173 +}