Index: trunk/psLib/test/math/tst_psStats00.c
===================================================================
--- trunk/psLib/test/math/tst_psStats00.c	(revision 6204)
+++ trunk/psLib/test/math/tst_psStats00.c	(revision 6215)
@@ -6,11 +6,11 @@
 *  do a much simpler test with data types PS_TYPE_U8, PS_TYPE_U16, PS_TYPE_F64.
 *
-*  If the psStats,c code every changes such that vectors of different type
+*  If the psStats,c code ever changes such that vectors of different type
 *  are handled by different routines, then these tests must be extended.
 *
 *  @author GLG, MHPCC
 * 
-*  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
-*  @date $Date: 2005-09-24 01:10:00 $
+*  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
+*  @date $Date: 2006-01-26 23:49:11 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii
@@ -22,5 +22,5 @@
 #define ERROR_TOL  0.0001
 #define N 15
-
+#define VERBOSE 1
 static psS32 testStatsSampleMeanF32(void);
 static psS32 testStatsSampleMeanS8(void);
@@ -71,5 +71,5 @@
     psTraceSetLevel(".", 0);
     psTraceSetLevel("p_psGetStatValue", 0);
-    psTraceSetLevel("p_psVectorSampleMean", 0);
+    psTraceSetLevel("p_psVectorSampleMean", 10);
     psTraceSetLevel("p_psVectorMax", 0);
     psTraceSetLevel("p_psVectorMin", 0);
@@ -119,4 +119,5 @@
     }
 
+    printf("HMMM: myStats->options is (0x%x)\n", myStats->options);
     /*************************************************************************/
     /*  Call psVectorStats() with no vector mask.                    */
@@ -125,5 +126,8 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
-    if ( fabs(mean - expectedMeanNoMaskF32) > ERROR_TOL ) {
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanNoMaskF32);
+    }
+    if (isnan(myStats->sampleMean) || (fabs(mean - expectedMeanNoMaskF32) > ERROR_TOL)) {
         psError(PS_ERR_UNKNOWN,true,"Returned value %f not as expected %f",
                 mean, expectedMeanNoMaskF32);
@@ -135,5 +139,8 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
-    if ( fabs(mean - expectedWeightMeanNoMaskF32) > ERROR_TOL ) {
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedWeightMeanNoMaskF32);
+    }
+    if (isnan(myStats->sampleMean) || (fabs(mean - expectedWeightMeanNoMaskF32) > ERROR_TOL)) {
         psError(PS_ERR_UNKNOWN,true,"Returned value %f not as expected %f",
                 mean, expectedWeightMeanNoMaskF32);
@@ -148,4 +155,7 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanRangeNoMaskF32);
+    }
     if ( fabs(mean - expectedMeanRangeNoMaskF32) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Return value %f not as expected %f",
@@ -158,4 +168,7 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedWeightMeanNoMaskRangeF32);
+    }
     if ( fabs(mean - expectedWeightMeanNoMaskRangeF32) > ERROR_TOL) {
         psError(PS_ERR_UNKNOWN,true,"Return value %f not as expected %f",
@@ -170,4 +183,7 @@
     myStats = psVectorStats(myStats, myVector, NULL, maskVector, 1);
     mean = myStats->sampleMean;
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanWithMaskF32);
+    }
     if ( fabs(mean - expectedMeanWithMaskF32) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Returned value %f not as expected %f",
@@ -179,4 +195,7 @@
     myStats = psVectorStats(myStats, myVector, myErrors, maskVector, 1);
     mean = myStats->sampleMean;
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedWeightMeanWithMaskF32);
+    }
     if ( fabs(mean - expectedWeightMeanWithMaskF32) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Returned value %f not as expected %f",
@@ -190,4 +209,7 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanRangeWithMaskF32);
+    }
     if ( fabs(mean - expectedMeanRangeWithMaskF32) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Return value %f not as expected %f",
@@ -200,4 +222,7 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedWeightMeanWithMaskRangeF32);
+    }
     if ( fabs(mean - expectedWeightMeanWithMaskRangeF32) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Return value %f not as expected %f",
@@ -219,4 +244,7 @@
     myStats = psVectorStats(myStats, myVector, NULL, maskVector, 2);
     mean = myStats->sampleMean;
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanWithMaskF32);
+    }
     if (fabs(mean - expectedMeanWithMaskF32) > ERROR_TOL )  {
         psError(PS_ERR_UNKNOWN,true,"Returned value %f not as expected %f",
@@ -237,4 +265,7 @@
     myStats = psVectorStats(myStats, myVector, NULL, maskVector, 4);
     mean = myStats->sampleMean;
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanNoMaskF32);
+    }
     if (fabs(mean - expectedMeanNoMaskF32) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Return value %f not as expected %f",
@@ -307,4 +338,7 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanNoMaskS8);
+    }
     if ( fabs(mean - expectedMeanNoMaskS8) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Returned value %f not as expected %f",
@@ -347,4 +381,7 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanNoMaskU16);
+    }
     if ( fabs(mean - expectedMeanNoMaskU16) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Returned value %f not as expected %f",
@@ -387,4 +424,7 @@
     mean = myStats->sampleMean;
     // Verify return value is as expected
+    if (VERBOSE) {
+        printf("psVectorStats() returned %.2f: expected was %.2f\n", mean, expectedMeanNoMaskF64);
+    }
     if ( fabs(mean - expectedMeanNoMaskF64) > ERROR_TOL ) {
         psError(PS_ERR_UNKNOWN,true,"Returned value %f not as expected %f",
Index: trunk/psLib/test/math/tst_psStats03.c
===================================================================
--- trunk/psLib/test/math/tst_psStats03.c	(revision 6204)
+++ trunk/psLib/test/math/tst_psStats03.c	(revision 6215)
@@ -18,13 +18,13 @@
     // We list pertinent psStats.c functions here for debugging ease.
     //
-    psTraceSetLevel(".", 0);
-    psTraceSetLevel("p_psGetStatValue", 0);
-    psTraceSetLevel("p_psVectorSampleMean", 0);
-    psTraceSetLevel("p_psVectorCheckNonEmpty", 0);
-    psTraceSetLevel("p_psVectorNValues", 0);
-    psTraceSetLevel("p_psVectorSampleMedian", 0);
-    psTraceSetLevel("psStatsAlloc", 0);
-    psTraceSetLevel("p_psConvertToF32", 0);
-    psTraceSetLevel("psVectorStats", 0);
+    psTraceSetLevel(".", 10);
+    psTraceSetLevel("p_psGetStatValue", 10);
+    psTraceSetLevel("p_psVectorSampleMean", 10);
+    psTraceSetLevel("p_psVectorCheckNonEmpty", 10);
+    psTraceSetLevel("p_psVectorNValues", 10);
+    psTraceSetLevel("p_psVectorSampleMedian", 10);
+    psTraceSetLevel("psStatsAlloc", 10);
+    psTraceSetLevel("p_psConvertToF32", 10);
+    psTraceSetLevel("psVectorStats", 10);
 
     psStats *myStats    = NULL;
Index: trunk/psLib/test/math/tst_psStats07.c
===================================================================
--- trunk/psLib/test/math/tst_psStats07.c	(revision 6204)
+++ trunk/psLib/test/math/tst_psStats07.c	(revision 6215)
@@ -40,5 +40,4 @@
     float realUQNoMask = MEAN + ( 0.6 * STDEV );
     psS32 realN50NoMask = N / 4;
-    psS32 realNfitNoMask = N / 4;
 
     /*************************************************************************/
@@ -79,9 +78,9 @@
     psFree(mySampleStatsWithMask);
 
-    myStats = psStatsAlloc( PS_STAT_ROBUST_MEAN |
-                            PS_STAT_ROBUST_MEDIAN |
-                            PS_STAT_ROBUST_MODE |
-                            PS_STAT_ROBUST_STDEV |
-                            PS_STAT_ROBUST_QUARTILE );
+    myStats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN |
+                           PS_STAT_ROBUST_STDEV |
+                           PS_STAT_ROBUST_QUARTILE |
+                           PS_STAT_FITTED_MEAN |
+                           PS_STAT_FITTED_STDEV);
     // Create a full outliers:
     myVector->data.F32[N/4] = -1000.0 * MEAN;
@@ -101,7 +100,7 @@
 
     printf( "The expected Mean was %.2f; the calculated Mean was %.2f\n",
-            realMeanNoMask, myStats->robustMean );
-
-    if ( fabs( myStats->robustMean - realMeanNoMask ) < ( ERROR_TOLERANCE * realMeanNoMask ) ) {
+            realMeanNoMask, myStats->fittedMean );
+
+    if ( fabs( myStats->fittedMean - realMeanNoMask ) < ( ERROR_TOLERANCE * realMeanNoMask ) ) {
         testStatus = true;
     } else {
@@ -157,6 +156,6 @@
 
     printf( "The expected Stdev was %.2f; the calculated Stdev was %.2f\n",
-            realStdevNoMask, myStats->robustStdev );
-    if ( fabs( myStats->robustStdev - realStdevNoMask ) < ( ERROR_TOLERANCE * realStdevNoMask ) ) {
+            realStdevNoMask, myStats->fittedStdev );
+    if ( fabs( myStats->fittedStdev - realStdevNoMask ) < ( ERROR_TOLERANCE * realStdevNoMask ) ) {
         testStatus = true;
     } else {
@@ -208,5 +207,4 @@
                              "psStats functions",
                              "PS_STAT_ROBUST_STATS: robust N50: no vector mask" );
-
     // XXX:
     realN50NoMask = myStats->robustN50;
@@ -227,25 +225,4 @@
                  testStatus );
 
-    printPositiveTestHeader( stdout,
-                             "psStats functions",
-                             "PS_STAT_ROBUST_STATS: robust Nfit: no vector mask" );
-
-    // XXX:
-    realNfitNoMask = myStats->robustNfit;
-
-    printf( "The expected Nfit was %d; the calculated Nfit was %d\n",
-            realNfitNoMask, myStats->robustNfit );
-    /* XXX: fix
-        if ( fabs( myStats->robustNfit - realNfitNoMask ) < ( ERROR_TOLERANCE * realNfitNoMask ) ) {
-            testStatus = true;
-        } else {
-            testStatus = false;
-            globalTestStatus = false;
-        }
-    */
-    printFooter( stdout,
-                 "psVector functions",
-                 "PS_STAT_ROBUST_STATS: robust Nfit: no vector mask",
-                 testStatus );
 
     /*************************************************************************/
@@ -296,13 +273,12 @@
     float realUQWithMask = MEAN;
     psS32 realN50WithMask = N / 4;
-    psS32 realNfitWithMask = N / 4;
     /*************************************************************************/
     /*  Allocate and initialize data structures                              */
     /*************************************************************************/
-    myStats = psStatsAlloc( PS_STAT_ROBUST_MEAN |
-                            PS_STAT_ROBUST_MEDIAN |
-                            PS_STAT_ROBUST_MODE |
-                            PS_STAT_ROBUST_STDEV |
-                            PS_STAT_ROBUST_QUARTILE );
+    myStats = psStatsAlloc(PS_STAT_ROBUST_MEDIAN |
+                           PS_STAT_ROBUST_STDEV |
+                           PS_STAT_ROBUST_QUARTILE |
+                           PS_STAT_FITTED_MEAN |
+                           PS_STAT_FITTED_STDEV);
 
     maskVector = psVectorAlloc( N, PS_TYPE_U8 );
@@ -334,6 +310,6 @@
     printf( "Called psVectorStats() on a vector with elements masked.\n" );
     printf( "The expected Mean was %.2f; the calculated Mean was %.2f\n",
-            realMeanWithMask, myStats->robustMean );
-    if ( fabs( myStats->robustMean - realMeanWithMask ) < ( ERROR_TOLERANCE * realMeanWithMask ) ) {
+            realMeanWithMask, myStats->fittedMean );
+    if ( fabs( myStats->fittedMean - realMeanWithMask ) < ( ERROR_TOLERANCE * realMeanWithMask ) ) {
         testStatus = true;
     } else {
@@ -389,6 +365,6 @@
 
     printf( "The expected Stdev was %.2f; the calculated Stdev was %.2f\n",
-            realStdevWithMask, myStats->robustStdev );
-    if ( fabs( myStats->robustStdev - realStdevWithMask ) < ( ERROR_TOLERANCE * realStdevWithMask ) ) {
+            realStdevWithMask, myStats->fittedStdev );
+    if ( fabs( myStats->fittedStdev - realStdevWithMask ) < ( ERROR_TOLERANCE * realStdevWithMask ) ) {
         testStatus = true;
     } else {
@@ -459,26 +435,4 @@
                  "PS_STAT_ROBUST_STATS: robust N50: with vector mask",
                  testStatus );
-
-
-
-    printPositiveTestHeader( stdout,
-                             "psStats functions",
-                             "PS_STAT_ROBUST_STATS: robust Nfit: with vector mask" );
-
-    printf( "The expected Nfit was %d; the calculated Nfit was %d\n",
-            realNfitWithMask, myStats->robustNfit );
-    /* XXX: fix
-        if ( fabs( myStats->robustNfit - realNfitWithMask ) < ( ERROR_TOLERANCE * realNfitWithMask ) ) {
-            testStatus = true;
-        } else {
-            testStatus = false;
-            globalTestStatus = false;
-        }
-    */
-    printFooter( stdout,
-                 "psVector functions",
-                 "PS_STAT_ROBUST_STATS: robust Nfit: with vector mask",
-                 testStatus );
-
 
 
