IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 2753


Ignore:
Timestamp:
Dec 17, 2004, 12:33:21 PM (22 years ago)
Author:
evanalst
Message:

Add additional test cases.

Location:
trunk/psLib/test/image
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/image/tst_psImageInterpolate.c

    r2747 r2753  
    55 * @author Eric Van Alst, MHPCC
    66 *
    7  * @version $Revision: 1.1 $
     7 * @version $Revision: 1.2 $
    88 *          $Name: not supported by cvs2svn $
    9  * @date $Date: 2004-12-17 03:04:05 $
     9 * @date $Date: 2004-12-17 22:33:21 $
    1010 *
    1111 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    2525}
    2626
    27 #define CHECK_INTERP_VALUE(img,x,y,exposed,TYPE,expected) \
    28 val = (psF32)psImagePixelInterpolate(img,x,y,NULL,0,exposed,PS_INTERPOLATE_##TYPE); \
     27#define CHECK_INTERP_VALUE(img,x,y,mask,maskval,exposed,TYPE,expected) \
     28val = (psF32)psImagePixelInterpolate(img,x,y,mask,maskval,exposed,PS_INTERPOLATE_##TYPE); \
    2929if(val != expected) { \
    3030    psError(PS_ERR_UNKNOWN,true,"Return value is not as expected."); \
     
    3434#define CHECK_INTERP_BY_TYPE(TYPE) \
    3535GENIMAGE(img1,10,10,TYPE,row+col) \
    36 CHECK_INTERP_VALUE(img1,1.9,1.6,0,FLAT,2.0) \
    37 CHECK_INTERP_VALUE(img1,4.0,2.0,0,BILINEAR,5.0) \
     36CHECK_INTERP_VALUE(img1,1.9,1.6,NULL,0,0,FLAT,2.0) \
     37CHECK_INTERP_VALUE(img1,4.0,2.0,NULL,0,0,BILINEAR,5.0) \
    3838psFree(img1);
    3939
    4040static psS32 testInterpolateFlatBilinear(void);
    4141static psS32 testInterpolateError(void);
    42 
     42static psS32 testInterpolateMaskFlatBilinear(void);
    4343testDescription tests[] = {
    4444                              {testInterpolateFlatBilinear,999,"psImagePixelInterpolate",0,false},
    4545                              {testInterpolateError,999,"psImagePixelInterpolate",0,false},
     46                              {testInterpolateMaskFlatBilinear,999,"psImagePixelInterpolate",0,false},
    4647                              {NULL}
    4748                          };
     
    102103        return 11;
    103104    }
     105
     106    // Perform interpolation with invalid method
     107    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message");
     108    val = psImagePixelInterpolate(img1,1.2,1.2,NULL,0,10.0,PS_INTERPOLATE_BILINEAR+1);
     109    if(val != 10.0) {
     110        psError(PS_ERR_UNKNOWN,true,"Did not return the unexposed value");
     111        return 12;
     112    }
     113
    104114    psFree(img1);
    105115
     
    107117}
    108118
     119// The following assumptions about the test image are:
     120//
     121//                     col
     122//             0   1   2   3   4   5   6   7  ...
     123//
     124// row 0       0   1   2   3   4   5   6   7
     125// row 1       1   2   3   4   5   6   7   8
     126// row 2       2   3   4   5   6   7   8   9
     127// ...
     128
     129psS32 testInterpolateMaskFlatBilinear(void)
     130{
     131    psImage* img1 = NULL;
     132    psImage* msk1 = NULL;
     133    psF32 val = 0;
     134
     135    // Perform interpolate with mask and mask value set at nearest pixel to verify
     136    // the unexposed value is return
     137    GENIMAGE(img1,10,10,F32,row+col)
     138    GENIMAGE(msk1,10,10,U8,0)
     139    msk1->data.U8[1][1] = 1;
     140    CHECK_INTERP_VALUE(img1,1.9,1.6,msk1,1,10.0,FLAT,10.0)
     141    psFree(msk1);
     142    psFree(img1);
     143
     144    // Perform interpolate with mask and one mask value for bilinear (upper left pixel)
     145    GENIMAGE(img1,10,10,F32,row+col)
     146    GENIMAGE(msk1,10,10,U8,0)
     147    msk1->data.U8[1][3] = 1;
     148    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,5.25)
     149    psFree(msk1);
     150    psFree(img1);
     151
     152    // Perform interpolate with mask and one mask value for bilinear (upper right pixel)
     153    GENIMAGE(img1,10,10,F32,row+col)
     154    GENIMAGE(msk1,10,10,U8,0)
     155    msk1->data.U8[1][4] = 1;
     156    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,4.75)
     157    psFree(msk1);
     158    psFree(img1);
     159
     160    // Perform interpolate with mask and one mask value for bilinear (lower left pixel)
     161    GENIMAGE(img1,10,10,F32,row+col)
     162    GENIMAGE(msk1,10,10,U8,0)
     163    msk1->data.U8[2][3] = 1;
     164    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,5.25)
     165    psFree(msk1);
     166    psFree(img1);
     167
     168    // Perform interpolate with mask and one mask value for bilinear (lower right pixel)
     169    GENIMAGE(img1,10,10,F32,row+col)
     170    GENIMAGE(msk1,10,10,U8,0)
     171    msk1->data.U8[2][4] = 1;
     172    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,4.75)
     173    psFree(msk1);
     174    psFree(img1);
     175
     176    // Perform interpolate with mask and one mask value for bilinear (upper pixels)
     177    GENIMAGE(img1,10,10,F32,row+col)
     178    GENIMAGE(msk1,10,10,U8,0)
     179    msk1->data.U8[1][3] = 1;
     180    msk1->data.U8[1][4] = 1;
     181    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,5.5)
     182    psFree(msk1);
     183    psFree(img1);
     184
     185    // Perform interpolate with mask and one mask value for bilinear (lower pixels)
     186    GENIMAGE(img1,10,10,F32,row+col)
     187    GENIMAGE(msk1,10,10,U8,0)
     188    msk1->data.U8[2][3] = 1;
     189    msk1->data.U8[2][4] = 1;
     190    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,4.5)
     191    psFree(msk1);
     192    psFree(img1);
     193
     194    // Perform interpolate with mask and one mask value for bilinear (left pixels)
     195    GENIMAGE(img1,10,10,F32,row+col)
     196    GENIMAGE(msk1,10,10,U8,0)
     197    msk1->data.U8[1][3] = 1;
     198    msk1->data.U8[2][3] = 1;
     199    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,5.5)
     200    psFree(msk1);
     201    psFree(img1);
     202
     203    // Perform interpolate with mask and one mask value for bilinear (right pixels)
     204    GENIMAGE(img1,10,10,F32,row+col)
     205    GENIMAGE(msk1,10,10,U8,0)
     206    msk1->data.U8[1][4] = 1;
     207    msk1->data.U8[2][4] = 1;
     208    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,4.5)
     209    psFree(msk1);
     210    psFree(img1);
     211
     212    // Perform interpolate with mask only one valid pixel (upper left)
     213    GENIMAGE(img1,10,10,F32,row+col)
     214    GENIMAGE(msk1,10,10,U8,0)
     215    msk1->data.U8[1][4] = 1;
     216    msk1->data.U8[2][3] = 1;
     217    msk1->data.U8[2][4] = 1;
     218    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,4.0)
     219    psFree(msk1);
     220    psFree(img1);
     221
     222    // Perform interpolate with mask only one valid pixel (upper right)
     223    GENIMAGE(img1,10,10,F32,row+col)
     224    GENIMAGE(msk1,10,10,U8,0)
     225    msk1->data.U8[1][3] = 1;
     226    msk1->data.U8[2][3] = 1;
     227    msk1->data.U8[2][4] = 1;
     228    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,5.0)
     229    psFree(msk1);
     230    psFree(img1);
     231
     232    // Perform interpolate with mask only one valid pixel (lower left)
     233    GENIMAGE(img1,10,10,F32,row+col)
     234    GENIMAGE(msk1,10,10,U8,0)
     235    msk1->data.U8[1][3] = 1;
     236    msk1->data.U8[1][4] = 1;
     237    msk1->data.U8[2][4] = 1;
     238    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,5.0)
     239    psFree(msk1);
     240    psFree(img1);
     241
     242    // Perform interpolate with mask only one valid pixel (lower right)
     243    GENIMAGE(img1,10,10,F32,row+col)
     244    GENIMAGE(msk1,10,10,U8,0)
     245    msk1->data.U8[1][3] = 1;
     246    msk1->data.U8[1][4] = 1;
     247    msk1->data.U8[2][3] = 1;
     248    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,6.0)
     249    psFree(msk1);
     250    psFree(img1);
     251
     252    // Perform interpolate with mask no valid pixels
     253    GENIMAGE(img1,10,10,F32,row+col)
     254    GENIMAGE(msk1,10,10,U8,0)
     255    msk1->data.U8[1][3] = 1;
     256    msk1->data.U8[1][4] = 1;
     257    msk1->data.U8[2][3] = 1;
     258    msk1->data.U8[2][4] = 1;
     259    CHECK_INTERP_VALUE(img1,4.0,2.0,msk1,1,0,BILINEAR,0.0)
     260    psFree(msk1);
     261    psFree(img1);
     262    return 0;
     263}
     264
  • trunk/psLib/test/image/verified/tst_psImageInterpolate.stderr

    r2747 r2753  
    2222<DATE><TIME>|<HOST>|E|psImagePixelInterpolate (psImage.c:<LINENO>)
    2323    Specified psImage type, psPtr, is not supported.
     24<DATE><TIME>|<HOST>|I|testInterpolateError
     25    Following should generate an error message
     26<DATE><TIME>|<HOST>|E|psImagePixelInterpolate (psImage.c:<LINENO>)
     27    Specified psImage type, psPtr, is not supported.
    2428
    2529---> TESTPOINT PASSED (psImagePixelInterpolate{psImagePixelInterpolate} | tst_psImageInterpolate.c)
    2630
     31/***************************** TESTPOINT ******************************************\
     32*             TestFile: tst_psImageInterpolate.c                                   *
     33*            TestPoint: psImagePixelInterpolate{psImagePixelInterpolate}           *
     34*             TestType: Positive                                                   *
     35\**********************************************************************************/
     36
     37
     38---> TESTPOINT PASSED (psImagePixelInterpolate{psImagePixelInterpolate} | tst_psImageInterpolate.c)
     39
Note: See TracChangeset for help on using the changeset viewer.