Changeset 2197 for trunk/psLib/test/dataManip/tst_psStats07.c
- Timestamp:
- Oct 26, 2004, 11:25:59 AM (22 years ago)
- File:
-
- 1 edited
-
trunk/psLib/test/dataManip/tst_psStats07.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/test/dataManip/tst_psStats07.c
r1900 r2197 10 10 #include <math.h> 11 11 12 #define N 20012 #define N 90 13 13 #define MEAN 32.0 14 14 #define STDEV 2.0 15 15 #define ERROR_TOLERANCE 0.10 16 16 17 int main()17 int t00() 18 18 { 19 19 psStats * myStats = NULL; … … 32 32 float realMedianNoMask = MEAN; 33 33 float realModeNoMask = MEAN; 34 float realStdevNoMask = STDEV * 0. 33;34 float realStdevNoMask = STDEV * 0.20; 35 35 float realLQNoMask = MEAN - ( 0.6 * STDEV ); 36 36 float realUQNoMask = MEAN + ( 0.6 * STDEV ); 37 37 int realN50NoMask = N / 4; 38 38 int realNfitNoMask = N / 4; 39 float realMeanWithMask = MEAN; 40 float realMedianWithMask = MEAN; 41 float realModeWithMask = MEAN; 42 float realStdevWithMask = STDEV; 43 float realLQWithMask = MEAN; 44 float realUQWithMask = MEAN; 45 int realN50WithMask = N / 4; 46 int realNfitWithMask = N / 4; 47 39 40 psTraceSetLevel(".psLib.dataManip.psStats", 10); 48 41 49 42 /*************************************************************************/ … … 232 225 "PS_STAT_ROBUST_STATS: robust Nfit: no vector mask", 233 226 testStatus ); 234 235 236 return ( 0 ); 227 return(testStatus); 228 229 /*************************************************************************/ 230 /* Deallocate data structures */ 231 /*************************************************************************/ 232 printPositiveTestHeader( stdout, 233 "psStats functions", 234 "psStats(): deallocating memory" ); 235 236 psFree( myStats ); 237 psFree( myVector ); 238 psFree( maskVector ); 239 240 psMemCheckCorruption( 1 ); 241 memLeaks = psMemCheckLeaks(currentId,NULL,stderr); 242 if ( 0 != memLeaks ) { 243 psAbort( __func__, "Memory Leaks! (%d leaks)", memLeaks ); 244 } 245 246 printFooter( stdout, 247 "psVector functions", 248 "psStats(): deallocating memory", 249 testStatus ); 250 251 return ( !globalTestStatus ); 252 } 253 254 255 int t01() 256 { 257 psStats * myStats = NULL; 258 int testStatus = true; 259 int globalTestStatus = true; 260 int i = 0; 261 psVector *myVector = NULL; 262 psVector *maskVector = NULL; 263 // NOTE: These values were calculated by running the function on the data. 264 // A: They must be changed if we adjust the number of data points. 265 // B: We don't really know that they are correct. 266 int count = 0; 267 int currentId = psMemGetId(); 268 int memLeaks = 0; 269 float realMeanWithMask = MEAN; 270 float realMedianWithMask = MEAN; 271 float realModeWithMask = MEAN; 272 float realStdevWithMask = STDEV * 0.20; 273 float realLQWithMask = MEAN; 274 float realUQWithMask = MEAN; 275 int realN50WithMask = N / 4; 276 int realNfitWithMask = N / 4; 277 278 psTraceSetLevel(".psLib.dataManip.psStats", 10); 279 280 /*************************************************************************/ 281 /* Allocate and initialize data structures */ 282 /*************************************************************************/ 283 myStats = psStatsAlloc( PS_STAT_ROBUST_MEAN | 284 PS_STAT_ROBUST_MEDIAN | 285 PS_STAT_ROBUST_MODE | 286 PS_STAT_ROBUST_STDEV | 287 PS_STAT_ROBUST_QUARTILE ); 288 289 maskVector = psVectorAlloc( N, PS_TYPE_U8 ); 290 maskVector->n = N; 291 myVector = psGaussianDev( MEAN, STDEV, N ); 292 // Set the mask vector and calculate the expected maximum. 293 for ( i = 0;i < N;i++ ) { 294 if ( i < ( N / 2 ) ) { 295 maskVector->data.U8[ i ] = 0; 296 count++; 297 } else { 298 maskVector->data.U8[ i ] = 1; 299 } 300 } 237 301 238 302 /*************************************************************************/ … … 422 486 return ( !globalTestStatus ); 423 487 } 488 489 int main() 490 { 491 t00(); 492 t01(); 493 }
Note:
See TracChangeset
for help on using the changeset viewer.
