TPCCLIB
Loading...
Searching...
No Matches
libtpcpar.c
1/******************************************************************************
2 * This file is not compiled into the library, but it contains main()
3 * which is compiled to an executable, used to test the library functions.
4 *****************************************************************************/
5
6/*****************************************************************************/
7#include "tpcclibConfig.h"
8/*****************************************************************************/
9#include <stdio.h>
10#include <stdlib.h>
11#include <math.h>
12#include <time.h>
13#include <string.h>
14#include <ctype.h>
15#include <unistd.h>
16/*****************************************************************************/
17#include "tpcextensions.h"
18#include "tpcmodels.h"
19/*****************************************************************************/
20#include "tpcpar.h"
21#include "test_tpcpar.h"
22/*****************************************************************************/
23
24/*****************************************************************************/
25static char *info[] = {
26 "Usage: @P [options]",
27 " ",
28 "Options:",
29 " -stdoptions", // List standard options like --help, -v, etc
30 " -t, --test",
31 " Run all tests for library functions.",
32 0};
33/*****************************************************************************/
34
35/*****************************************************************************/
40int main(
42 int argc,
44 char *argv[ ]
45) {
46 int i, help=0, version=0, verbose=1, error=0, test=0;
47 int ret;
48 char *cptr;
49
50 if(argc==1) {tpcPrintUsage(argv[0], info, stdout); return(0);}
51 for(i=1; i<argc; i++) {
52 if(tpcProcessStdOptions(argv[i], &help, &version, &verbose)==0) continue;
53 cptr=argv[i]; if(*cptr=='-') cptr++; if(*cptr=='-') cptr++;
54 if(strncasecmp(cptr, "TEST", 1)==0) {
55 test=1; continue;
56 } else {
57 error++; break;
58 }
59 }
60 if(error>0) {
61 fprintf(stderr, "Error: specify --help for usage.\n");
62 return(1);
63 }
64 /* Print help or version? */
65 if(help) {tpcPrintUsage(argv[0], info, stdout); return(0);}
66 if(version) {tpcPrintBuild(argv[0], stdout); return(0);}
67
68 if(test==0) return(0);
69
70 if(verbose>0) printf("running tests for library functions...\n");
71 TPCSTATUS status; statusInit(&status); status.verbose=verbose;
72 statusSet(&status, __func__, __FILE__, __LINE__, 0);
73 i=10;
74 /* par */
75 i++; if((ret=test_parInit(&status))!=0) {
76 fprintf(stderr, "failed (%d).\n", ret);
77 statusPrint(stderr, &status); statusFree(&status);
78 return(i);
79 }
80 i++; if((ret=test_parrInit(&status))!=0) {
81 fprintf(stderr, "failed (%d).\n", ret);
82 statusPrint(stderr, &status); statusFree(&status);
83 return(i);
84 }
85 i++; if((ret=test_parnInit(&status))!=0) {
86 fprintf(stderr, "failed (%d).\n", ret);
87 statusPrint(stderr, &status); statusFree(&status);
88 return(i);
89 }
90 i++; if((ret=test_parFree(&status))!=0) {
91 fprintf(stderr, "failed (%d).\n", ret);
92 statusPrint(stderr, &status); statusFree(&status);
93 return(i);
94 }
95 i++; if((ret=test_parrFree(&status))!=0) {
96 fprintf(stderr, "failed (%d).\n", ret);
97 statusPrint(stderr, &status); statusFree(&status);
98 return(i);
99 }
100 i++; if((ret=test_parrAllocate(&status))!=0) {
101 fprintf(stderr, "failed (%d).\n", ret);
102 statusPrint(stderr, &status); statusFree(&status);
103 return(i);
104 }
105 i++; if((ret=test_parAllocate(&status))!=0) {
106 fprintf(stderr, "failed (%d).\n", ret);
107 statusPrint(stderr, &status); statusFree(&status);
108 return(i);
109 }
110 i++; if((ret=test_parAllocateMore(&status))!=0) {
111 fprintf(stderr, "failed (%d).\n", ret);
112 statusPrint(stderr, &status); statusFree(&status);
113 return(i);
114 }
115 i++; if((ret=test_parEnsureNames(&status))!=0) {
116 fprintf(stderr, "failed (%d).\n", ret);
117 statusPrint(stderr, &status); statusFree(&status);
118 return(i);
119 }
120 i++; if((ret=test_parIsWSS(&status))!=0) {
121 fprintf(stderr, "failed (%d).\n", ret);
122 statusPrint(stderr, &status); statusFree(&status);
123 return(i);
124 }
125 i++; if((ret=test_parIsFitRange(&status))!=0) {
126 fprintf(stderr, "failed (%d).\n", ret);
127 statusPrint(stderr, &status); statusFree(&status);
128 return(i);
129 }
130 i++; if((ret=test_parIsModel(&status))!=0) {
131 fprintf(stderr, "failed (%d).\n", ret);
132 statusPrint(stderr, &status); statusFree(&status);
133 return(i);
134 }
135 i++; if((ret=test_parSDWithPar(&status))!=0) {
136 fprintf(stderr, "failed (%d).\n", ret);
137 statusPrint(stderr, &status); statusFree(&status);
138 return(i);
139 }
140 i++; if((ret=test_parCLWithPar(&status))!=0) {
141 fprintf(stderr, "failed (%d).\n", ret);
142 statusPrint(stderr, &status); statusFree(&status);
143 return(i);
144 }
145 i++; if((ret=test_parIsFitNr(&status))!=0) {
146 fprintf(stderr, "failed (%d).\n", ret);
147 statusPrint(stderr, &status); statusFree(&status);
148 return(i);
149 }
150 i++; if((ret=test_parIsDataNr(&status))!=0) {
151 fprintf(stderr, "failed (%d).\n", ret);
152 statusPrint(stderr, &status); statusFree(&status);
153 return(i);
154 }
155 i++; if((ret=test_parIsOptcrit(&status))!=0) {
156 fprintf(stderr, "failed (%d).\n", ret);
157 statusPrint(stderr, &status); statusFree(&status);
158 return(i);
159 }
160 i++; if((ret=test_parIsStudyNr(&status))!=0) {
161 fprintf(stderr, "failed (%d).\n", ret);
162 statusPrint(stderr, &status); statusFree(&status);
163 return(i);
164 }
165 i++; if((ret=test_parSetStudyNr(&status))!=0) {
166 fprintf(stderr, "failed (%d).\n", ret);
167 statusPrint(stderr, &status); statusFree(&status);
168 return(i);
169 }
170 i++; if((ret=test_parDeletePar(&status))!=0) {
171 fprintf(stderr, "failed (%d).\n", ret);
172 statusPrint(stderr, &status); statusFree(&status);
173 return(i);
174 }
175 i++; if((ret=test_parDeleteTAC(&status))!=0) {
176 fprintf(stderr, "failed (%d).\n", ret);
177 statusPrint(stderr, &status); statusFree(&status);
178 return(i);
179 }
180 /* parcsv */
181 i++; if((ret=test_parWriteCSV(&status))!=0) {
182 fprintf(stderr, "failed (%d).\n", ret);
183 statusPrint(stderr, &status); statusFree(&status);
184 return(i);
185 }
186 i++; if((ret=test_parReadCSV(&status))!=0) {
187 fprintf(stderr, "failed (%d).\n", ret);
188 statusPrint(stderr, &status); statusFree(&status);
189 return(i);
190 }
191 /* parift */
192 i++; if((ret=test_parToIFT(&status))!=0) {
193 fprintf(stderr, "failed (%d).\n", ret);
194 statusPrint(stderr, &status); statusFree(&status);
195 return(i);
196 }
197 i++; if((ret=test_parWriteIFT(&status))!=0) {
198 fprintf(stderr, "failed (%d).\n", ret);
199 statusPrint(stderr, &status); statusFree(&status);
200 return(i);
201 }
202 i++; if((ret=test_parFromIFT(&status))!=0) {
203 fprintf(stderr, "failed (%d).\n", ret);
204 statusPrint(stderr, &status); statusFree(&status);
205 return(i);
206 }
207 /* parxmlio */
208 i++; if((ret=test_parWriteXML(&status))!=0) {
209 fprintf(stderr, "failed (%d).\n", ret);
210 statusPrint(stderr, &status); statusFree(&status);
211 return(i);
212 }
213 /* pario */
214 i++; if((ret=test_parFormattxt(&status))!=0) {
215 fprintf(stderr, "failed (%d).\n", ret);
216 statusPrint(stderr, &status); statusFree(&status);
217 return(i);
218 }
219 i++; if((ret=test_parFormatIdentify(&status))!=0) {
220 fprintf(stderr, "failed (%d).\n", ret);
221 statusPrint(stderr, &status); statusFree(&status);
222 return(i);
223 }
224 i++; if((ret=test_parFormatFromExtension(&status))!=0) {
225 fprintf(stderr, "failed (%d).\n", ret);
226 statusPrint(stderr, &status); statusFree(&status);
227 return(i);
228 }
229 i++; if((ret=test_parDefaultExtension(&status))!=0) {
230 fprintf(stderr, "failed (%d).\n", ret);
231 statusPrint(stderr, &status); statusFree(&status);
232 return(i);
233 }
234 i++; if((ret=test_parWrite(&status))!=0) {
235 fprintf(stderr, "failed (%d).\n", ret);
236 statusPrint(stderr, &status); statusFree(&status);
237 return(i);
238 }
239 i++; if((ret=test_parRead(&status))!=0) {
240 fprintf(stderr, "failed (%d).\n", ret);
241 statusPrint(stderr, &status); statusFree(&status);
242 return(i);
243 }
244 i++; if((ret=test_parListLimits(&status))!=0) {
245 fprintf(stderr, "failed (%d).\n", ret);
246 statusPrint(stderr, &status); statusFree(&status);
247 return(i);
248 }
249 i++; if((ret=test_parWriteLimits(&status))!=0) {
250 fprintf(stderr, "failed (%d).\n", ret);
251 statusPrint(stderr, &status); statusFree(&status);
252 return(i);
253 }
254 i++; if((ret=test_parReadLimits(&status))!=0) {
255 fprintf(stderr, "failed (%d).\n", ret);
256 statusPrint(stderr, &status); statusFree(&status);
257 return(i);
258 }
259 /* parres */
260 i++; if((ret=test_parPrintType(&status))!=0) {
261 fprintf(stderr, "failed (%d).\n", ret);
262 statusPrint(stderr, &status); statusFree(&status);
263 return(i);
264 }
265 i++; if((ret=test_parWriteRES(&status))!=0) {
266 fprintf(stderr, "failed (%d).\n", ret);
267 statusPrint(stderr, &status); statusFree(&status);
268 return(i);
269 }
270 i++; if((ret=test_parReadRES(&status))!=0) {
271 fprintf(stderr, "failed (%d).\n", ret);
272 statusPrint(stderr, &status); statusFree(&status);
273 return(i);
274 }
275 /* parfit */
276 i++; if((ret=test_parWriteFIT(&status))!=0) {
277 fprintf(stderr, "failed (%d).\n", ret);
278 statusPrint(stderr, &status); statusFree(&status);
279 return(i);
280 }
281 i++; if((ret=test_parReadFIT(&status))!=0) {
282 fprintf(stderr, "failed (%d).\n", ret);
283 statusPrint(stderr, &status); statusFree(&status);
284 return(i);
285 }
286 /* parcomb */
287 i++; if((ret=test_parSelectByAnother(&status))!=0) {
288 fprintf(stderr, "failed (%d).\n", ret);
289 statusPrint(stderr, &status); statusFree(&status);
290 return(i);
291 }
292 i++; if((ret=test_parCombineTACs(&status))!=0) {
293 fprintf(stderr, "failed (%d).\n", ret);
294 statusPrint(stderr, &status); statusFree(&status);
295 return(i);
296 }
297 /* parcomp */
298 i++; if((ret=test_parCompareParameterNames(&status))!=0) {
299 fprintf(stderr, "failed (%d).\n", ret);
300 statusPrint(stderr, &status); statusFree(&status);
301 return(i);
302 }
303 i++; if((ret=test_parCompareParameterUnits(&status))!=0) {
304 fprintf(stderr, "failed (%d).\n", ret);
305 statusPrint(stderr, &status); statusFree(&status);
306 return(i);
307 }
308 i++; if((ret=test_parCompareTacNames(&status))!=0) {
309 fprintf(stderr, "failed (%d).\n", ret);
310 statusPrint(stderr, &status); statusFree(&status);
311 return(i);
312 }
313 i++; if((ret=test_parCompareParameters(&status))!=0) {
314 fprintf(stderr, "failed (%d).\n", ret);
315 statusPrint(stderr, &status); statusFree(&status);
316 return(i);
317 }
318 i++; if((ret=test_parCompareWSS(&status))!=0) {
319 fprintf(stderr, "failed (%d).\n", ret);
320 statusPrint(stderr, &status); statusFree(&status);
321 return(i);
322 }
323 /* parselect */
324 i++; if((ret=test_parSelectedTACs(&status))!=0) {
325 fprintf(stderr, "failed (%d).\n", ret);
326 statusPrint(stderr, &status); statusFree(&status);
327 return(i);
328 }
329 i++; if((ret=test_parSelectTACs(&status))!=0) {
330 fprintf(stderr, "failed (%d).\n", ret);
331 statusPrint(stderr, &status); statusFree(&status);
332 return(i);
333 }
334 i++; if((ret=test_parSelectedParameters(&status))!=0) {
335 fprintf(stderr, "failed (%d).\n", ret);
336 statusPrint(stderr, &status); statusFree(&status);
337 return(i);
338 }
339 i++; if((ret=test_parSelectParameters(&status))!=0) {
340 fprintf(stderr, "failed (%d).\n", ret);
341 statusPrint(stderr, &status); statusFree(&status);
342 return(i);
343 }
344 i++; if((ret=test_parFindParameter(&status))!=0) {
345 fprintf(stderr, "failed (%d).\n", ret);
346 statusPrint(stderr, &status); statusFree(&status);
347 return(i);
348 }
349 i++; if((ret=test_parGetParameter(&status))!=0) {
350 fprintf(stderr, "failed (%d).\n", ret);
351 statusPrint(stderr, &status); statusFree(&status);
352 return(i);
353 }
354 i++; if((ret=test_parGetParameterUnit(&status))!=0) {
355 fprintf(stderr, "failed (%d).\n", ret);
356 statusPrint(stderr, &status); statusFree(&status);
357 return(i);
358 }
359 i++; if((ret=test_parValueRange(&status))!=0) {
360 fprintf(stderr, "failed (%d).\n", ret);
361 statusPrint(stderr, &status); statusFree(&status);
362 return(i);
363 }
364 /* parorder */
365 i++; if((ret=test_parSortByName(&status))!=0) {
366 fprintf(stderr, "failed (%d).\n", ret);
367 statusPrint(stderr, &status); statusFree(&status);
368 return(i);
369 }
370 /* parexample */
371 i++; if((ret=test_parExampleTTACs(&status))!=0) {
372 fprintf(stderr, "failed (%d).\n", ret);
373 statusPrint(stderr, &status); statusFree(&status);
374 return(i);
375 }
376 i++; if((ret=test_parExamplePerfectBolus(&status))!=0) {
377 fprintf(stderr, "failed (%d).\n", ret);
378 statusPrint(stderr, &status); statusFree(&status);
379 return(i);
380 }
381 i++; if((ret=test_parExampleRadiowaterBolus(&status))!=0) {
382 fprintf(stderr, "failed (%d).\n", ret);
383 statusPrint(stderr, &status); statusFree(&status);
384 return(i);
385 }
386
387 if(verbose>0) printf("\nAll tests passed.\n\n");
388 statusFree(&status);
389 return(0);
390}
391/*****************************************************************************/
392
393/*****************************************************************************/
int tpcProcessStdOptions(const char *s, int *print_usage, int *print_version, int *verbose_level)
Definition proginfo.c:47
void tpcPrintBuild(const char *program, FILE *fp)
Definition proginfo.c:339
void tpcPrintUsage(const char *program, char *text[], FILE *fp)
Definition proginfo.c:114
void statusPrint(FILE *fp, TPCSTATUS *s)
Definition statusmsg.c:82
void statusInit(TPCSTATUS *s)
Definition statusmsg.c:104
void statusSet(TPCSTATUS *s, const char *func, const char *srcfile, int srcline, tpcerror error)
Definition statusmsg.c:142
void statusFree(TPCSTATUS *s)
Definition statusmsg.c:126
int verbose
Verbose level, used by statusPrint() etc.
Header file for library libtpcextensions.
Header file for libtpcmodels.
Header file for libtpcpar.