Index: trunk/psLib/test/image/tst_psImageConvolve.c
===================================================================
--- trunk/psLib/test/image/tst_psImageConvolve.c	(revision 2273)
+++ trunk/psLib/test/image/tst_psImageConvolve.c	(revision 2911)
@@ -5,8 +5,8 @@
  *  @author Robert DeSonia, 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: 2005-01-05 21:16:15 $
  *
- *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
+ *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
  */
 
@@ -117,8 +117,8 @@
 static psS32 testKernelGenerate(void)
 {
-    psS32 size = 4;
-    psS32 t[] = { 1, 2, 8, 10 };
-    psS32 x[] = { 0, 1, 0, -1 };
-    psS32 y[] = { 2, 1, -1, -2 };
+    psS32 size = 5;
+    psS32 t[] = { 1, 2, 8, 9, 10 };
+    psS32 x[] = { 0, 1, 0, -1, 0 };
+    psS32 y[] = { 2, 1, -1, -2, 0 };
     psKernelType sum;
 
@@ -142,5 +142,5 @@
     if (result->xMin != -1 || result->xMax != 1 ||
             result->yMin != -2 || result->yMax != 2) {
-        psError(PS_ERR_UNKNOWN, true,"psKernelGenerate result had a range of [%d:%d,%d:%d].  Suppose to be [0:1,1:2].",
+        psError(PS_ERR_UNKNOWN, true,"psKernelGenerate result had a range of [%d:%d,%d:%d].  Suppose to be [-2:2,-1:1].",
                 result->xMin, result->xMax, result->yMin, result->yMax);
         return 2;
@@ -148,8 +148,11 @@
 
     sum = 0.0;
+    printf("Resulting kernel:\n");
     for (psS32 y = result->yMin; y <= result->yMax; y++) {
         for (psS32 x = result->xMin; x <= result->xMax; x++) {
+            printf(" %6.2f ", result->kernel[y][x]);
             sum += result->kernel[y][x];
         }
+        printf("\n");
     }
     if (fabsf(1.0 - sum) > FLT_EPSILON) {
@@ -161,12 +164,11 @@
     }
 
-    if (fabsf(result->kernel[2][0] - 1.0/10.0) > FLT_EPSILON ||
-            fabsf(result->kernel[ 1][ 1] - 6.0/10.0) > FLT_EPSILON ||
-            fabsf(result->kernel[ 0][ 0] - 1.0/10.0) > FLT_EPSILON ||
-            fabsf(result->kernel[-1][ 0] - 2.0/10.0) > FLT_EPSILON ||
-            fabsf(result->kernel[-2][-1] - 0.0/10.0) > FLT_EPSILON) {
-        psError(PS_ERR_UNKNOWN, true,"psKernelGenerate result values, %g,%g;%g,%g, are wrong. Suppose to be 2,6;1,0.",
-                result->kernel[-1][0], result->kernel[1][1],
-                result->kernel[2][0], result->kernel[-2][-1]);
+    if (fabsf(result->kernel[-2][0] - 0.1) > FLT_EPSILON ||
+            fabsf(result->kernel[ -1][ -1] - 0.1) > FLT_EPSILON ||
+            fabsf(result->kernel[ 1][ 0] - 0.6) > FLT_EPSILON ||
+            fabsf(result->kernel[2][1] - 0.1) > FLT_EPSILON) {
+        psError(PS_ERR_UNKNOWN, true,"psKernelGenerate result values, %g,%g,%g,%g, are wrong. Suppose to be 0.1,0.1,0.6,0.1",
+                result->kernel[-2][0], result->kernel[-1][-1],
+                result->kernel[1][0], result->kernel[2][1]);
 
         return 4;
@@ -203,8 +205,11 @@
 
     sum = 0.0;
+    printf("Resulting kernel (relative=true):\n");
     for (psS32 y = result->yMin; y <= result->yMax; y++) {
         for (psS32 x = result->xMin; x <= result->xMax; x++) {
+            printf(" %6.2f ", result->kernel[y][x]);
             sum += result->kernel[y][x];
         }
+        printf("\n");
     }
     if (fabsf(1.0 - sum) > FLT_EPSILON) {
@@ -216,11 +221,11 @@
     }
 
-    if (fabsf(result->kernel[0][0] - 1.0/21.0) > FLT_EPSILON ||
-            fabsf(result->kernel[2][0] - 2.0/21.0) > FLT_EPSILON ||
-            fabsf(result->kernel[3][1] - 8.0/21.0) > FLT_EPSILON ||
-            fabsf(result->kernel[2][1] - 10.0/21.0) > FLT_EPSILON) {
+    if (fabsf(result->kernel[0][0] - 19.0/30.0) > FLT_EPSILON ||
+            fabsf(result->kernel[2][0] - 1.0/30.0) > FLT_EPSILON ||
+            fabsf(result->kernel[2][1] - 8.0/30.0) > FLT_EPSILON ||
+            fabsf(result->kernel[3][1] - 2.0/30.0) > FLT_EPSILON) {
         psError(PS_ERR_UNKNOWN, true,"psKernelGenerate result values, %g,%g;%g,%g, are wrong. Suppose to be 2,6;1,0.",
-                result->kernel[1][0], result->kernel[1][1],
-                result->kernel[2][0], result->kernel[2][1]);
+                result->kernel[0][0], result->kernel[2][0],
+                result->kernel[2][1], result->kernel[3][1]);
 
         return 8;
@@ -243,18 +248,9 @@
 
     tVec->n--; // decrease size by one to make vectors unequal in length.
-    psLogMsg(__func__,PS_LOG_INFO, "Following should be a warning - not automatically tested.");
+    psLogMsg(__func__,PS_LOG_INFO, "Following should be an error.");
     result = psKernelGenerate(tVec, xVec, yVec, false);
-    if (result == NULL) {
-        psError(PS_ERR_UNKNOWN, true,"psKernelGenerate returned NULL.");
+    if (result != NULL) {
+        psError(PS_ERR_UNKNOWN, true,"psKernelGenerate returned non-NULL given differing sized vectors.");
         return 9;
-    }
-
-    // make sure last sample is not used
-    if (fabsf(result->kernel[2][0] - 1.0/8.0) > FLT_EPSILON ||
-            fabsf(result->kernel[ 1][ 1] - 6.0/8.0) > FLT_EPSILON ||
-            fabsf(result->kernel[ 0][ 0] - 1.0/8.0) > FLT_EPSILON) {
-        psError(PS_ERR_UNKNOWN, true,"psKernelGenerate result values wrong for truncated time vector.");
-
-        return 10;
     }
 
