Index: /trunk/psModules/src/pmFlatField.c
===================================================================
--- /trunk/psModules/src/pmFlatField.c	(revision 1869)
+++ /trunk/psModules/src/pmFlatField.c	(revision 1870)
@@ -18,6 +18,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.13 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-23 01:41:09 $
+ *  @version $Revision: 1.14 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-09-23 23:33:54 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -72,4 +72,5 @@
     } else if(in->mask == NULL) {
         in->mask = psImageAlloc(inImage->numCols, inImage->numRows, PS_TYPE_MASK);
+        memset(in->mask->data.V[0], 0, inImage->numCols*inImage->numRows*PSELEMTYPE_SIZEOF(PS_TYPE_MASK));
     }
     inMask = in->mask;
Index: /trunk/psModules/src/pmMaskBadPixels.c
===================================================================
--- /trunk/psModules/src/pmMaskBadPixels.c	(revision 1869)
+++ /trunk/psModules/src/pmMaskBadPixels.c	(revision 1870)
@@ -19,6 +19,6 @@
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-23 01:33:02 $
+ *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-09-23 23:33:54 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -31,4 +31,5 @@
 #include<stdio.h>
 #include<math.h>
+#include<string.h>
 
 #include "pmMaskBadPixels.h"
@@ -70,6 +71,7 @@
                    PS_ERRORTEXT_pmMaskBadPixels_NULL_INPUT_IMAGE);
         return false;
-    } else if(inMask == NULL) {
+    } else if(in->mask == NULL) {
         in->mask = psImageAlloc(inImage->numCols, inImage->numRows, PS_TYPE_MASK);
+        memset(in->mask->data.V[0], 0, inImage->numCols*inImage->numRows*PSELEMTYPE_SIZEOF(PS_TYPE_MASK));
     }
     inMask = in->mask;
Index: /trunk/psModules/src/tst_pmFlatField.c
===================================================================
--- /trunk/psModules/src/tst_pmFlatField.c	(revision 1869)
+++ /trunk/psModules/src/tst_pmFlatField.c	(revision 1870)
@@ -3,13 +3,25 @@
  *  @brief Contains the tests for pmFlatField.c:
  *
+ *    Test A - Divide input image by flat image
+ *    Test B - Mask flat image data
+ *    Test C - Mask flat image data starting with non-null mask
+ *    Test E - Attempt to use null input image
+ *    Test F - Attempt tp use null flat image
+ *    Test G - Attempt to use input image bigger than flat image
+ *    Test H - Attempt to use input image mask bigger than flat image
+ *    Test I - Attempt to use offset greater than input image
+ *    Test J - Attempt to use complex input image
+ *    Test K - Attempt to use complex flat image
+ *    Test L - Attempt to use non-equal input and flat image types
+ *    Test M - Attempt to use non-mask type mask image
+ *
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-22 19:58:57 $
+ *  @version $Revision: 1.5 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-09-23 23:33:54 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
  */
 
-#include<stdlib.h>
 
 #include "psTest.h"
@@ -64,5 +76,4 @@
     // Test A - Divide input image by flat image
     printPositiveTestHeader(stdout, "pmFlatField", "Test A - Divide input image by flat image");
-    printf("Divide input image by flat image\n\n");
     CREATE_AND_SET_IMAGE(inImage,F64,6.0,3,3)
     psReadout *inReadout  = psReadoutAlloc(0, 0, inImage);
@@ -90,5 +101,4 @@
 
     // Test C - Mask flat image data starting with non-null mask
-    printf("Mask flat image data starting with non-null mask\n\n");
     printPositiveTestHeader(stdout, "pmFlatField", "Test C - Mask flat image data starting with non-null mask");
     PRINT_MATRIX(inImage, F64, "Input image:");
Index: /trunk/psModules/src/tst_pmMaskBadPixels.c
===================================================================
--- /trunk/psModules/src/tst_pmMaskBadPixels.c	(revision 1869)
+++ /trunk/psModules/src/tst_pmMaskBadPixels.c	(revision 1870)
@@ -1,62 +1,131 @@
-
-/** @file  filename.h
+/** @file tst_pmMaskBadPixels.c
  *
- *  @brief Contains the definitions for ...
- *
- *  Detailed Description goes here.
+ *  @brief Contains the tests for pmMaskBadPixels:
  *
  *  @author Ross Harman, MHPCC
  *
- *  @version $Revision: 1.1 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2004-09-20 20:36:46 $
+ *  @version $Revision: 1.2 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2004-09-23 23:33:54 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
  */
 
+
+#include "psTest.h"
+#include "pslib.h"
 #include "pmMaskBadPixels.h"
 
 
-#define PRINT_MATRIX(IMAGE,TYPE)                                                                             \
-for(int i=0; i<IMAGE->numRows; i++) {                                                                 \
-    for(int j=0; j<IMAGE->numCols; j++) {                                                                \
-        if(PS_IS_PSELEMTYPE_COMPLEX(IMAGE->type.type)) {                                                 \
-            printf("%f+%fi ", creal(IMAGE->data.TYPE[i][j]), cimag(IMAGE->data.TYPE[i][j]));             \
-        } else if(PS_IS_PSELEMTYPE_INT(IMAGE->type.type)) {                                              \
-            printf("%d", (int)IMAGE->data.TYPE[i][j]);                                                  \
-        } else {                                                                                         \
-            printf("%f ", (double)IMAGE->data.TYPE[i][j]);                                               \
-        }                                                                                                \
-    }                                                                                                    \
-    printf("\n");                                                                                        \
-}                                                                                                        \
+#define PRINT_MATRIX(IMAGE,TYPE,STRING)                                                                      \
+printf(STRING);                                                                                              \
+printf("\n");                                                                                                \
+for(int i=IMAGE->numRows-1; i>-1; i--) {                                                                     \
+    for(int j=0; j<IMAGE->numCols; j++) {                                                                    \
+        if(PS_IS_PSELEMTYPE_COMPLEX(IMAGE->type.type)) {                                                     \
+            printf("%f+%fi ", creal(IMAGE->data.TYPE[i][j]), cimag(IMAGE->data.TYPE[i][j]));                 \
+        } else if(PS_IS_PSELEMTYPE_INT(IMAGE->type.type)) {                                                  \
+            printf("%d", (int)IMAGE->data.TYPE[i][j]);                                                       \
+        } else {                                                                                             \
+            printf("%f", (double)IMAGE->data.TYPE[i][j]);                                                    \
+        }                                                                                                    \
+    }                                                                                                        \
+    printf("\n");                                                                                            \
+}                                                                                                            \
 printf("\n");
 
 
-int main(void)
-{
-    int grow = 10;
-    int size = 50;
-    unsigned int maskVal = 0;
-    unsigned int growVal = 1;
-    float sat = 100.0f;
-    psImage *inImage = psImageAlloc(size, size, PS_TYPE_F64);
-    psImage *mask1 = psImageAlloc(size, size, PS_TYPE_MASK);
-    psImage *mask2 = psImageAlloc(size, size, PS_TYPE_MASK);
-    psReadout *inReadout  = psReadoutAlloc(0, 0, inImage);
+#define CREATE_AND_SET_IMAGE(NAME,TYPE,VALUE,NROWS,NCOLS)                                                    \
+psImage *NAME = (psImage*)psImageAlloc(NCOLS,NROWS,PS_TYPE_##TYPE);                                          \
+for(int i=0; i<NAME->numRows; i++) {                                                                         \
+    for(int j=0; j<NAME->numCols; j++) {                                                                     \
+        NAME->data.TYPE[i][j] = VALUE;                                                                       \
+    }                                                                                                        \
+}
 
 
-    for(int r=0;r<size;r++) {
-        for(int c=0;c<size;c++) {
-            inImage->data.F64[r][c]=6.0;
-            mask1->data.PS_TYPE_MASK_DATA[r][c]=0;
-            mask2->data.PS_TYPE_MASK_DATA[r][c]=0;
-        }
-    }
+static int testMaskBadPixels(void);
 
+
+testDescription tests[] = {
+                              {testMaskBadPixels, 885, "pmMaskBadPixels", 0, false},
+                              {NULL}
+                          };
+
+
+int main(int argc, char* argv[])
+{
+    return !runTestSuite(stderr, "Test Point Driver", tests, argc, argv);
+}
+
+
+int testMaskBadPixels( void )
+{
+
+
+    // Test A - Create mask based on maskVal argument
+    printPositiveTestHeader(stdout, "pmMaskBadPixels", "Test A - Create mask based on maskVal argument");
+    CREATE_AND_SET_IMAGE(inImage1,F64,0,50,50);
+    CREATE_AND_SET_IMAGE(mask1,U8,0,50,50)
+    psReadout *inReadout  = psReadoutAlloc(0, 0, inImage1);
     mask1->data.PS_TYPE_MASK_DATA[24][24]=1;
-    PRINT_MATRIX(inImage,F64);
-    PRINT_MATRIX(mask1, PS_TYPE_MASK_DATA);
-    pmMaskBadPixels(inReadout, mask1, maskVal, sat, growVal, grow);
-    PRINT_MATRIX(inReadout->mask, PS_TYPE_MASK_DATA);
+    PRINT_MATRIX(mask1, U8, "Data mask:");
+    pmMaskBadPixels(inReadout, mask1, 1, 100.0, 0, 0);
+    PRINT_MATRIX(inReadout->mask, U8, "Resulting mask:");
+    psFree(mask1);
+    psFree(inReadout);
+    psFree(inImage1);
+    printFooter(stdout, "pmMaskBadPixels", "Test A - Create mask based on maskVal argument", true);
+    printf("\n\n\n");
+
+
+    // Test B - Create mask based on saturation argument
+    printPositiveTestHeader(stdout, "pmMaskBadPixels", "Test B - Create mask based on saturation argument");
+    CREATE_AND_SET_IMAGE(inImage2,F64,150.0,50,50);
+    CREATE_AND_SET_IMAGE(mask2,U8,0,50,50)
+    psReadout *inReadout2  = psReadoutAlloc(0, 0, inImage2);
+    PRINT_MATRIX(mask2, U8, "Data mask:");
+    pmMaskBadPixels(inReadout2, mask2, 0, 100.0, 0, 0);
+    PRINT_MATRIX(inReadout2->mask, U8, "Resulting mask:");
+    psFree(mask2);
+    psFree(inReadout2);
+    psFree(inImage2);
+    printFooter(stdout, "pmMaskBadPixels", "Test B - Create mask based on saturation argument", true);
+    printf("\n\n\n");
+
+
+    // Test C - Create mask based on growVal and grow arguments
+    printPositiveTestHeader(stdout, "pmMaskBadPixels", "Test C - Create mask based on growVal and grow arguments");
+    CREATE_AND_SET_IMAGE(inImage3,F64,50.0,50,50);
+    CREATE_AND_SET_IMAGE(mask3,U8,0,50,50)
+    psReadout *inReadout3  = psReadoutAlloc(0, 0, inImage3);
+    mask3->data.PS_TYPE_MASK_DATA[24][24]=1;
+    PRINT_MATRIX(mask3, U8, "Data mask:");
+    pmMaskBadPixels(inReadout3, mask3, 0, 100.0, 1, 10);
+    PRINT_MATRIX(inReadout3->mask, U8, "Resulting mask:");
+    psFree(mask3);
+    psFree(inReadout3);
+    psFree(inImage3);
+    printFooter(stdout, "pmMaskBadPixels", "Test C - Create mask based on growVal and grow arguments", true);
+    printf("\n\n\n");
+
+
+    // Test D - Create mask based on maskVal argument starting with non-null mask
+    printPositiveTestHeader(stdout, "pmMaskBadPixels", "Test D - Create mask based on maskVal argument starting with non-null mask");
+    CREATE_AND_SET_IMAGE(inImage4,F64,50.0,50,50);
+    CREATE_AND_SET_IMAGE(mask4,U8,0,50,50)
+    CREATE_AND_SET_IMAGE(mask4i,U8,0,50,50)
+    psReadout *inReadout4  = psReadoutAlloc(0, 0, inImage4);
+    inReadout4->mask = mask4i;
+    mask4->data.PS_TYPE_MASK_DATA[24][24]=1;
+    PRINT_MATRIX(mask4, U8, "Data mask:");
+    pmMaskBadPixels(inReadout4, mask4, 0, 100.0, 1, 10);
+    PRINT_MATRIX(inReadout4->mask, U8, "Resulting mask:");
+    psFree(mask4);
+    psFree(inReadout4);
+    psFree(inImage4);
+    printFooter(stdout, "pmMaskBadPixels", "Test D - Create mask based on maskVal argument starting with non-null mask", true);
+    printf("\n\n\n");
+
+
     return 0;
 }
