IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 6184


Ignore:
Timestamp:
Jan 23, 2006, 10:04:31 AM (20 years ago)
Author:
drobbin
Message:

updated PrecessMethod. Fixed MetadataAddStr to error on NULL input. Time_TideUT1Corr?

Location:
trunk/psLib
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/astro/psEarthOrientation.c

    r6039 r6184  
    88 *  @author Robert Daniel DeSonia, MHPCC
    99 *
    10  *  @version $Revision: 1.29 $ $Name: not supported by cvs2svn $
    11  *  @date $Date: 2006-01-18 23:49:06 $
     10 *  @version $Revision: 1.30 $ $Name: not supported by cvs2svn $
     11 *  @date $Date: 2006-01-23 20:04:31 $
    1212 *
    1313 *  Copyright 2005 Maui High Performance Computing Center, University of Hawaii
     
    14621462}
    14631463
    1464 /******************************************************************************
    1465 psSpherePrecess(coords, fromTime, toTime):
    1466  
    1467 XXX: Use static memory for tmpST.
    1468  *****************************************************************************/
    1469 psSphere *psSpherePrecess(psSphere *coords,
    1470                           const psTime *fromTime,
    1471                           const psTime *toTime)
     1464psSphereRot *psSpherePrecess(const psTime *fromTime,
     1465                             const psTime *toTime,
     1466                             psPrecessMethod mode)
    14721467{
    14731468    // Check input for NULL pointers
    1474     PS_ASSERT_PTR_NON_NULL(coords, NULL);
    1475     PS_ASSERT_PTR_NON_NULL(fromTime, NULL);
    1476     PS_ASSERT_PTR_NON_NULL(toTime, NULL);
    1477 
     1469    if (fromTime == NULL && toTime == NULL) {
     1470        psError(PS_ERR_BAD_PARAMETER_NULL, true,
     1471                "Invalid time inputs.  fromTime & toTime cannot both be NULL.\n");
     1472        return NULL;
     1473    }
     1474    PS_ASSERT_INT_WITHIN_RANGE(mode, PS_PRECESS_ROUGH, PS_PRECESS_IAU2000A, NULL);
     1475    psF64 fromMJD, toMJD;
    14781476    // Calculate Julian centuries
    1479     psF64 fromMJD = psTimeToMJD(fromTime);
    1480     psF64 toMJD = psTimeToMJD(toTime);
    1481     psF64 T = (toMJD - fromMJD) / JULIAN_CENTURY;
    1482 
    1483     // Calculate conversion constants
    1484     //    psF64 alphaP = DEG_TO_RAD(90.0) - ((DEG_TO_RAD(0.6406161) * T) +
    1485     psF64 alphaP = DEG_TO_RAD(180.0) + ((DEG_TO_RAD(0.6406161) * T) +
    1486                                         (DEG_TO_RAD(0.0000839) * T * T) +
    1487                                         (DEG_TO_RAD(0.000005) * T * T * T));
    1488 
    1489     psF64 deltaP = (DEG_TO_RAD(0.5567530) * T) -
    1490                    (DEG_TO_RAD(0.0001185) * T * T) -
    1491                    (DEG_TO_RAD(0.0000116) * T * T * T);
    1492 
    1493     //    psF64 phiP = DEG_TO_RAD(90.0) + ((DEG_TO_RAD(0.6406161) * T) +
    1494     psF64 phiP = DEG_TO_RAD(180.0) + ((DEG_TO_RAD(0.6406161) * T) +
    1495                                       (DEG_TO_RAD(0.0003041) * T * T) +
    1496                                       (DEG_TO_RAD(0.0000051) * T * T * T));
    1497 
    1498     // Create transform with proper constants
    1499     psSphereRot* tmpST = psSphereRotAlloc(alphaP, deltaP, phiP);
    1500 
     1477    //If either input time is NULL, assume it to be J2000 -> from SDRS as of rev 18
     1478    if (fromTime == NULL) {
     1479        fromMJD = MJD_2000;
     1480    } else {
     1481        fromMJD = psTimeToMJD(fromTime);
     1482    }
     1483    if (toTime == NULL) {
     1484        toMJD = MJD_2000;
     1485    } else {
     1486        toMJD = psTimeToMJD(toTime);
     1487    }
     1488    psTime *from = NULL;
     1489    psTime *to = NULL;
     1490
     1491    if (mode == PS_PRECESS_ROUGH) {
     1492        //For PS_PRECESS_ROUGH, no time/earthpole corrections are used.  This is the
     1493        //lowest level of detail mode.
     1494        psF64 T = (toMJD - fromMJD) / JULIAN_CENTURY;
     1495
     1496        // Calculate conversion constants
     1497        //    psF64 alphaP = DEG_TO_RAD(90.0) - ((DEG_TO_RAD(0.6406161) * T) +
     1498        psF64 alphaP = DEG_TO_RAD(180.0) + ((DEG_TO_RAD(0.6406161) * T) +
     1499                                            (DEG_TO_RAD(0.0000839) * T * T) +
     1500                                            (DEG_TO_RAD(0.000005) * T * T * T));
     1501
     1502        psF64 deltaP = (DEG_TO_RAD(0.5567530) * T) -
     1503                       (DEG_TO_RAD(0.0001185) * T * T) -
     1504                       (DEG_TO_RAD(0.0000116) * T * T * T);
     1505
     1506        //    psF64 phiP = DEG_TO_RAD(90.0) + ((DEG_TO_RAD(0.6406161) * T) +
     1507        psF64 phiP = DEG_TO_RAD(180.0) + ((DEG_TO_RAD(0.6406161) * T) +
     1508                                          (DEG_TO_RAD(0.0003041) * T * T) +
     1509                                          (DEG_TO_RAD(0.0000051) * T * T * T));
     1510
     1511        // Create transform with proper constants
     1512        psSphereRot* tmpST = psSphereRotAlloc(alphaP, deltaP, phiP);
     1513        return tmpST;
     1514    } else if (mode == PS_PRECESS_IAU2000A) {
     1515        //For IAU2000A mode, run psEOC_PrecessionModel and then psSphereRot_CEOtoGCRS for
     1516        //each time.  Then difference the resulting rotations by adding the inverse
     1517        //rotation corresponding to fromTime to the toTime rotation.
     1518
     1519        //Since the time inputs are allowed to be NULL, either convert the MJD time
     1520        //or copy to non-NULL time
     1521        if (fromTime == NULL) {
     1522            from = psTimeFromMJD(fromMJD);
     1523        } else {
     1524            from = p_psTimeCopy(fromTime);
     1525        }
     1526        if (toTime == NULL) {
     1527            to = psTimeFromMJD(toMJD);
     1528        } else {
     1529            to = p_psTimeCopy(toTime);
     1530        }
     1531
     1532        psEarthPole *fromEP = psEOC_PrecessionModel(from);
     1533        psSphereRot *fromRot = psSphereRot_CEOtoGCRS(fromEP);
     1534        psEarthPole *toEP = psEOC_PrecessionModel(to);
     1535        psSphereRot *toRot = psSphereRot_CEOtoGCRS(toEP);
     1536        psSphereRot *fromConj = psSphereRotConjugate(NULL, fromRot);
     1537        psSphereRot *out = psSphereRotCombine(NULL, toRot, fromConj);
     1538        psFree(from);
     1539        psFree(to);
     1540        psFree(fromEP);
     1541        psFree(fromRot);
     1542        psFree(toEP);
     1543        psFree(toRot);
     1544        psFree(fromConj);
     1545        return out;
     1546    } else if (mode == PS_PRECESS_COMPLETE_A) {
     1547        //For PS_PRECESS_COMPLETE_A the same procedure as IAU2000A is used but with
     1548        //additional earthpole corrections from psEOC_PrecessionCorr.  The corrections
     1549        //for COMPLETE_A come from the IERS Bulletin A.
     1550
     1551        //Since the time inputs are allowed to be NULL, either convert the MJD time
     1552        //or copy to non-NULL time
     1553        if (fromTime == NULL) {
     1554            from = psTimeFromMJD(fromMJD);
     1555        } else {
     1556            from = p_psTimeCopy(fromTime);
     1557        }
     1558        if (toTime == NULL) {
     1559            to = psTimeFromMJD(toMJD);
     1560        } else {
     1561            to = p_psTimeCopy(toTime);
     1562        }
     1563
     1564        psEarthPole *fromEP = psEOC_PrecessionModel(from);
     1565        psEarthPole *fromCorr = psEOC_PrecessionCorr(from, PS_IERS_A);
     1566        fromEP->x += fromCorr->x;
     1567        fromEP->y += fromCorr->y;
     1568        fromEP->s += fromCorr->s;
     1569        psSphereRot *fromRot = psSphereRot_CEOtoGCRS(fromEP);
     1570        psEarthPole *toEP = psEOC_PrecessionModel(to);
     1571        psEarthPole *toCorr = psEOC_PrecessionCorr(to, PS_IERS_A);
     1572        toEP->x += toCorr->x;
     1573        toEP->y += toCorr->y;
     1574        toEP->s += toCorr->s;
     1575        psSphereRot *toRot = psSphereRot_CEOtoGCRS(toEP);
     1576        psSphereRot *fromConj = psSphereRotConjugate(NULL, fromRot);
     1577        psSphereRot *out = psSphereRotCombine(NULL, toRot, fromConj);
     1578        psFree(from);
     1579        psFree(to);
     1580        psFree(fromEP);
     1581        psFree(fromCorr);
     1582        psFree(fromRot);
     1583        psFree(toEP);
     1584        psFree(toCorr);
     1585        psFree(toRot);
     1586        psFree(fromConj);
     1587        return out;
     1588    } else {  //mode == PS_PRECESS_COMPLETE_B
     1589        //For PS_PRECESS_COMPLETE_B the same procedure as IAU2000A is used but with
     1590        //additional earthpole corrections from psEOC_PrecessionCorr.  The corrections
     1591        //for COMPLETE_B come from the IERS Bulletin B.
     1592
     1593        //Since the time inputs are allowed to be NULL, either convert the MJD time
     1594        //or copy to non-NULL time
     1595        if (fromTime == NULL) {
     1596            from = psTimeFromMJD(fromMJD);
     1597        } else {
     1598            from = p_psTimeCopy(fromTime);
     1599        }
     1600        if (toTime == NULL) {
     1601            to = psTimeFromMJD(toMJD);
     1602        } else {
     1603            to = p_psTimeCopy(toTime);
     1604        }
     1605
     1606        psEarthPole *fromEP = psEOC_PrecessionModel(from);
     1607        psEarthPole *fromCorr = psEOC_PrecessionCorr(from, PS_IERS_B);
     1608        fromEP->x += fromCorr->x;
     1609        fromEP->y += fromCorr->y;
     1610        fromEP->s += fromCorr->s;
     1611        psSphereRot *fromRot = psSphereRot_CEOtoGCRS(fromEP);
     1612        psEarthPole *toEP = psEOC_PrecessionModel(to);
     1613        psEarthPole *toCorr = psEOC_PrecessionCorr(to, PS_IERS_B);
     1614        toEP->x += toCorr->x;
     1615        toEP->y += toCorr->y;
     1616        toEP->s += toCorr->s;
     1617        psSphereRot *toRot = psSphereRot_CEOtoGCRS(toEP);
     1618        psSphereRot *fromConj = psSphereRotConjugate(NULL, fromRot);
     1619        psSphereRot *out = psSphereRotCombine(NULL, toRot, fromConj);
     1620        psFree(from);
     1621        psFree(to);
     1622        psFree(fromEP);
     1623        psFree(fromCorr);
     1624        psFree(fromRot);
     1625        psFree(toEP);
     1626        psFree(toCorr);
     1627        psFree(toRot);
     1628        psFree(fromConj);
     1629        return out;
     1630    }
    15011631    // Apply transform to coordinates
    1502     psSphere *out = psSphereRotApply(NULL, tmpST, coords);
    1503     if (out->r < -0.0001) {
    1504         out->r += 2.0 * M_PI;
    1505     }
    1506 
    1507     psFree(tmpST);
    1508 
    1509     return(out);
     1632    //    psSphere *out = psSphereRotApply(NULL, tmpST, coords);
     1633    //    if (out->r < -0.0001) {
     1634    //        out->r += 2.0 * M_PI;
     1635    //    }
    15101636}
  • trunk/psLib/src/astro/psEarthOrientation.h

    r6039 r6184  
    99*  @author Robert Daniel DeSonia, MHPCC
    1010*
    11 *  @version $Revision: 1.13 $ $Name: not supported by cvs2svn $
    12 *  @date $Date: 2006-01-18 23:49:06 $
     11*  @version $Revision: 1.14 $ $Name: not supported by cvs2svn $
     12*  @date $Date: 2006-01-23 20:04:31 $
    1313*
    1414*  Copyright 2005 Maui High Performance Computing Center, University of Hawaii
     
    4040typedef enum {
    4141    PS_PRECESS_ROUGH,                  ///< roughest, lowest level of detail
    42     PS_PRECESS_COMPLETE,               ///< complete level of detail
     42    PS_PRECESS_COMPLETE_A,             ///< complete level of detail using IERS A
     43    PS_PRECESS_COMPLETE_B,             ///< complete level of detail using IERS B
    4344    PS_PRECESS_IAU2000A,               ///< highest level of detail
    4445}
     
    179180 *  between two times.  The equinoxes shall be Julian equinoxes.
    180181 *
    181  *  @return psSphere* the resulting spherical rotation
     182 *  If NULL is provided for either time, it is assumed to have the reference
     183 *  equinox value of J2000.  The mode argument is used to specify the level of
     184 *  detail used in the calculation.
     185 *
     186 *  @return psSphere*:       the resulting spherical rotation
    182187 */
    183 psSphere* psSpherePrecess(
    184     psSphere *coords,                  ///< coordinates (modified in-place)
     188psSphereRot* psSpherePrecess(
     189    //    psSphere *coords,                  ///< coordinates (modified in-place)
    185190    const psTime *fromTime,            ///< equinox of coords input
    186     const psTime *toTime               ///< equinox of coords output
     191    const psTime *toTime,              ///< equinox of coords output
     192    psPrecessMethod mode               ///< level of detail to use
    187193);
    188194
  • trunk/psLib/src/astro/psTime.c

    r6036 r6184  
    1010 *  @author Ross Harman, MHPCC
    1111 *
    12  *  @version $Revision: 1.77 $ $Name: not supported by cvs2svn $
    13  *  @date $Date: 2006-01-18 20:59:31 $
     12 *  @version $Revision: 1.78 $ $Name: not supported by cvs2svn $
     13 *  @date $Date: 2006-01-23 20:04:31 $
    1414 *
    1515 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    920920    PS_ASSERT_PTR_NON_NULL(time, NULL);
    921921    psTime *out = NULL;
     922    //Also see psEOC_PolarTideCorr for more info.
    922923
    923924    // Convert psTime to MJD
     
    982983    out = psTimeAlloc(time->type);
    983984    *out = *time;
    984     //    out->sec = time->sec;
    985     //    out->nsec = time->nsec;
    986     //    out->leapsecond = time->leapsecond;
    987985    if (out->type != PS_TIME_UT1) {
    988986        out = psTimeConvert(out, PS_TIME_UT1);
    989987    }
     988    //see if corrections include seconds or just nano-seconds
     989    //nano-seconds must be converted (scaled) to integer values & total cannot be negative
    990990    if (fabs(CORZ) > 1.0) {
    991991        int sec = (int)CORZ;
     
    18061806}
    18071807
     1808psTime *p_psTimeCopy(const psTime *inTime)
     1809{
     1810    PS_ASSERT_PTR_NON_NULL(inTime, NULL);
     1811    psTime *outTime = psTimeAlloc(inTime->type);
     1812    *outTime = *inTime;
     1813    return outTime;
     1814}
     1815
  • trunk/psLib/src/astro/psTime.h

    r6036 r6184  
    1111 *  @author Ross Harman, MHPCC
    1212 *
    13  *  @version $Revision: 1.44 $ $Name: not supported by cvs2svn $
    14  *  @date $Date: 2006-01-18 20:59:31 $
     13 *  @version $Revision: 1.45 $ $Name: not supported by cvs2svn $
     14 *  @date $Date: 2006-01-23 20:04:31 $
    1515 *
    1616 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    432432psF64 psTimerStop(void);
    433433
     434/** Private function for copying a psTime.
     435 *
     436 *  @return psTime*:        New copy of existing psTime.
     437 */
     438psTime *p_psTimeCopy(
     439    const psTime *inTime               ///< input time to copy.
     440);
     441
    434442/// @}
    435443
  • trunk/psLib/src/types/psMetadata.c

    r5539 r6184  
    1212 *  @author Ross Harman, MHPCC
    1313 *
    14  *  @version $Revision: 1.92 $ $Name: not supported by cvs2svn $
    15  *  @date $Date: 2005-11-18 01:51:03 $
     14 *  @version $Revision: 1.93 $ $Name: not supported by cvs2svn $
     15 *  @date $Date: 2006-01-23 20:04:31 $
    1616 *
    1717 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    320320{
    321321    PS_ASSERT_PTR_NON_NULL(in,NULL);
     322    PS_ASSERT_PTR_NON_NULL(in->list,NULL);
    322323    if (out ==  NULL) {
    323324        out = psMetadataAlloc();
     
    438439                   ...)
    439440{
     441    PS_ASSERT_PTR_NON_NULL(md,false);
     442    PS_ASSERT_PTR_NON_NULL(md->list,false);
    440443    va_list argPtr;
    441444
     
    454457                    va_list list)
    455458{
     459    PS_ASSERT_PTR_NON_NULL(md,false);
     460    PS_ASSERT_PTR_NON_NULL(md->list,false);
    456461    psMetadataItem* metadataItem = NULL;
    457462
     
    480485METADATA_ADD_TYPE(F64,psF64,PS_DATA_F64)
    481486METADATA_ADD_TYPE(List,psList*,PS_DATA_LIST)
    482 METADATA_ADD_TYPE(Str,const char*,PS_DATA_STRING)
     487//METADATA_ADD_TYPE(Str,const char*,PS_DATA_STRING)
    483488METADATA_ADD_TYPE(Vector,psVector*,PS_DATA_VECTOR)
    484489METADATA_ADD_TYPE(Image,psImage*,PS_DATA_IMAGE)
     
    497502                      psPtr value)
    498503{
     504    PS_ASSERT_PTR_NON_NULL(md,false);
     505    PS_ASSERT_PTR_NON_NULL(md->list,false);
     506    PS_ASSERT_PTR_NON_NULL(value,false);
    499507    return (psMetadataAdd(md, location, name, type, comment, value) );
     508
     509}
     510
     511bool psMetadataAddStr(psMetadata *md,
     512                      long location,
     513                      const char *name,
     514                      int format,
     515                      const char *comment,
     516                      const char* value)
     517{
     518    PS_ASSERT_PTR_NON_NULL(md,false);
     519    PS_ASSERT_PTR_NON_NULL(md->list,false);
     520    PS_ASSERT_PTR_NON_NULL(value,false);
     521    return (psMetadataAdd(md, location, name, format | PS_DATA_STRING, comment, value) );
    500522
    501523}
     
    604626                          const char *key)
    605627{
     628    PS_ASSERT_PTR_NON_NULL(md,NULL);
     629    PS_ASSERT_PTR_NON_NULL(md->list,NULL);
    606630    psMetadataItem *metadataItem = NULL;
    607631
     
    853877                               const char *key)
    854878{
     879    PS_ASSERT_PTR_NON_NULL(md,NULL);
     880    PS_ASSERT_PTR_NON_NULL(md->list,NULL);
    855881    psMetadataItem *item = psMetadataLookup((psMetadata*)md, key); // The metadata with instruments
    856882    psMetadata *value = NULL;  // The value to return
     
    885911                             const char *key)
    886912{
     913    PS_ASSERT_PTR_NON_NULL(md,NULL);
     914    PS_ASSERT_PTR_NON_NULL(md->list,NULL);
    887915    psMetadataItem *item = psMetadataLookup((psMetadata*)md, key); // The metadata with instruments
    888916    //    char *value = NULL;   // The value to return
     
    917945                     int level)
    918946{
     947    PS_ASSERT_PTR_NON_NULL(md,);
    919948    psMetadataIterator *iter = psMetadataIteratorAlloc(md, PS_LIST_HEAD, NULL); // Iterator
    920949    psMetadataItem *item = NULL; // Item from metadata
  • trunk/psLib/test/astro/tst_psEarthOrientation.c

    r6039 r6184  
    55*  @author d-Rob, MHPCC
    66*
    7 *  @version $Revision: 1.27 $ $Name: not supported by cvs2svn $
    8 *  @date $Date: 2006-01-18 23:49:06 $
     7*  @version $Revision: 1.28 $ $Name: not supported by cvs2svn $
     8*  @date $Date: 2006-01-23 20:04:31 $
    99*
    1010*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    132132    speed /= c;
    133133
     134    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
    134135    empty = psAberration(empty, apparent, direction, speed);
    135136    if (empty != NULL) {
     
    138139        return 1;
    139140    }
     141    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
    140142    empty = psAberration(empty, actual, apparent, speed);
    141143    if (empty != NULL) {
     
    951953    psTime*       fromTime    = psTimeFromMJD(MJD_2100);
    952954    psTime*       toTime      = psTimeFromMJD(MJD_1900);
    953 
     955    psSphereRot *rot = NULL;
    954956    // Set input coordinate
    955957    inputCoord->r = SPHERE_PRECESS_TP1_R;
     
    959961
    960962    // Calculate precess
    961     outputCoord = psSpherePrecess(inputCoord, fromTime, toTime);
     963    rot = psSpherePrecess(fromTime, toTime, PS_PRECESS_ROUGH);
     964    outputCoord = psSphereRotApply(NULL, rot, inputCoord);
     965    if (outputCoord->r < -0.0001) {
     966        outputCoord->r += 2.0 * M_PI;
     967    }
     968    //    outputCoord = psSpherePrecess(inputCoord, fromTime, toTime, PS_PRECESS_ROUGH);
    962969    // Verify return is not NULL
    963970    if(outputCoord == NULL) {
     
    977984    }
    978985    psFree(outputCoord);
     986    psFree(rot);
    979987
    980988    // Set input coordinate
     
    985993
    986994    // Calculate precess
    987     outputCoord = psSpherePrecess(inputCoord, fromTime, toTime);
     995    rot = psSpherePrecess(fromTime, toTime, PS_PRECESS_ROUGH);
     996    outputCoord = psSphereRotApply(NULL, rot, inputCoord);
     997    if (outputCoord->r < -0.0001) {
     998        outputCoord->r += 2.0 * M_PI;
     999    }
     1000    //    outputCoord = psSpherePrecess(inputCoord, fromTime, toTime, PS_PRECESS_ROUGH);
    9881001    // Verify return is not NULL
    9891002    if(outputCoord == NULL) {
     
    10031016    }
    10041017    psFree(outputCoord);
     1018    psFree(rot);
    10051019
    10061020    // Set input coordinate
     
    10111025
    10121026    // Calculate precess
    1013     outputCoord = psSpherePrecess(inputCoord, fromTime, toTime);
     1027    rot = psSpherePrecess(fromTime, toTime, PS_PRECESS_ROUGH);
     1028    outputCoord = psSphereRotApply(NULL, rot, inputCoord);
     1029    if (outputCoord->r < -0.0001) {
     1030        outputCoord->r += 2.0 * M_PI;
     1031    }
     1032    //    outputCoord = psSpherePrecess(inputCoord, fromTime, toTime, PS_PRECESS_ROUGH);
    10141033    // Verify return is not NULL
    10151034    if(outputCoord == NULL) {
     
    10291048    }
    10301049    psFree(outputCoord);
    1031 
     1050    psFree(rot);
     1051
     1052    // Invoke precess with invalid parameter
     1053    /*
     1054        psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     1055        outputCoord = psSpherePrecess(inputCoord, fromTime, NULL);
     1056        if(outputCoord != NULL) {
     1057            psError(PS_ERR_UNKNOWN,true,"Did not return NULL with invalid input");
     1058            return 10;
     1059        }
     1060     
     1061        // Invoke precess with invalid parameter
     1062        psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     1063        outputCoord = psSpherePrecess(inputCoord, NULL, toTime);
     1064        if(outputCoord != NULL) {
     1065            psError(PS_ERR_UNKNOWN,true,"Did not return NULL with invalid input");
     1066            return 11;
     1067        }
     1068    */
    10321069    // Invoke precess with invalid parameter
    10331070    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
    1034     outputCoord = psSpherePrecess(inputCoord, fromTime, NULL);
    1035     if(outputCoord != NULL) {
    1036         psError(PS_ERR_UNKNOWN,true,"Did not return NULL with invalid input");
    1037         return 10;
    1038     }
    1039 
    1040     // Invoke precess with invalid parameter
    1041     psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
    1042     outputCoord = psSpherePrecess(inputCoord, NULL, toTime);
    1043     if(outputCoord != NULL) {
    1044         psError(PS_ERR_UNKNOWN,true,"Did not return NULL with invalid input");
    1045         return 11;
    1046     }
    1047 
    1048     // Invoke precess with invalid parameter
    1049     psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
    1050     outputCoord = psSpherePrecess(NULL, fromTime, toTime);
    1051     if(outputCoord != NULL) {
     1071    rot = psSpherePrecess(fromTime, toTime, 10);
     1072    //    outputCoord = psSpherePrecess(NULL, fromTime, toTime, PS_PRECESS_ROUGH);
     1073    if(rot != NULL) {
     1074        //    if(outputCoord != NULL) {
    10521075        psError(PS_ERR_UNKNOWN,true,"Did not return NULL with invalid input");
    10531076        return 12;
    10541077    }
     1078    psFree(rot);
    10551079
    10561080    // Free objects
  • trunk/psLib/test/astro/tst_psTime_04.c

    r6036 r6184  
    1818 *  @author  David Robbins, MHPCC
    1919 *
    20  *  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
    21  *  @date  $Date: 2006-01-18 20:59:32 $
     20 *  @version $Revision: 1.6 $  $Name: not supported by cvs2svn $
     21 *  @date  $Date: 2006-01-23 20:04:31 $
    2222 *
    2323 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3939
    4040testDescription tests[] = {
    41                               {testTimeInit1,-1,"p_psTimeInit",0,false},
    42                               {testTimeInit2,-2,"p_psTimeInit",0,false},
    43                               {testTimeInit3,-3,"p_psTimeInit",0,false},
    44                               {testTimeInit4,-4,"p_psTimeInit",0,false},
    45                               {testTimeInit5,-5,"p_psTimeInit",0,false},
    46                               {testTimeInit6,-6,"p_psTimeInit",0,false},
    47                               {testTimer1,-7,"psTimer",0,false},
    48                               {testTideUT1Corr,-8,"psTime_TideUT1Corr",0,false},
     41                              {testTimeInit1,1,"p_psTimeInit",0,false},
     42                              {testTimeInit2,2,"p_psTimeInit",0,false},
     43                              {testTimeInit3,3,"p_psTimeInit",0,false},
     44                              {testTimeInit4,4,"p_psTimeInit",0,false},
     45                              {testTimeInit5,5,"p_psTimeInit",0,false},
     46                              {testTimeInit6,6,"p_psTimeInit",0,false},
     47                              {testTimer1,8,"psTimer",0,false},
     48                              {testTideUT1Corr,9,"psTime_TideUT1Corr",0,false},
    4949                              {NULL}
    5050                          };
  • trunk/psLib/test/types/tst_psMetadata_07.c

    r5539 r6184  
    1616*  @author  David Robbins, MHPCC
    1717*
    18 *  @version $Revision: 1.15 $  $Name: not supported by cvs2svn $
    19 *  @date  $Date: 2005-11-18 01:51:03 $
     18*  @version $Revision: 1.16 $  $Name: not supported by cvs2svn $
     19*  @date  $Date: 2006-01-23 20:04:31 $
    2020*
    2121*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3535
    3636testDescription tests[] = {
    37                               {testMetaIter, 0, "Test psMetadataIterator fxns", 0, false},
    38                               {testMetaWrite, 0, "Test psMetadataConfigWrite", 0, false},
    39                               {testMetaRemove, 0, "Test psMetadataRemoveKey/Index", 0, false},
    40                               {testMetaAddPtr, 0, "Test psMetadataAddPtr", 0, false},
    41                               {testMetaCopy, 0, "Test psMetadataCopy", 0, false},
    42                               {testArgument, 0, "Test psArgument fxns", 0, false},
     37                              {testMetaIter, 1, "Test psMetadataIterator fxns", 0, false},
     38                              {testMetaWrite, 2, "Test psMetadataConfigWrite", 0, false},
     39                              {testMetaRemove, 3, "Test psMetadataRemoveKey/Index", 0, false},
     40                              {testMetaAddPtr, 4, "Test psMetadataAddPtr", 0, false},
     41                              {testMetaCopy, 5, "Test psMetadataCopy", 0, false},
     42                              {testArgument, 6, "Test psArgument fxns", 0, false},
    4343                              {NULL}
    4444                          };
     
    220220        return 8;
    221221    }
     222
     223    psMetadata *strtest = psMetadataAlloc();
     224    //should return false for NULL input string
     225    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
     226    if (psMetadataAddStr(strtest, PS_LIST_TAIL, "bar", 0, "baz", NULL) ) {
     227        psError(PS_ERR_BAD_PARAMETER_NULL, true, "strtest failed for NULL.\n");
     228        return 9;
     229    }
     230    psFree(strtest);
    222231
    223232    psFree(item);
  • trunk/psLib/test/types/verified/tst_psMetadata_07.stderr

    r5539 r6184  
    3232\**********************************************************************************/
    3333
     34<DATE><TIME>|<HOST>|I|testMetaAddPtr
     35    Following should generate error message
     36<DATE><TIME>|<HOST>|E|psMetadataAddStr (FILE:LINENO)
     37    Unallowable operation: value is NULL.
    3438
    3539---> TESTPOINT PASSED (psMetadata_07{Test psMetadataAddPtr} | tst_psMetadata_07.c)
Note: See TracChangeset for help on using the changeset viewer.