Index: /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c
===================================================================
--- /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c	(revision 2692)
+++ /trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic03.c	(revision 2693)
@@ -15,6 +15,6 @@
  *  @author  Ross Harman, MHPCC
  *
- *  @version $Revision: 1.7 $  $Name: not supported by cvs2svn $
- *  @date  $Date: 2004-11-04 01:05:00 $
+ *  @version $Revision: 1.8 $  $Name: not supported by cvs2svn $
+ *  @date  $Date: 2004-12-10 21:38:47 $
  *
  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -25,48 +25,46 @@
 #include "psTest.h"
 
-
-#define PRINT_VECTOR(VECTOR,TYPE)                                                                            \
-for(psS32 i=0; i<VECTOR->n; i++) {                                                                         \
-    if(PS_IS_PSELEMTYPE_COMPLEX(VECTOR->type.type)) {                                                    \
-        printf("%f+%fi ", creal(VECTOR->data.TYPE[i]), cimag(VECTOR->data.TYPE[i]));                     \
-    } else if(PS_IS_PSELEMTYPE_INT(VECTOR->type.type)) {                                                 \
-        printf("%d ", (psS32)VECTOR->data.TYPE[i]);                                                        \
-    } else {                                                                                             \
-        printf("%f ", (double)VECTOR->data.TYPE[i]);                                                     \
-    }                                                                                                    \
-}                                                                                                        \
+#define PRINT_VECTOR(VECTOR,TYPE) \
+for(psS32 i=0; i<VECTOR->n; i++) { \
+    if(PS_IS_PSELEMTYPE_COMPLEX(VECTOR->type.type)) { \
+        printf("%f+%fi ", creal(VECTOR->data.TYPE[i]), cimag(VECTOR->data.TYPE[i])); \
+    } else if(PS_IS_PSELEMTYPE_INT(VECTOR->type.type)) { \
+        printf("%d ", (psS32)VECTOR->data.TYPE[i]); \
+    } else { \
+        printf("%f ", (double)VECTOR->data.TYPE[i]); \
+    } \
+} \
 printf("\n\n");
 
-
-#define PRINT_MATRIX(IMAGE,TYPE)                                                                             \
-for(psS32 i=IMAGE->numRows-1; i>-1; i--) {                                                                 \
-    for(psS32 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 ", (psS32)IMAGE->data.TYPE[i][j]);                                                  \
-        } else {                                                                                         \
-            printf("%f ", (double)IMAGE->data.TYPE[i][j]);                                               \
-        }                                                                                                \
-    }                                                                                                    \
-    printf("\n");                                                                                        \
-}                                                                                                        \
+#define PRINT_MATRIX(IMAGE,TYPE) \
+for(psS32 i=IMAGE->numRows-1; i>-1; i--) { \
+    for(psS32 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 ", (psS32)IMAGE->data.TYPE[i][j]); \
+        } else { \
+            printf("%f ", (double)IMAGE->data.TYPE[i][j]); \
+        } \
+    } \
+    printf("\n"); \
+} \
 printf("\n");
 
 
-#define CREATE_AND_SET_VECTOR(NAME,TYPE,VALUE,SIZE)                                                          \
-psVector *NAME = (psVector*)psVectorAlloc(SIZE, PS_TYPE_##TYPE);                                         \
-for(psS32 i=0; i<SIZE; i++) {                                                                              \
-    NAME->data.TYPE[i] = VALUE;                                                                          \
-}                                                                                                        \
+#define CREATE_AND_SET_VECTOR(NAME,TYPE,VALUE,SIZE) \
+psVector *NAME = (psVector*)psVectorAlloc(SIZE, PS_TYPE_##TYPE); \
+for(psS32 i=0; i<SIZE; i++) { \
+    NAME->data.TYPE[i] = VALUE; \
+} \
 NAME->n = SIZE;
 
 
-#define CREATE_AND_SET_IMAGE(NAME,TYPE,VALUE,NROWS,NCOLS)                                                    \
-psImage *NAME = (psImage*)psImageAlloc(NCOLS,NROWS,PS_TYPE_##TYPE);                                      \
-for(psS32 i=0; i<NAME->numRows; i++) {                                                                     \
-    for(psS32 j=0; j<NAME->numCols; j++) {                                                                 \
-        NAME->data.TYPE[i][j] = VALUE;                                                                   \
-    }                                                                                                    \
+#define CREATE_AND_SET_IMAGE(NAME,TYPE,VALUE,NROWS,NCOLS) \
+psImage *NAME = (psImage*)psImageAlloc(NCOLS,NROWS,PS_TYPE_##TYPE); \
+for(psS32 i=0; i<NAME->numRows; i++) { \
+    for(psS32 j=0; j<NAME->numCols; j++) { \
+        NAME->data.TYPE[i][j] = VALUE; \
+    } \
 }
 
@@ -82,8 +80,6 @@
     CREATE_AND_SET_VECTOR(vector2,F64,0,3);
 
-
-    // Check for NULL arguments
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Check for NULL arguments",
-                            "Null XXX argument", 0);
+    // Check for NULL output argument
+    printPositiveTestHeader(stdout,"psBinaryOp", "Check for output generated");
     psImage* image6 = (psImage*)psBinaryOp(NULL, image1, "+", image2);
     if (image6 == NULL) {
@@ -91,5 +87,9 @@
         return 1;
     }
-
+    printFooter(stdout,"psBinaryOp","Check for output generated",true);
+
+    // Check for NULL input argument #1
+    printPositiveTestHeader(stdout,"psBinaryOp","Check for null input arg 1");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psBinaryOp(image6, NULL, "+", image2);
     if (image6 != NULL) {
@@ -97,5 +97,9 @@
         return 2;
     }
-
+    printFooter(stdout,"psBinaryOp","Check for null input arg 1",true);
+
+    // Check for NULL input argument #2
+    printPositiveTestHeader(stdout,"psBinaryOp","Check for null input arg 2");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psBinaryOp(image6, image1, "+", NULL);
     if (image6 != NULL) {
@@ -103,4 +107,9 @@
         return 3;
     }
+    printFooter(stdout,"psBinaryOp","Check for null input arg 2",true);
+
+    // Check for NULL operand
+    printPositiveTestHeader(stdout,"psBinaryOp","Check for null operand");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psBinaryOp(image6, image1, NULL, image2);
     if (image6 != NULL) {
@@ -108,5 +117,8 @@
         return 4;
     }
-
+    printFooter(stdout,"psBinaryOp","Check for null operand",true);
+
+    // Check for null output
+    printPositiveTestHeader(stdout,"psUnaryOp","Check for null output");
     image6 = (psImage*)psUnaryOp(NULL, image1, "sin");
     if (image6 == NULL) {
@@ -114,5 +126,9 @@
         return 5;
     }
-
+    printFooter(stdout,"psUnaryOp","Check for null output",true);
+
+    // Check for NULL input arg
+    printPositiveTestHeader(stdout,"psUnaryOp","Check for null input");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psUnaryOp(image6, NULL, "sin");
     if (image6 != NULL) {
@@ -120,5 +136,9 @@
         return 6;
     }
-
+    printFooter(stdout,"psUnaryOp","Check for null input",true);
+
+    // Check for NULL operand
+    printPositiveTestHeader(stdout,"psUnaryOp","Check for null operator");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psUnaryOp(image6, image1, NULL);
     if (image6 != NULL) {
@@ -126,10 +146,9 @@
         return 7;
     }
-
-    printFooter(stdout, "psMatrixVectorArithmetic", "Check for NULL arguments", true);
+    printFooter(stdout,"psUnaryOp","Check for null operator",true);
 
     // Inconsistent element types
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Inconsistent element types",
-                            "Element types for arguments inconsistent", 0);
+    printPositiveTestHeader(stdout,"psBinaryOp", "Inconsistent element types");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psBinaryOp(image6, image3, "+", image2);
     if (image6 != NULL) {
@@ -137,5 +156,8 @@
         return 8;
     }
-
+    printFooter(stdout,"psBinaryOp","Inconsistent element types",true);
+
+    // Check unary op to convert to correct type
+    printPositiveTestHeader(stdout,"psUnaryOp","Check output type conversion");
     image6 = psImageCopy(image6,image2,PS_TYPE_F64);
     image6 = (psImage*)psUnaryOp(image6, image3, "sin");
@@ -144,11 +166,9 @@
         return 9;
     }
-
-    printFooter(stdout, "psMatrixVectorArithmetic", "Inconsistent element types", true);
-
+    printFooter(stdout,"psUnaryOp","Check output type conversion",true);
 
     // Inconsistent element count
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Inconsistent element count",
-                            "Inconsistent element count", 0);
+    printPositiveTestHeader(stdout,"psBinaryOp","Check for inconsistent elements");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psBinaryOp(image6, image4, "+", image2);
     if (image6 != NULL) {
@@ -156,5 +176,8 @@
         return 10;
     }
-
+    printFooter(stdout,"psBinaryOp","Check for inconsistent elements",true);
+
+    // Inconsistent element in input and output
+    printPositiveTestHeader(stdout,"psUnaryOp","Check inconsistent elements in input and output");
     image6 = psImageCopy(image6,image2,PS_TYPE_F64);
     image6 = (psImage*)psUnaryOp(image6, image4, "sin");
@@ -165,5 +188,9 @@
         return 11;
     }
-
+    printFooter(stdout,"psUnaryOp","Check inconsistent elements in input and output",true);
+
+    // Inconsistent size of input 1 and input 2
+    printPositiveTestHeader(stdout,"psBinaryOp","Check inconsistent size");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psBinaryOp(image6, vector1, "+", image2);
     if (image6 != NULL) {
@@ -171,5 +198,9 @@
         return 12;
     }
-
+    printFooter(stdout,"psBinaryOp","Check inconsistent size",true);
+
+    // Inconsistent size of input 1 and input 2
+    printPositiveTestHeader(stdout,"psBinaryOp","Check inconsistent size");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     vector1->type.dimen = PS_DIMEN_TRANSV;
     image6 = (psImage*)psBinaryOp(image6, vector1, "+", image2);
@@ -178,11 +209,11 @@
         return 13;
     }
-    printFooter(stdout, "psMatrixVectorArithmetic", "Inconsistent element count", true);
+    printFooter(stdout, "psBinaryOp", "Check inconsistent size", true);
 
 
     // Inconsistent dimensionality
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Inconsistent dimensionality",
-                            "Dimensionality for arguments inconsistent", 0);
+    printPositiveTestHeader(stdout,"psUnaryOp","Check inconsistent dimensionality");
     image6 = psImageCopy(image6,image2,PS_TYPE_F64);
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an two error messages");
     image6 = (psImage*)psUnaryOp(image6, vector2, "sin");
     if (image6 != NULL) {
@@ -190,56 +221,92 @@
         return 14;
     }
-
-    printFooter(stdout, "psMatrixVectorArithmetic", "Inconsistent dimensionality", true);
+    printFooter(stdout,"psUnaryOp","Check inconsistent dimensionality",true);
 
     // Attempt to use min with complex numbers
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Use min with complex numbers",
-                            "Minimum operation not supported for complex numbers", 0);
+    printPositiveTestHeader(stdout,"psBinaryOp","Attempt to use min with complex numbers");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
     image6 = (psImage*)psBinaryOp(image6, image5, "min", image5);
-    printFooter(stdout, "psMatrixVectorArithmetic", "Use min with complex numbers", true);
+    if(image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp returned result with min of complex numbers");
+        return 15;
+    }
+    printFooter(stdout, "psBinaryOp", "Attempt to use  min with complex numbers", true);
 
 
     // Attempt to use max with complex numbers
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Use max with complex numbers",
-                            "Maximum operation not supported for complex numbers", 0);
+    printPositiveTestHeader(stdout,"psBinaryOp","Attempt to use max with complex numbers");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psBinaryOp(image6, image5, "max", image5);
-    printFooter(stdout, "psMatrixVectorArithmetic", "Use max with complex numbers", true);
+    if(image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp returned result with max of complex numbers");
+        return 16;
+    }
+    printFooter(stdout, "psBinaryOp", "Attempt to use max with complex numbers", true);
 
 
     // Invalid operation
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic", "Invalid operation",
-                            "Invalid operation", 0);
+    printPositiveTestHeader(stdout,"psBinary","Attempt to use invalid operator");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error messgae");
     image6 = (psImage*)psBinaryOp(image6, image1, "yarg", image2);
+    if(image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psBinaryOp returned result with invalid operator");
+        return 17;
+    }
+    printFooter(stdout,"psBinaryOp","Attempt to use invalid operator",true);
+
+    printPositiveTestHeader(stdout,"psUnaryOp","Attempt to use invalid operator");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     image6 = (psImage*)psUnaryOp(image6, image1, "yarg");
-    printFooter(stdout, "psMatrixVectorArithmetic", "Invalid operation", true);
-
-    // Invalid parameter in2
-    printNegativeTestHeader(stdout,"psMatrixVectorArithmetic","Invalid input",
-                            "Invalid operation", 0);
+    if(image6 != NULL) {
+        psLogMsg(__func__,PS_LOG_ERROR,"psUnaryOp returned result with invalid operator");
+        return 18;
+    }
+    printFooter(stdout, "psUnaryOp", "Attempt to use invalid operator", true);
+
     CREATE_AND_SET_VECTOR(vector4,F64,0,3);
     CREATE_AND_SET_VECTOR(vector5,F64,0,3);
-    CREATE_AND_SET_VECTOR(vector6,F64,0,3);
-    if ( psBinaryOp(vector6,vector4,"+",NULL) != NULL ) {
-        psError(PS_ERR_UNKNOWN, true,"psBinaryOp should return null when out and in1 valid but in2 null.");
-        return 10;
-    }
-    printFooter(stdout, "psMatrixVectorArithmetic", "Invalid input", true);
-
+
+    // Input parameter with dimension of PS_DIMEN_OTHER
+    printPositiveTestHeader(stdout,"psBinaryOp","Attempt to use input with PS_DIMEN_OTHER");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     vector4->type.dimen = PS_DIMEN_OTHER;
     if ( psBinaryOp(NULL,vector4,"+",vector5) != NULL) {
         psError(PS_ERR_UNKNOWN, true,"psBinaryOp should return null when input dimen PS_DIMEN_OTHER.");
-        return 11;
+        return 19;
     }
     vector4->type.dimen = PS_DIMEN_VECTOR;
-
-    psScalar* inScalar = psScalarAlloc(0,PS_TYPE_F64);
-    CREATE_AND_SET_IMAGE(image10,F64,0,3,3);
-    if ( psBinaryOp(image10,inScalar,"+",vector4) == NULL ) {
-        psError(PS_ERR_UNKNOWN, true,"psBinaryOp should not return null when input/out dimension don't match.");
-        return 12;
-    }
+    printFooter(stdout,"psBinaryOp","Attempt to use input with PS_DIMEN_OTHER",true);
+
+    // Input parameter with dimension of PS_DIMEN_OTHER
+    printPositiveTestHeader(stdout,"psUnaryOp","Attempt to use input with PS_DIMEN_OTHER");
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
+    vector4->type.dimen = PS_DIMEN_OTHER;
+    if ( psUnaryOp(NULL,vector4,"sin") != NULL ) {
+        psError(PS_ERR_UNKNOWN,true,"psUnaryOp should return null when input dimen PS_DIMEN_OTHER");
+        return 20;
+    }
+    vector4->type.dimen = PS_DIMEN_VECTOR;
+    printFooter(stdout,"psUnaryOp","Attempt to use input with PS_DIMEN_OTHER",true);
 
     psFree(vector4);
     psFree(vector5);
+    psFree(image1);
+    psFree(image2);
+    psFree(image3);
+    psFree(image4);
+    psFree(image5);
+    psFree(vector1);
+    psFree(vector2);
+
+    psS32 nLeaks = psMemCheckLeaks(0,NULL,stdout,false);
+    if(nLeaks != 0) {
+        psError(PS_ERR_UNKNOWN,true,"Memory leaks detected");
+        return 50;
+    }
+    psS32 nBad = psMemCheckCorruption(0);
+    if(nBad) {
+        psError(PS_ERR_UNKNOWN,true,"Memory corruption detected");
+        return 51;
+    }
 
     return 0;
Index: /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stderr
===================================================================
--- /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stderr	(revision 2692)
+++ /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stderr	(revision 2693)
@@ -1,34 +1,66 @@
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Line <LINENO> - Null in1 argument
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Line <LINENO> - Null in2 argument
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Line <LINENO> - Null op argument
-<DATE><TIME>|<HOST>|E|psUnaryOp
-    : Line <LINENO> - Null in argument
-<DATE><TIME>|<HOST>|E|psUnaryOp
-    : Line <LINENO> - Null op argument
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Line <LINENO> - Element types for arguments inconsistent: (1028, 1032)
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Inconsistent element count: numRows: 2 vs 3 numCols: 2 vs 3
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Inconsistent element count: 2 vs 3
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Inconsistent element count: 2 vs 3
-<DATE><TIME>|<HOST>|E|psLib.collections.psVectorRecycle
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Unallowable operation: input1 is NULL.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Unallowable operation: input2 is NULL.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Unallowable operation: op is NULL.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psUnaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Unallowable operation: in is NULL.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psUnaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Unallowable operation: op is NULL.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    ptr input1 has type 1028, ptr input2 has type 1032.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Specified psImage dimensions differed, 2x2 vs 3x3.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Number of elements inconsistent, 2 vs 3.  Number of elements must match.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Number of elements inconsistent, 2 vs 3.  Number of elements must match.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an two error messages
+<DATE><TIME>|<HOST>|E|psVectorRecycle (psVector.c:<LINENO>)
     The input psVector must have a vector dimension type.
-<DATE><TIME>|<HOST>|E|psUnaryOp
+<DATE><TIME>|<HOST>|E|psUnaryOp (psMatrixVectorArithmetic.c:<LINENO>)
     Couldn't create a proper output psVector.
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Minimum operation not supported for complex numbers
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Maximum operation not supported for complex numbers
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Invalid operation: yarg
-<DATE><TIME>|<HOST>|E|psUnaryOp
-    : Invalid operation: yarg
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Line <LINENO> - Null in2 argument
-<DATE><TIME>|<HOST>|E|psBinaryOp
-    : Line <LINENO> - PS_DIMEN_OTHER not allowed for arguments: (4, 1)
+<DATE><TIME>|<HOST>|I|main
+    Following should generate error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    The minimum operation is not supported with complex data.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    The maximum operation is not supported with complex data.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error messgae
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Specified operation, yarg, is not supported.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psUnaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Specified operation, yarg, is not supported.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psBinaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Unallowable operation: input1 has incorrect dimensionality.
+<DATE><TIME>|<HOST>|I|main
+    Following should generate an error message
+<DATE><TIME>|<HOST>|E|psUnaryOp (psMatrixVectorArithmetic.c:<LINENO>)
+    Specified parameter, in, has invalid dimensionality, 4.
Index: /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stdout
===================================================================
--- /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stdout	(revision 2692)
+++ /trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic03.stdout	(revision 2693)
@@ -1,88 +1,180 @@
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Check for NULL arguments}         *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Null XXX argument                                          *
-*  ExpectedStatusValue: 0                                                          *
+*            TestPoint: psBinaryOp{Check for output generated}                     *
+*             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMatrixVectorArithmetic{Check for NULL arguments} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psBinaryOp{Check for output generated} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Inconsistent element types}       *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Element types for arguments inconsistent                   *
-*  ExpectedStatusValue: 0                                                          *
+*            TestPoint: psBinaryOp{Check for null input arg 1}                     *
+*             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMatrixVectorArithmetic{Inconsistent element types} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psBinaryOp{Check for null input arg 1} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Inconsistent element count}       *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Inconsistent element count                                 *
-*  ExpectedStatusValue: 0                                                          *
+*            TestPoint: psBinaryOp{Check for null input arg 2}                     *
+*             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMatrixVectorArithmetic{Inconsistent element count} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psBinaryOp{Check for null input arg 2} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Inconsistent dimensionality}      *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Dimensionality for arguments inconsistent                  *
-*  ExpectedStatusValue: 0                                                          *
+*            TestPoint: psBinaryOp{Check for null operand}                         *
+*             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMatrixVectorArithmetic{Inconsistent dimensionality} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psBinaryOp{Check for null operand} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Use min with complex numbers}     *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Minimum operation not supported for complex numbers        *
-*  ExpectedStatusValue: 0                                                          *
+*            TestPoint: psUnaryOp{Check for null output}                           *
+*             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMatrixVectorArithmetic{Use min with complex numbers} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psUnaryOp{Check for null output} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Use max with complex numbers}     *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Maximum operation not supported for complex numbers        *
-*  ExpectedStatusValue: 0                                                          *
+*            TestPoint: psUnaryOp{Check for null input}                            *
+*             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMatrixVectorArithmetic{Use max with complex numbers} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psUnaryOp{Check for null input} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Invalid operation}                *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Invalid operation                                          *
-*  ExpectedStatusValue: 0                                                          *
+*            TestPoint: psUnaryOp{Check for null operator}                         *
+*             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMatrixVectorArithmetic{Invalid operation} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psUnaryOp{Check for null operator} | tst_psMatrixVectorArithmetic03.c)
 
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMatrixVectorArithmetic03.c                           *
-*            TestPoint: psMatrixVectorArithmetic{Invalid input}                    *
-*             TestType: Negative                                                   *
-*    ExpectedErrorText: Invalid operation                                          *
-*  ExpectedStatusValue: 0                                                          *
+*            TestPoint: psBinaryOp{Inconsistent element types}                     *
+*             TestType: Positive                                                   *
 \**********************************************************************************/
 
 
----> TESTPOINT PASSED (psMatrixVectorArithmetic{Invalid input} | tst_psMatrixVectorArithmetic03.c)
+---> TESTPOINT PASSED (psBinaryOp{Inconsistent element types} | tst_psMatrixVectorArithmetic03.c)
 
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psUnaryOp{Check output type conversion}                    *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psUnaryOp{Check output type conversion} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psBinaryOp{Check for inconsistent elements}                *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psBinaryOp{Check for inconsistent elements} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psUnaryOp{Check inconsistent elements in input and output} *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psUnaryOp{Check inconsistent elements in input and output} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psBinaryOp{Check inconsistent size}                        *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psBinaryOp{Check inconsistent size} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psBinaryOp{Check inconsistent size}                        *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psBinaryOp{Check inconsistent size} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psUnaryOp{Check inconsistent dimensionality}               *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psUnaryOp{Check inconsistent dimensionality} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psBinaryOp{Attempt to use min with complex numbers}        *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psBinaryOp{Attempt to use  min with complex numbers} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psBinaryOp{Attempt to use max with complex numbers}        *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psBinaryOp{Attempt to use max with complex numbers} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psBinary{Attempt to use invalid operator}                  *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psBinaryOp{Attempt to use invalid operator} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psUnaryOp{Attempt to use invalid operator}                 *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psUnaryOp{Attempt to use invalid operator} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psBinaryOp{Attempt to use input with PS_DIMEN_OTHER}       *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psBinaryOp{Attempt to use input with PS_DIMEN_OTHER} | tst_psMatrixVectorArithmetic03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMatrixVectorArithmetic03.c                           *
+*            TestPoint: psUnaryOp{Attempt to use input with PS_DIMEN_OTHER}        *
+*             TestType: Positive                                                   *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psUnaryOp{Attempt to use input with PS_DIMEN_OTHER} | tst_psMatrixVectorArithmetic03.c)
+
