18 const int a = *((
const int *) _a);
19 const int b = *((
const int *) _b);
20 return (a < b) ? -1 : ((a >
b) ? 1 : 0);
24 test_sort(
const char *desc,
int *nums,
const int arraylen)
29 SDL_Log(
"test: %s arraylen=%d", desc, arraylen);
34 for (i = 1; i < arraylen; i++) {
35 const int val = nums[
i];
45 main(
int argc,
char *argv[])
47 static int nums[1024 * 100];
56 if (argv[1][0] ==
'0' && argv[1][1] ==
'x')
57 success =
SDL_sscanf(argv[1] + 2,
"%llx", &seed);
65 if (seed <= 0xffffffff)
70 SDLTest_RandomInit(&rndctx, (
unsigned int)(seed >> 32), (
unsigned int)(seed & 0xffffffff));
76 SDL_Log(
"Using random seed 0x%08x%08x\n", rndctx.
x, rndctx.
c);
78 for (iteration = 0; iteration <
SDL_arraysize(itervals); iteration++) {
82 for (i = 0; i < arraylen; i++) {
85 test_sort(
"already sorted", nums, arraylen);
87 for (i = 0; i < arraylen; i++) {
90 nums[arraylen-1] = -1;
91 test_sort(
"already sorted except last element", nums, arraylen);
93 for (i = 0; i < arraylen; i++) {
94 nums[
i] = (arraylen-1) - i;
96 test_sort(
"reverse sorted", nums, arraylen);
98 for (i = 0; i < arraylen; i++) {
101 test_sort(
"random sorted", nums, arraylen);
int main(int argc, char *argv[])
static void test_sort(const char *desc, int *nums, const int arraylen)
void SDLTest_RandomInit(SDLTest_RandomContext *rndContext, unsigned int xi, unsigned int ci)
Initialize random number generator with two integers.
void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext)
Initialize random number generator based on current system time.
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
#define SDLTest_RandomInt(c)
#define SDL_arraysize(array)
static int num_compare(const void *_a, const void *_b)
GLboolean GLboolean GLboolean GLboolean a
GLboolean GLboolean GLboolean b