7#include "tpcclibConfig.h"
18#include "test_tpcextensions.h"
22static char *info[] = {
23 "Usage: @P [options]",
28 " Run all tests for library functions.",
43 int i, help=0, version=0, verbose=1, error=0, test=0;
47 if(argc==1) {
tpcPrintUsage(argv[0], info, stdout);
return(0);}
48 for(i=1; i<argc; i++) {
50 cptr=argv[i];
if(*cptr==
'-') cptr++;
if(*cptr==
'-') cptr++;
51 if(strncasecmp(cptr,
"TEST", 1)==0) {
58 fprintf(stderr,
"Error: specify --help for usage.\n");
65 if(test==0)
return(0);
67 if(verbose>0) printf(
"running tests for library functions...\n");
69 statusSet(&status, __func__, __FILE__, __LINE__, 0);
73 i++;
if((ret=test_strTokenNr(&status))!=0) {
74 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
75 i++;
if((ret=test_strTokenNCpy(&status))!=0) {
76 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
77 i++;
if((ret=test_strChrCount(&status))!=0) {
78 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
79 i++;
if((ret=test_strUppercaseCount(&status))!=0) {
80 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
81 i++;
if((ret=test_strReplaceChar(&status))!=0) {
82 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
84 i++;
if((ret=test_strndup(&status))!=0) {
85 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
87 i++;
if((ret=test_strstrNoQuotation(&status))!=0) {
88 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
89 i++;
if((ret=test_strncpyCleanSpaces(&status))!=0) {
90 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
91 i++;
if((ret=test_strCleanSpaces(&status))!=0) {
92 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
93 i++;
if((ret=test_strncpyClean(&status))!=0) {
94 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
95 i++;
if((ret=test_strClean(&status))!=0) {
96 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
97 i++;
if((ret=test_strTokenDup(&status))!=0) {
98 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
99 i++;
if((ret=test_strInPars(&status))!=0) {
100 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
101 i++;
if((ret=test_strCleanPars(&status))!=0) {
102 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
103 i++;
if((ret=test_strncatInt(&status))!=0) {
104 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
105 i++;
if((ret=test_strncatDouble(&status))!=0) {
106 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
107 i++;
if((ret=test_strncatIntZ(&status))!=0) {
108 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
110 i++;
if((ret=test_strnlen(&status))!=0) {
111 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
114 i++;
if((ret=test_strlcat(&status))!=0) {
115 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
118 i++;
if((ret=test_strlcpy(&status))!=0) {
119 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
121 i++;
if((ret=test_strIsSpaceOnly(&status))!=0) {
122 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
123 i++;
if((ret=test_strdelstr(&status))!=0) {
124 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
125 i++;
if((ret=test_strTrimLeft(&status))!=0) {
126 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
127 i++;
if((ret=test_strEncodeForXML(&status))!=0) {
128 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
129 i++;
if((ret=test_strCleanForXML(&status))!=0) {
130 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
133 i++;
if((ret=test_strIsValidNumber(&status))!=0) {
134 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
135 i++;
if((ret=test_atofVerified(&status))!=0) {
136 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
137 i++;
if((ret=test_atofCheck(&status)!=0)) {
138 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
139 i++;
if((ret=test_strHaveDecimalComma(&status))!=0) {
140 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
141 i++;
if((ret=test_strHaveDecimalSeparator(&status))!=0) {
142 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
143 i++;
if((ret=test_atofList(&status))!=0) {
144 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
147 i++;
if((ret=test_filenameRmPath(&status))!=0) {
148 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
149 i++;
if((ret=test_filenameRmFile(&status))!=0) {
150 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
151 i++;
if((ret=test_filenameRmExtension(&status))!=0) {
152 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
153 i++;
if((ret=test_filenameRmExtensions(&status))!=0) {
154 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
155 i++;
if((ret=test_fnmatch(&status))!=0) {
156 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
157 i++;
if((ret=test_fncasematch(&status))!=0) {
158 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
159 i++;
if((ret=test_filenameGetExtension(&status))!=0) {
160 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
161 i++;
if((ret=test_filenameGetExtensions(&status))!=0) {
162 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
165 i++;
if((ret=test_tpcProcessStdOptions(&status))!=0) {
166 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
167 i++;
if((ret=test_tpcPrintUsage(&status))!=0) {
168 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
169 i++;
if((ret=test_tpcPrintBuild(&status))!=0) {
170 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
171 i++;
if((ret=test_tpcProgramName(&status))!=0) {
172 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
173 i++;
if((ret=test_tpcYesNo(&status))!=0) {
174 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
177 i++;
if((ret=test_unitName(&status))!=0) {
178 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
179 i++;
if((ret=test_unitIdentify(&status))!=0) {
180 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
181 i++;
if((ret=test_unitIdentifyFilename(&status))!=0) {
182 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
183 i++;
if((ret=test_unitIsDistance(&status))!=0) {
184 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
185 i++;
if((ret=test_unitIsTime(&status))!=0) {
186 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
187 i++;
if((ret=test_unitIsVolume(&status))!=0) {
188 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
189 i++;
if((ret=test_unitIsMass(&status))!=0) {
190 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
191 i++;
if((ret=test_unitIsMole(&status))!=0) {
192 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
193 i++;
if((ret=test_unitIsRadioactivity(&status))!=0) {
194 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
195 i++;
if((ret=test_unitIsRAConc(&status))!=0) {
196 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
197 i++;
if((ret=test_unitIsCombinatorial(&status))!=0) {
198 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
199 i++;
if((ret=test_unitConversionFactor(&status))!=0) {
200 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
201 i++;
if((ret=test_unitInverse(&status))!=0) {
202 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
203 i++;
if((ret=test_unitDividerHasVolume(&status))!=0) {
204 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
205 i++;
if((ret=test_unitDividerHasMass(&status))!=0) {
206 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
207 i++;
if((ret=test_unitDividendHasRadioactivity(&status))!=0) {
208 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
209 i++;
if((ret=test_unitCombination(&status))!=0) {
210 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
211 i++;
if((ret=test_unitDividerMassVolumeConversion(&status))!=0) {
212 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
213 i++;
if((ret=test_unitMultiply(&status))!=0) {
214 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
217 i++;
if((ret=test_statusPrint(&status))!=0) {
218 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
219 i++;
if((ret=test_errorMsg(&status))!=0) {
220 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
223 i++;
if((ret=test_asciiFileSize(&status))!=0) {
224 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
225 i++;
if((ret=test_asciiFileRead(&status))!=0) {
226 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
227 i++;
if((ret=test_asciiCommentLine(&status))!=0) {
228 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
231 i++;
if((ret=test_strDateValid(&status))!=0) {
232 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
233 i++;
if((ret=test_strDateValid2(&status))!=0) {
234 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
235 i++;
if((ret=test_strDateValid3(&status))!=0) {
236 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
237 i++;
if((ret=test_strDateValid4(&status))!=0) {
238 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
239 i++;
if((ret=test_strTimeValid(&status))!=0) {
240 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
241 i++;
if((ret=test_strDateTimeValid(&status))!=0) {
242 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
243 i++;
if((ret=test_strDateTimeRead(&status))!=0) {
244 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
245 i++;
if((ret=test_strDateRead(&status))!=0) {
246 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
247 i++;
if((ret=test_time_to_tm(&status))!=0) {
248 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
249 i++;
if((ret=test_tmDifference(&status))!=0) {
250 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
251 i++;
if((ret=test_tmAdd(&status))!=0) {
252 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
253 i++;
if((ret=test_strDateTimeDifference(&status))!=0) {
254 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
255 i++;
if((ret=test_strDateTimeAdd(&status))!=0) {
256 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
257 i++;
if((ret=test_timespecDifference(&status))!=0) {
258 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
261 i++;
if((ret=test_studynrVerify(&status))!=0) {
262 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
263 i++;
if((ret=test_studynrStandardize(&status))!=0) {
264 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
265 i++;
if((ret=test_studynrFromFilename(&status))!=0) {
266 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
269 i++;
if((ret=test_doubleMatch(&status))!=0) {
270 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
271 i++;
if((ret=test_doubleArrayMatch(&status))!=0) {
272 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
273 i++;
if((ret=test_doubleMatchRel(&status))!=0) {
274 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
275 i++;
if((ret=test_doubleMachEps(&status))!=0) {
276 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
277 i++;
if((ret=test_doubleCopy(&status))!=0) {
278 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
279 i++;
if((ret=test_doubleCopyFinite(&status))!=0) {
280 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
281 i++;
if((ret=test_doubleNaNs(&status))!=0) {
282 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
283 i++;
if((ret=test_doubleRange(&status))!=0) {
284 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
285 i++;
if((ret=test_doubleSum(&status))!=0) {
286 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
287 i++;
if((ret=test_doubleMean(&status))!=0) {
288 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
289 i++;
if((ret=test_doubleWMean(&status))!=0) {
290 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
291 i++;
if((ret=test_doubleGetWithUnit(&status))!=0) {
292 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
293 i++;
if((ret=test_doubleSpanPositives(&status))!=0) {
294 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
295 i++;
if((ret=test_doubleCSpanPositives(&status))!=0) {
296 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
297 i++;
if((ret=test_doubleNonzeroes(&status))!=0) {
298 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
299 i++;
if((ret=test_doubleMaxIndex(&status))!=0) {
300 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
301 i++;
if((ret=test_doubleAbsMaxIndex(&status))!=0) {
302 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
303 i++;
if((ret=test_doubleMinIndex(&status))!=0) {
304 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
305 i++;
if((ret=test_doubleAbsMinIndex(&status))!=0) {
306 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
307 i++;
if((ret=test_doubleGEIndex(&status))!=0) {
308 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
309 i++;
if((ret=test_doubleGTIndex(&status))!=0) {
310 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
311 i++;
if((ret=test_inverfc(&status))!=0) {
312 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
313 i++;
if((ret=test_linRegr3p(&status))!=0) {
314 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
317 i++;
if((ret=test_floatMatch(&status))!=0) {
318 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
319 i++;
if((ret=test_floatMatchRel(&status))!=0) {
320 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
321 i++;
if((ret=test_floatMachEps(&status))!=0) {
322 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
323 i++;
if((ret=test_floatCopy(&status))!=0) {
324 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
325 i++;
if((ret=test_floatMaxIndex(&status))!=0) {
326 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
327 i++;
if((ret=test_floatSum(&status))!=0) {
328 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
329 i++;
if((ret=test_floatMean(&status))!=0) {
330 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
331 i++;
if((ret=test_floatGetWithUnit(&status))!=0) {
332 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
333 i++;
if((ret=test_floatSpanPositives(&status))!=0) {
334 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
335 i++;
if((ret=test_floatCSpanPositives(&status))!=0) {
336 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
337 i++;
if((ret=test_floatNonzeroes(&status))!=0) {
338 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
340 i++;
if((ret=test_atoiCheck(&status))!=0) {
341 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
342 i++;
if((ret=test_factorial(&status))!=0) {
343 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
344 i++;
if((ret=test_lfactorial(&status))!=0) {
345 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
346 i++;
if((ret=test_intlistInit(&status))!=0) {
347 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
348 i++;
if((ret=test_intlistFree(&status))!=0) {
349 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
350 i++;
if((ret=test_intlistAdd(&status))!=0) {
351 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
352 i++;
if((ret=test_intlistSort(&status))!=0) {
353 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
354 i++;
if((ret=test_intlistAddFromString(&status))!=0) {
355 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
356 i++;
if((ret=test_intlistExpandFromString(&status))!=0) {
357 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
360 i++;
if((ret=test_roinameSubpart(&status))!=0) {
361 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
362 i++;
if((ret=test_roinameEditByTemplate(&status))!=0) {
363 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
364 i++;
if((ret=test_roinameAddField(&status))!=0) {
365 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
366 i++;
if((ret=test_roinameExists(&status))!=0) {
367 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
368 i++;
if((ret=test_roinameMatch(&status))!=0) {
369 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
372 i++;
if((ret=test_endianness(&status))!=0) {
373 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
374 i++;
if((ret=test_endianLittle(&status))!=0) {
375 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
376 i++;
if((ret=test_swap(&status))!=0) {
377 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
378 i++;
if((ret=test_swabip(&status))!=0) {
379 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
380 i++;
if((ret=test_swawbip(&status))!=0) {
381 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
382 i++;
if((ret=test_swawip(&status))!=0) {
383 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
384 i++;
if((ret=test_swap64ip(&status))!=0) {
385 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
386 i++;
if((ret=test_swap32ip(&status))!=0) {
387 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
388 i++;
if((ret=test_swap16ip(&status))!=0) {
389 fprintf(stderr,
"failed (%d).\n", ret);
return(i);}
391 if(verbose>0) printf(
"\nAll tests passed.\n\n");
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
void tpcPrintBuild(const char *program, FILE *fp)
void tpcPrintUsage(const char *program, char *text[], FILE *fp)
void statusInit(TPCSTATUS *s)
void statusSet(TPCSTATUS *s, const char *func, const char *srcfile, int srcline, tpcerror error)
int verbose
Verbose level, used by statusPrint() etc.
Header file for library libtpcextensions.