18 const int a = *((
const int *) _a);
19 const int b = *((
const int *) _b);
20 return (
a <
b) ? -1 : ((
a >
b) ? 1 : 0);
24test_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];
45main(
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);
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);
@ SDL_LOG_CATEGORY_APPLICATION
GLboolean GLboolean GLboolean b
GLboolean GLboolean GLboolean GLboolean a
#define SDL_arraysize(array)
#define SDLTest_RandomInt(c)
void SDLTest_RandomInitTime(SDLTest_RandomContext *rndContext)
Initialize random number generator based on current system time.
void SDLTest_RandomInit(SDLTest_RandomContext *rndContext, unsigned int xi, unsigned int ci)
Initialize random number generator with two integers.
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)
int main(int argc, char *argv[])
static int num_compare(const void *_a, const void *_b)
static void test_sort(const char *desc, int *nums, const int arraylen)