Index: trunk/psModules/src/imcombine/pmStack.c
===================================================================
--- trunk/psModules/src/imcombine/pmStack.c	(revision 26076)
+++ trunk/psModules/src/imcombine/pmStack.c	(revision 26118)
@@ -35,6 +35,7 @@
 
 //#define TESTING                         // Enable test output
-//#define TEST_X 3122-1                     // x coordinate to examine
-//#define TEST_Y 1028-1                     // y coordinate to examine
+//#define TEST_X 2148-1                     // x coordinate to examine
+//#define TEST_Y 248-1                     // y coordinate to examine
+//#define TEST_RADIUS 0                    // Radius to examine
 
 
@@ -230,6 +231,6 @@
 {
 #ifdef TESTING
-    if (x == TEST_X && y == TEST_Y) {
-        fprintf(stderr, "Marking image %d for inspection\n", source);
+    if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+        fprintf(stderr, "Marking image %d, pixel %d,%d for inspection\n", source, x, y);
     }
 #endif
@@ -252,6 +253,6 @@
 {
 #ifdef TESTING
-    if (x == TEST_X && y == TEST_Y) {
-        fprintf(stderr, "Marking pixel image %d for rejection\n", source);
+    if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+        fprintf(stderr, "Marking pixel image %d, pixel %d,%d for rejection\n", source, x, y);
     }
 #endif
@@ -344,8 +345,8 @@
 
 #ifdef TESTING
-    if (x == TEST_X && y == TEST_Y) {
+    if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
         for (int i = 0; i < numGood; i++) {
-            fprintf(stderr, "Input %d (%" PRIu16 "): %f %f (%f) %f %d\n",
-                    i, pixelSources->data.U16[i], pixelData->data.F32[i], pixelVariances->data.F32[i],
+            fprintf(stderr, "Input %d, pixel %d,%d (%" PRIu16 "): %f %f (%f) %f %d\n",
+                    i, x, y, pixelSources->data.U16[i], pixelData->data.F32[i], pixelVariances->data.F32[i],
                     addVariance->data.F32[i], pixelWeights->data.F32[i], pixelSuspects->data.U8[i]);
         }
@@ -379,6 +380,6 @@
           // Nothing to combine: it's bad
 #ifdef TESTING
-          if (x == TEST_X && y == TEST_Y) {
-              fprintf(stderr, "No inputs to combine, pixel is bad.\n");
+          if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+              fprintf(stderr, "No inputs to combine, pixel %d,%d is bad.\n", x, y);
           }
 #endif
@@ -388,9 +389,4 @@
           // Accept the single pixel unless we have to be safe
           if (!safe) {
-#ifdef TESTING
-              if (x == TEST_X && y == TEST_Y) {
-                  fprintf(stderr, "Single input to combine, safety off.\n");
-              }
-#endif
               imageValue = pixelData->data.F32[0];
               if (variance) {
@@ -398,8 +394,14 @@
               }
               maskValue = 0;
+#ifdef TESTING
+              if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                  fprintf(stderr, "Single input to combine, safety off, pixel %d,%d --> %f\n",
+                          x, y, imageValue);
+              }
+#endif
           }
 #ifdef TESTING
-          else if (x == TEST_X && y == TEST_Y) {
-              fprintf(stderr, "Single input to combine, safety on, pixel is bad.\n");
+          else if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+              fprintf(stderr, "Single input to combine, safety on, pixel %d,%d is bad.\n", x, y);
           }
 #endif
@@ -415,6 +417,7 @@
                   maskValue = 0;
 #ifdef TESTING
-                  if (x == TEST_X && y == TEST_Y) {
-                      fprintf(stderr, "Two inputs to combine using unsafe --> %f %f\n", mean, var);
+                  if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                      fprintf(stderr, "Two inputs to combine using unsafe, pixel %d,%d --> %f %f\n",
+                              x, y, mean, var);
                   }
 #endif
@@ -423,6 +426,6 @@
 #ifdef TESTING
           else {
-              if (x == TEST_X && y == TEST_Y) {
-                  fprintf(stderr, "Two inputs to combine, safety on, pixel is bad\n");
+              if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                  fprintf(stderr, "Two inputs to combine, safety on, pixel %d,%d is bad\n", x, y);
               }
           }
@@ -440,6 +443,6 @@
           maskValue = 0;
 #ifdef TESTING
-          if (x == TEST_X && y == TEST_Y) {
-              fprintf(stderr, "Combined inputs: %f %f\n", mean, var);
+          if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+              fprintf(stderr, "Combined inputs, pixel %d,%d --> %f %f\n", x, y, mean, var);
           }
 #endif
@@ -485,5 +488,5 @@
 
 #ifdef TESTING
-    if (x == TEST_X && y == TEST_Y) {
+    if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
         fprintf(stderr, "Testing pixel %d,%d: %d %f %f %f %d %d\n",
                 x, y, numIter, rej, sys, olympic, useVariance, safe);
@@ -513,7 +516,7 @@
             // Correct variance for comparison against weighted mean including itself
             float compare = 1.0 - pixelWeights->data.F32[i] / sumWeights;
-            if (x == TEST_X && y == TEST_Y) {
-                fprintf(stderr, "Variance %d (%d): %f %f %f\n", i, pixelSources->data.U16[i],
-                        pixelVariances->data.F32[i], sysVar, compare);
+            if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                fprintf(stderr, "Variance %d (%d), pixel %d,%d: %f %f %f\n", i, pixelSources->data.U16[i],
+                        x, y, pixelVariances->data.F32[i], sysVar, compare);
             }
 #endif
@@ -556,7 +559,7 @@
                       }
 #ifdef TESTING
-                      if (x == TEST_X && y == TEST_Y) {
-                          fprintf(stderr, "Flagged both pixels (%f > %f x %f\n)",
-                                  diff, rej, sqrtf(sigma2));
+                      if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                          fprintf(stderr, "Flagged both inputs for pixel %d,%d (%f > %f x %f\n)",
+                                  x, y, diff, rej, sqrtf(sigma2));
                       }
 #endif
@@ -591,5 +594,5 @@
 
 #ifdef TESTING
-              if (x == TEST_X && y == TEST_Y) {
+              if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
                   fprintf(stderr, "Diff 0-1: %f %f\n", diff01, err01);
                   fprintf(stderr, "Diff 1-2: %f %f\n", diff12, err12);
@@ -671,6 +674,6 @@
                                                             olympic, buffer->sort); // Median for stack
 #ifdef TESTING
-                  if (x == TEST_X && y == TEST_Y) {
-                      fprintf(stderr, "Flag with variance, median = %f\n", median);
+                  if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                      fprintf(stderr, "Flag with variance pixel %d,%d: median = %f\n", x, y, median);
                   }
 #endif
@@ -679,6 +682,6 @@
                       float diff = pixelData->data.F32[j] - median; // Difference from expected
 #ifdef TESTING
-                      if (x == TEST_X && y == TEST_Y) {
-                          fprintf(stderr, "Testing input %d: %f\n", j, diff);
+                      if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                          fprintf(stderr, "Testing input %d for pixel %d,%d: %f\n", j, x, y, diff);
                       }
 #endif
@@ -700,7 +703,8 @@
                   float limit = rej * stdev; // Rejection limit
 #ifdef TESTING
-                  if (x == TEST_X && y == TEST_Y) {
-                      fprintf(stderr, "Flag without variance; median = %f, stdev = %f, limit = %f\n",
-                              median, stdev, limit);
+                  if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                      fprintf(stderr,
+                              "Flag without variance pixel %d,%d; median = %f, stdev = %f, limit = %f\n",
+                              x, y, median, stdev, limit);
                   }
 #endif
@@ -725,6 +729,6 @@
             if (suspect) {
 #ifdef TESTING
-                if (x == TEST_X && y == TEST_Y) {
-                    fprintf(stderr, "Throwing out all suspect pixels\n");
+                if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                    fprintf(stderr, "Throwing out all suspect pixels for %d,%d\n", x, y);
                 }
 #endif
@@ -758,6 +762,6 @@
                 // Throw out masked pixel
 #ifdef TESTING
-                if (x == TEST_X && y == TEST_Y) {
-                    fprintf(stderr, "Throwing out input %d\n", maskIndex);
+                if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                    fprintf(stderr, "Throwing out input %d for pixel %d,%d\n", maskIndex, x, y);
                 }
 #endif
@@ -1053,5 +1057,5 @@
         for (int x = minInputCols; x < maxInputCols; x++) {
 #ifdef TESTING
-            if (x == TEST_X && y == TEST_Y) {
+            if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
                 fprintf(stderr, "Combining pixel %d,%d: %x %x %f %f %f %f %d %d %d\n",
                         x, y, maskVal, bad, iter, rej, sys, olympic, useVariance, safe, rejection);
@@ -1062,6 +1066,6 @@
                 reject = pixelMapQuery(pixelMap, minInputCols, minInputRows, x, y);
 #ifdef TESTING
-                if (x == TEST_X && y == TEST_Y) {
-                    fprintf(stderr, "Rejected inputs: ");
+                if (PS_SQR(x - TEST_X) + PS_SQR(y - TEST_Y) <= PS_SQR(TEST_RADIUS)) {
+                    fprintf(stderr, "Rejected inputs for pixel %d,%d: ", x, y);
                     if (!reject) {
                         fprintf(stderr, "<none>\n");
