3 \brief Testing module for the various sorting routines in GKlib
7 \version\verbatim $Id: gksort.c 11058 2011-11-10 00:02:50Z karypis $ \endverbatim
14 /*************************************************************************/
15 /*! Testing module for gk_?isort() routine */
16 /*************************************************************************/
22 /* test the increasing sort */
23 printf("Testing iisort...\n");
25 array
[i
] = RandomInRange(123432);
29 for (i
=0; i
<N
-1; i
++) {
30 if (array
[i
] > array
[i
+1])
31 printf("gk_isorti error at index %jd [%d %d]\n", (intmax_t)i
, array
[i
], array
[i
+1]);
35 /* test the decreasing sort */
36 printf("Testing disort...\n");
38 array
[i
] = RandomInRange(123432);
42 for (i
=0; i
<N
-1; i
++) {
43 if (array
[i
] < array
[i
+1])
44 printf("gk_isortd error at index %jd [%d %d]\n", (intmax_t)i
, array
[i
], array
[i
+1]);
50 /*************************************************************************/
51 /*! Testing module for gk_?fsort() routine */
52 /*************************************************************************/
58 /* test the increasing sort */
59 printf("Testing ifsort...\n");
61 array
[i
] = RandomInRange(123432)/(1.0+RandomInRange(645323));
65 for (i
=0; i
<N
-1; i
++) {
66 if (array
[i
] > array
[i
+1])
67 printf("gk_fsorti error at index %jd [%f %f]\n", (intmax_t)i
, array
[i
], array
[i
+1]);
71 /* test the decreasing sort */
72 printf("Testing dfsort...\n");
74 array
[i
] = RandomInRange(123432)/(1.0+RandomInRange(645323));
78 for (i
=0; i
<N
-1; i
++) {
79 if (array
[i
] < array
[i
+1])
80 printf("gk_fsortd error at index %jd [%f %f]\n", (intmax_t)i
, array
[i
], array
[i
+1]);
86 /*************************************************************************/
87 /*! Testing module for gk_?idxsort() routine */
88 /*************************************************************************/
94 /* test the increasing sort */
95 printf("Testing idxsorti...\n");
97 array
[i
] = RandomInRange(123432);
99 gk_idxsorti(N
, array
);
101 for (i
=0; i
<N
-1; i
++) {
102 if (array
[i
] > array
[i
+1])
103 printf("gk_idxsorti error at index %zd [%zd %zd]\n", (ssize_t
)i
, (ssize_t
)array
[i
], (ssize_t
)array
[i
+1]);
107 /* test the decreasing sort */
108 printf("Testing idxsortd...\n");
110 array
[i
] = RandomInRange(123432);
112 gk_idxsortd(N
, array
);
114 for (i
=0; i
<N
-1; i
++) {
115 if (array
[i
] < array
[i
+1])
116 printf("gk_idxsortd error at index %zd [%zd %zd]\n", (ssize_t
)i
, (ssize_t
)array
[i
], (ssize_t
)array
[i
+1]);
123 /*************************************************************************/
124 /*! Testing module for gk_?ikvsort() routine */
125 /*************************************************************************/
131 /* test the increasing sort */
132 printf("Testing ikvsorti...\n");
133 for (i
=0; i
<N
; i
++) {
134 array
[i
].key
= RandomInRange(123432);
138 gk_ikvsorti(N
, array
);
140 for (i
=0; i
<N
-1; i
++) {
141 if (array
[i
].key
> array
[i
+1].key
)
142 printf("gk_ikvsorti error at index %jd [%d %d] [%jd %jd]\n", (intmax_t)i
, array
[i
].key
, array
[i
+1].key
, (intmax_t)array
[i
].val
, (intmax_t)array
[i
+1].val
);
146 /* test the decreasing sort */
147 printf("Testing ikvsortd...\n");
148 for (i
=0; i
<N
; i
++) {
149 array
[i
].key
= RandomInRange(123432);
153 gk_ikvsortd(N
, array
);
155 for (i
=0; i
<N
-1; i
++) {
156 if (array
[i
].key
< array
[i
+1].key
)
157 printf("gk_ikvsortd error at index %jd [%d %d] [%jd %jd]\n", (intmax_t)i
, array
[i
].key
, array
[i
+1].key
, (intmax_t)array
[i
].val
, (intmax_t)array
[i
+1].val
);
164 /*************************************************************************/
165 /*! Testing module for gk_?fkvsort() routine */
166 /*************************************************************************/
172 /* test the increasing sort */
173 printf("Testing fkvsorti...\n");
174 for (i
=0; i
<N
; i
++) {
175 array
[i
].key
= RandomInRange(123432)/(1.0+RandomInRange(645323));
179 gk_fkvsorti(N
, array
);
181 for (i
=0; i
<N
-1; i
++) {
182 if (array
[i
].key
> array
[i
+1].key
)
183 printf("gk_fkvsorti error at index %jd [%f %f] [%jd %jd]\n", (intmax_t)i
, array
[i
].key
, array
[i
+1].key
, (intmax_t)array
[i
].val
, (intmax_t)array
[i
+1].val
);
187 /* test the decreasing sort */
188 printf("Testing fkvsortd...\n");
189 for (i
=0; i
<N
; i
++) {
190 array
[i
].key
= RandomInRange(123432)/(1.0+RandomInRange(645323));
194 gk_fkvsortd(N
, array
);
196 for (i
=0; i
<N
-1; i
++) {
197 if (array
[i
].key
< array
[i
+1].key
)
198 printf("gk_fkvsortd error at index %jd [%f %f] [%jd %jd]\n", (intmax_t)i
, array
[i
].key
, array
[i
+1].key
, (intmax_t)array
[i
].val
, (intmax_t)array
[i
+1].val
);
204 /*************************************************************************/
205 /*! Testing module for gk_?dkvsort() routine */
206 /*************************************************************************/
212 /* test the increasing sort */
213 printf("Testing dkvsorti...\n");
214 for (i
=0; i
<N
; i
++) {
215 array
[i
].key
= RandomInRange(123432)/(1.0+RandomInRange(645323));
219 gk_dkvsorti(N
, array
);
221 for (i
=0; i
<N
-1; i
++) {
222 if (array
[i
].key
> array
[i
+1].key
)
223 printf("gk_dkvsorti error at index %jd [%lf %lf] [%jd %jd]\n", (intmax_t)i
, array
[i
].key
, array
[i
+1].key
, (intmax_t)array
[i
].val
, (intmax_t)array
[i
+1].val
);
227 /* test the decreasing sort */
228 printf("Testing dkvsortd...\n");
229 for (i
=0; i
<N
; i
++) {
230 array
[i
].key
= RandomInRange(123432)/(1.0+RandomInRange(645323));
234 gk_dkvsortd(N
, array
);
236 for (i
=0; i
<N
-1; i
++) {
237 if (array
[i
].key
< array
[i
+1].key
)
238 printf("gk_dkvsortd error at index %jd [%lf %lf] [%jd %jd]\n", (intmax_t)i
, array
[i
].key
, array
[i
+1].key
, (intmax_t)array
[i
].val
, (intmax_t)array
[i
+1].val
);
244 /*************************************************************************/
245 /*! Testing module for gk_?skvsort() routine */
246 /*************************************************************************/
253 /* test the increasing sort */
254 printf("Testing skvsorti...\n");
255 for (i
=0; i
<N
; i
++) {
256 sprintf(line
, "%d", RandomInRange(123432));
257 array
[i
].key
= gk_strdup(line
);
261 gk_skvsorti(N
, array
);
263 for (i
=0; i
<N
-1; i
++) {
264 if (strcmp(array
[i
].key
, array
[i
+1].key
) > 0)
265 printf("gk_skvsorti error at index %jd [%s %s] [%jd %jd]\n", (intmax_t)i
, array
[i
].key
, array
[i
+1].key
, (intmax_t)array
[i
].val
, (intmax_t)array
[i
+1].val
);
269 /* test the decreasing sort */
270 printf("Testing skvsortd...\n");
271 for (i
=0; i
<N
; i
++) {
272 sprintf(line
, "%d", RandomInRange(123432));
273 array
[i
].key
= gk_strdup(line
);
277 gk_skvsortd(N
, array
);
279 for (i
=0; i
<N
-1; i
++) {
280 /*printf("%s\n", array[i].key);*/
281 if (strcmp(array
[i
].key
, array
[i
+1].key
) < 0)
282 printf("gk_skvsortd error at index %jd [%s %s] [%jd %jd]\n", (intmax_t)i
, array
[i
].key
, array
[i
+1].key
, (intmax_t)array
[i
].val
, (intmax_t)array
[i
+1].val
);
288 /*************************************************************************/
289 /*! Testing module for gk_?idxkvsort() routine */
290 /*************************************************************************/
291 void test_idxkvsort()
296 /* test the increasing sort */
297 printf("Testing idxkvsorti...\n");
298 for (i
=0; i
<N
; i
++) {
299 array
[i
].key
= RandomInRange(123432);
303 gk_idxkvsorti(N
, array
);
305 for (i
=0; i
<N
-1; i
++) {
306 if (array
[i
].key
> array
[i
+1].key
)
307 printf("gk_idxkvsorti error at index %zd [%zd %zd] [%zd %zd]\n",
308 (ssize_t
)i
, (ssize_t
)array
[i
].key
, (ssize_t
)array
[i
+1].key
,
309 (ssize_t
)array
[i
].val
, (ssize_t
)array
[i
+1].val
);
313 /* test the decreasing sort */
314 printf("Testing idxkvsortd...\n");
315 for (i
=0; i
<N
; i
++) {
316 array
[i
].key
= RandomInRange(123432);
320 gk_idxkvsortd(N
, array
);
322 for (i
=0; i
<N
-1; i
++) {
323 if (array
[i
].key
< array
[i
+1].key
)
324 printf("gk_idxkvsortd error at index %zd [%zd %zd] [%zd %zd]\n",
325 (ssize_t
)i
, (ssize_t
)array
[i
].key
, (ssize_t
)array
[i
+1].key
,
326 (ssize_t
)array
[i
].val
, (ssize_t
)array
[i
+1].val
);