IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Aug 4, 2004, 4:27:06 PM (22 years ago)
Author:
harman
Message:

Added more tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/collections/tst_psMetadata_01.c

    r1353 r1389  
    44*
    55*  This test driver contains the following tests for psMetadata:
    6 *     A)
    7 *     B)
    8 *     C)
    9 *     D)
    10 *     E)
    11 *     F)
    12 *     G)
    13 *     H)
    14 *     I)
    15 *     J)
    16 *     K)
    17 *     L)
    18 *     M)
    19 *     N)
     6*     Test A - Read 1st hdr from simple FITS file
     7*     Test B - Read 2nd hdr from complex FITS file
     8*     Test C - Read named hdr from complex FITS file
     9*     D
     10*     E
     11*     F
     12*     G
     13*     H
     14*     I
     15*     J
     16*     K
     17*     L
     18*     M
     19*     N
    2020*
    2121*  @author  Ross Harman, MHPCC
    2222*
    23 *  @version $Revision: 1.1 $  $Name: not supported by cvs2svn $
    24 *  @date  $Date: 2004-07-31 00:41:59 $
     23*  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
     24*  @date  $Date: 2004-08-05 02:25:23 $
    2525*
    2626*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    3232#include <string.h>
    3333
     34void printListInt(psList* list)
     35{
     36    int* data = NULL;
     37    bool first = true;
     38
     39    psListSetIterator(list,PS_LIST_HEAD);
     40    data = psListGetCurrent(list);
     41
     42    while ( data != NULL ) {
     43        if (!first) {
     44            printf(", %d",*(int*)data);
     45        } else {
     46            printf("%d",*(int*)data);
     47            first = false;
     48        }
     49        data = psListGetNext(list);
     50    }
     51
     52    printf(".\n");
     53}
     54
     55static void printMetadata(psMetadata *metadata)
     56{
     57    psList *mdList = NULL;
     58    psHash *mdTable = NULL;
     59    psMetadataItem *entryChild = NULL;
     60
     61    mdList = metadata->list;
     62    mdTable = metadata->table;
     63    if(mdList==NULL || mdTable==NULL) {
     64        printf("ERROR: Null collection metadata found\n");
     65    }
     66
     67    psListSetIterator( mdList, PS_LIST_HEAD );
     68    entryChild = psListGetCurrent( mdList );
     69    while ( entryChild != NULL ) {
     70        printf("Key Name: %8s  ", entryChild->name);
     71        printf("Key Type: %2d  ", entryChild->type);
     72
     73        switch (entryChild->type ) {
     74        case PS_META_BOOL:
     75            printf("Key Value: %15d  ", entryChild->data.B);
     76            break;
     77        case PS_META_S32:
     78            printf("Key Value: %15d  ", entryChild->data.S32);
     79            break;
     80        case PS_META_F32:
     81            printf("Key Value: %15.3f  ", entryChild->data.F32);
     82            break;
     83        case PS_META_F64:
     84            printf("Key Value: %15.3f  ", entryChild->data.F64);
     85            break;
     86        case PS_META_STR:
     87            printf("Key Value: %15s  ", (char*)entryChild->data.V);
     88            break;
     89        case PS_META_IMG:
     90        case PS_META_JPEG:
     91        case PS_META_PNG:
     92        case PS_META_ASTROM:
     93        case PS_META_UNKNOWN:
     94            printf("Value: unknown ");
     95            break;
     96        default:
     97            printf("Bad type: %d ", entryChild->type);
     98        }
     99        printf("Key Comment: %s\n", entryChild->comment);
     100
     101        entryChild = psListGetNext( mdList);
     102    }
     103}
     104
     105
    34106int main( int argc, char* argv[] )
    35107{
    36 
    37 
    38     // Test A -
    39     printPositiveTestHeader( stdout, "psMetadata", "" );
    40     printFooter( stdout, "psMetadata", "", true );
    41    
     108    int status = 0;
     109    char fitsErr[ 256 ];
     110    psMetadata *metadata1 = NULL;
     111    psMetadata *metadata2 = NULL;
     112    psMetadata *metadata3 = NULL;
     113    fitsfile *fptr;
     114
     115
     116    // Test A - Read 1st hdr from simple FITS file
     117
     118    /* Header contents for header_1.fits:
     119
     120        SIMPLE  =                    T / file does conform to FITS standard
     121        BITPIX  =                    8 / number of bits per data pixel
     122        NAXIS   =                    0 / number of data axes
     123        HISTORY File modified by user 'harman' with fv  on 2004-08-04T11:11:18
     124        END
     125    */
     126    printPositiveTestHeader(stdout, "psMetadata", "Test A - Read 1st hdr from simple FITS file");
     127    fits_open_file(&fptr, "header_1.fits", READONLY, &status);
     128    fits_get_errstatus( status, fitsErr );
     129    status = 0;
     130    printf("FITS file open status: %s\n\n",fitsErr);
     131    metadata1 = psMetadataFReadHeader(metadata1, NULL, 1, fptr);
     132    printMetadata(metadata1);
     133    printFooter(stdout, "psMetadata", "Test A - Read 1st hdr from simple FITS file", true);
     134    printf("\n\n");
     135
     136
     137    // Test B - Test B - Read 2nd hdr from complex FITS file
     138
     139    /* Header contents for header_2.fits:
     140
     141        SIMPLE  =                    T / file does conform to FITS standard
     142        BITPIX  =                  -64 / number of bits per data pixel
     143        NAXIS   =                    1 / number of data axes
     144        NAXIS1  =                   64 / length of data axis 1
     145        EXTEND  =                    T / FITS dataset may contain extensions
     146        COMMENT   FITS (Flexible Image Transport System) format is defined in 'Astronomy
     147        COMMENT   and Astrophysics', volume 376, page 359; bibcode: 2001A&A...376..359H
     148        END
     149        <DATA>
     150
     151        XTENSION= 'IMAGE   '           / IMAGE extension
     152        BITPIX  =                  -64 / number of bits per data pixel
     153        NAXIS   =                    1 / number of data axes
     154        NAXIS1  =                   64 / length of data axis 1
     155        PCOUNT  =                    0 / required keyword; must = 0
     156        GCOUNT  =                    1 / required keyword; must = 1
     157        BITPIX  =                  -64 / number of bits per data pixel
     158        EXTNAME = 'MY_DATA_1'
     159        HISTORY File modified by user 'harman' with fv  on 2004-08-04T13:14:45
     160        HISTORY File modified by user 'harman' with fv  on 2004-08-04T13:15:29
     161        HISTORY File modified by user 'harman' with fv  on 2004-08-04T13:21:18
     162        HISTORY File modified by user 'harman' with fv  on 2004-08-04T13:21:46
     163        END
     164        <DATA>
     165
     166        XTENSION= 'IMAGE   '           / IMAGE extension
     167        BITPIX  =                  -64 / number of bits per data pixel
     168        NAXIS   =                    1 / number of data axes
     169        NAXIS1  =                   64 / length of data axis 1
     170        PCOUNT  =                    0 / required keyword; must = 0
     171        GCOUNT  =                    1 / required keyword; must = 1
     172        EXTNAME = 'MY_DATA_2'
     173        HISTORY File modified by user 'harman' with fv  on 2004-08-04T13:22:12
     174        HISTORY File modified by user 'harman' with fv  on 2004-08-04T13:22:52
     175        END
     176        <DATA>
     177    */
     178    printPositiveTestHeader(stdout, "psMetadata", "Test B - Read 2nd hdr from complex FITS file");
     179    fits_open_file(&fptr, "header_2.fits", READONLY, &status);
     180    fits_get_errstatus( status, fitsErr );
     181    status = 0;
     182    printf("FITS file open status: %s\n\n",fitsErr);
     183    metadata2 = psMetadataFReadHeader(metadata2, NULL, 2, fptr);
     184    printMetadata(metadata2);
     185    printFooter(stdout, "psMetadata", "Test B - Read 2nd hdr from complex FITS file", true);
     186    printf("\n\n");
     187
     188
     189    //Test C - Read named hdr from complex FITS file
     190    printPositiveTestHeader(stdout, "psMetadata", "Test C - Read named hdr from complex FITS file");
     191    fits_open_file(&fptr, "header_2.fits", READONLY, &status);
     192    fits_get_errstatus( status, fitsErr );
     193    status = 0;
     194    printf("FITS file open status: %s\n\n",fitsErr);
     195    metadata3 = psMetadataFReadHeader(metadata3, "MY_DATA_2", 0, fptr);
     196    printMetadata(metadata3);
     197    printFooter(stdout, "psMetadata", "Test C - Read named hdr from complex FITS file", true);
     198    printf("\n\n");
     199
     200
     201    // Test - Free psMetadata
     202    printPositiveTestHeader(stdout, "psMetadata", "Test - Free psMetadata");
     203    psFree(metadata1);
     204    psFree(metadata2);
     205    psFree(metadata3);
     206    psMemCheckLeaks(0, NULL, stdout);
     207    psMemCheckCorruption(0);
     208    int nBad = psMemCheckCorruption(0);
     209    if(nBad) {
     210        printf("ERROR: Found %d bad memory blocks\n", nBad);
     211    }
     212    printFooter(stdout, "psMetadata", "Test - Free psMetadata", true);
     213
    42214    return 0;
    43215}
Note: See TracChangeset for help on using the changeset viewer.