Index: trunk/psphot/src/psphotTest.c
===================================================================
--- trunk/psphot/src/psphotTest.c	(revision 5980)
+++ trunk/psphot/src/psphotTest.c	(revision 5993)
@@ -1,4 +1,3 @@
 # include "psphot.h"
-bool apResidSetPower (float value);
 
 void psExit (int status, char *process, char *format, ...) {
@@ -16,51 +15,52 @@
 int main (int argc, char **argv) {
 
-    // read in a file consisting of:
-    // x y radius fitmag apmag dmag
+    psMetadata *row;
+    psArray *table;
 
-    double fit;
-    double ap;
+    psMetadataItem *mdi;
+    psRegion region = {0,0,0,0};	// a region representing the entire array
 
     psphotTestArguments (&argc, argv);
 
-    FILE *f = fopen (argv[1], "r");
-    if (f == NULL) psExit (2, "test", "no file\n");
+    psFits *file = psFitsOpen (argv[1], "r");
+    psMetadata *header = psFitsReadHeader (NULL, file);
+    psImage *image = psFitsReadImage (NULL, file, region, 0);
+    psFitsClose (file);
 
-    float power = atof (argv[2]);
-    apResidSetPower (power);
+    psMetadataConfigWrite (header, argv[2]);
 
-    psVector *x     = psVectorAlloc (100, PS_TYPE_F64);
-    psVector *y     = psVectorAlloc (100, PS_TYPE_F64);
-    psVector *rad   = psVectorAlloc (100, PS_TYPE_F64);
-    psVector *rflux = psVectorAlloc (100, PS_TYPE_F64);
-    psVector *apres = psVectorAlloc (100, PS_TYPE_F64);
-    psVector *dmag  = psVectorAlloc (100, PS_TYPE_F64);
+    // attempt to write image with NAXIS = 0
+    mdi = psMetadataLookup (header, "NAXIS");
+    mdi->data.S32 = 0;
+    mdi->type = PS_DATA_S32;
+    
+    // create a test image
+    // psImage *tmpimage = psImageAlloc (10, 10, PS_DATA_F32);
 
-    int Npt = 0;
-    while (fscanf (f, "%lf %lf %lf %lf %lf %lf", 
-		   &x->data.F64[Npt], 
-		   &y->data.F64[Npt], 
-		   &rad->data.F64[Npt], 
-		   &fit, &ap, 
-		   &dmag->data.F64[Npt]) != EOF) {
+    // create a test table
+    table = psArrayAlloc (10);
+    table->n = 0;
 
-	if (fabs(ap-fit) > 0.1) continue;
-	if (fit > -10) continue;
+    for (int i = 0; i < 10; i++) {
+	row = psMetadataAlloc ();
+	psMetadataAdd (row, PS_LIST_TAIL, "ROW",   PS_DATA_S32,    "", i);
+	psMetadataAdd (row, PS_LIST_TAIL, "FROW",  PS_TYPE_F32,    "", 0.1*i);
+	psMetadataAdd (row, PS_LIST_TAIL, "DUMMY", PS_DATA_STRING, "", "test line");
+    
+	table->data[i] = row;
+    }
+    table->n = 10;
+    
+    psMetadata *theader = psMetadataAlloc ();
+    psMetadataAdd (theader, PS_LIST_HEAD, "EXTNAME", PS_DATA_STRING, "extension name", "SMPFILE");
 
-	apres->data.F64[Npt] = ap-fit;
-	rflux->data.F64[Npt] = pow(10.0, 0.4*fit);
+    psFits *fits = psFitsOpen (argv[3], "w");
+    // psFitsWriteImage (fits, header, tmpimage, 0);
+    psFitsWriteHeader (header, fits);
+    psFitsWriteTable (fits, theader, table);
+    psFitsClose (fits);
 
-	psVectorExtend (x,     100, 1);
-	psVectorExtend (y,     100, 1);
-	psVectorExtend (rad,   100, 1);
-	psVectorExtend (rflux, 100, 1);
-	psVectorExtend (apres, 100, 1);
-	psVectorExtend (dmag,  100, 1);
-	Npt ++;
-    }
-    x->n = y->n = rad->n = rflux->n = apres->n = dmag->n = Npt;
-
-    psphotApResidPolyFit (x, y, rad, rflux, apres, dmag);
-
+    psFree (header);
+    psFree (image);
     exit (0);
 }
