Changeset 2143
- Timestamp:
- Oct 14, 2004, 3:14:59 PM (22 years ago)
- File:
-
- 1 edited
-
trunk/psModules/test/tst_pmSubtractBias.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psModules/test/tst_pmSubtractBias.c
r2138 r2143 3 3 * @brief Contains the tests for pmSubtractBias.c: 4 4 * 5 * test00: This code will ... 5 * test00: This code will subtract full bias frames from the input image. 6 * test01: Multiple overscan regions, calculate a scalar statistic for 7 * each, then subtract from the input image. 8 * test02: Calculate a column overscan vector and subtract it from each 9 * column in the input image. 10 * test03: Calculate a row overscan vector and subtract it from each 11 * row in the input image. 12 * 6 13 * 7 14 * @author GLG, MHPCC 8 15 * 9 * @version $Revision: 1. 4$ $Name: not supported by cvs2svn $10 * @date $Date: 2004-10-1 4 23:52:09 $16 * @version $Revision: 1.5 $ $Name: not supported by cvs2svn $ 17 * @date $Date: 2004-10-15 01:14:59 $ 11 18 * 12 19 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 18 25 static int test00(void); 19 26 static int test01(void); 27 static int test02(void); 28 static int test03(void); 20 29 testDescription tests[] = { 21 {test00, 000, "pmSubtractBias - Full Bias Frame", 0, false}, 22 {test01, 000, "pmSubtractBias - Multiple Overscan Frames", 0, false}, 30 {test00, 000, "pmSubtractBias", 0, false}, 31 {test01, 000, "pmSubtractBias", 0, false}, 32 {test02, 000, "pmSubtractBias", 0, false}, 33 {test03, 000, "pmSubtractBias", 0, false}, 23 34 {NULL} 24 35 }; … … 147 158 return(testStatus); 148 159 } 160 161 int doSubtractFullOverscanColumns(int numCols, int numRows) 162 { 163 int i; 164 int j; 165 float actual; 166 float expect; 167 int testStatus = 0; 168 psImage *tmpImage1 = psImageAlloc(numCols, numRows, PS_TYPE_F32); 169 psImage *tmpImage2 = psImageAlloc(numCols, numRows, PS_TYPE_F32); 170 psImage *tmpImage3 = psImageAlloc(numCols, numRows, PS_TYPE_F32); 171 psImage *tmpImage4 = psImageAlloc(numCols, numRows, PS_TYPE_F32); 172 psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1); 173 psList *list; 174 psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN); 175 176 for (i=0;i<numRows;i++) { 177 for (j=0;j<numCols;j++) { 178 myReadout->image->data.F32[i][j] = (float) (i + j); 179 tmpImage2->data.F32[i][j] = 3.0; 180 tmpImage3->data.F32[i][j] = 4.0; 181 tmpImage4->data.F32[i][j] = 5.0; 182 } 183 } 184 list = psListAlloc(tmpImage2); 185 psListAdd(list, PS_LIST_HEAD, tmpImage3); 186 psListAdd(list, PS_LIST_HEAD, tmpImage4); 187 188 printPositiveTestHeader(stdout, "pmSubtractBias", "Column Overscans"); 189 190 myReadout = pmSubtractBias(myReadout, NULL, list, PM_OVERSCAN_COLUMNS, stat, 191 0, PM_FIT_NONE, NULL); 192 193 for (i=0;i<numRows;i++) { 194 for (j=0;j<numCols;j++) { 195 expect = ((float) (i + j)) - 5.0; 196 actual = myReadout->image->data.F32[i][j]; 197 if (FLT_EPSILON < fabs(expect - actual)) { 198 printf("ERROR: image[%d][%d] is %f, should be %f\n", i, j, actual, expect); 199 testStatus = 1; 200 } 201 } 202 } 203 204 205 psFree(myReadout); 206 psFree(tmpImage2); 207 psFree(tmpImage3); 208 psFree(tmpImage4); 209 psFree(stat); 210 psFree(list); 211 212 printFooter(stdout, "pmSubtractBias", "Column Overscans", true); 213 return(testStatus); 214 } 215 216 int test02( void ) 217 { 218 int testStatus = 0; 219 220 testStatus |= doSubtractFullOverscanColumns(1, 1); 221 testStatus |= doSubtractFullOverscanColumns(1, NUM_ROWS); 222 testStatus |= doSubtractFullOverscanColumns(NUM_COLS, 1); 223 testStatus |= doSubtractFullOverscanColumns(NUM_COLS, NUM_ROWS); 224 225 return(testStatus); 226 } 227 228 int doSubtractFullOverscanRows(int numCols, int numRows) 229 { 230 int i; 231 int j; 232 float actual; 233 float expect; 234 int testStatus = 0; 235 psImage *tmpImage1 = psImageAlloc(numCols, numRows, PS_TYPE_F32); 236 psImage *tmpImage2 = psImageAlloc(numCols, numRows, PS_TYPE_F32); 237 psImage *tmpImage3 = psImageAlloc(numCols, numRows, PS_TYPE_F32); 238 psImage *tmpImage4 = psImageAlloc(numCols, numRows, PS_TYPE_F32); 239 psReadout *myReadout = psReadoutAlloc(numCols, numRows, tmpImage1); 240 psList *list; 241 psStats *stat = psStatsAlloc(PS_STAT_SAMPLE_MEAN); 242 243 for (i=0;i<numRows;i++) { 244 for (j=0;j<numCols;j++) { 245 myReadout->image->data.F32[i][j] = (float) (i + j); 246 tmpImage2->data.F32[i][j] = 3.0; 247 tmpImage3->data.F32[i][j] = 4.0; 248 tmpImage4->data.F32[i][j] = 5.0; 249 } 250 } 251 list = psListAlloc(tmpImage2); 252 psListAdd(list, PS_LIST_HEAD, tmpImage3); 253 psListAdd(list, PS_LIST_HEAD, tmpImage4); 254 255 printPositiveTestHeader(stdout, "pmSubtractBias", "Row Overscans"); 256 257 myReadout = pmSubtractBias(myReadout, NULL, list, PM_OVERSCAN_ROWS, stat, 258 0, PM_FIT_NONE, NULL); 259 260 for (i=0;i<numRows;i++) { 261 for (j=0;j<numCols;j++) { 262 expect = ((float) (i + j)) - 5.0; 263 actual = myReadout->image->data.F32[i][j]; 264 if (FLT_EPSILON < fabs(expect - actual)) { 265 printf("ERROR: image[%d][%d] is %f, should be %f\n", i, j, actual, expect); 266 testStatus = 1; 267 } 268 } 269 } 270 271 272 psFree(myReadout); 273 psFree(tmpImage2); 274 psFree(tmpImage3); 275 psFree(tmpImage4); 276 psFree(stat); 277 psFree(list); 278 279 printFooter(stdout, "pmSubtractBias", "Row Overscans", true); 280 return(testStatus); 281 } 282 283 int test03( void ) 284 { 285 int testStatus = 0; 286 287 testStatus |= doSubtractFullOverscanRows(1, 1); 288 testStatus |= doSubtractFullOverscanRows(1, NUM_ROWS); 289 testStatus |= doSubtractFullOverscanRows(NUM_COLS, 1); 290 testStatus |= doSubtractFullOverscanRows(NUM_COLS, NUM_ROWS); 291 292 return(testStatus); 293 }
Note:
See TracChangeset
for help on using the changeset viewer.
