TPCCLIB
Loading...
Searching...
No Matches
libtpcimage.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 <unistd.h>
10/*****************************************************************************/
11#include "tpcimage.h"
12#include "test_tpcimage.h"
13/*****************************************************************************/
14
15/*****************************************************************************/
16static char *info[] = {
17 "Usage: @P [options]",
18 " ",
19 "Options:",
20 " -stdoptions", // List standard options like --help, -v, etc
21 " -t, --test",
22 " Run all tests for library functions.",
23 0};
24/*****************************************************************************/
25
26/*****************************************************************************/
31int main(
33 int argc,
35 char *argv[ ]
36) {
37 int i, help=0, version=0, verbose=1, error=0, test=0;
38 int ret;
39 char *cptr;
40
41 if(argc==1) {tpcPrintUsage(argv[0], info, stdout); return(0);}
42 for(i=1; i<argc; i++) {
43 if(tpcProcessStdOptions(argv[i], &help, &version, &verbose)==0) continue;
44 cptr=argv[i]; if(*cptr=='-') cptr++; if(*cptr=='-') cptr++;
45 if(strncasecmp(cptr, "TEST", 1)==0) {
46 test=1; continue;
47 } else {
48 error++; break;
49 }
50 }
51 if(error>0) {
52 fprintf(stderr, "Error: specify --help for usage.\n");
53 return(1);
54 }
55 /* Print help or version? */
56 if(help) {tpcPrintUsage(argv[0], info, stdout); return(0);}
57 if(version) {tpcPrintBuild(argv[0], stdout); return(0);}
58
59 if(test==0) return(0);
60
61 if(verbose>0) printf("running tests for library functions...\n");
62 TPCSTATUS status; statusInit(&status); status.verbose=verbose;
63 statusSet(&status, __func__, __FILE__, __LINE__, 0);
64 i=10;
65
66 /* image */
67 i++; if((ret=test_imgInit(&status))!=0) {
68 fprintf(stderr, "failed (%d).\n", ret);
69 statusPrint(stderr, &status); statusFree(&status);
70 return(i);
71 }
72 i++; if((ret=test_imgFree(&status))!=0) {
73 fprintf(stderr, "failed (%d).\n", ret);
74 statusPrint(stderr, &status); statusFree(&status);
75 return(i);
76 }
77 i++; if((ret=test_imgAllocate(&status))!=0) {
78 fprintf(stderr, "failed (%d).\n", ret);
79 statusPrint(stderr, &status); statusFree(&status);
80 return(i);
81 }
82 i++; if((ret=test_imgHasData(&status))!=0) {
83 fprintf(stderr, "failed (%d).\n", ret);
84 statusPrint(stderr, &status); statusFree(&status);
85 return(i);
86 }
87 i++; if((ret=test_imgHasTimes(&status))!=0) {
88 fprintf(stderr, "failed (%d).\n", ret);
89 statusPrint(stderr, &status); statusFree(&status);
90 return(i);
91 }
92 i++; if((ret=test_imgHasCounts(&status))!=0) {
93 fprintf(stderr, "failed (%d).\n", ret);
94 statusPrint(stderr, &status); statusFree(&status);
95 return(i);
96 }
97 i++; if((ret=test_imgHasWeights(&status))!=0) {
98 fprintf(stderr, "failed (%d).\n", ret);
99 statusPrint(stderr, &status); statusFree(&status);
100 return(i);
101 }
102 i++; if((ret=test_imgNaNs(&status))!=0) {
103 fprintf(stderr, "failed (%d).\n", ret);
104 statusPrint(stderr, &status); statusFree(&status);
105 return(i);
106 }
107 i++; if((ret=test_imgMinMax(&status))!=0) {
108 fprintf(stderr, "failed (%d).\n", ret);
109 statusPrint(stderr, &status); statusFree(&status);
110 return(i);
111 }
112 i++; if((ret=test_imgXRange(&status))!=0) {
113 fprintf(stderr, "failed (%d).\n", ret);
114 statusPrint(stderr, &status); statusFree(&status);
115 return(i);
116 }
117 i++; if((ret=test_imgXUnitConvert(&status))!=0) {
118 fprintf(stderr, "failed (%d).\n", ret);
119 statusPrint(stderr, &status); statusFree(&status);
120 return(i);
121 }
122
123 /* imageheader */
124 i++; if((ret=test_imgFillOHeader(&status))!=0) {
125 fprintf(stderr, "failed (%d).\n", ret);
126 statusPrint(stderr, &status); statusFree(&status);
127 return(i);
128 }
129
130 /* imageio */
131 i++; if((ret=test_imgFormatDescr(&status))!=0) {
132 fprintf(stderr, "failed (%d).\n", ret);
133 statusPrint(stderr, &status); statusFree(&status);
134 return(i);
135 }
136 i++; if((ret=test_imgDefaultExtension(&status))!=0) {
137 fprintf(stderr, "failed (%d).\n", ret);
138 statusPrint(stderr, &status); statusFree(&status);
139 return(i);
140 }
141 i++; if((ret=test_imgRead(&status))!=0) {
142 fprintf(stderr, "failed (%d).\n", ret);
143 statusPrint(stderr, &status); statusFree(&status);
144 return(i);
145 }
146 i++; if((ret=test_imgWrite(&status))!=0) {
147 fprintf(stderr, "failed (%d).\n", ret);
148 statusPrint(stderr, &status); statusFree(&status);
149 return(i);
150 }
151 i++; if((ret=test_imgFormatFromFName(&status))!=0) {
152 fprintf(stderr, "failed (%d).\n", ret);
153 statusPrint(stderr, &status); statusFree(&status);
154 return(i);
155 }
156 i++; if((ret=test_imgFormatIdentify(&status))!=0) {
157 fprintf(stderr, "failed (%d).\n", ret);
158 statusPrint(stderr, &status); statusFree(&status);
159 return(i);
160 }
161 /* imagedcm */
162 i++; if((ret=test_imgWriteDICOM(&status))!=0) {
163 fprintf(stderr, "failed (%d).\n", ret);
164 statusPrint(stderr, &status); statusFree(&status);
165 return(i);
166 }
167 i++; if((ret=test_imgReadDICOM(&status))!=0) {
168 fprintf(stderr, "failed (%d).\n", ret);
169 statusPrint(stderr, &status); statusFree(&status);
170 return(i);
171 }
172 /* imagenii */
173 i++; if((ret=test_niftiCreateFNames(&status))!=0) {
174 fprintf(stderr, "failed (%d).\n", ret);
175 statusPrint(stderr, &status); statusFree(&status);
176 return(i);
177 }
178 i++; if((ret=test_imgWriteNifti(&status))!=0) {
179 fprintf(stderr, "failed (%d).\n", ret);
180 statusPrint(stderr, &status); statusFree(&status);
181 return(i);
182 }
183 i++; if((ret=test_imgReadNifti(&status))!=0) {
184 fprintf(stderr, "failed (%d).\n", ret);
185 statusPrint(stderr, &status); statusFree(&status);
186 return(i);
187 }
188 i++; if((ret=test_imgSetNiftiHeader(&status))!=0) {
189 fprintf(stderr, "failed (%d).\n", ret);
190 statusPrint(stderr, &status); statusFree(&status);
191 return(i);
192 }
193 i++; if((ret=test_imgGetNiftiHeader(&status))!=0) {
194 fprintf(stderr, "failed (%d).\n", ret);
195 statusPrint(stderr, &status); statusFree(&status);
196 return(i);
197 }
198 /* imagesif */
199 i++; if((ret=test_imgToSIF(&status))!=0) {
200 fprintf(stderr, "failed (%d).\n", ret);
201 statusPrint(stderr, &status); statusFree(&status);
202 return(i);
203 }
204 i++; if((ret=test_imgFromSIF(&status))!=0) {
205 fprintf(stderr, "failed (%d).\n", ret);
206 statusPrint(stderr, &status); statusFree(&status);
207 return(i);
208 }
209 /* imagecomp */
210 i++; if((ret=test_imgCompareMatrixSize(&status))!=0) {
211 fprintf(stderr, "failed (%d).\n", ret);
212 statusPrint(stderr, &status); statusFree(&status);
213 return(i);
214 }
215 i++; if((ret=test_imgCompareUnit(&status))!=0) {
216 fprintf(stderr, "failed (%d).\n", ret);
217 statusPrint(stderr, &status); statusFree(&status);
218 return(i);
219 }
220 i++; if((ret=test_imgCompareConc(&status))!=0) {
221 fprintf(stderr, "failed (%d).\n", ret);
222 statusPrint(stderr, &status); statusFree(&status);
223 return(i);
224 }
225 i++; if((ret=test_imgCompareTimes(&status))!=0) {
226 fprintf(stderr, "failed (%d).\n", ret);
227 statusPrint(stderr, &status); statusFree(&status);
228 return(i);
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 libtpcimage.