Index: trunk/psModules/src/tst_pmMaskBadPixels.c
===================================================================
--- trunk/psModules/src/tst_pmMaskBadPixels.c	(revision 1832)
+++ 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;
 }
