IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 3495


Ignore:
Timestamp:
Mar 24, 2005, 12:21:17 PM (21 years ago)
Author:
desonia
Message:

changes for test of psFitsUpdateTable.

Location:
trunk/psLib
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/pslib.kdevses

    r3476 r3495  
    44 <DocsAndViews NumberOfDocuments="5" >
    55  <Doc0 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/src/fileUtils/psFits.h" >
    6    <View0 line="219" Type="Source" />
     6   <View0 line="220" Type="Source" />
    77  </Doc0>
    88  <Doc1 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/src/fileUtils/psFits.c" >
    9    <View0 line="1379" Type="Source" />
     9   <View0 line="1654" Type="Source" />
    1010  </Doc1>
    1111  <Doc2 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/test/fileUtils/tst_psFits.c" >
    12    <View0 line="917" Type="Source" />
     12   <View0 line="1177" Type="Source" />
    1313  </Doc2>
    14   <Doc3 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/src/collections/psVector.h" >
    15    <View0 line="156" Type="Source" />
     14  <Doc3 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/include/psMetadata.h" >
     15   <View0 line="299" Type="Source" />
    1616  </Doc3>
    17   <Doc4 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/src/collections/psVector.c" >
    18    <View0 line="537" Type="Source" />
     17  <Doc4 NumberOfViews="1" URL="file:///home/desonia/panstarrs/psLib/configure.ac" >
     18   <View0 line="67" Type="Source" />
    1919  </Doc4>
    2020 </DocsAndViews>
  • trunk/psLib/src/astronomy/psMetadata.c

    r3407 r3495  
    1 
    21/** @file  psMetadata.c
    32*
     
    1211*  @author Ross Harman, MHPCC
    1312*
    14 *  @version $Revision: 1.55 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2005-03-11 20:38:56 $
     13*  @version $Revision: 1.56 $ $Name: not supported by cvs2svn $
     14*  @date $Date: 2005-03-24 22:21:17 $
    1615*
    1716*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    119118    }
    120119    psFree(iter->iter);
    121     regfree(iter->preg);
     120
     121    if (iter->preg != NULL) {
     122        regfree(iter->preg);
     123    }
    122124}
    123125
  • trunk/psLib/src/collections/psMetadata.c

    r3407 r3495  
    1 
    21/** @file  psMetadata.c
    32*
     
    1211*  @author Ross Harman, MHPCC
    1312*
    14 *  @version $Revision: 1.55 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2005-03-11 20:38:56 $
     13*  @version $Revision: 1.56 $ $Name: not supported by cvs2svn $
     14*  @date $Date: 2005-03-24 22:21:17 $
    1615*
    1716*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    119118    }
    120119    psFree(iter->iter);
    121     regfree(iter->preg);
     120
     121    if (iter->preg != NULL) {
     122        regfree(iter->preg);
     123    }
    122124}
    123125
  • trunk/psLib/src/dataIO/psFits.c

    r3476 r3495  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-03-22 21:52:49 $
     9 *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2005-03-24 22:21:17 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    16681668    }
    16691669
    1670 
    16711670    // check to see if we even are positioned on a table HDU
    16721671    int hdutype;
     
    16841683        return false;
    16851684    }
    1686 
    16871685
    16881686    psMetadataIterator* iter = psMetadataIteratorAlloc(data,PS_LIST_HEAD,NULL);
     
    17001698                convertPsTypeToFits(item->type, NULL, NULL, &dataType);
    17011699
    1702                 if (fits_write_col(fits->p_fd, dataType, colnum, row, 0,1,&item->data,&status) != 0) {
     1700                if (fits_write_col(fits->p_fd, dataType, colnum, row+1, 1, 1, &item->data,&status) != 0) {
    17031701                    char fitsErr[MAX_STRING_LENGTH];
    17041702                    (void)fits_get_errstatus(status, fitsErr);
     
    17061704                            PS_ERRORTEXT_psFits_WRITE_FAILED,
    17071705                            fits->filename, fitsErr);
     1706                    psFree(iter);
    17081707                    return false;
    17091708                }
     1709            } else {
     1710                // the column was not found.
     1711                psWarning("No column with the name '%s' exists in the table.",
     1712                          item->name);
    17101713            }
    17111714        }
  • trunk/psLib/src/fileUtils/psFits.c

    r3476 r3495  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-03-22 21:52:49 $
     9 *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2005-03-24 22:21:17 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    16681668    }
    16691669
    1670 
    16711670    // check to see if we even are positioned on a table HDU
    16721671    int hdutype;
     
    16841683        return false;
    16851684    }
    1686 
    16871685
    16881686    psMetadataIterator* iter = psMetadataIteratorAlloc(data,PS_LIST_HEAD,NULL);
     
    17001698                convertPsTypeToFits(item->type, NULL, NULL, &dataType);
    17011699
    1702                 if (fits_write_col(fits->p_fd, dataType, colnum, row, 0,1,&item->data,&status) != 0) {
     1700                if (fits_write_col(fits->p_fd, dataType, colnum, row+1, 1, 1, &item->data,&status) != 0) {
    17031701                    char fitsErr[MAX_STRING_LENGTH];
    17041702                    (void)fits_get_errstatus(status, fitsErr);
     
    17061704                            PS_ERRORTEXT_psFits_WRITE_FAILED,
    17071705                            fits->filename, fitsErr);
     1706                    psFree(iter);
    17081707                    return false;
    17091708                }
     1709            } else {
     1710                // the column was not found.
     1711                psWarning("No column with the name '%s' exists in the table.",
     1712                          item->name);
    17101713            }
    17111714        }
  • trunk/psLib/src/fits/psFits.c

    r3476 r3495  
    77 *  @author Robert DeSonia, MHPCC
    88 *
    9  *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
    10  *  @date $Date: 2005-03-22 21:52:49 $
     9 *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
     10 *  @date $Date: 2005-03-24 22:21:17 $
    1111 *
    1212 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    16681668    }
    16691669
    1670 
    16711670    // check to see if we even are positioned on a table HDU
    16721671    int hdutype;
     
    16841683        return false;
    16851684    }
    1686 
    16871685
    16881686    psMetadataIterator* iter = psMetadataIteratorAlloc(data,PS_LIST_HEAD,NULL);
     
    17001698                convertPsTypeToFits(item->type, NULL, NULL, &dataType);
    17011699
    1702                 if (fits_write_col(fits->p_fd, dataType, colnum, row, 0,1,&item->data,&status) != 0) {
     1700                if (fits_write_col(fits->p_fd, dataType, colnum, row+1, 1, 1, &item->data,&status) != 0) {
    17031701                    char fitsErr[MAX_STRING_LENGTH];
    17041702                    (void)fits_get_errstatus(status, fitsErr);
     
    17061704                            PS_ERRORTEXT_psFits_WRITE_FAILED,
    17071705                            fits->filename, fitsErr);
     1706                    psFree(iter);
    17081707                    return false;
    17091708                }
     1709            } else {
     1710                // the column was not found.
     1711                psWarning("No column with the name '%s' exists in the table.",
     1712                          item->name);
    17101713            }
    17111714        }
  • trunk/psLib/src/types/psMetadata.c

    r3407 r3495  
    1 
    21/** @file  psMetadata.c
    32*
     
    1211*  @author Ross Harman, MHPCC
    1312*
    14 *  @version $Revision: 1.55 $ $Name: not supported by cvs2svn $
    15 *  @date $Date: 2005-03-11 20:38:56 $
     13*  @version $Revision: 1.56 $ $Name: not supported by cvs2svn $
     14*  @date $Date: 2005-03-24 22:21:17 $
    1615*
    1716*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    119118    }
    120119    psFree(iter->iter);
    121     regfree(iter->preg);
     120
     121    if (iter->preg != NULL) {
     122        regfree(iter->preg);
     123    }
    122124}
    123125
  • trunk/psLib/test/dataIO/tst_psFits.c

    r3475 r3495  
    66*  @author Robert DeSonia, MHPCC
    77*
    8 *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
    9 *  @date $Date: 2005-03-22 21:52:40 $
     8*  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
     9*  @date $Date: 2005-03-24 22:21:17 $
    1010*
    1111*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    4949static psS32 tst_psFitsReadTableColumnNum(void);
    5050static psS32 tst_psFitsReadTableColumn(void);
     51static psS32 tst_psFitsUpdateTable(void);
    5152
    5253testDescription tests[] = {
     
    6263                              {tst_psFitsReadTableColumnNum,836, "psFitsReadTableColumnNum", 0, false},
    6364                              {tst_psFitsReadTableColumn,839, "psFitsReadTableColumn", 0, false},
     65                              {tst_psFitsUpdateTable,840, "psFitsUpdateTable", 0, false},
    6466                              {testImageRead,567, "psFitsReadImage", 0, false},
    6567                              {testImageWrite,569, "psFitsWriteImage", 0, false},
     
    10811083    psFree(err);
    10821084
     1085    psFree(fits);
     1086
     1087    return 0;
     1088}
     1089
     1090static psS32 tst_psFitsUpdateTable( void )
     1091{
     1092    psErr* err;
     1093
     1094    if (! makeTable()) {
     1095        return 1;
     1096    }
     1097
     1098    psFits* fits = psFitsAlloc(tableFilename);
     1099
     1100    if (fits == NULL) {
     1101        psError(PS_ERR_UNKNOWN, false,
     1102                "psFitsAlloc returned NULL on existing file.");
     1103        return 2;
     1104    }
     1105
     1106    psFitsMoveExtNum(fits,1,false);
     1107
     1108    // change the data in the file, going past by one (implicit new row of data)
     1109    for (int row = 0; row < tableNumRows+1; row++) {
     1110        psMetadata* md = psMetadataAlloc();
     1111        psMetadataAddF32(md,PS_LIST_TAIL,"MYFLT","",(float)row/-10.0);
     1112        psMetadataAddF64(md,PS_LIST_TAIL,"MYDBL","",(double)row/-100.0);
     1113        psMetadataAddS32(md,PS_LIST_TAIL,"MYINT","",-row);
     1114
     1115        if (! psFitsUpdateTable(fits,md,row)) {
     1116            psError(PS_ERR_UNKNOWN, false,
     1117                    "psFitsUpdateTable returned false, but expected true for row=%d.",
     1118                    row);
     1119            return 3;
     1120        }
     1121        psFree(md);
     1122    }
     1123
     1124    for (int row = 0; row < tableNumRows+1; row++) {
     1125        psMetadata* md = psFitsReadTableRow(fits, row);
     1126        if (abs(psMetadataLookupF32(NULL,md,"MYFLT") - (float)row/-10.0) > FLT_EPSILON) {
     1127            psError(PS_ERR_UNKNOWN, false,
     1128                    "psFitsUpdateTable did not change the float value for row=%d.",
     1129                    row);
     1130            return 4;
     1131        }
     1132        if (abs(psMetadataLookupF64(NULL,md,"MYDBL") - (float)row/-100.0) > FLT_EPSILON) {
     1133            psError(PS_ERR_UNKNOWN, false,
     1134                    "psFitsUpdateTable did not change the double value for row=%d.",
     1135                    row);
     1136            return 5;
     1137        }
     1138        if (psMetadataLookupS32(NULL,md,"MYINT") != -row) {
     1139            psError(PS_ERR_UNKNOWN, false,
     1140                    "psFitsUpdateTable did not change the integer value for row=%d.",
     1141                    row);
     1142            return 6;
     1143        }
     1144        psFree(md);
     1145    }
     1146
     1147    psMetadata* md = psMetadataAlloc();
     1148    psMetadataAddF32(md,PS_LIST_TAIL,"BOGUS","",-1.0f);
     1149    psWarning("Following should be a warning.");
     1150    psErrorClear();
     1151    if (! psFitsUpdateTable(fits,md,0)) {
     1152        psError(PS_ERR_UNKNOWN, false,
     1153                "psFitsUpdateTable did not return false with bogus column data");
     1154        return 10;
     1155    }
     1156    psFree(md);
     1157
     1158    md = psMetadataAlloc();
     1159    psMetadataAddF32(md,PS_LIST_TAIL,"MYFLT","",-1.0f);
     1160    psMetadataAddF64(md,PS_LIST_TAIL,"MYDBL","",-2.0);
     1161    psMetadataAddS32(md,PS_LIST_TAIL,"MYINT","",-3);
     1162
     1163    psWarning("Following should be an error.");
     1164    psErrorClear();
     1165    if (psFitsUpdateTable(NULL,md,0)) {
     1166        psError(PS_ERR_UNKNOWN, false,
     1167                "psFitsUpdateTable did not return false with NULL psFits");
     1168        return 20;
     1169    }
     1170    err = psErrorLast();
     1171    if (err->code != PS_ERR_BAD_PARAMETER_NULL) {
     1172        psError(PS_ERR_UNKNOWN, false,
     1173                "psFitsUpdateTable did not error with NULL psFits");
     1174        return 21;
     1175    }
     1176    psFree(err);
     1177
     1178    psWarning("Following should be an error.");
     1179    psErrorClear();
     1180    if (psFitsUpdateTable(fits,NULL,0)) {
     1181        psError(PS_ERR_UNKNOWN, false,
     1182                "psFitsUpdateTable did not return false with NULL psMetadata");
     1183        return 22;
     1184    }
     1185    err = psErrorLast();
     1186    if (err->code != PS_ERR_BAD_PARAMETER_NULL) {
     1187        psError(PS_ERR_UNKNOWN, false,
     1188                "psFitsUpdateTable did not error with NULL psMetadata");
     1189        return 23;
     1190    }
     1191    psFree(err);
     1192
     1193    psWarning("Following should be an error.");
     1194    psErrorClear();
     1195    if (psFitsUpdateTable(fits,md,-1)) {
     1196        psError(PS_ERR_UNKNOWN, false,
     1197                "psFitsUpdateTable did not return false with row=-1");
     1198        return 24;
     1199    }
     1200    err = psErrorLast();
     1201    if (err->code != PS_ERR_IO) {
     1202        psError(PS_ERR_UNKNOWN, false,
     1203                "psFitsUpdateTable did not error with row=-1");
     1204        return 25;
     1205    }
     1206
     1207    psFree(err);
     1208    psFree(md);
    10831209    psFree(fits);
    10841210
  • trunk/psLib/test/fileUtils/tst_psFits.c

    r3475 r3495  
    66*  @author Robert DeSonia, MHPCC
    77*
    8 *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
    9 *  @date $Date: 2005-03-22 21:52:40 $
     8*  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
     9*  @date $Date: 2005-03-24 22:21:17 $
    1010*
    1111*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    4949static psS32 tst_psFitsReadTableColumnNum(void);
    5050static psS32 tst_psFitsReadTableColumn(void);
     51static psS32 tst_psFitsUpdateTable(void);
    5152
    5253testDescription tests[] = {
     
    6263                              {tst_psFitsReadTableColumnNum,836, "psFitsReadTableColumnNum", 0, false},
    6364                              {tst_psFitsReadTableColumn,839, "psFitsReadTableColumn", 0, false},
     65                              {tst_psFitsUpdateTable,840, "psFitsUpdateTable", 0, false},
    6466                              {testImageRead,567, "psFitsReadImage", 0, false},
    6567                              {testImageWrite,569, "psFitsWriteImage", 0, false},
     
    10811083    psFree(err);
    10821084
     1085    psFree(fits);
     1086
     1087    return 0;
     1088}
     1089
     1090static psS32 tst_psFitsUpdateTable( void )
     1091{
     1092    psErr* err;
     1093
     1094    if (! makeTable()) {
     1095        return 1;
     1096    }
     1097
     1098    psFits* fits = psFitsAlloc(tableFilename);
     1099
     1100    if (fits == NULL) {
     1101        psError(PS_ERR_UNKNOWN, false,
     1102                "psFitsAlloc returned NULL on existing file.");
     1103        return 2;
     1104    }
     1105
     1106    psFitsMoveExtNum(fits,1,false);
     1107
     1108    // change the data in the file, going past by one (implicit new row of data)
     1109    for (int row = 0; row < tableNumRows+1; row++) {
     1110        psMetadata* md = psMetadataAlloc();
     1111        psMetadataAddF32(md,PS_LIST_TAIL,"MYFLT","",(float)row/-10.0);
     1112        psMetadataAddF64(md,PS_LIST_TAIL,"MYDBL","",(double)row/-100.0);
     1113        psMetadataAddS32(md,PS_LIST_TAIL,"MYINT","",-row);
     1114
     1115        if (! psFitsUpdateTable(fits,md,row)) {
     1116            psError(PS_ERR_UNKNOWN, false,
     1117                    "psFitsUpdateTable returned false, but expected true for row=%d.",
     1118                    row);
     1119            return 3;
     1120        }
     1121        psFree(md);
     1122    }
     1123
     1124    for (int row = 0; row < tableNumRows+1; row++) {
     1125        psMetadata* md = psFitsReadTableRow(fits, row);
     1126        if (abs(psMetadataLookupF32(NULL,md,"MYFLT") - (float)row/-10.0) > FLT_EPSILON) {
     1127            psError(PS_ERR_UNKNOWN, false,
     1128                    "psFitsUpdateTable did not change the float value for row=%d.",
     1129                    row);
     1130            return 4;
     1131        }
     1132        if (abs(psMetadataLookupF64(NULL,md,"MYDBL") - (float)row/-100.0) > FLT_EPSILON) {
     1133            psError(PS_ERR_UNKNOWN, false,
     1134                    "psFitsUpdateTable did not change the double value for row=%d.",
     1135                    row);
     1136            return 5;
     1137        }
     1138        if (psMetadataLookupS32(NULL,md,"MYINT") != -row) {
     1139            psError(PS_ERR_UNKNOWN, false,
     1140                    "psFitsUpdateTable did not change the integer value for row=%d.",
     1141                    row);
     1142            return 6;
     1143        }
     1144        psFree(md);
     1145    }
     1146
     1147    psMetadata* md = psMetadataAlloc();
     1148    psMetadataAddF32(md,PS_LIST_TAIL,"BOGUS","",-1.0f);
     1149    psWarning("Following should be a warning.");
     1150    psErrorClear();
     1151    if (! psFitsUpdateTable(fits,md,0)) {
     1152        psError(PS_ERR_UNKNOWN, false,
     1153                "psFitsUpdateTable did not return false with bogus column data");
     1154        return 10;
     1155    }
     1156    psFree(md);
     1157
     1158    md = psMetadataAlloc();
     1159    psMetadataAddF32(md,PS_LIST_TAIL,"MYFLT","",-1.0f);
     1160    psMetadataAddF64(md,PS_LIST_TAIL,"MYDBL","",-2.0);
     1161    psMetadataAddS32(md,PS_LIST_TAIL,"MYINT","",-3);
     1162
     1163    psWarning("Following should be an error.");
     1164    psErrorClear();
     1165    if (psFitsUpdateTable(NULL,md,0)) {
     1166        psError(PS_ERR_UNKNOWN, false,
     1167                "psFitsUpdateTable did not return false with NULL psFits");
     1168        return 20;
     1169    }
     1170    err = psErrorLast();
     1171    if (err->code != PS_ERR_BAD_PARAMETER_NULL) {
     1172        psError(PS_ERR_UNKNOWN, false,
     1173                "psFitsUpdateTable did not error with NULL psFits");
     1174        return 21;
     1175    }
     1176    psFree(err);
     1177
     1178    psWarning("Following should be an error.");
     1179    psErrorClear();
     1180    if (psFitsUpdateTable(fits,NULL,0)) {
     1181        psError(PS_ERR_UNKNOWN, false,
     1182                "psFitsUpdateTable did not return false with NULL psMetadata");
     1183        return 22;
     1184    }
     1185    err = psErrorLast();
     1186    if (err->code != PS_ERR_BAD_PARAMETER_NULL) {
     1187        psError(PS_ERR_UNKNOWN, false,
     1188                "psFitsUpdateTable did not error with NULL psMetadata");
     1189        return 23;
     1190    }
     1191    psFree(err);
     1192
     1193    psWarning("Following should be an error.");
     1194    psErrorClear();
     1195    if (psFitsUpdateTable(fits,md,-1)) {
     1196        psError(PS_ERR_UNKNOWN, false,
     1197                "psFitsUpdateTable did not return false with row=-1");
     1198        return 24;
     1199    }
     1200    err = psErrorLast();
     1201    if (err->code != PS_ERR_IO) {
     1202        psError(PS_ERR_UNKNOWN, false,
     1203                "psFitsUpdateTable did not error with row=-1");
     1204        return 25;
     1205    }
     1206
     1207    psFree(err);
     1208    psFree(md);
    10831209    psFree(fits);
    10841210
Note: See TracChangeset for help on using the changeset viewer.