plugins/testsuite/sorttest.sp
author David Anderson <dvander@alliedmods.net>
Fri Jun 08 07:54:45 2007 +0000 (2007-06-08)
changeset 930 4ce68e8f7577
parent 535 f255342d132f
child 1701 9cf7f48da853
permissions -rw-r--r--
SourceMod now does authentication in core; admin-auth gets removed. this has an added bonus that OnClientAuthorized reliably has whether an admin is validated
dvander@535
     1
#include <sourcemod>
dvander@535
     2
dvander@535
     3
public Plugin:myinfo = 
dvander@535
     4
{
dvander@535
     5
	name = "Sorting Test",
dvander@535
     6
	author = "AlliedModders LLC",
dvander@535
     7
	description = "Tests sorting functions",
dvander@535
     8
	version = "1.0.0.0",
dvander@535
     9
	url = "http://www.sourcemod.net/"
dvander@535
    10
};
dvander@535
    11
dvander@535
    12
public OnPluginStart(Handle:myself)
dvander@535
    13
{
dvander@535
    14
	RegServerCmd("test_sort_ints", Command_TestSortInts)
dvander@535
    15
	RegServerCmd("test_sort_floats", Command_TestSortFloats)
dvander@535
    16
	RegServerCmd("test_sort_strings", Command_TestSortStrings)
dvander@535
    17
	RegServerCmd("test_sort_1d", Command_TestSort1D)
dvander@535
    18
	RegServerCmd("test_sort_2d", Command_TestSort2D)
dvander@535
    19
}
dvander@535
    20
dvander@535
    21
/*****************
dvander@535
    22
 * INTEGER TESTS *
dvander@535
    23
 *****************/
dvander@535
    24
// Note that integer comparison is just int1-int2 (or a variation therein)
dvander@535
    25
dvander@535
    26
PrintIntegers(const array[], size)
dvander@535
    27
{
dvander@535
    28
	for (new i=0; i<size; i++)
dvander@535
    29
	{
dvander@535
    30
		PrintToServer("array[%d] = %d", i, array[i])
dvander@535
    31
	}
dvander@535
    32
}
dvander@535
    33
dvander@535
    34
public Action:Command_TestSortInts(args)
dvander@535
    35
{
dvander@535
    36
	new array[10] = {6, 7, 3, 2, 8, 5, 0, 1, 4, 9}
dvander@535
    37
	
dvander@535
    38
	PrintToServer("Testing ascending sort:")
dvander@535
    39
	SortIntegers(array, 10, Sort_Ascending)
dvander@535
    40
	PrintIntegers(array, 10)
dvander@535
    41
	
dvander@535
    42
	PrintToServer("Testing descending sort:")
dvander@535
    43
	SortIntegers(array, 10, Sort_Descending)
dvander@535
    44
	PrintIntegers(array, 10)
dvander@535
    45
	
dvander@535
    46
	return Plugin_Handled
dvander@535
    47
}
dvander@535
    48
dvander@535
    49
/**************************
dvander@535
    50
 * Float comparison tests *
dvander@535
    51
 **************************/
dvander@535
    52
dvander@535
    53
PrintFloats(const Float:array[], size)
dvander@535
    54
{
dvander@535
    55
	for (new i=0; i<size; i++)
dvander@535
    56
	{
dvander@535
    57
		PrintToServer("array[%d] = %f", i, array[i])
dvander@535
    58
	}
dvander@535
    59
}
dvander@535
    60
dvander@535
    61
public Action:Command_TestSortFloats(args)
dvander@535
    62
{
dvander@535
    63
	new Float:array[10] = {6.3, 7.6, 3.2, 2.1, 8.5, 5.2, 0.4, 1.7, 4.8, 8.2}
dvander@535
    64
	
dvander@535
    65
	PrintToServer("Testing ascending sort:")
dvander@535
    66
	SortFloats(array, 10, Sort_Ascending)
dvander@535
    67
	PrintFloats(array, 10)
dvander@535
    68
	
dvander@535
    69
	PrintToServer("Testing descending sort:")
dvander@535
    70
	SortFloats(array, 10, Sort_Descending)
dvander@535
    71
	PrintFloats(array, 10)
dvander@535
    72
	
dvander@535
    73
	return Plugin_Handled
dvander@535
    74
}
dvander@535
    75
dvander@535
    76
public Custom1DSort(elem1, elem2, const array[], Handle:hndl)
dvander@535
    77
{
dvander@535
    78
	new Float:f1 = Float:elem1
dvander@535
    79
	new Float:f2 = Float:elem2
dvander@535
    80
	if (f1 > f2)
dvander@535
    81
	{
dvander@535
    82
		return -1;
dvander@535
    83
	} else if (f1 < f2) {
dvander@535
    84
		return 1;
dvander@535
    85
	}
dvander@535
    86
	
dvander@535
    87
	return 0;
dvander@535
    88
}
dvander@535
    89
dvander@535
    90
public Action:Command_TestSort1D(args)
dvander@535
    91
{
dvander@535
    92
	new Float:array[10] = {6.3, 7.6, 3.2, 2.1, 8.5, 5.2, 0.4, 1.7, 4.8, 8.2}
dvander@535
    93
	
dvander@535
    94
	SortCustom1D(_:array, 10, Custom1DSort)
dvander@535
    95
	PrintFloats(array, 10)
dvander@535
    96
	
dvander@535
    97
	return Plugin_Handled
dvander@535
    98
}
dvander@535
    99
dvander@535
   100
/***************************
dvander@535
   101
 * String comparison tests *
dvander@535
   102
 ***************************/
dvander@535
   103
dvander@535
   104
PrintStrings(const String:array[][], size)
dvander@535
   105
{
dvander@535
   106
	for (new i=0; i<size; i++)
dvander@535
   107
	{
dvander@535
   108
		PrintToServer("array[%d] = %s", i, array[i])
dvander@535
   109
	}
dvander@535
   110
}
dvander@535
   111
dvander@535
   112
public Action:Command_TestSortStrings(args)
dvander@535
   113
{
dvander@535
   114
	new String:strarray[][] = 
dvander@535
   115
		{
dvander@535
   116
			"faluco",
dvander@535
   117
			"bailopan",
dvander@535
   118
			"pm onoto",
dvander@535
   119
			"damaged soul",
dvander@535
   120
			"sniperbeamer",
dvander@535
   121
			"sidluke",
dvander@535
   122
			"johnny got his gun",
dvander@535
   123
			"gabe newell",
dvander@535
   124
			"hello",
dvander@535
   125
			"WHAT?!"
dvander@535
   126
		}
dvander@535
   127
		
dvander@535
   128
	PrintToServer("Testing ascending sort:")
dvander@535
   129
	SortStrings(strarray, 10, Sort_Ascending)
dvander@535
   130
	PrintStrings(strarray, 10)
dvander@535
   131
	
dvander@535
   132
	PrintToServer("Testing descending sort:")
dvander@535
   133
	SortStrings(strarray, 10, Sort_Descending)
dvander@535
   134
	PrintStrings(strarray, 10)
dvander@535
   135
	
dvander@535
   136
	return Plugin_Handled
dvander@535
   137
}
dvander@535
   138
dvander@535
   139
public Custom2DSort(String:elem1[], String:elem2[], String:array[][], Handle:hndl)
dvander@535
   140
{
dvander@535
   141
	return StrCompare(elem1, elem2)
dvander@535
   142
}
dvander@535
   143
dvander@535
   144
public Action:Command_TestSort2D(args)
dvander@535
   145
{
dvander@535
   146
	new String:array[][] = 
dvander@535
   147
		{
dvander@535
   148
			"faluco",
dvander@535
   149
			"bailopan",
dvander@535
   150
			"pm onoto",
dvander@535
   151
			"damaged soul",
dvander@535
   152
			"sniperbeamer",
dvander@535
   153
			"sidluke",
dvander@535
   154
			"johnny got his gun",
dvander@535
   155
			"gabe newell",
dvander@535
   156
			"hello",
dvander@535
   157
			"WHAT?!"
dvander@535
   158
		}
dvander@535
   159
	
dvander@535
   160
	SortCustom2D(_:array, 10, Custom2DSort)
dvander@535
   161
	PrintStrings(array, 10)
dvander@535
   162
	
dvander@535
   163
	return Plugin_Handled
dvander@535
   164
}