Changeset 10550 for trunk/psLib/test/math
- Timestamp:
- Dec 8, 2006, 1:38:54 AM (20 years ago)
- Location:
- trunk/psLib/test/math
- Files:
-
- 1 added
- 2 edited
-
tap_psStatsTiming.c (modified) (10 diffs)
-
tap_psStatsTiming.txt (added)
-
tap_psStats_Sample_01.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/test/math/tap_psStatsTiming.c
r10166 r10550 9 9 // ok(condition, "condition succeeded"); 10 10 // skip_start(condition, Nskip, "Skipping tests because of failure"); 11 12 # define DTIME(A,B) ((A.tv_sec - B.tv_sec) + 1e-6*(A.tv_usec - B.tv_usec)) 13 struct timeval start, mark; 11 14 12 15 int main (void) … … 22 25 rnd->data.F32[i] = psRandomGaussian (seed); 23 26 } 24 psTimerStart ("test"); 25 26 /********** fitted stats ***********/ 27 // test FITTED timing 28 { 29 // psMemId id = psMemGetId(); 30 31 diag ("check fitted mean speed : 1000 pts / 1000 loops"); 27 28 diag ("timing for sample mean"); 29 /********** SAMPLE MEAN ***********/ 30 // test stat sample mean (no mask, no range) 31 { 32 psMemId id = psMemGetId(); 33 34 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN); 35 36 gettimeofday (&start, NULL); 37 for (int i = 0; i < 10000; i++) 38 { 39 psVectorStats (stats, rnd, NULL, NULL, 0); 40 } 41 gettimeofday (&mark, NULL); 42 psF64 delta = DTIME(mark, start); 43 ok (delta < 0.1, "sample mean %f (mask: 0, range: 0): %.3f sec", stats->sampleMean, delta); 44 psFree (stats); 45 46 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 47 } 48 49 // test stat sample mean (mask, no range) 50 { 51 psMemId id = psMemGetId(); 52 53 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN); 54 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 55 psVectorInit (mask, 0); 56 mask->data.U8[100] = 1; 57 mask->data.U8[200] = 1; 58 mask->data.U8[300] = 1; 59 60 gettimeofday (&start, NULL); 61 for (int i = 0; i < 10000; i++) 62 { 63 psVectorStats (stats, rnd, NULL, mask, 1); 64 } 65 gettimeofday (&mark, NULL); 66 psF64 delta = DTIME(mark, start); 67 ok (delta < 0.12, "sample mean %f (mask: 1, range: 0): %.3f sec", stats->sampleMean, delta); 68 psFree (stats); 69 psFree (mask); 70 71 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 72 } 73 74 // test stat sample mean (no mask, range) 75 { 76 psMemId id = psMemGetId(); 77 78 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_USE_RANGE); 79 stats->min = -10; 80 stats->max = +10; 81 82 gettimeofday (&start, NULL); 83 for (int i = 0; i < 10000; i++) 84 { 85 psVectorStats (stats, rnd, NULL, NULL, 0); 86 } 87 gettimeofday (&mark, NULL); 88 psF64 delta = DTIME(mark, start); 89 ok (delta < 0.18, "sample mean %f (mask: 0, range: 1): %.3f sec", stats->sampleMean, delta); 90 psFree (stats); 91 92 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 93 } 94 95 // test stat sample mean (mask, range) 96 { 97 psMemId id = psMemGetId(); 98 99 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_USE_RANGE); 100 stats->min = -10; 101 stats->max = +10; 102 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 103 psVectorInit (mask, 0); 104 mask->data.U8[100] = 1; 105 mask->data.U8[200] = 1; 106 mask->data.U8[300] = 1; 107 108 gettimeofday (&start, NULL); 109 for (int i = 0; i < 10000; i++) 110 { 111 psVectorStats (stats, rnd, NULL, mask, 1); 112 } 113 gettimeofday (&mark, NULL); 114 psF64 delta = DTIME(mark, start); 115 ok (delta < 0.2, "sample mean %f (mask: 1, range: 1): %.3f sec", stats->sampleMean, delta); 116 psFree (stats); 117 psFree (mask); 118 119 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 120 } 121 122 diag ("timing for sample median"); 123 /********** SAMPLE MEDIAN ***********/ 124 // test stat sample median (no mask, no range) 125 { 126 psMemId id = psMemGetId(); 127 128 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEDIAN); 129 130 gettimeofday (&start, NULL); 131 for (int i = 0; i < 10000; i++) 132 { 133 psVectorStats (stats, rnd, NULL, NULL, 0); 134 } 135 gettimeofday (&mark, NULL); 136 psF64 delta = DTIME(mark, start); 137 ok (delta < 2.8, "sample median %f (mask: 0, range: 0): %.3f sec", stats->sampleMedian, delta); 138 psFree (stats); 139 140 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 141 } 142 143 // test stat sample median (mask, no range) 144 { 145 psMemId id = psMemGetId(); 146 147 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEDIAN); 148 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 149 psVectorInit (mask, 0); 150 mask->data.U8[100] = 1; 151 mask->data.U8[200] = 1; 152 mask->data.U8[300] = 1; 153 154 gettimeofday (&start, NULL); 155 for (int i = 0; i < 10000; i++) 156 { 157 psVectorStats (stats, rnd, NULL, mask, 1); 158 } 159 gettimeofday (&mark, NULL); 160 psF64 delta = DTIME(mark, start); 161 ok (delta < 2.8, "sample median %f (mask: 1, range: 0): %.3f sec", stats->sampleMedian, delta); 162 psFree (stats); 163 psFree (mask); 164 165 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 166 } 167 168 // test stat sample median (no mask, range) 169 { 170 psMemId id = psMemGetId(); 171 172 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEDIAN | PS_STAT_USE_RANGE); 173 stats->min = -10; 174 stats->max = +10; 175 176 gettimeofday (&start, NULL); 177 for (int i = 0; i < 10000; i++) 178 { 179 psVectorStats (stats, rnd, NULL, NULL, 0); 180 } 181 gettimeofday (&mark, NULL); 182 psF64 delta = DTIME(mark, start); 183 ok (delta < 2.8, "sample median %f (mask: 0, range: 1): %.3f sec", stats->sampleMedian, delta); 184 psFree (stats); 185 186 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 187 } 188 189 // test stat sample median (mask, range) 190 { 191 psMemId id = psMemGetId(); 192 193 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEDIAN | PS_STAT_USE_RANGE); 194 stats->min = -10; 195 stats->max = +10; 196 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 197 psVectorInit (mask, 0); 198 mask->data.U8[100] = 1; 199 mask->data.U8[200] = 1; 200 mask->data.U8[300] = 1; 201 202 gettimeofday (&start, NULL); 203 for (int i = 0; i < 10000; i++) 204 { 205 psVectorStats (stats, rnd, NULL, mask, 1); 206 } 207 gettimeofday (&mark, NULL); 208 psF64 delta = DTIME(mark, start); 209 ok (delta < 2.8, "sample median %f (mask: 1, range: 1): %.3f sec", stats->sampleMedian, delta); 210 psFree (stats); 211 psFree (mask); 212 213 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 214 } 215 216 diag ("timing for sample stdev"); 217 /********** SAMPLE STDEV ***********/ 218 // test stat sample stdev (no mask, no range) 219 { 220 psMemId id = psMemGetId(); 221 222 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_STDEV); 223 224 gettimeofday (&start, NULL); 225 for (int i = 0; i < 10000; i++) 226 { 227 psVectorStats (stats, rnd, NULL, NULL, 0); 228 } 229 gettimeofday (&mark, NULL); 230 psF64 delta = DTIME(mark, start); 231 ok (delta < 0.2, "sample stdev %f (mask: 0, range: 0): %.3f sec", stats->sampleStdev, delta); 232 psFree (stats); 233 234 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 235 } 236 237 // test stat sample stdev (mask, no range) 238 { 239 psMemId id = psMemGetId(); 240 241 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_STDEV); 242 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 243 psVectorInit (mask, 0); 244 mask->data.U8[100] = 1; 245 mask->data.U8[200] = 1; 246 mask->data.U8[300] = 1; 247 248 gettimeofday (&start, NULL); 249 for (int i = 0; i < 10000; i++) 250 { 251 psVectorStats (stats, rnd, NULL, mask, 1); 252 } 253 gettimeofday (&mark, NULL); 254 psF64 delta = DTIME(mark, start); 255 ok (delta < 0.27, "sample stdev %f (mask: 1, range: 0): %.3f sec", stats->sampleStdev, delta); 256 psFree (stats); 257 psFree (mask); 258 259 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 260 } 261 262 // test stat sample stdev (no mask, range) 263 { 264 psMemId id = psMemGetId(); 265 266 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_STDEV | PS_STAT_USE_RANGE); 267 stats->min = -10; 268 stats->max = +10; 269 270 gettimeofday (&start, NULL); 271 for (int i = 0; i < 10000; i++) 272 { 273 psVectorStats (stats, rnd, NULL, NULL, 0); 274 } 275 gettimeofday (&mark, NULL); 276 psF64 delta = DTIME(mark, start); 277 ok (delta < 0.36, "sample stdev %f (mask: 0, range: 1): %.3f sec", stats->sampleStdev, delta); 278 psFree (stats); 279 280 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 281 } 282 283 // test stat sample stdev (mask, range) 284 { 285 psMemId id = psMemGetId(); 286 287 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_STDEV | PS_STAT_USE_RANGE); 288 stats->min = -10; 289 stats->max = +10; 290 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 291 psVectorInit (mask, 0); 292 mask->data.U8[100] = 1; 293 mask->data.U8[200] = 1; 294 mask->data.U8[300] = 1; 295 296 gettimeofday (&start, NULL); 297 for (int i = 0; i < 10000; i++) 298 { 299 psVectorStats (stats, rnd, NULL, mask, 1); 300 } 301 gettimeofday (&mark, NULL); 302 psF64 delta = DTIME(mark, start); 303 ok (delta < 0.42, "sample stdev %f (mask: 1, range: 1): %.3f sec", stats->sampleStdev, delta); 304 psFree (stats); 305 psFree (mask); 306 307 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 308 } 309 310 diag ("timing for sample min,max"); 311 /*************** MIN,MAX ******************/ 312 // test stat min,max (no mask, no range) 313 { 314 psMemId id = psMemGetId(); 315 316 psStats *stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX); 317 gettimeofday (&start, NULL); 318 for (int i = 0; i < 10000; i++) 319 { 320 psVectorStats (stats, rnd, NULL, NULL, 1); 321 } 322 gettimeofday (&mark, NULL); 323 psF64 delta = DTIME(mark, start); 324 ok (delta < 0.17, "sample min,max %f,%f (mask: 0, range: 0): %.3f sec", stats->min, stats->max, delta); 325 psFree (stats); 326 327 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 328 } 329 // test stat min,max (no mask, no range) 330 { 331 psMemId id = psMemGetId(); 332 333 psStats *stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX); 334 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 335 psVectorInit (mask, 0); 336 mask->data.U8[100] = 1; 337 mask->data.U8[200] = 1; 338 mask->data.U8[300] = 1; 339 340 gettimeofday (&start, NULL); 341 for (int i = 0; i < 10000; i++) 342 { 343 psVectorStats (stats, rnd, NULL, mask, 1); 344 } 345 gettimeofday (&mark, NULL); 346 psF64 delta = DTIME(mark, start); 347 ok (delta < 0.18, "sample min,max %f,%f (mask: 1, range: 0): %.3f sec", stats->min, stats->max, delta); 348 psFree (stats); 349 psFree (mask); 350 351 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 352 } 353 // test stat min,max (no mask, no range) 354 { 355 psMemId id = psMemGetId(); 356 357 psStats *stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX | PS_STAT_USE_RANGE); 358 stats->min = -10; 359 stats->max = +10; 360 361 gettimeofday (&start, NULL); 362 for (int i = 0; i < 10000; i++) 363 { 364 psVectorStats (stats, rnd, NULL, NULL, 1); 365 } 366 gettimeofday (&mark, NULL); 367 psF64 delta = DTIME(mark, start); 368 ok (delta < 0.22, "sample min,max %f,%f (mask: 0, range: 1): %.3f sec", stats->min, stats->max, delta); 369 psFree (stats); 370 371 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 372 } 373 // test stat min,max (no mask, no range) 374 { 375 psMemId id = psMemGetId(); 376 377 psStats *stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX | PS_STAT_USE_RANGE); 378 stats->min = -10; 379 stats->max = +10; 380 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 381 psVectorInit (mask, 0); 382 mask->data.U8[100] = 1; 383 mask->data.U8[200] = 1; 384 mask->data.U8[300] = 1; 385 386 gettimeofday (&start, NULL); 387 for (int i = 0; i < 10000; i++) 388 { 389 psVectorStats (stats, rnd, NULL, mask, 1); 390 } 391 gettimeofday (&mark, NULL); 392 psF64 delta = DTIME(mark, start); 393 ok (delta < 0.26, "sample min,max %f,%f (mask: 1, range: 1): %.3f sec", stats->min, stats->max, delta); 394 psFree (stats); 395 psFree (mask); 396 397 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 398 } 399 400 diag ("timing for clipped stats"); 401 /********** CLIPPED STATS ***********/ 402 { 403 psMemId id = psMemGetId(); 404 405 psStats *stats = psStatsAlloc (PS_STAT_CLIPPED_MEAN | PS_STAT_CLIPPED_STDEV); 406 psVector *rnd2 = psVectorAlloc (1000, PS_TYPE_F32); 407 for (int i = 0; i < rnd2->n; i++) 408 { 409 rnd2->data.F32[i] = psRandomGaussian (seed); 410 } 411 412 gettimeofday (&start, NULL); 413 for (int i = 0; i < 1000; i++) 414 { 415 psVectorStats (stats, rnd2, NULL, NULL, 1); 416 } 417 gettimeofday (&mark, NULL); 418 psF64 delta = DTIME(mark, start); 419 ok (delta < 0.3, "clipped mean %f, stdev %f (mask: 0, range: 0): %.3f sec (1000 pts / 1000 loops)", stats->clippedMean, stats->clippedStdev, delta); 420 psFree (stats); 421 psFree (rnd2); 422 423 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 424 } 425 { 426 psMemId id = psMemGetId(); 427 428 psStats *stats = psStatsAlloc (PS_STAT_CLIPPED_MEAN | PS_STAT_CLIPPED_STDEV); 429 psVector *rnd2 = psVectorAlloc (3000, PS_TYPE_F32); 430 for (int i = 0; i < rnd2->n; i++) 431 { 432 rnd2->data.F32[i] = psRandomGaussian (seed); 433 } 434 435 gettimeofday (&start, NULL); 436 for (int i = 0; i < 1000; i++) 437 { 438 psVectorStats (stats, rnd2, NULL, NULL, 1); 439 } 440 gettimeofday (&mark, NULL); 441 psF64 delta = DTIME(mark, start); 442 ok (delta < 0.5, "clipped mean %f, stdev %f (mask: 0, range: 0): %.3f sec (3000 pts / 1000 loops)", stats->clippedMean, stats->clippedStdev, delta); 443 psFree (stats); 444 psFree (rnd2); 445 446 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 447 } 448 { 449 psMemId id = psMemGetId(); 450 451 psStats *stats = psStatsAlloc (PS_STAT_CLIPPED_MEAN | PS_STAT_CLIPPED_STDEV); 452 psVector *rnd2 = psVectorAlloc (10000, PS_TYPE_F32); 453 for (int i = 0; i < rnd2->n; i++) 454 { 455 rnd2->data.F32[i] = psRandomGaussian (seed); 456 } 457 458 gettimeofday (&start, NULL); 459 for (int i = 0; i < 1000; i++) 460 { 461 psVectorStats (stats, rnd2, NULL, NULL, 1); 462 } 463 gettimeofday (&mark, NULL); 464 psF64 delta = DTIME(mark, start); 465 ok (delta < 1.2, "clipped mean %f, stdev %f (mask: 0, range: 0): %.3f sec (10000 pts / 1000 loops)", stats->clippedMean, stats->clippedStdev, delta); 466 psFree (stats); 467 psFree (rnd2); 468 469 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 470 } 471 472 diag ("timing for robust stats"); 473 /********** ROBUST STATS ***********/ 474 { 475 psMemId id = psMemGetId(); 476 477 psStats *stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_ROBUST_QUARTILE); 478 psVector *rnd2 = psVectorAlloc (1000, PS_TYPE_F32); 479 for (int i = 0; i < rnd2->n; i++) 480 { 481 rnd2->data.F32[i] = psRandomGaussian (seed); 482 } 483 484 gettimeofday (&start, NULL); 485 for (int i = 0; i < 1000; i++) 486 { 487 psVectorStats (stats, rnd2, NULL, NULL, 1); 488 } 489 gettimeofday (&mark, NULL); 490 psF64 delta = DTIME(mark, start); 491 ok (delta < 0.3, "robust mean %f, stdev %f (mask: 0, range: 0): %.3f sec (1000 pts / 1000 loops)", stats->robustMedian, stats->robustStdev, delta); 492 psFree (stats); 493 psFree (rnd2); 494 495 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 496 } 497 { 498 psMemId id = psMemGetId(); 499 500 psStats *stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_ROBUST_QUARTILE); 501 psVector *rnd2 = psVectorAlloc (3000, PS_TYPE_F32); 502 for (int i = 0; i < rnd2->n; i++) 503 { 504 rnd2->data.F32[i] = psRandomGaussian (seed); 505 } 506 507 gettimeofday (&start, NULL); 508 for (int i = 0; i < 1000; i++) 509 { 510 psVectorStats (stats, rnd2, NULL, NULL, 1); 511 } 512 gettimeofday (&mark, NULL); 513 psF64 delta = DTIME(mark, start); 514 ok (delta < 0.5, "robust mean %f, stdev %f (mask: 0, range: 0): %.3f sec (3000 pts / 1000 loops)", stats->robustMedian, stats->robustStdev, delta); 515 psFree (stats); 516 psFree (rnd2); 517 518 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 519 } 520 { 521 psMemId id = psMemGetId(); 522 523 psStats *stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_ROBUST_QUARTILE); 524 psVector *rnd2 = psVectorAlloc (10000, PS_TYPE_F32); 525 for (int i = 0; i < rnd2->n; i++) 526 { 527 rnd2->data.F32[i] = psRandomGaussian (seed); 528 } 529 530 gettimeofday (&start, NULL); 531 for (int i = 0; i < 1000; i++) 532 { 533 psVectorStats (stats, rnd2, NULL, NULL, 1); 534 } 535 gettimeofday (&mark, NULL); 536 psF64 delta = DTIME(mark, start); 537 ok (delta < 1.2, "robust mean %f, stdev %f (mask: 0, range: 0): %.3f sec (10000 pts / 1000 loops)", stats->robustMedian, stats->robustStdev, delta); 538 psFree (stats); 539 psFree (rnd2); 540 541 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 542 } 543 544 diag ("timing for fitted stats"); 545 /********** FITTED TIMING ***********/ 546 { 547 psMemId id = psMemGetId(); 32 548 33 549 psStats *stats = psStatsAlloc (PS_STAT_FITTED_MEAN | PS_STAT_FITTED_STDEV); … … 38 554 } 39 555 40 psTimerClear ("test");41 for (int i = 0; i < 1000; i++) 42 { 43 psVectorStats (stats, rnd2, NULL, NULL, 1); 44 } 45 psF64 delta = psTimerMark("test");46 ok (delta < 0.5, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec", stats->fittedMean, stats->fittedStdev, delta);47 psF ree (stats);48 49 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks");50 }51 // test FITTED timing 52 {53 // psMemId id = psMemGetId();54 55 diag ("check fitted mean speed : 3000 pts / 1000 loops");556 gettimeofday (&start, NULL); 557 for (int i = 0; i < 1000; i++) 558 { 559 psVectorStats (stats, rnd2, NULL, NULL, 1); 560 561 } 562 gettimeofday (&mark, NULL); 563 psF64 delta = DTIME(mark, start); 564 ok (delta < 0.7, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec (1000 pts / 1000 loops)", stats->fittedMean, stats->fittedStdev, delta); 565 psFree (stats); 566 psFree (rnd2); 567 568 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 569 } 570 { 571 psMemId id = psMemGetId(); 56 572 57 573 psStats *stats = psStatsAlloc (PS_STAT_FITTED_MEAN | PS_STAT_FITTED_STDEV); … … 62 578 } 63 579 64 psTimerClear ("test"); 65 for (int i = 0; i < 1000; i++) 66 { 67 psVectorStats (stats, rnd2, NULL, NULL, 1); 68 } 69 psF64 delta = psTimerMark("test"); 70 ok (delta < 0.8, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec", stats->fittedMean, stats->fittedStdev, delta); 71 psFree (stats); 72 73 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 74 } 75 // test FITTED timing 76 { 77 // psMemId id = psMemGetId(); 78 79 diag ("check fitted mean speed : 10000 pts / 1000 loops"); 580 gettimeofday (&start, NULL); 581 for (int i = 0; i < 1000; i++) 582 { 583 psVectorStats (stats, rnd2, NULL, NULL, 1); 584 } 585 gettimeofday (&mark, NULL); 586 psF64 delta = DTIME(mark, start); 587 ok (delta < 0.8, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec (3000 pts / 1000 loops)", stats->fittedMean, stats->fittedStdev, delta); 588 psFree (stats); 589 psFree (rnd2); 590 591 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 592 } 593 { 594 psMemId id = psMemGetId(); 80 595 81 596 psStats *stats = psStatsAlloc (PS_STAT_FITTED_MEAN | PS_STAT_FITTED_STDEV); … … 86 601 } 87 602 88 psTimerClear ("test"); 89 for (int i = 0; i < 1000; i++) 90 { 91 psVectorStats (stats, rnd2, NULL, NULL, 1); 92 } 93 psF64 delta = psTimerMark("test"); 94 ok (delta < 2.2, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec", stats->fittedMean, stats->fittedStdev, delta); 95 psFree (stats); 96 97 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 98 } 99 // test stat min,max (no mask, no range) 100 { 101 // psMemId id = psMemGetId(); 102 103 diag ("check fitted mean speed (and value)"); 104 105 psStats *stats = psStatsAlloc (PS_STAT_FITTED_MEAN | PS_STAT_FITTED_STDEV | PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV); 106 psVector *sample = psVectorAlloc (1000, PS_TYPE_F32); 107 psVector *fitted = psVectorAlloc (1000, PS_TYPE_F32); 108 109 for (int i = 0; i < 1000; i++) 110 { 111 // generate a new sample 112 for (int j = 0; j < rnd->n; j++) { 113 rnd->data.F32[j] = psRandomGaussian (seed); 114 } 115 // measure the stats 116 psVectorStats (stats, rnd, NULL, NULL, 1); 117 sample->data.F32[i] = stats->sampleMean; 118 fitted->data.F32[i] = stats->fittedMean; 119 } 120 psFree (stats); 121 122 stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV); 123 psVectorStats (stats, sample, NULL, NULL, 1); 124 ok (stats->sampleStdev < 2/sqrt(1000), "sample mean %f, stdev %f", stats->sampleMean, stats->sampleStdev); 125 psVectorStats (stats, fitted, NULL, NULL, 1); 126 ok (stats->sampleStdev < 2/sqrt(1000), "fitted mean %f, stdev %f", stats->sampleMean, stats->sampleStdev); 127 psFree (stats); 128 129 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 130 } 131 132 /********** robust stats ***********/ 133 // test ROBUST timing 134 { 135 // psMemId id = psMemGetId(); 136 137 diag ("check robust mean speed : 1000 pts / 1000 loops"); 138 139 psStats *stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_ROBUST_QUARTILE); 603 gettimeofday (&start, NULL); 604 for (int i = 0; i < 1000; i++) 605 { 606 psVectorStats (stats, rnd2, NULL, NULL, 1); 607 } 608 gettimeofday (&mark, NULL); 609 psF64 delta = DTIME(mark, start); 610 ok (delta < 2.2, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec (10000 pts / 1000 loops)", stats->fittedMean, stats->fittedStdev, delta); 611 psFree (stats); 612 psFree (rnd2); 613 614 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 615 } 616 617 diag ("timing for fitted (v2) stats"); 618 /********** FITTED (v2) TIMING ***********/ 619 { 620 psMemId id = psMemGetId(); 621 622 psStats *stats = psStatsAlloc (PS_STAT_FITTED_MEAN_V2 | PS_STAT_FITTED_STDEV_V2); 140 623 psVector *rnd2 = psVectorAlloc (1000, PS_TYPE_F32); 141 624 for (int i = 0; i < rnd2->n; i++) … … 144 627 } 145 628 146 psTimerClear ("test");147 for (int i = 0; i < 1000; i++) 148 { 149 psVectorStats (stats, rnd2, NULL, NULL, 1); 150 } 151 psF64 delta = psTimerMark("test");152 ok (delta < 0.2, "robust mean %f, stdev %f (mask: 0, range: 0): %.3f sec", stats->robustMedian, stats->robustStdev, delta);153 psF ree (stats);154 155 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks");156 }157 // test ROBUST timing 158 {159 // psMemId id = psMemGetId();160 161 diag ("check robust mean speed : 3000 pts / 1000 loops");162 163 psStats *stats = psStatsAlloc (PS_STAT_ ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_ROBUST_QUARTILE);629 gettimeofday (&start, NULL); 630 for (int i = 0; i < 1000; i++) 631 { 632 psVectorStats (stats, rnd2, NULL, NULL, 1); 633 634 } 635 gettimeofday (&mark, NULL); 636 psF64 delta = DTIME(mark, start); 637 ok (delta < 0.7, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec (1000 pts / 1000 loops)", stats->fittedMean, stats->fittedStdev, delta); 638 psFree (stats); 639 psFree (rnd2); 640 641 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 642 } 643 { 644 psMemId id = psMemGetId(); 645 646 psStats *stats = psStatsAlloc (PS_STAT_FITTED_MEAN_V2 | PS_STAT_FITTED_STDEV_V2); 164 647 psVector *rnd2 = psVectorAlloc (3000, PS_TYPE_F32); 165 648 for (int i = 0; i < rnd2->n; i++) … … 168 651 } 169 652 170 psTimerClear ("test"); 171 for (int i = 0; i < 1000; i++) 172 { 173 psVectorStats (stats, rnd2, NULL, NULL, 1); 174 } 175 psF64 delta = psTimerMark("test"); 176 ok (delta < 0.5, "robust mean %f, stdev %f (mask: 0, range: 0): %.3f sec", stats->robustMedian, stats->robustStdev, delta); 177 psFree (stats); 178 179 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 180 } 181 // test ROBUST timing 182 { 183 // psMemId id = psMemGetId(); 184 185 diag ("check robust mean speed : 10000 pts / 1000 loops"); 186 187 psStats *stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_ROBUST_QUARTILE); 653 gettimeofday (&start, NULL); 654 for (int i = 0; i < 1000; i++) 655 { 656 psVectorStats (stats, rnd2, NULL, NULL, 1); 657 } 658 gettimeofday (&mark, NULL); 659 psF64 delta = DTIME(mark, start); 660 ok (delta < 0.8, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec (3000 pts / 1000 loops)", stats->fittedMean, stats->fittedStdev, delta); 661 psFree (stats); 662 psFree (rnd2); 663 664 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 665 } 666 { 667 psMemId id = psMemGetId(); 668 669 psStats *stats = psStatsAlloc (PS_STAT_FITTED_MEAN_V2 | PS_STAT_FITTED_STDEV_V2); 188 670 psVector *rnd2 = psVectorAlloc (10000, PS_TYPE_F32); 189 671 for (int i = 0; i < rnd2->n; i++) … … 192 674 } 193 675 194 psTimerClear ("test"); 195 for (int i = 0; i < 1000; i++) 196 { 197 psVectorStats (stats, rnd2, NULL, NULL, 1); 198 } 199 psF64 delta = psTimerMark("test"); 200 ok (delta < 1.2, "robust mean %f, stdev %f (mask: 0, range: 0): %.3f sec", stats->robustMedian, stats->robustStdev, delta); 201 psFree (stats); 202 203 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 204 } 205 // test stat min,max (no mask, no range) 206 { 207 // psMemId id = psMemGetId(); 208 209 diag ("check robust mean speed (and value)"); 210 211 psStats *stats = psStatsAlloc (PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV); 676 gettimeofday (&start, NULL); 677 for (int i = 0; i < 1000; i++) 678 { 679 psVectorStats (stats, rnd2, NULL, NULL, 1); 680 } 681 gettimeofday (&mark, NULL); 682 psF64 delta = DTIME(mark, start); 683 ok (delta < 2.2, "fitted mean %f, stdev %f (mask: 0, range: 0): %.3f sec (10000 pts / 1000 loops)", stats->fittedMean, stats->fittedStdev, delta); 684 psFree (stats); 685 psFree (rnd2); 686 687 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 688 } 689 690 diag ("compare sample, robust, and fitted mean and stdev to theoretical"); 691 // compare SAMPLE, FITTED, ROBUST mean to theoretical 692 { 693 psMemId id = psMemGetId(); 694 695 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV | PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_FITTED_MEAN | PS_STAT_FITTED_STDEV); 212 696 psVector *sample = psVectorAlloc (1000, PS_TYPE_F32); 213 697 psVector *robust = psVectorAlloc (1000, PS_TYPE_F32); 698 psVector *fitted = psVectorAlloc (1000, PS_TYPE_F32); 214 699 215 700 for (int i = 0; i < 1000; i++) … … 223 708 sample->data.F32[i] = stats->sampleMean; 224 709 robust->data.F32[i] = stats->robustMedian; 710 fitted->data.F32[i] = stats->fittedMean; 225 711 } 226 712 psFree (stats); … … 228 714 stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV); 229 715 psVectorStats (stats, sample, NULL, NULL, 1); 230 ok (stats->sampleStdev < 2/sqrt(1000), "sample mean %f, stdev %f ", stats->sampleMean, stats->sampleStdev);716 ok (stats->sampleStdev < 2/sqrt(1000), "sample mean %f, stdev %f (1000 tries)", stats->sampleMean, stats->sampleStdev); 231 717 psVectorStats (stats, robust, NULL, NULL, 1); 232 ok (stats->sampleStdev < 2/sqrt(1000), "robust mean %f, stdev %f", stats->sampleMean, stats->sampleStdev); 233 psFree (stats); 234 235 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 236 } 237 238 /********** stats ***********/ 239 // test stat sample mean (no mask, no range) 240 { 241 // psMemId id = psMemGetId(); 242 243 diag ("check sample mean speed (and value)"); 244 245 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN); 246 247 psTimerClear ("test"); 248 for (int i = 0; i < 10000; i++) 249 { 250 psVectorStats (stats, rnd, NULL, NULL, 0); 251 } 252 psF64 delta = psTimerMark("test"); 253 ok (delta < 0.1, "sample mean %f (mask: 0, range: 0): %.3f sec", stats->sampleMean, delta); 254 psFree (stats); 255 256 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 257 } 258 259 // test stat sample mean (mask, no range) 260 { 261 // psMemId id = psMemGetId(); 262 263 diag ("check sample mean speed (and value)"); 264 265 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN); 266 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 267 psVectorInit (mask, 0); 268 mask->data.U8[100] = 1; 269 mask->data.U8[200] = 1; 270 mask->data.U8[300] = 1; 271 272 psTimerClear ("test"); 273 for (int i = 0; i < 10000; i++) 274 { 275 psVectorStats (stats, rnd, NULL, mask, 1); 276 } 277 psF64 delta = psTimerMark("test"); 278 ok (delta < 0.12, "sample mean %f (mask: 1, range: 0): %.3f sec", stats->sampleMean, delta); 279 psFree (stats); 280 281 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 282 } 283 284 // test stat sample mean (no mask, range) 285 { 286 // psMemId id = psMemGetId(); 287 288 diag ("check sample mean speed (and value)"); 289 290 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_USE_RANGE); 291 stats->min = -10; 292 stats->max = +10; 293 294 psTimerClear ("test"); 295 for (int i = 0; i < 10000; i++) 296 { 297 psVectorStats (stats, rnd, NULL, NULL, 0); 298 } 299 psF64 delta = psTimerMark("test"); 300 ok (delta < 0.18, "sample mean %f (mask: 0, range: 1): %.3f sec", stats->sampleMean, delta); 301 psFree (stats); 302 303 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 304 } 305 306 // test stat sample mean (mask, range) 307 { 308 // psMemId id = psMemGetId(); 309 310 diag ("check sample mean speed (and value)"); 311 312 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_USE_RANGE); 313 stats->min = -10; 314 stats->max = +10; 315 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 316 psVectorInit (mask, 0); 317 mask->data.U8[100] = 1; 318 mask->data.U8[200] = 1; 319 mask->data.U8[300] = 1; 320 321 psTimerClear ("test"); 322 for (int i = 0; i < 10000; i++) 323 { 324 psVectorStats (stats, rnd, NULL, mask, 1); 325 } 326 psF64 delta = psTimerMark("test"); 327 ok (delta < 0.2, "sample mean %f (mask: 1, range: 1): %.3f sec", stats->sampleMean, delta); 328 psFree (stats); 329 330 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 331 } 332 333 /*************** min,max ******************/ 334 // test stat min,max (no mask, no range) 335 { 336 // psMemId id = psMemGetId(); 337 338 diag ("check min,max speed (no mask, no range)"); 339 340 psStats *stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX); 341 psTimerClear ("test"); 342 for (int i = 0; i < 10000; i++) 343 { 718 ok (stats->sampleStdev < 2/sqrt(1000), "robust mean %f, stdev %f (1000 tries)", stats->sampleMean, stats->sampleStdev); 719 psVectorStats (stats, fitted, NULL, NULL, 1); 720 ok (stats->sampleStdev < 2/sqrt(1000), "fitted mean %f, stdev %f (1000 tries)", stats->sampleMean, stats->sampleStdev); 721 psFree (stats); 722 psFree (sample); 723 psFree (robust); 724 psFree (fitted); 725 726 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 727 } 728 729 diag ("compare sample, robust, and fitted mean and stdev to theoretical"); 730 // compare SAMPLE, FITTED_V2, ROBUST mean to theoretical 731 { 732 psMemId id = psMemGetId(); 733 734 psStats *stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV | PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | PS_STAT_FITTED_MEAN_V2 | PS_STAT_FITTED_STDEV_V2); 735 psVector *sample = psVectorAlloc (1000, PS_TYPE_F32); 736 psVector *robust = psVectorAlloc (1000, PS_TYPE_F32); 737 psVector *fitted = psVectorAlloc (1000, PS_TYPE_F32); 738 739 for (int i = 0; i < 1000; i++) 740 { 741 // generate a new sample 742 for (int j = 0; j < rnd->n; j++) { 743 rnd->data.F32[j] = psRandomGaussian (seed); 744 } 745 // measure the stats 344 746 psVectorStats (stats, rnd, NULL, NULL, 1); 345 } 346 psF64 delta = psTimerMark("test"); 347 ok (delta < 0.17, "sample min,max %f,%f (mask: 0, range: 0): %.3f sec", stats->min, stats->max, delta); 348 psFree (stats); 349 350 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 351 } 352 // test stat min,max (no mask, no range) 353 { 354 // psMemId id = psMemGetId(); 355 356 diag ("check min,max speed (mask, no range)"); 357 358 psStats *stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX); 359 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 360 psVectorInit (mask, 0); 361 mask->data.U8[100] = 1; 362 mask->data.U8[200] = 1; 363 mask->data.U8[300] = 1; 364 365 psTimerClear ("test"); 366 for (int i = 0; i < 10000; i++) 367 { 368 psVectorStats (stats, rnd, NULL, mask, 1); 369 } 370 psF64 delta = psTimerMark("test"); 371 ok (delta < 0.18, "sample min,max %f,%f (mask: 1, range: 0): %.3f sec", stats->min, stats->max, delta); 372 psFree (stats); 373 374 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 375 } 376 // test stat min,max (no mask, no range) 377 { 378 // psMemId id = psMemGetId(); 379 380 diag ("check min,max speed (no mask, range)"); 381 382 psStats *stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX | PS_STAT_USE_RANGE); 383 stats->min = -10; 384 stats->max = +10; 385 386 psTimerClear ("test"); 387 for (int i = 0; i < 10000; i++) 388 { 389 psVectorStats (stats, rnd, NULL, NULL, 1); 390 } 391 psF64 delta = psTimerMark("test"); 392 ok (delta < 0.22, "sample min,max %f,%f (mask: 0, range: 1): %.3f sec", stats->min, stats->max, delta); 393 psFree (stats); 394 395 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 396 } 397 // test stat min,max (no mask, no range) 398 { 399 // psMemId id = psMemGetId(); 400 401 diag ("check min,max speed (mask, range)"); 402 403 psStats *stats = psStatsAlloc (PS_STAT_MIN | PS_STAT_MAX | PS_STAT_USE_RANGE); 404 stats->min = -10; 405 stats->max = +10; 406 psVector *mask = psVectorAlloc (1000, PS_TYPE_U8); 407 psVectorInit (mask, 0); 408 mask->data.U8[100] = 1; 409 mask->data.U8[200] = 1; 410 mask->data.U8[300] = 1; 411 412 psTimerClear ("test"); 413 for (int i = 0; i < 10000; i++) 414 { 415 psVectorStats (stats, rnd, NULL, mask, 1); 416 } 417 psF64 delta = psTimerMark("test"); 418 ok (delta < 0.26, "sample min,max %f,%f (mask: 1, range: 1): %.3f sec", stats->min, stats->max, delta); 419 psFree (stats); 420 421 // ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 747 sample->data.F32[i] = stats->sampleMean; 748 robust->data.F32[i] = stats->robustMedian; 749 fitted->data.F32[i] = stats->fittedMean; 750 } 751 psFree (stats); 752 753 stats = psStatsAlloc (PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_STDEV); 754 psVectorStats (stats, sample, NULL, NULL, 1); 755 ok (stats->sampleStdev < 2/sqrt(1000), "sample mean %f, stdev %f (1000 tries)", stats->sampleMean, stats->sampleStdev); 756 psVectorStats (stats, robust, NULL, NULL, 1); 757 ok (stats->sampleStdev < 2/sqrt(1000), "robust mean %f, stdev %f (1000 tries)", stats->sampleMean, stats->sampleStdev); 758 psVectorStats (stats, fitted, NULL, NULL, 1); 759 ok (stats->sampleStdev < 2/sqrt(1000), "fitted mean %f, stdev %f (1000 tries)", stats->sampleMean, stats->sampleStdev); 760 psFree (stats); 761 psFree (sample); 762 psFree (robust); 763 psFree (fitted); 764 765 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 422 766 } 423 767 -
trunk/psLib/test/math/tap_psStats_Sample_01.c
r10395 r10550 215 215 }; 216 216 217 static float yraw_03[] = { 218 183.6000061, 171.3600006, 182.5800018, 178.5, 176.4600067, 219 176.4600067, 171.3600006, 178.5, 183.6000061, 175.4400024, 220 159.1199951, 180.5399933, 183.6000061, 187.6799927, 175.4400024, 221 181.5599976, 174.4199982, 179.5200043, 180.5399933, 187.6799927, 222 183.6000061, 171.3600006, 177.4799957, 192.7799988, 184.6199951, 223 176.4600067, 178.5, 182.5800018, 173.3999939, 191.7599945, 224 202.9799957, 167.2799988, 181.5599976, 185.6399994, 173.3999939, 225 159.1199951, 178.5, 188.6999969, 179.5200043, 178.5, 226 184.6199951, 175.4400024, 186.6600037, 179.5200043, 183.6000061, 227 182.5800018, 173.3999939, 181.5599976, 184.6199951, 177.4799957, 228 162.1799927, 186.6600037, 163.1999969, 199.9199982, 173.3999939, 229 170.3399963, 184.6199951, 190.7400055, 173.3999939, 178.5, 230 189.7200012, 192.7799988, 166.2599945, 187.6799927, 174.4199982, 231 176.4600067, 181.5599976, 199.9199982, 193.8000031, 170.3399963, 232 182.5800018, 199.9199982, 183.6000061, 160.1399994, 184.6199951, 233 195.8399963, 173.3999939, 189.7200012, 192.7799988, 162.1799927, 234 174.4199982, 190.7400055, 175.4400024, 192.7799988, 181.5599976, 235 185.6399994, 184.6199951, 166.2599945, 189.7200012, 192.7799988, 236 183.6000061, 190.7400055, 188.6999969, 174.4199982, 184.6199951, 237 186.6600037, 182.5800018, 173.3999939, 171.3600006, 166.2599945, 238 166.2599945, 176.4600067, 147.8999939, 187.6799927, 166.2599945, 239 173.3999939, 179.5200043, 166.2599945, 169.3200073, 172.3800049, 240 174.4199982, 195.8399963, 192.7799988, 177.4799957, 181.5599976, 241 163.1999969, 171.3600006, 194.8200073, 159.1199951, 173.3999939, 242 182.5800018, 178.5, 179.5200043, 184.6199951, 179.5200043, 243 164.2200012, 191.7599945, 177.4799957, 186.6600037, 168.3000031, 244 168.3000031, 168.3000031, 180.5399933, 179.5200043, 175.4400024, 245 174.4199982, 184.6199951, 186.6600037, 164.2200012, 169.3200073, 246 187.6799927, 189.7200012, 166.2599945, 169.3200073, 187.6799927, 247 172.3800049, 204, 194.8200073, 177.4799957, 188.6999969, 248 171.3600006, 184.6199951, 182.5800018, 184.6199951, 176.4600067, 249 186.6600037, 170.3399963, 170.3399963, 182.5800018, 184.6199951, 250 168.3000031, 175.4400024, 176.4600067, 164.2200012, 183.6000061, 251 161.1600037, 175.4400024, 167.2799988, 179.5200043, 176.4600067, 252 175.4400024, 179.5200043, 158.1000061, 168.3000031, 168.3000031, 253 179.5200043, 192.7799988, 190.7400055, 178.5, 173.3999939, 254 180.5399933, 179.5200043, 191.7599945, 184.6199951, 177.4799957, 255 182.5800018, 188.6999969, 169.3200073, 162.1799927, 172.3800049, 256 160.1399994, 177.4799957, 176.4600067, 180.5399933, 170.3399963, 257 168.3000031, 171.3600006, 180.5399933, 162.1799927, 163.1999969, 258 170.3399963, 180.5399933, 164.2200012, 183.6000061, 178.5, 259 193.8000031, 177.4799957, 178.5, 183.6000061, 192.7799988, 260 157.0800018, 176.4600067, 190.7400055, 179.5200043, 157.0800018, 261 178.5, 165.2400055, 195.8399963, 177.4799957, 166.2599945, 262 172.3800049, 182.5800018, 175.4400024, 187.6799927, 164.2200012, 263 178.5, 173.3999939, 173.3999939, 173.3999939, 172.3800049, 264 183.6000061, 181.5599976, 163.1999969, 179.5200043, 193.8000031, 265 172.3800049, 158.1000061, 171.3600006, 165.2400055, 183.6000061, 266 187.6799927, 158.1000061, 171.3600006, 168.3000031, 166.2599945, 267 166.2599945, 178.5, 179.5200043, 165.2400055, 176.4600067, 268 160.1399994, 193.8000031, 170.3399963, 162.1799927, 180.5399933, 269 159.1199951, 189.7200012, 160.1399994, 196.8600006, 173.3999939, 270 170.3399963, 165.2400055, 193.8000031, 192.7799988, 184.6199951, 271 151.9799957, 167.2799988, 162.1799927, 183.6000061, 166.2599945, 272 177.4799957, 168.3000031, 191.7599945, 181.5599976, 166.2599945, 273 171.3600006, 188.6999969, 172.3800049, 195.8399963, 189.7200012, 274 177.4799957, 167.2799988, 191.7599945, 169.3200073, 181.5599976, 275 180.5399933, 162.1799927, 171.3600006, 162.1799927, 171.3600006, 276 177.4799957, 167.2799988, 180.5399933, 182.5800018, 187.6799927, 277 175.4400024, 193.8000031, 174.4199982, 183.6000061, 179.5200043, 278 164.2200012, 162.1799927, 186.6600037, 189.7200012, 186.6600037, 279 171.3600006, 187.6799927, 189.7200012, 175.4400024, 184.6199951, 280 172.3800049, 177.4799957, 183.6000061, 176.4600067, 171.3600006, 281 172.3800049, 181.5599976, 175.4400024, 170.3399963, 196.8600006, 282 201.9600067, 180.5399933, 176.4600067, 183.6000061, 175.4400024, 283 184.6199951, 163.1999969, 177.4799957, 176.4600067, 175.4400024, 284 192.7799988, 167.2799988, 176.4600067, 184.6199951, 184.6199951, 285 177.4799957, 185.6399994, 196.8600006, 186.6600037, 184.6199951, 286 169.3200073, 164.2200012, 185.6399994, 168.3000031, 186.6600037, 287 180.5399933, 177.4799957, 177.4799957, 186.6600037, 191.7599945, 288 177.4799957, 181.5599976, 166.2599945, 179.5200043, 184.6199951, 289 178.5, 171.3600006, 184.6199951, 192.7799988, 182.5800018, 290 186.6600037, 175.4400024, 182.5800018, 173.3999939, 186.6600037, 291 162.1799927, 175.4400024, 196.8600006, 166.2599945, 189.7200012, 292 189.7200012, 182.5800018, 172.3800049, 165.2400055, 191.7599945, 293 174.4199982, 173.3999939, 178.5, 171.3600006, 157.0800018, 294 182.5800018, 161.1600037, 195.8399963, 186.6600037, 167.2799988, 295 166.2599945, 182.5800018, 178.5, 176.4600067, 181.5599976, 296 184.6199951, 183.6000061, 179.5200043, 174.4199982, 167.2799988, 297 187.6799927, 176.4600067, 165.2400055, 179.5200043, 157.0800018, 298 171.3600006, 170.3399963, 175.4400024, 161.1600037, 185.6399994, 299 169.3200073, 192.7799988, 175.4400024, 172.3800049, 180.5399933, 300 183.6000061, 174.4199982, 176.4600067, 164.2200012, 183.6000061, 301 179.5200043, 165.2400055, 169.3200073, 172.3800049, 149.9400024, 302 175.4400024, 188.6999969, 190.7400055, 171.3600006, 172.3800049, 303 183.6000061, 178.5, 165.2400055, 176.4600067, 177.4799957, 304 188.6999969, 192.7799988, 183.6000061, 163.1999969, 186.6600037, 305 183.6000061, 160.1399994, 167.2799988, 172.3800049, 179.5200043, 306 189.7200012, 172.3800049, 177.4799957, 161.1600037, 174.4199982, 307 190.7400055, 181.5599976, 187.6799927, 176.4600067, 176.4600067, 308 183.6000061, 176.4600067, 188.6999969, 174.4199982, 170.3399963, 309 185.6399994, 177.4799957, 172.3800049, 179.5200043, 175.4400024, 310 170.3399963, 169.3200073, 176.4600067, 177.4799957, 169.3200073, 311 199.9199982, 171.3600006, 194.8200073, 188.6999969, 193.8000031, 312 182.5800018, 171.3600006, 177.4799957, 175.4400024, 172.3800049, 313 166.2599945, 183.6000061, 157.0800018, 177.4799957, 193.8000031, 314 168.3000031, 175.4400024, 175.4400024, 170.3399963, 191.7599945, 315 189.7200012, 182.5800018, 177.4799957, 157.0800018, 174.4199982, 316 189.7200012, 162.1799927, 184.6199951, 164.2200012, 157.0800018, 317 197.8800049, 175.4400024, 184.6199951, 202.9799957, 190.7400055, 318 171.3600006, 160.1399994, 162.1799927, 176.4600067, 180.5399933, 319 206.0399933, 189.7200012, 170.3399963, 175.4400024, 175.4400024, 320 185.6399994, 187.6799927, 168.3000031, 176.4600067, 177.4799957, 321 185.6399994, 167.2799988, 178.5, 182.5800018, 179.5200043, 322 173.3999939, 185.6399994, 196.8600006, 183.6000061, 162.1799927, 323 176.4600067, 189.7200012, 208.0800018, 177.4799957, 163.1999969, 324 187.6799927, 196.8600006, 180.5399933, 188.6999969, 163.1999969, 325 187.6799927, 168.3000031, 182.5800018, 181.5599976, 174.4199982, 326 181.5599976, 161.1600037, 163.1999969, 184.6199951, 190.7400055, 327 181.5599976, 185.6399994, 186.6600037, 173.3999939, 172.3800049, 328 179.5200043, 187.6799927, 191.7599945, 190.7400055, 183.6000061, 329 166.2599945, 196.8600006, 172.3800049, 174.4199982, 181.5599976, 330 177.4799957, 176.4600067, 188.6999969, 184.6199951, 169.3200073, 331 178.5, 186.6600037, 174.4199982, 185.6399994, 201.9600067, 332 171.3600006, 177.4799957, 183.6000061, 165.2400055, 189.7200012, 333 188.6999969, 178.5, 163.1999969, 169.3200073, 178.5, 334 182.5800018, 173.3999939, 177.4799957, 165.2400055, 163.1999969, 335 175.4400024, 184.6199951, 189.7200012, 186.6600037, 188.6999969, 336 163.1999969, 158.1000061, 172.3800049, 186.6600037, 173.3999939, 337 157.0800018, 158.1000061, 172.3800049, 197.8800049, 171.3600006, 338 172.3800049, 184.6199951, 173.3999939, 174.4199982, 175.4400024, 339 166.2599945, 166.2599945, 172.3800049, 171.3600006, 181.5599976, 340 181.5599976, 187.6799927, 180.5399933, 169.3200073, 182.5800018, 341 178.5, 179.5200043, 184.6199951, 175.4400024, 175.4400024, 342 158.1000061, 182.5800018, 196.8600006, 167.2799988, 178.5, 343 174.4199982, 180.5399933, 195.8399963, 183.6000061, 200.9400024, 344 189.7200012, 186.6600037, 173.3999939, 173.3999939, 180.5399933, 345 172.3800049, 157.0800018, 163.1999969, 171.3600006, 190.7400055, 346 196.8600006, 179.5200043, 175.4400024, 169.3200073, 158.1000061, 347 157.0800018, 180.5399933, 173.3999939, 170.3399963, 175.4400024, 348 193.8000031, 170.3399963, 164.2200012, 174.4199982, 185.6399994, 349 178.5, 176.4600067, 176.4600067, 179.5200043, 176.4600067, 350 171.3600006, 205.0200043, 184.6199951, 180.5399933, 165.2400055, 351 167.2799988, 162.1799927, 165.2400055, 180.5399933, 169.3200073, 352 176.4600067, 182.5800018, 182.5800018, 175.4400024, 186.6600037, 353 182.5800018, 183.6000061, 163.1999969, 161.1600037, 189.7200012, 354 181.5599976, 187.6799927, 173.3999939, 173.3999939, 177.4799957, 355 179.5200043, 198.8999939, 177.4799957, 183.6000061, 154.0200043, 356 188.6999969, 181.5599976, 177.4799957, 174.4199982, 202.9799957, 357 168.3000031, 164.2200012, 187.6799927, 171.3600006, 189.7200012, 358 185.6399994, 187.6799927, 157.0800018, 193.8000031, 160.1399994, 359 166.2599945, 193.8000031, 166.2599945, 168.3000031, 179.5200043, 360 181.5599976, 172.3800049, 183.6000061, 184.6199951, 180.5399933, 361 177.4799957, 192.7799988, 171.3600006, 197.8800049, 190.7400055, 362 182.5800018, 178.5, 189.7200012, 172.3800049, 199.9199982, 363 183.6000061, 179.5200043, 170.3399963, 179.5200043, 181.5599976, 364 178.5, 186.6600037, 177.4799957, 160.1399994, 176.4600067, 365 173.3999939, 168.3000031, 180.5399933, 179.5200043, 175.4400024, 366 188.6999969, 175.4400024, 178.5, 161.1600037, 181.5599976, 367 184.6199951, 169.3200073, 187.6799927, 164.2200012, 176.4600067, 368 176.4600067, 174.4199982, 189.7200012, 192.7799988, 181.5599976, 369 165.2400055, 173.3999939, 184.6199951, 164.2200012, 181.5599976, 370 167.2799988, 157.0800018, 175.4400024, 172.3800049, 172.3800049, 371 170.3399963, 166.2599945, 185.6399994, 175.4400024, 184.6199951, 372 179.5200043, 198.8999939, 189.7200012, 164.2200012, 198.8999939, 373 169.3200073, 183.6000061, 191.7599945, 168.3000031, 178.5, 374 172.3800049, 169.3200073, 196.8600006, 170.3399963, 192.7799988, 375 183.6000061, 186.6600037, 181.5599976, 187.6799927, 198.8999939, 376 167.2799988, 177.4799957, 165.2400055, 173.3999939, 182.5800018, 377 190.7400055, 167.2799988, 184.6199951, 180.5399933, 165.2400055, 378 166.2599945, 162.1799927, 175.4400024, 169.3200073, 187.6799927, 379 155.0399933, 173.3999939, 165.2400055, 174.4199982, 183.6000061, 380 167.2799988, 186.6600037, 175.4400024, 173.3999939, 177.4799957, 381 192.7799988, 180.5399933, 191.7599945, 185.6399994, 194.8200073, 382 201.9600067, 166.2599945, 171.3600006, 177.4799957, 194.8200073, 383 191.7599945, 177.4799957, 167.2799988, 188.6999969, 172.3800049, 384 162.1799927, 169.3200073, 198.8999939, 183.6000061, 170.3399963, 385 190.7400055, 170.3399963, 169.3200073, 185.6399994, 181.5599976, 386 166.2599945, 187.6799927, 169.3200073, 157.0800018, 165.2400055, 387 176.4600067, 174.4199982, 166.2599945, 177.4799957, 195.8399963, 388 187.6799927, 186.6600037, 194.8200073, 181.5599976, 172.3800049, 389 166.2599945, 168.3000031, 183.6000061, 168.3000031, 174.4199982, 390 185.6399994, 180.5399933, 181.5599976, 189.7200012, 172.3800049, 391 183.6000061, 187.6799927, 183.6000061, 200.9400024, 184.6199951, 392 173.3999939, 176.4600067, 172.3800049, 169.3200073, 166.2599945, 393 186.6600037, 181.5599976, 161.1600037, 182.5800018, 179.5200043, 394 178.5, 174.4199982, 170.3399963, 179.5200043, 193.8000031, 395 188.6999969, 146.8800049, 192.7799988, 171.3600006, 178.5, 396 177.4799957, 184.6199951, 180.5399933, 163.1999969, 159.1199951, 397 160.1399994, 178.5, 176.4600067, 176.4600067, 192.7799988, 398 161.1600037, 166.2599945, 162.1799927, 172.3800049, 175.4400024, 399 168.3000031, 201.9600067, 188.6999969, 185.6399994, 175.4400024, 400 175.4400024, 182.5800018, 182.5800018, 172.3800049, 175.4400024, 401 179.5200043, 184.6199951, 163.1999969, 195.8399963, 180.5399933, 402 170.3399963, 212.1600037, 166.2599945, 187.6799927, 179.5200043, 403 178.5, 176.4600067, 172.3800049, 183.6000061, 179.5200043, 404 176.4600067, 185.6399994, 161.1600037, 187.6799927, 167.2799988, 405 187.6799927, 199.9199982, 187.6799927, 169.3200073, 158.1000061, 406 200.9400024, 191.7599945, 179.5200043, 170.3399963, 186.6600037, 407 170.3399963, 184.6199951, 189.7200012, 197.8800049, 186.6600037, 408 171.3600006, 164.2200012, 183.6000061, 180.5399933, 165.2400055, 409 160.1399994, 183.6000061, 166.2599945, 183.6000061, 196.8600006, 410 175.4400024, 172.3800049, 172.3800049, 181.5599976, 177.4799957, 411 173.3999939, 176.4600067, 180.5399933, 176.4600067, 178.5, 412 163.1999969, 189.7200012, 175.4400024, 174.4199982, 185.6399994, 413 182.5800018, 169.3200073, 194.8200073, 192.7799988, 188.6999969, 414 193.8000031, 175.4400024, 165.2400055, 180.5399933, 184.6199951, 415 176.4600067, 171.3600006, 188.6999969, 199.9199982, 183.6000061, 416 169.3200073, 175.4400024, 180.5399933, 174.4199982, 167.2799988, 417 184.6199951, 177.4799957, 180.5399933, 180.5399933, 184.6199951, 418 178.5, 186.6600037, 161.1600037, 183.6000061, 168.3000031, 419 188.6999969, 184.6199951, 171.3600006, 185.6399994, 167.2799988, 420 162.1799927, 186.6600037, 175.4400024, 166.2599945, 182.5800018, 421 171.3600006, 176.4600067, 192.7799988, 178.5, 168.3000031, 422 182.5800018, 184.6199951, 148.9199982, 172.3800049, 168.3000031, 423 181.5599976, 154.0200043, 166.2599945, 174.4199982, 166.2599945, 424 178.5, 184.6199951, 176.4600067, 171.3600006, 188.6999969, 425 177.4799957, 172.3800049, 176.4600067, 179.5200043, 176.4600067, 426 161.1600037, 166.2599945, 181.5599976, 170.3399963, 176.4600067, 427 163.1999969, 183.6000061, 206.0399933, 171.3600006, 186.6600037, 428 176.4600067, 163.1999969, 179.5200043, 176.4600067, 182.5800018, 429 167.2799988, 174.4199982, 188.6999969, 177.4799957, 190.7400055, 430 176.4600067, 175.4400024, 174.4199982, 179.5200043, 182.5800018, 431 182.5800018, 175.4400024, 165.2400055, 180.5399933, 178.5, 432 176.4600067, 191.7599945, 173.3999939, 186.6600037, 165.2400055, 433 173.3999939, 188.6999969, 172.3800049, 168.3000031, 193.8000031, 434 180.5399933, 172.3800049, 180.5399933, 189.7200012, 170.3399963, 435 170.3399963, 195.8399963, 173.3999939, 187.6799927, 165.2400055, 436 147.8999939, 173.3999939, 184.6199951, 171.3600006, 178.5, 437 163.1999969, 171.3600006, 190.7400055, 180.5399933, 156.0599976, 438 164.2200012, 172.3800049, 202.9799957, 201.9600067, 175.4400024, 439 193.8000031, 176.4600067, 182.5800018, 184.6199951, 178.5, 440 169.3200073, 166.2599945, 173.3999939, 182.5800018, 171.3600006, 441 167.2799988, 185.6399994, 179.5200043, 188.6999969, 194.8200073, 442 177.4799957, 177.4799957, 164.2200012, 189.7200012, 193.8000031, 443 173.3999939, 178.5, 184.6199951, 191.7599945, 191.7599945, 444 162.1799927, 171.3600006, 165.2400055, 197.8800049, 169.3200073, 445 178.5, 174.4199982, 183.6000061, 189.7200012, 181.5599976, 446 185.6399994, 179.5200043, 181.5599976, 161.1600037, 173.3999939, 447 187.6799927, 177.4799957, 182.5800018, 171.3600006, 188.6999969, 448 194.8200073, 176.4600067, 182.5800018, 157.0800018, 169.3200073, 449 170.3399963, 168.3000031, 190.7400055, 170.3399963, 185.6399994, 450 195.8399963, 172.3800049, 213.1799927, 187.6799927, 187.6799927, 451 178.5, 181.5599976, 183.6000061, 163.1999969, 169.3200073, 452 180.5399933, 204, 175.4400024, 158.1000061, 174.4199982, 453 183.6000061, 181.5599976, 181.5599976, 180.5399933, 172.3800049, 454 188.6999969, 166.2599945, 196.8600006, 187.6799927, 196.8600006, 455 164.2200012, 160.1399994, 165.2400055, 172.3800049, 177.4799957, 456 173.3999939, 168.3000031, 181.5599976, 164.2200012, 177.4799957, 457 182.5800018, 162.1799927, 168.3000031, 181.5599976, 179.5200043, 458 171.3600006, 173.3999939, 176.4600067, 197.8800049, 172.3800049, 459 189.7200012, 172.3800049, 161.1600037, 183.6000061, 173.3999939, 460 188.6999969, 161.1600037, 180.5399933, 160.1399994, 166.2599945, 461 164.2200012, 182.5800018, 169.3200073, 176.4600067, 186.6600037, 462 192.7799988, 163.1999969, 153, 182.5800018, 184.6199951, 463 166.2599945, 167.2799988, 186.6600037, 177.4799957, 174.4199982, 464 175.4400024, 164.2200012, 180.5399933, 178.5, 176.4600067, 465 164.2200012, 160.1399994, 178.5, 176.4600067, 180.5399933, 466 182.5800018, 179.5200043, 169.3200073, 178.5, 172.3800049, 467 171.3600006, 178.5, 166.2599945, 171.3600006, 181.5599976, 468 162.1799927, 157.0800018, 189.7200012, 177.4799957, 164.2200012, 469 179.5200043, 187.6799927, 172.3800049, 158.1000061, 164.2200012, 470 177.4799957, 165.2400055, 185.6399994, 174.4199982, 188.6999969, 471 173.3999939, 168.3000031, 164.2200012, 187.6799927, 209.1000061, 472 172.3800049, 177.4799957, 170.3399963, 172.3800049, 164.2200012, 473 190.7400055, 177.4799957, 165.2400055, 168.3000031, 173.3999939, 474 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 475 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 478 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 481 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 484 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 485 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 486 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 487 }; 488 217 489 int main (void) 218 490 { 219 491 plan_tests(26); 220 492 221 diag("psStats Tests with sample SDSS data from RHL ");493 diag("psStats Tests with sample SDSS data from RHL and Megacam from EAM"); 222 494 diag("this file does not yet define a specific test"); 223 diag ("the fitted mean is currently wrong for these two data sets");495 diag("the fitted mean is currently wrong for these two data sets"); 224 496 225 497 { … … 243 515 244 516 psVectorStats (stats, y, NULL, NULL, 1); 245 ok (1, "fitted mean %f, stdev %f", stats->fittedMean, stats->fittedStdev); 246 ok (1, "robust median %f, stdev %f", stats->robustMedian, stats->robustStdev); 247 ok (1, "clipped mean %f, stdev %f", stats->clippedMean, stats->clippedStdev); 248 ok (1, "sample mean %f, stdev %f", stats->sampleMean, stats->sampleStdev); 249 ok (1, "sample median %f, stdev %f", stats->sampleMedian, stats->sampleStdev); 517 ok (1, "sample mean %f, stdev %f", stats->sampleMean, stats->sampleStdev); 518 ok (1, "sample median %f, stdev %f", stats->sampleMedian, stats->sampleStdev); 519 ok (1, "clipped mean %f, stdev %f", stats->clippedMean, stats->clippedStdev); 520 ok (1, "robust median %f, stdev %f", stats->robustMedian, stats->robustStdev); 521 ok (1, "fitted mean %f, stdev %f", stats->fittedMean, stats->fittedStdev); 522 psFree (stats); 523 524 stats = psStatsAlloc (PS_STAT_FITTED_MEAN_V2 | PS_STAT_FITTED_STDEV_V2 | PS_STAT_USE_BINSIZE); 525 stats->binsize = 1.0; 526 psVectorStats (stats, y, NULL, NULL, 1); 527 ok (1, "fitted mean v2 %f, stdev %f", stats->fittedMean, stats->fittedStdev); 528 psFree (stats); 250 529 251 530 psFree (y); 252 psFree (stats);253 531 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 254 532 } … … 273 551 274 552 psVectorStats (stats, y, NULL, NULL, 1); 275 ok (1, "fitted mean %f, stdev %f", stats->fittedMean, stats->fittedStdev);276 ok (1, "robust median %f, stdev %f", stats->robustMedian, stats->robustStdev);277 ok (1, "clipped mean %f, stdev %f", stats->clippedMean, stats->clippedStdev);278 553 ok (1, "sample mean %f, stdev %f", stats->sampleMean, stats->sampleStdev); 279 554 ok (1, "sample median %f, stdev %f", stats->sampleMedian, stats->sampleStdev); 555 ok (1, "clipped mean %f, stdev %f", stats->clippedMean, stats->clippedStdev); 556 ok (1, "robust median %f, stdev %f", stats->robustMedian, stats->robustStdev); 557 ok (1, "fitted mean %f, stdev %f", stats->fittedMean, stats->fittedStdev); 558 psFree (stats); 559 560 stats = psStatsAlloc (PS_STAT_FITTED_MEAN_V2 | PS_STAT_FITTED_STDEV_V2 | PS_STAT_USE_BINSIZE); 561 stats->binsize = 1.0; 562 psVectorStats (stats, y, NULL, NULL, 1); 563 ok (1, "fitted mean v2 %f, stdev %f", stats->fittedMean, stats->fittedStdev); 564 psFree (stats); 280 565 281 566 psFree (y); 282 psFree (stats);283 567 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 284 568 } 285 569 570 { 571 psMemId id = psMemGetId(); 572 573 diag("sample 3"); 574 psStats *stats = psStatsAlloc (PS_STAT_FITTED_MEAN | PS_STAT_FITTED_STDEV | 575 PS_STAT_ROBUST_MEDIAN | PS_STAT_ROBUST_STDEV | 576 PS_STAT_CLIPPED_MEAN | PS_STAT_CLIPPED_STDEV | 577 PS_STAT_SAMPLE_MEAN | PS_STAT_SAMPLE_MEDIAN | 578 PS_STAT_SAMPLE_STDEV | PS_STAT_USE_BINSIZE); 579 stats->binsize = 1.0; 580 581 582 // copy data in static array 583 int nPts = sizeof(yraw_03) / sizeof (float); 584 psVector *y = psVectorAlloc (nPts, PS_TYPE_F32); 585 for (int i = 0; i < y->n; i++) { 586 y->data.F32[i] = yraw_03[i]; 587 } 588 589 psVectorStats (stats, y, NULL, NULL, 1); 590 ok (1, "sample mean %f, stdev %f", stats->sampleMean, stats->sampleStdev); 591 ok (1, "sample median %f, stdev %f", stats->sampleMedian, stats->sampleStdev); 592 ok (1, "clipped mean %f, stdev %f", stats->clippedMean, stats->clippedStdev); 593 ok (1, "robust median %f, stdev %f", stats->robustMedian, stats->robustStdev); 594 ok (1, "fitted mean %f, stdev %f", stats->fittedMean, stats->fittedStdev); 595 psFree (stats); 596 597 stats = psStatsAlloc (PS_STAT_FITTED_MEAN_V2 | PS_STAT_FITTED_STDEV_V2 | PS_STAT_USE_BINSIZE); 598 stats->binsize = 1.0; 599 psVectorStats (stats, y, NULL, NULL, 1); 600 ok (1, "fitted mean v2 %f, stdev %f", stats->fittedMean, stats->fittedStdev); 601 psFree (stats); 602 603 psFree (y); 604 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 605 } 606 286 607 return exit_status(); 287 608 }
Note:
See TracChangeset
for help on using the changeset viewer.
