TPCCLIB
Loading...
Searching...
No Matches
libtpctacmod.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/*****************************************************************************/
19#include "tpctacmod.h"
20#include "test_tpctacmod.h"
21/*****************************************************************************/
22
23/*****************************************************************************/
24static char *info[] = {
25 "Usage: @P [options]",
26 " ",
27 "Options:",
28 " -stdoptions", // List standard options like --help, -v, etc
29 " -t, --test",
30 " Run all tests for library functions.",
31 0};
32/*****************************************************************************/
33
34/*****************************************************************************/
39int main(
41 int argc,
43 char *argv[ ]
44) {
45 int i, help=0, version=0, verbose=1, error=0, test=0;
46 int ret;
47 char *cptr;
48
49 if(argc==1) {tpcPrintUsage(argv[0], info, stdout); return(0);}
50 for(i=1; i<argc; i++) {
51 if(tpcProcessStdOptions(argv[i], &help, &version, &verbose)==0) continue;
52 cptr=argv[i]; if(*cptr=='-') cptr++; if(*cptr=='-') cptr++;
53 if(strncasecmp(cptr, "TEST", 1)==0) {
54 test=1; continue;
55 } else {
56 error++; break;
57 }
58 }
59 if(error>0) {
60 fprintf(stderr, "Error: specify --help for usage.\n");
61 return(1);
62 }
63 /* Print help or version? */
64 if(help) {tpcPrintUsage(argv[0], info, stdout); return(0);}
65 if(version) {tpcPrintBuild(argv[0], stdout); return(0);}
66
67 if(test==0) return(0);
68
69 if(verbose>0) printf("running tests for library functions...\n");
70 TPCSTATUS status; statusInit(&status); status.verbose=verbose;
71 statusSet(&status, __func__, __FILE__, __LINE__, 0);
72 i=10;
73
74 /* litac */
75 i++; if((ret=test_tacIntegrate(&status))!=0) {
76 fprintf(stderr, "failed (%d).\n", ret);
77 statusPrint(stderr, &status); statusFree(&status);
78 return(i);
79 }
80 i++; if((ret=test_tacIntegrateFE(&status))!=0) {
81 fprintf(stderr, "failed (%d).\n", ret);
82 statusPrint(stderr, &status); statusFree(&status);
83 return(i);
84 }
85 i++; if((ret=test_tacInterpolate(&status))!=0) {
86 fprintf(stderr, "failed (%d).\n", ret);
87 statusPrint(stderr, &status); statusFree(&status);
88 return(i);
89 }
90 i++; if((ret=test_tacInterpolateInto(&status))!=0) {
91 fprintf(stderr, "failed (%d).\n", ret);
92 statusPrint(stderr, &status); statusFree(&status);
93 return(i);
94 }
95 i++; if((ret=test_tacAUC(&status))!=0) {
96 fprintf(stderr, "failed (%d).\n", ret);
97 statusPrint(stderr, &status); statusFree(&status);
98 return(i);
99 }
100
101#if(0)
102 /* litacrange */
103 i++; if((ret=test_tacInterpolateCheckStart(&status))!=0) {
104 fprintf(stderr, "failed (%d).\n", ret);
105 statusPrint(stderr, &status); statusFree(&status);
106 return(i);
107 }
108 i++; if((ret=test_tacInterpolateCheckEnd(&status))!=0) {
109 fprintf(stderr, "failed (%d).\n", ret);
110 statusPrint(stderr, &status); statusFree(&status);
111 return(i);
112 }
113#endif
114
115 /* lisim */
116 i++; if((ret=test_tacInput2sim(&status))!=0) {
117 fprintf(stderr, "failed (%d).\n", ret);
118 statusPrint(stderr, &status); statusFree(&status);
119 return(i);
120 }
121 i++; if((ret=test_tacVb(&status))!=0) {
122 fprintf(stderr, "failed (%d).\n", ret);
123 statusPrint(stderr, &status); statusFree(&status);
124 return(i);
125 }
126 i++; if((ret=test_tacInterpolateToEqualLengthFrames(&status))!=0) {
127 fprintf(stderr, "failed (%d).\n", ret);
128 statusPrint(stderr, &status); statusFree(&status);
129 return(i);
130 }
131
132 /* tacmodelinput */
133 i++; if((ret=test_tacFittime(&status))!=0) {
134 fprintf(stderr, "failed (%d).\n", ret);
135 statusPrint(stderr, &status); statusFree(&status);
136 return(i);
137 }
138 i++; if((ret=test_tacReadModelingData(&status))!=0) {
139 fprintf(stderr, "failed (%d).\n", ret);
140 statusPrint(stderr, &status); statusFree(&status);
141 return(i);
142 }
143 i++; if((ret=test_tacReadReference(&status))!=0) {
144 fprintf(stderr, "failed (%d).\n", ret);
145 statusPrint(stderr, &status); statusFree(&status);
146 return(i);
147 }
148 i++; if((ret=test_tacReadModelingInput(&status))!=0) {
149 fprintf(stderr, "failed (%d).\n", ret);
150 statusPrint(stderr, &status); statusFree(&status);
151 return(i);
152 }
153 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
154
155 /* tacfitplot */
156 i++; if((ret=test_tacPlotFitSVG(&status))!=0) {
157 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
158 statusPrint(stderr, &status); statusFree(&status);
159 return(i);
160 }
161 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
162 i++; if((ret=test_tacPlotLineSVG(&status))!=0) {
163 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
164 statusPrint(stderr, &status); statusFree(&status);
165 return(i);
166 }
167 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
168
169 /* histplot */
170 i++; if((ret=test_tacPlotHistogramSVG(&status))!=0) {
171 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
172 statusPrint(stderr, &status); statusFree(&status);
173 return(i);
174 }
175 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
176
177 /* partac */
178 i++; if((ret=test_tacAllocateWithPAR(&status))!=0) {
179 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
180 statusPrint(stderr, &status); statusFree(&status);
181 return(i);
182 }
183 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
184 i++; if((ret=test_parAllocateWithTAC(&status))!=0) {
185 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
186 statusPrint(stderr, &status); statusFree(&status);
187 return(i);
188 }
189 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
190 i++; if((ret=test_tacToPAR(&status))!=0) {
191 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
192 statusPrint(stderr, &status); statusFree(&status);
193 return(i);
194 }
195 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
196
197 /* mftac */
198 i++; if((ret=test_mfCreateTAC(&status))!=0) {
199 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
200 statusPrint(stderr, &status); statusFree(&status);
201 return(i);
202 }
203 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
204
205 /* delay */
206 i++; if((ret=test_tacDelay(&status))!=0) {
207 fprintf(stderr, "failed (%d).\n", ret);
208 statusPrint(stderr, &status); statusFree(&status);
209 return(i);
210 }
211 i++; if((ret=test_initDelayFitData(&status))!=0) {
212 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
213 statusPrint(stderr, &status); statusFree(&status);
214 return(i);
215 }
216 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
217 i++; if((ret=test_freeDelayFitData(&status))!=0) {
218 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
219 statusPrint(stderr, &status); statusFree(&status);
220 return(i);
221 }
222 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
223 i++; if((ret=test_tacDelayFit(&status))!=0) {
224 fprintf(stderr, "failed (%d).\n", ret); fflush(stderr);
225 statusPrint(stderr, &status); statusFree(&status);
226 return(i);
227 }
228 if(verbose>2) {printf(" ok\n"); fflush(stdout);}
229
230
231 if(verbose>0) printf("\nAll tests passed.\n\n");
232 statusFree(&status);
233 return(0);
234}
235/*****************************************************************************/
236
237/*****************************************************************************/
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 libtpctacmod.