plugins/testsuite/sorttest.sp
changeset 1701 9cf7f48da853
parent 535 f255342d132f
child 1917 3b9449e1cb98
     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 +}