Mercurial > gnulib
annotate tests/test-tsearch.c @ 40155:84fd38f4932c
tests: Fix some "unused variable" warnings.
* tests/test-fts.c (fts_dealloc): Remove unused variable.
* tests/unigbrk/test-uc-grapheme-breaks.c (main): Likewise.
* tests/test-striconveh.c (main): Move some variable into the
'#if HAVE_ICONV'.
* tests/test-striconveha.c (main): Likewise.
* tests/uniconv/test-u8-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u16-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u32-conv-to-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-from-enc.c (main): Likewise.
* tests/uniconv/test-u8-strconv-to-enc.c (main): Likewise.
* tests/uniconv/test-u16-strconv-to-enc.c (main): Likewise.
* tests/uniconv/test-u32-strconv-to-enc.c (main): Likewise.
* tests/test-tsearch.c (main): Move some variable into the
'#if HAVE_INITSTATE'.
author | Bruno Haible <bruno@clisp.org> |
---|---|
date | Sun, 27 Jan 2019 12:24:47 +0100 |
parents | b06060465f09 |
children | a315d09bcec4 |
rev | line source |
---|---|
8534 | 1 /* Test program for tsearch et al. |
40057
b06060465f09
maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents:
19484
diff
changeset
|
2 Copyright (C) 1997, 2000-2001, 2007-2019 Free Software Foundation, Inc. |
8534 | 3 This file is part of the GNU C Library. |
4 | |
9308
7a5f9d09f389
Change copyright notice from LGPLv2.1+ to LGPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8534
diff
changeset
|
5 The GNU C Library is free software: you can redistribute it and/or |
7a5f9d09f389
Change copyright notice from LGPLv2.1+ to LGPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8534
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public License as |
7a5f9d09f389
Change copyright notice from LGPLv2.1+ to LGPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8534
diff
changeset
|
7 published by the Free Software Foundation; either version 3 of the |
7a5f9d09f389
Change copyright notice from LGPLv2.1+ to LGPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8534
diff
changeset
|
8 License, or (at your option) any later version. |
8534 | 9 |
10 The GNU C Library is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 Lesser General Public License for more details. | |
14 | |
9308
7a5f9d09f389
Change copyright notice from LGPLv2.1+ to LGPLv3+.
Bruno Haible <bruno@clisp.org>
parents:
8534
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public License |
19190 | 16 along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
8534 | 17 |
18 #include <config.h> | |
19 | |
20 #include <search.h> | |
21 | |
12489 | 22 #include "signature.h" |
23 SIGNATURE_CHECK (tdelete, void *, (void const *, void **, | |
24 int (*) (void const *, void const *))); | |
25 SIGNATURE_CHECK (tfind, void *, (void const *, void * const *, | |
26 int (*) (void const *, void const *))); | |
27 SIGNATURE_CHECK (tsearch, void *, (void const *, void **, | |
28 int (*) (void const *, void const *))); | |
29 SIGNATURE_CHECK (twalk, void, (void const *, | |
30 void (*) (void const *, VISIT, int))); | |
31 | |
8534 | 32 #include <stdint.h> |
33 #include <stdio.h> | |
34 #include <stdlib.h> | |
35 #include <string.h> | |
36 | |
18930
50d1e186bf78
fallthrough: update for GCC 7/8
Jim Meyering <meyering@fb.com>
parents:
18626
diff
changeset
|
37 #include "macros.h" |
50d1e186bf78
fallthrough: update for GCC 7/8
Jim Meyering <meyering@fb.com>
parents:
18626
diff
changeset
|
38 |
8534 | 39 #define SEED 0 |
40 #if HAVE_TSEARCH | |
41 /* The system's tsearch() is not expected to keep the tree balanced. */ | |
42 # define BALANCED 0 | |
43 #else | |
44 /* The gnulib replacement tsearch() should keep the tree balanced. */ | |
45 # define BALANCED 1 | |
46 #endif | |
47 #define PASSES 100 | |
48 | |
49 #if BALANCED | |
50 #include <math.h> | |
51 #define SIZE 1000 | |
52 #else | |
53 #define SIZE 100 | |
54 #endif | |
55 | |
56 #undef random | |
57 #define random() (int) ((unsigned int) rand () >> 3) | |
58 | |
59 enum order | |
60 { | |
61 ascending, | |
62 descending, | |
63 randomorder | |
64 }; | |
65 | |
66 enum action | |
67 { | |
68 build, | |
69 build_and_del, | |
70 delete, | |
71 find | |
72 }; | |
73 | |
74 /* Set to 1 if a test is flunked. */ | |
75 static int error = 0; | |
76 | |
77 /* The keys we add to the tree. */ | |
78 static int x[SIZE]; | |
79 | |
16358 | 80 /* Pointers into the key array, possibly permuted, to define an order |
8534 | 81 for insertion/removal. */ |
82 static int y[SIZE]; | |
83 | |
84 /* Flags set for each element visited during a tree walk. */ | |
85 static int z[SIZE]; | |
86 | |
87 /* Depths for all the elements, to check that the depth is constant for | |
88 all three visits. */ | |
89 static int depths[SIZE]; | |
90 | |
91 /* Maximum depth during a tree walk. */ | |
92 static int max_depth; | |
93 | |
94 /* Compare two keys. */ | |
95 static int | |
96 cmp_fn (const void *a, const void *b) | |
97 { | |
98 return *(const int *) a - *(const int *) b; | |
99 } | |
100 | |
101 /* Permute an array of integers. */ | |
102 static void | |
103 memfry (int *string) | |
104 { | |
105 int i; | |
106 | |
107 for (i = 0; i < SIZE; ++i) | |
108 { | |
109 int32_t j; | |
110 int c; | |
111 | |
112 j = random () % SIZE; | |
113 | |
114 c = string[i]; | |
115 string[i] = string[j]; | |
116 string[j] = c; | |
117 } | |
118 } | |
119 | |
120 static void | |
121 walk_action (const void *nodep, const VISIT which, const int depth) | |
122 { | |
123 int key = **(int **) nodep; | |
124 | |
125 if (depth > max_depth) | |
126 max_depth = depth; | |
127 if (which == leaf || which == preorder) | |
128 { | |
129 ++z[key]; | |
130 depths[key] = depth; | |
131 } | |
132 else | |
133 { | |
134 if (depths[key] != depth) | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
135 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
136 fputs ("Depth for one element is not constant during tree walk.\n", |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
137 stdout); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
138 } |
8534 | 139 } |
140 } | |
141 | |
142 static void | |
143 walk_tree (void *root, int expected_count) | |
144 { | |
145 int i; | |
146 | |
147 memset (z, 0, sizeof z); | |
148 max_depth = 0; | |
149 | |
150 twalk (root, walk_action); | |
151 for (i = 0; i < expected_count; ++i) | |
152 if (z[i] != 1) | |
153 { | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
154 fputs ("Node was not visited.\n", stdout); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
155 error = 1; |
8534 | 156 } |
157 | |
158 #if BALANCED | |
159 if (max_depth > log (expected_count) * 2 + 2) | |
160 #else | |
161 if (max_depth > expected_count) | |
162 #endif | |
163 { | |
164 fputs ("Depth too large during tree walk.\n", stdout); | |
165 error = 1; | |
166 } | |
167 } | |
168 | |
169 /* Perform an operation on a tree. */ | |
170 static void | |
171 mangle_tree (enum order how, enum action what, void **root, int lag) | |
172 { | |
173 int i; | |
174 | |
175 if (how == randomorder) | |
176 { | |
177 for (i = 0; i < SIZE; ++i) | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
178 y[i] = i; |
8534 | 179 memfry (y); |
180 } | |
181 | |
182 for (i = 0; i < SIZE + lag; ++i) | |
183 { | |
184 void *elem; | |
185 int j, k; | |
186 | |
187 switch (how) | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
188 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
189 case randomorder: |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
190 if (i >= lag) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
191 k = y[i - lag]; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
192 else |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
193 /* Ensure that the array index is within bounds. */ |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
194 k = y[(SIZE - i - 1 + lag) % SIZE]; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
195 j = y[i % SIZE]; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
196 break; |
8534 | 197 |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
198 case ascending: |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
199 k = i - lag; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
200 j = i; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
201 break; |
8534 | 202 |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
203 case descending: |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
204 k = SIZE - i - 1 + lag; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
205 j = SIZE - i - 1; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
206 break; |
8534 | 207 |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
208 default: |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
209 /* This never should happen, but gcc isn't smart enough to |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
210 recognize it. */ |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
211 abort (); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
212 } |
8534 | 213 |
214 switch (what) | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
215 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
216 case build_and_del: |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
217 case build: |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
218 if (i < SIZE) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
219 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
220 if (tfind (x + j, (void *const *) root, cmp_fn) != NULL) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
221 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
222 fputs ("Found element which is not in tree yet.\n", stdout); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
223 error = 1; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
224 } |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
225 elem = tsearch (x + j, root, cmp_fn); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
226 if (elem == 0 |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
227 || tfind (x + j, (void *const *) root, cmp_fn) == NULL) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
228 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
229 fputs ("Couldn't find element after it was added.\n", |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
230 stdout); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
231 error = 1; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
232 } |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
233 } |
8534 | 234 |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
235 if (what == build || i < lag) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
236 break; |
8534 | 237 |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
238 j = k; |
18930
50d1e186bf78
fallthrough: update for GCC 7/8
Jim Meyering <meyering@fb.com>
parents:
18626
diff
changeset
|
239 FALLTHROUGH; |
8534 | 240 |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
241 case delete: |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
242 elem = tfind (x + j, (void *const *) root, cmp_fn); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
243 if (elem == NULL || tdelete (x + j, root, cmp_fn) == NULL) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
244 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
245 fputs ("Error deleting element.\n", stdout); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
246 error = 1; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
247 } |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
248 break; |
8534 | 249 |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
250 case find: |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
251 if (tfind (x + j, (void *const *) root, cmp_fn) == NULL) |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
252 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
253 fputs ("Couldn't find element after it was added.\n", stdout); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
254 error = 1; |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
255 } |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
256 break; |
8534 | 257 |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
258 } |
8534 | 259 } |
260 } | |
261 | |
262 | |
263 int | |
264 main (int argc, char **argv) | |
265 { | |
266 int total_error = 0; | |
267 void *root = NULL; | |
268 int i, j; | |
269 | |
9943 | 270 #if HAVE_INITSTATE |
40155
84fd38f4932c
tests: Fix some "unused variable" warnings.
Bruno Haible <bruno@clisp.org>
parents:
40057
diff
changeset
|
271 static char state[8] = { 1, 2, 3, 4, 5, 6, 7, 8 }; |
84fd38f4932c
tests: Fix some "unused variable" warnings.
Bruno Haible <bruno@clisp.org>
parents:
40057
diff
changeset
|
272 |
8534 | 273 initstate (SEED, state, 8); |
9943 | 274 #endif |
8534 | 275 |
276 for (i = 0; i < SIZE; ++i) | |
277 x[i] = i; | |
278 | |
279 /* Do this loop several times to get different permutations for the | |
280 random case. */ | |
281 fputs ("Series I\n", stdout); | |
282 for (i = 0; i < PASSES; ++i) | |
283 { | |
284 fprintf (stdout, "Pass %d... ", i + 1); | |
285 fflush (stdout); | |
286 error = 0; | |
287 | |
288 mangle_tree (ascending, build, &root, 0); | |
289 mangle_tree (ascending, find, &root, 0); | |
290 mangle_tree (descending, find, &root, 0); | |
291 mangle_tree (randomorder, find, &root, 0); | |
292 walk_tree (root, SIZE); | |
293 mangle_tree (ascending, delete, &root, 0); | |
294 | |
295 mangle_tree (ascending, build, &root, 0); | |
296 walk_tree (root, SIZE); | |
297 mangle_tree (descending, delete, &root, 0); | |
298 | |
299 mangle_tree (ascending, build, &root, 0); | |
300 walk_tree (root, SIZE); | |
301 mangle_tree (randomorder, delete, &root, 0); | |
302 | |
303 mangle_tree (descending, build, &root, 0); | |
304 mangle_tree (ascending, find, &root, 0); | |
305 mangle_tree (descending, find, &root, 0); | |
306 mangle_tree (randomorder, find, &root, 0); | |
307 walk_tree (root, SIZE); | |
308 mangle_tree (descending, delete, &root, 0); | |
309 | |
310 mangle_tree (descending, build, &root, 0); | |
311 walk_tree (root, SIZE); | |
312 mangle_tree (descending, delete, &root, 0); | |
313 | |
314 mangle_tree (descending, build, &root, 0); | |
315 walk_tree (root, SIZE); | |
316 mangle_tree (randomorder, delete, &root, 0); | |
317 | |
318 mangle_tree (randomorder, build, &root, 0); | |
319 mangle_tree (ascending, find, &root, 0); | |
320 mangle_tree (descending, find, &root, 0); | |
321 mangle_tree (randomorder, find, &root, 0); | |
322 walk_tree (root, SIZE); | |
323 mangle_tree (randomorder, delete, &root, 0); | |
324 | |
325 for (j = 1; j < SIZE; j *= 2) | |
12421
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
326 { |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
327 mangle_tree (randomorder, build_and_del, &root, j); |
e8d2c6fc33ad
Use spaces for indentation, not tabs.
Bruno Haible <bruno@clisp.org>
parents:
9943
diff
changeset
|
328 } |
8534 | 329 |
330 fputs (error ? " failed!\n" : " ok.\n", stdout); | |
331 total_error |= error; | |
332 } | |
333 | |
334 fputs ("Series II\n", stdout); | |
335 for (i = 1; i < SIZE; i *= 2) | |
336 { | |
337 fprintf (stdout, "For size %d... ", i); | |
338 fflush (stdout); | |
339 error = 0; | |
340 | |
341 mangle_tree (ascending, build_and_del, &root, i); | |
342 mangle_tree (descending, build_and_del, &root, i); | |
343 mangle_tree (ascending, build_and_del, &root, i); | |
344 mangle_tree (descending, build_and_del, &root, i); | |
345 mangle_tree (ascending, build_and_del, &root, i); | |
346 mangle_tree (descending, build_and_del, &root, i); | |
347 mangle_tree (ascending, build_and_del, &root, i); | |
348 mangle_tree (descending, build_and_del, &root, i); | |
349 | |
350 fputs (error ? " failed!\n" : " ok.\n", stdout); | |
351 total_error |= error; | |
352 } | |
353 | |
354 return total_error; | |
355 } |