IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 1365


Ignore:
Timestamp:
Aug 2, 2004, 9:43:23 AM (22 years ago)
Author:
desonia
Message:

adjusted output precision to allow tests to pass on x86_64, etc.

Location:
trunk/psLib/test
Files:
3 added
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/dataManip/tst_psHist02.c

    r1327 r1365  
    11/*****************************************************************************
    2     This routine must ensure that the psHistogram structure is correctly
    3     populated by the procedure psGetArrayHistogram().
    4  
    5  *****************************************************************************/
     2   This routine must ensure that the psHistogram structure is correctly
     3   populated by the procedure psGetArrayHistogram().
     4
     5*****************************************************************************/
    66#include <stdio.h>
    77#include "pslib.h"
     
    1616int main()
    1717{
    18     psHistogram *myHist = NULL;
    19     psHistogram *myHist2= NULL;
    20     psVector *myData    = NULL;
    21     psVector *myMask    = NULL;
    22     int testStatus      = true;
    23     int memLeaks        = 0;
    24     int nb              = 0;
    25     int numBins         = 0;
    26     int i               = 0;
    27     int currentId       = 0;
    28 
    29     currentId       = psMemGetId();
    30 
     18    psHistogram * myHist = NULL;
     19    psHistogram *myHist2 = NULL;
     20    psVector *myData = NULL;
     21    psVector *myMask = NULL;
     22    int testStatus = true;
     23    int memLeaks = 0;
     24    int nb = 0;
     25    int numBins = 0;
     26    int i = 0;
     27    int currentId = 0;
     28   
     29    currentId = psMemGetId();
     30   
    3131    /*********************************************************************/
    3232    /*  Allocate and initialize data structures                          */
    3333    /*********************************************************************/
    34     myData = psVectorAlloc(NUM_DATA, PS_TYPE_F32);
     34    myData = psVectorAlloc( NUM_DATA, PS_TYPE_F32 );
    3535    myData->n = myData->nalloc;
    36     for (i=0;i<NUM_DATA;i++) {
    37         myData->data.F32[i] = LOWER + ((UPPER - LOWER) / (float) NUM_DATA) * (float) i;
    38     }
    39 
    40     myMask = psVectorAlloc(NUM_DATA, PS_TYPE_U8);
     36    for ( i = 0;i < NUM_DATA;i++ ) {
     37            myData->data.F32[ i ] = LOWER + ( ( UPPER - LOWER ) / ( float ) NUM_DATA ) * ( float ) i;
     38        }
     39       
     40    myMask = psVectorAlloc( NUM_DATA, PS_TYPE_U8 );
    4141    myMask->n = myMask->nalloc;
    42     for (i=0;i<NUM_DATA;i++) {
    43         if (i >= (NUM_DATA/2)) {
    44             myMask->data.U8[i] = 1;
    45         } else {
    46             myMask->data.U8[i] = 0;
     42    for ( i = 0;i < NUM_DATA;i++ ) {
     43            if ( i >= ( NUM_DATA / 2 ) ) {
     44                    myMask->data.U8[ i ] = 1;
     45                } else {
     46                    myMask->data.U8[ i ] = 0;
     47                }
    4748        }
    48     }
    49 
    50     for (nb=0;nb<4;nb++) {
    51         if (nb == 0)
    52             numBins = 1;
    53         if (nb == 1)
    54             numBins = 2;
    55         if (nb == 2)
    56             numBins = 10;
    57         if (nb == 3)
    58             numBins = 20;
    59 
    60         /*********************************************************************/
    61         /*  Allocate and Perform Histogram, no mask                          */
    62         /*********************************************************************/
    63         printPositiveTestHeader(stdout,
    64                                 "psStats functions",
    65                                 "Allocate and Perform Histogram, no mask");
    66 
    67         myHist = psHistogramAlloc(LOWER, UPPER, numBins);
    68         myHist = psVectorHistogram(myHist, myData, NULL, 0);
    69 
    70         for (i=0;i<numBins;i++) {
    71             printf("Bin number %d bounds: (%f - %f) data (%d)\n", i,
    72                    myHist->bounds->data.F32[i],
    73                    myHist->bounds->data.F32[i+1],
    74                    myHist->nums->data.U32[i]);
     49       
     50    for ( nb = 0;nb < 4;nb++ ) {
     51            if ( nb == 0 )
     52                numBins = 1;
     53            if ( nb == 1 )
     54                numBins = 2;
     55            if ( nb == 2 )
     56                numBins = 10;
     57            if ( nb == 3 )
     58                numBins = 20;
     59               
     60            /*********************************************************************/
     61            /*  Allocate and Perform Histogram, no mask                          */
     62            /*********************************************************************/
     63            printPositiveTestHeader( stdout,
     64                                     "psStats functions",
     65                                     "Allocate and Perform Histogram, no mask" );
     66                                     
     67            myHist = psHistogramAlloc( LOWER, UPPER, numBins );
     68            myHist = psVectorHistogram( myHist, myData, NULL, 0 );
     69           
     70            for ( i = 0;i < numBins;i++ ) {
     71                    printf( "Bin number %d bounds: (%.2f - %.2f) data (%d)\n", i,
     72                            myHist->bounds->data.F32[ i ],
     73                            myHist->bounds->data.F32[ i + 1 ],
     74                            myHist->nums->data.U32[ i ] );
     75                }
     76            psMemCheckCorruption( 1 );
     77            psFree( myHist );
     78            psMemCheckCorruption( 1 );
     79           
     80            printFooter( stdout,
     81                         "psStats functions",
     82                         "Allocate and Perform Histogram, no mask",
     83                         testStatus );
     84                         
     85            /*********************************************************************/
     86            /*  Allocate and Perform Histogram with mask                         */
     87            /*********************************************************************/
     88            printPositiveTestHeader( stdout,
     89                                     "psStats functions",
     90                                     "Allocate and Perform Histogram with mask" );
     91                                     
     92            myHist = psHistogramAlloc( LOWER, UPPER, numBins );
     93            myHist = psVectorHistogram( myHist, myData, myMask, 1 );
     94           
     95            for ( i = 0;i < numBins;i++ ) {
     96                    printf( "Bin number %d bounds: (%6.3f - %6.3f) data (%d)\n", i,
     97                            myHist->bounds->data.F32[ i ],
     98                            myHist->bounds->data.F32[ i + 1 ],
     99                            myHist->nums->data.U32[ i ] );
     100                }
     101            psMemCheckCorruption( 1 );
     102            psFree( myHist );
     103            psMemCheckCorruption( 1 );
     104           
     105            printFooter( stdout,
     106                         "psStats functions",
     107                         "Allocate and Perform Histogram with mask",
     108                         testStatus );
    75109        }
    76         psMemCheckCorruption(1);
    77         psFree(myHist);
    78         psMemCheckCorruption(1);
    79 
    80         printFooter(stdout,
    81                     "psStats functions",
    82                     "Allocate and Perform Histogram, no mask",
    83                     testStatus);
    84 
    85         /*********************************************************************/
    86         /*  Allocate and Perform Histogram with mask                         */
    87         /*********************************************************************/
    88         printPositiveTestHeader(stdout,
    89                                 "psStats functions",
    90                                 "Allocate and Perform Histogram with mask");
    91 
    92         myHist = psHistogramAlloc(LOWER, UPPER, numBins);
    93         myHist = psVectorHistogram(myHist, myData, myMask, 1);
    94 
    95         for (i=0;i<numBins;i++) {
    96             printf("Bin number %d bounds: (%6.3f - %6.3f) data (%d)\n", i,
    97                    myHist->bounds->data.F32[i],
    98                    myHist->bounds->data.F32[i+1],
    99                    myHist->nums->data.U32[i]);
    100         }
    101         psMemCheckCorruption(1);
    102         psFree(myHist);
    103         psMemCheckCorruption(1);
    104 
    105         printFooter(stdout,
    106                     "psStats functions",
    107                     "Allocate and Perform Histogram with mask",
    108                     testStatus);
    109     }
    110     psFree(myMask);
    111 
    112     printPositiveTestHeader(stdout,
    113                             "psStats functions",
    114                             "Calling psVectorHistogram() with various NULL inputs.");
    115 
     110    psFree( myMask );
     111   
     112    printPositiveTestHeader( stdout,
     113                             "psStats functions",
     114                             "Calling psVectorHistogram() with various NULL inputs." );
     115                             
    116116    // Verify the return value is null and program execution doesn't stop,
    117117    // if input parameter myHist is null.
    118 
    119     myHist2 = psVectorHistogram(NULL, myData, NULL, 0);
    120     if (myHist2 != NULL) {
    121         printf("ERROR: myHist2!=NULL\n");
    122         testStatus = false;
    123     }
    124     psFree(myData);
    125 
    126 
     118   
     119    myHist2 = psVectorHistogram( NULL, myData, NULL, 0 );
     120    if ( myHist2 != NULL ) {
     121            printf( "ERROR: myHist2!=NULL\n" );
     122            testStatus = false;
     123        }
     124    psFree( myData );
     125   
     126   
    127127    // Verify the retrun value is the same as the input parameter myHist and
    128128    // program execution doesn't stop, if the input parameter myArray is
    129129    // null.
    130 
    131     myHist = psHistogramAlloc(LOWER, UPPER, numBins);
    132     myHist = psVectorHistogram(myHist, NULL, NULL, 0);
    133     if (myHist == NULL) {
    134         printf("ERROR: myHist==NULL\n");
    135         testStatus = false;
    136     }
    137     psFree(myHist);
    138 
    139 
     130   
     131    myHist = psHistogramAlloc( LOWER, UPPER, numBins );
     132    myHist = psVectorHistogram( myHist, NULL, NULL, 0 );
     133    if ( myHist == NULL ) {
     134            printf( "ERROR: myHist==NULL\n" );
     135            testStatus = false;
     136        }
     137    psFree( myHist );
     138   
     139   
    140140    // Verify the return value is the same as the input parameter myHist and
    141141    // program execution doesn't stop, if the input parameter myArray has no
     
    155155    psFree(myData);
    156156    */
    157     printFooter(stdout,
    158                 "psStats functions",
    159                 "Calling psVectorHistogram() with various NULL inputs.",
    160                 testStatus);
    161 
     157    printFooter( stdout,
     158                 "psStats functions",
     159                 "Calling psVectorHistogram() with various NULL inputs.",
     160                 testStatus );
     161                 
    162162    /*************************************************************************/
    163163    /*  Deallocate data structures                                   */
    164164    /*************************************************************************/
    165     printPositiveTestHeader(stdout,
    166                             "psStats functions",
    167                             "Deallocate the psHistogram structure.");
    168 
    169     psMemCheckCorruption(1);
    170     memLeaks = psMemCheckLeaks(currentId,NULL,NULL);
    171     if (0 != memLeaks) {
    172         psAbort(__func__,"Memory Leaks! (%d leaks)", memLeaks);
    173     }
    174     psMemCheckCorruption(1);
    175 
    176     printFooter(stdout,
    177                 "psStats functions",
    178                 "Deallocate the psHistogram structure.",
    179                 testStatus);
    180 
    181     return (!testStatus);
     165    printPositiveTestHeader( stdout,
     166                             "psStats functions",
     167                             "Deallocate the psHistogram structure." );
     168                             
     169    psMemCheckCorruption( 1 );
     170    memLeaks = psMemCheckLeaks( currentId, NULL, NULL );
     171    if ( 0 != memLeaks ) {
     172            psAbort( __func__, "Memory Leaks! (%d leaks)", memLeaks );
     173        }
     174    psMemCheckCorruption( 1 );
     175   
     176    printFooter( stdout,
     177                 "psStats functions",
     178                 "Deallocate the psHistogram structure.",
     179                 testStatus );
     180                 
     181    return ( !testStatus );
    182182}
  • trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic02.c

    r1134 r1365  
    1010 *  @author  Ross Harman, MHPCC
    1111 *
    12  *  @version $Revision: 1.1 $  $Name: not supported by cvs2svn $
    13  *  @date  $Date: 2004-06-30 00:18:49 $
     12 *  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
     13 *  @date  $Date: 2004-08-02 19:43:23 $
    1414 *
    1515 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     
    2525#define PRINT_SCALAR(SCALAR,TYPE)                                                                            \
    2626if(PS_IS_PSELEMTYPE_COMPLEX(SCALAR->type.type)) {                                                            \
    27     printf("%f+%fi ", creal(SCALAR->data.TYPE), cimag(SCALAR->data.TYPE));                                   \
    28 } else if(PS_IS_PSELEMTYPE_INT(SCALAR->type.type)) {                                                         \
    29     printf("%d", (int)SCALAR->data.TYPE);                                                                    \
    30 } else {                                                                                                     \
    31     printf("%f", (double)SCALAR->data.TYPE);                                                                 \
    32 }                                                                                                            \
     27        printf("%.2f%f+.2i ", creal(SCALAR->data.TYPE), cimag(SCALAR->data.TYPE));                                   \
     28    } else if(PS_IS_PSELEMTYPE_INT(SCALAR->type.type)) {                                                         \
     29        printf("%d", (int)SCALAR->data.TYPE);                                                                    \
     30    } else {                                                                                                     \
     31        printf("%.2f", (double)SCALAR->data.TYPE);                                                                 \
     32    }                                                                                                            \
    3333printf("\n\n");
    3434
     
    3636#define PRINT_VECTOR(VECTOR,TYPE)                                                                            \
    3737for(int i=0; i<VECTOR->n; i++) {                                                                             \
    38     if(PS_IS_PSELEMTYPE_COMPLEX(VECTOR->type.type)) {                                                        \
    39         printf("%f+%fi\n", creal(VECTOR->data.TYPE[i]), cimag(VECTOR->data.TYPE[i]));                        \
    40     } else if(PS_IS_PSELEMTYPE_INT(VECTOR->type.type)) {                                                     \
    41         printf("%d\n", (int)VECTOR->data.TYPE[i]);                                                           \
    42     } else {                                                                                                 \
    43         printf("%f\n", (double)VECTOR->data.TYPE[i]);                                                        \
    44     }                                                                                                        \
    45 }                                                                                                            \
     38        if(PS_IS_PSELEMTYPE_COMPLEX(VECTOR->type.type)) {                                                        \
     39                printf("%.2f%+.2fi\n", creal(VECTOR->data.TYPE[i]), cimag(VECTOR->data.TYPE[i]));                        \
     40            } else if(PS_IS_PSELEMTYPE_INT(VECTOR->type.type)) {                                                     \
     41                printf("%d\n", (int)VECTOR->data.TYPE[i]);                                                           \
     42            } else {                                                                                                 \
     43                printf("%.2f\n", (double)VECTOR->data.TYPE[i]);                                                        \
     44            }                                                                                                        \
     45    }                                                                                                            \
    4646printf("\n");
    4747
     
    4949#define PRINT_MATRIX(IMAGE,TYPE)                                                                             \
    5050for(int i=IMAGE->numRows-1; i>-1; i--) {                                                                     \
    51     for(int j=0; j<IMAGE->numCols; j++) {                                                                    \
    52         if(PS_IS_PSELEMTYPE_COMPLEX(IMAGE->type.type)) {                                                     \
    53             printf("%f+%fi ", creal(IMAGE->data.TYPE[i][j]), cimag(IMAGE->data.TYPE[i][j]));                 \
    54         } else if(PS_IS_PSELEMTYPE_INT(IMAGE->type.type)) {                                                  \
    55             printf("%d ", (int)IMAGE->data.TYPE[i][j]);                                                      \
    56         } else {                                                                                             \
    57             printf("%f ", (double)IMAGE->data.TYPE[i][j]);                                                   \
    58         }                                                                                                    \
    59     }                                                                                                        \
    60     printf("\n");                                                                                            \
    61 }                                                                                                            \
     51        for(int j=0; j<IMAGE->numCols; j++) {                                                                    \
     52                if(PS_IS_PSELEMTYPE_COMPLEX(IMAGE->type.type)) {                                                     \
     53                        printf("%.2f%+.2fi ", creal(IMAGE->data.TYPE[i][j]), cimag(IMAGE->data.TYPE[i][j]));                 \
     54                    } else if(PS_IS_PSELEMTYPE_INT(IMAGE->type.type)) {                                                  \
     55                        printf("%d ", (int)IMAGE->data.TYPE[i][j]);                                                      \
     56                    } else {                                                                                             \
     57                        printf("%.2f ", (double)IMAGE->data.TYPE[i][j]);                                                   \
     58                    }                                                                                                    \
     59            }                                                                                                        \
     60        printf("\n");                                                                                            \
     61    }                                                                                                            \
    6262printf("\n");
    6363
     
    6666psVector *NAME = (psVector*)psVectorAlloc(SIZE, PS_TYPE_##TYPE);                                             \
    6767for(int i=0; i<SIZE; i++) {                                                                                  \
    68     NAME->data.TYPE[i] = VALUE;                                                                              \
    69 }                                                                                                            \
     68        NAME->data.TYPE[i] = VALUE;                                                                              \
     69    }                                                                                                            \
    7070NAME->n = SIZE;
    7171
     
    7474psImage *NAME = (psImage*)psImageAlloc(NCOLS,NROWS,PS_TYPE_##TYPE);                                          \
    7575for(int i=0; i<NAME->numRows; i++) {                                                                         \
    76     for(int j=0; j<NAME->numCols; j++) {                                                                     \
    77         NAME->data.TYPE[i][j] = VALUE;                                                                       \
    78     }                                                                                                        \
    79 }
    80 
    81 
     76        for(int j=0; j<NAME->numCols; j++) {                                                                     \
     77                NAME->data.TYPE[i][j] = VALUE;                                                                       \
     78            }                                                                                                        \
     79    }
     80   
     81   
    8282#define CHECK_MEMORY                                                                                         \
    8383psMemCheckLeaks(0, NULL, stdout);                                                                            \
    8484int nBad = psMemCheckCorruption(0);                                                                          \
    8585if(nBad) {                                                                                                   \
    86     printf("ERROR: Found %d bad memory blocks\n", nBad);                                                     \
    87 }
    88 
    89 
    90 int main(int argc, char* argv[])
     86        printf("ERROR: Found %d bad memory blocks\n", nBad);                                                     \
     87    }
     88   
     89   
     90int main( int argc, char* argv[] )
    9191{
    9292
     
    109109        printFooter(stdout, "psMatrixVectorArithmetic", "Test matrix psUnaryOp", true);                      \
    110110    }
    111 
    112     testBinaryOpM(abs,S32,-10,0,3,2);
    113     testBinaryOpM(abs,F32,-10.0,0.0,3,2);
    114     testBinaryOpM(abs,F64,-10.0,0.0,3,2);
    115     testBinaryOpM(abs,C32,-10.0-10.0i,0.0+0.0i,3,2);
    116     testBinaryOpM(exp,S32,10,0,3,2);
    117     testBinaryOpM(exp,F32,10.0,0.0,3,2);
    118     testBinaryOpM(exp,F64,10.0,0.0,3,2);
    119     testBinaryOpM(exp,C32,10.0+10.0i,0.0+0.0i,3,2);
    120     testBinaryOpM(ln,S32,10,0,3,2);
    121     testBinaryOpM(ln,F32,10.0,0.0,3,2);
    122     testBinaryOpM(ln,F64,10.0,0.0,3,2);
    123     testBinaryOpM(ln,C32,10.0+10.0i,0.0+0.0i,3,2);
    124     testBinaryOpM(ten,S32,3,0,3,2);
    125     testBinaryOpM(ten,F32,3.0,0.0,3,2);
    126     testBinaryOpM(ten,F64,3.0,0.0,3,2);
    127     testBinaryOpM(ten,C32,3.0+3.0i,0.0+0.0i,3,2);
    128     testBinaryOpM(log,S32,1000,0,3,2);
    129     testBinaryOpM(log,F32,1000.0,0.0,3,2);
    130     testBinaryOpM(log,F64,1000.0,0.0,3,2);
    131     testBinaryOpM(log,C32,1000.0+1000.0i,0.0+0.0i,3,2);
    132     testBinaryOpM(sin,S32,M_PI_2,0,3,2);
    133     testBinaryOpM(sin,F32,M_PI_2,0.0,3,2);
    134     testBinaryOpM(sin,F64,M_PI_2,0.0,3,2);
    135     testBinaryOpM(sin,C32,M_PI_2+1.57079632679489661923i,0.0+0.0i,3,2);
    136     testBinaryOpM(dsin,S32,90,0,3,2);
    137     testBinaryOpM(dsin,F32,90.0,0.0,3,2);
    138     testBinaryOpM(dsin,F64,90.0,0.0,3,2);
    139     testBinaryOpM(dsin,C32,90.0+90.0i,0.0+0.0i,3,2);
    140     testBinaryOpM(cos,S32,0,0,3,2);
    141     testBinaryOpM(cos,F32,0.0,0.0,3,2);
    142     testBinaryOpM(cos,F64,0.0,0.0,3,2);
    143     testBinaryOpM(cos,C32,0.0+0.0i,0.0+0.0i,3,2);
    144     testBinaryOpM(dcos,S32,0,0,3,2);
    145     testBinaryOpM(dcos,F32,0.0,0.0,3,2);
    146     testBinaryOpM(dcos,F64,0.0,0.0,3,2);
    147     testBinaryOpM(dcos,C32,0.0+0.0i,0.0+0.0i,3,2);
    148     testBinaryOpM(tan,S32,M_PI_4,0,3,2);
    149     testBinaryOpM(tan,F32,M_PI_4,0.0,3,2);
    150     testBinaryOpM(tan,F64,M_PI_4,0.0,3,2);
    151     testBinaryOpM(tan,C32,M_PI_4+0.78539816339744830962i,0.0+0.0i,3,2);
    152     testBinaryOpM(dtan,S32,45,0,3,2);
    153     testBinaryOpM(dtan,F32,45.0,0.0,3,2);
    154     testBinaryOpM(dtan,F64,45.0,0.0,3,2);
    155     testBinaryOpM(dtan,C32,45.0+45.0i,0.0+0.0i,3,2);
    156     testBinaryOpM(asin,S32,1,0,3,2);
    157     testBinaryOpM(asin,F32,1.0,0.0,3,2);
    158     testBinaryOpM(asin,F64,1.0,0.0,3,2);
    159     testBinaryOpM(asin,C32,1.0+1.0i,0.0+0.0i,3,2);
    160     testBinaryOpM(dasin,S32,1.0,0,3,2);
    161     testBinaryOpM(dasin,F32,1.0,0.0,3,2);
    162     testBinaryOpM(dasin,F64,1.0,0.0,3,2);
    163     testBinaryOpM(dasin,C32,1.0+1.0i,0.0+0.0i,3,2);
    164     testBinaryOpM(acos,S32,0,0,3,2);
    165     testBinaryOpM(acos,F32,0.0,0.0,3,2);
    166     testBinaryOpM(acos,F64,0.0,0.0,3,2);
    167     testBinaryOpM(acos,C32,0.0+0.0i,0.0+0.0i,3,2);
    168     testBinaryOpM(dacos,S32,0,0,3,2);
    169     testBinaryOpM(dacos,F32,0.0,0.0,3,2);
    170     testBinaryOpM(dacos,F64,0.0,0.0,3,2);
    171     testBinaryOpM(dacos,C32,0.0+0.0i,0.0+0.0i,3,2);
    172     testBinaryOpM(atan,S32,1,0,3,2);
    173     testBinaryOpM(atan,F32,1.0,0.0,3,2);
    174     testBinaryOpM(atan,F64,1.0,0.0,3,2);
    175     testBinaryOpM(atan,C32,1.0+1.0i,0.0+0.0i,3,2);
    176     testBinaryOpM(datan,S32,1,0,3,2);
    177     testBinaryOpM(datan,F32,1.0,0.0,3,2);
    178     testBinaryOpM(datan,F64,1.0,0.0,3,2);
    179     testBinaryOpM(datan,C32,1.0+1.0i,0.0+0.0i,3,2);
    180 
    181 
     111   
     112    testBinaryOpM( abs, S32, -10, 0, 3, 2 );
     113    testBinaryOpM( abs, F32, -10.0, 0.0, 3, 2 );
     114    testBinaryOpM( abs, F64, -10.0, 0.0, 3, 2 );
     115    testBinaryOpM( abs, C32, -10.0 - 10.0i, 0.0 + 0.0i, 3, 2 );
     116    testBinaryOpM( exp, S32, 10, 0, 3, 2 );
     117    testBinaryOpM( exp, F32, 10.0, 0.0, 3, 2 );
     118    testBinaryOpM( exp, F64, 10.0, 0.0, 3, 2 );
     119    testBinaryOpM( exp, C32, 10.0 + 10.0i, 0.0 + 0.0i, 3, 2 );
     120    testBinaryOpM( ln, S32, 10, 0, 3, 2 );
     121    testBinaryOpM( ln, F32, 10.0, 0.0, 3, 2 );
     122    testBinaryOpM( ln, F64, 10.0, 0.0, 3, 2 );
     123    testBinaryOpM( ln, C32, 10.0 + 10.0i, 0.0 + 0.0i, 3, 2 );
     124    testBinaryOpM( ten, S32, 3, 0, 3, 2 );
     125    testBinaryOpM( ten, F32, 3.0, 0.0, 3, 2 );
     126    testBinaryOpM( ten, F64, 3.0, 0.0, 3, 2 );
     127    testBinaryOpM( ten, C32, 3.0 + 3.0i, 0.0 + 0.0i, 3, 2 );
     128    testBinaryOpM( log, S32, 1000, 0, 3, 2 );
     129    testBinaryOpM( log, F32, 1000.0, 0.0, 3, 2 );
     130    testBinaryOpM( log, F64, 1000.0, 0.0, 3, 2 );
     131    testBinaryOpM( log, C32, 1000.0 + 1000.0i, 0.0 + 0.0i, 3, 2 );
     132    testBinaryOpM( sin, S32, M_PI_2, 0, 3, 2 );
     133    testBinaryOpM( sin, F32, M_PI_2, 0.0, 3, 2 );
     134    testBinaryOpM( sin, F64, M_PI_2, 0.0, 3, 2 );
     135    testBinaryOpM( sin, C32, M_PI_2 + 1.57079632679489661923i, 0.0 + 0.0i, 3, 2 );
     136    testBinaryOpM( dsin, S32, 90, 0, 3, 2 );
     137    testBinaryOpM( dsin, F32, 90.0, 0.0, 3, 2 );
     138    testBinaryOpM( dsin, F64, 90.0, 0.0, 3, 2 );
     139    testBinaryOpM( dsin, C32, 90.0 + 90.0i, 0.0 + 0.0i, 3, 2 );
     140    testBinaryOpM( cos, S32, 0, 0, 3, 2 );
     141    testBinaryOpM( cos, F32, 0.0, 0.0, 3, 2 );
     142    testBinaryOpM( cos, F64, 0.0, 0.0, 3, 2 );
     143    testBinaryOpM( cos, C32, 0.0 + 0.0i, 0.0 + 0.0i, 3, 2 );
     144    testBinaryOpM( dcos, S32, 0, 0, 3, 2 );
     145    testBinaryOpM( dcos, F32, 0.0, 0.0, 3, 2 );
     146    testBinaryOpM( dcos, F64, 0.0, 0.0, 3, 2 );
     147    testBinaryOpM( dcos, C32, 0.0 + 0.0i, 0.0 + 0.0i, 3, 2 );
     148    testBinaryOpM( tan, S32, M_PI_4, 0, 3, 2 );
     149    testBinaryOpM( tan, F32, M_PI_4, 0.0, 3, 2 );
     150    testBinaryOpM( tan, F64, M_PI_4, 0.0, 3, 2 );
     151    testBinaryOpM( tan, C32, M_PI_4 + 0.78539816339744830962i, 0.0 + 0.0i, 3, 2 );
     152    testBinaryOpM( dtan, S32, 45, 0, 3, 2 );
     153    testBinaryOpM( dtan, F32, 45.0, 0.0, 3, 2 );
     154    testBinaryOpM( dtan, F64, 45.0, 0.0, 3, 2 );
     155    testBinaryOpM( dtan, C32, 45.0 + 45.0i, 0.0 + 0.0i, 3, 2 );
     156    testBinaryOpM( asin, S32, 1, 0, 3, 2 );
     157    testBinaryOpM( asin, F32, 1.0, 0.0, 3, 2 );
     158    testBinaryOpM( asin, F64, 1.0, 0.0, 3, 2 );
     159    testBinaryOpM( asin, C32, 1.0 + 1.0i, 0.0 + 0.0i, 3, 2 );
     160    testBinaryOpM( dasin, S32, 1.0, 0, 3, 2 );
     161    testBinaryOpM( dasin, F32, 1.0, 0.0, 3, 2 );
     162    testBinaryOpM( dasin, F64, 1.0, 0.0, 3, 2 );
     163    testBinaryOpM( dasin, C32, 1.0 + 1.0i, 0.0 + 0.0i, 3, 2 );
     164    testBinaryOpM( acos, S32, 0, 0, 3, 2 );
     165    testBinaryOpM( acos, F32, 0.0, 0.0, 3, 2 );
     166    testBinaryOpM( acos, F64, 0.0, 0.0, 3, 2 );
     167    testBinaryOpM( acos, C32, 0.0 + 0.0i, 0.0 + 0.0i, 3, 2 );
     168    testBinaryOpM( dacos, S32, 0, 0, 3, 2 );
     169    testBinaryOpM( dacos, F32, 0.0, 0.0, 3, 2 );
     170    testBinaryOpM( dacos, F64, 0.0, 0.0, 3, 2 );
     171    testBinaryOpM( dacos, C32, 0.0 + 0.0i, 0.0 + 0.0i, 3, 2 );
     172    testBinaryOpM( atan, S32, 1, 0, 3, 2 );
     173    testBinaryOpM( atan, F32, 1.0, 0.0, 3, 2 );
     174    testBinaryOpM( atan, F64, 1.0, 0.0, 3, 2 );
     175    testBinaryOpM( atan, C32, 1.0 + 1.0i, 0.0 + 0.0i, 3, 2 );
     176    testBinaryOpM( datan, S32, 1, 0, 3, 2 );
     177    testBinaryOpM( datan, F32, 1.0, 0.0, 3, 2 );
     178    testBinaryOpM( datan, F64, 1.0, 0.0, 3, 2 );
     179    testBinaryOpM( datan, C32, 1.0 + 1.0i, 0.0 + 0.0i, 3, 2 );
     180   
     181   
    182182    // Test vector unary operations
    183183    #define testBinaryOpV(OP,TYPE,VALUE1,VALUE2,SIZE)                                                        \
     
    198198        printFooter(stdout, "psMatrixVectorArithmetic", "Test vector psUnaryOp", true);                      \
    199199    }
    200 
    201     testBinaryOpV(abs,S32,-10,0,3);
    202     testBinaryOpV(abs,F32,-10.0,0.0,3);
    203     testBinaryOpV(abs,F64,-10.0,0.0,3);
    204     testBinaryOpV(abs,C32,-10.0-10.0i,0.0+0.0i,3);
    205     testBinaryOpV(exp,S32,10,0,3);
    206     testBinaryOpV(exp,F32,10.0,0.0,3);
    207     testBinaryOpV(exp,F64,10.0,0.0,3);
    208     testBinaryOpV(exp,C32,10.0+10.0i,0.0+0.0i,3);
    209     testBinaryOpV(ln,S32,10,0,3);
    210     testBinaryOpV(ln,F32,10.0,0.0,3);
    211     testBinaryOpV(ln,F64,10.0,0.0,3);
    212     testBinaryOpV(ln,C32,10.0+10.0i,0.0+0.0i,3);
    213     testBinaryOpV(ten,S32,3,0,3);
    214     testBinaryOpV(ten,F32,3.0,0.0,3);
    215     testBinaryOpV(ten,F64,3.0,0.0,3);
    216     testBinaryOpV(ten,C32,3.0+3.0i,0.0+0.0i,3);
    217     testBinaryOpV(log,S32,1000,0,3);
    218     testBinaryOpV(log,F32,1000.0,0.0,3);
    219     testBinaryOpV(log,F64,1000.0,0.0,3);
    220     testBinaryOpV(log,C32,1000.0+1000.0i,0.0+0.0i,3);
    221     testBinaryOpV(sin,S32,M_PI_2,0,3);
    222     testBinaryOpV(sin,F32,M_PI_2,0.0,3);
    223     testBinaryOpV(sin,F64,M_PI_2,0.0,3);
    224     testBinaryOpV(sin,C32,M_PI_2+1.57079632679489661923i,0.0+0.0i,3);
    225     testBinaryOpV(dsin,S32,90,0,3);
    226     testBinaryOpV(dsin,F32,90.0,0.0,3);
    227     testBinaryOpV(dsin,F64,90.0,0.0,3);
    228     testBinaryOpV(dsin,C32,90.0+90.0i,0.0+0.0i,3);
    229     testBinaryOpV(cos,S32,0,0,3);
    230     testBinaryOpV(cos,F32,0.0,0.0,3);
    231     testBinaryOpV(cos,F64,0.0,0.0,3);
    232     testBinaryOpV(cos,C32,0.0+0.0i,0.0+0.0i,3);
    233     testBinaryOpV(dcos,S32,0,0,3);
    234     testBinaryOpV(dcos,F32,0.0,0.0,3);
    235     testBinaryOpV(dcos,F64,0.0,0.0,3);
    236     testBinaryOpV(dcos,C32,0.0+0.0i,0.0+0.0i,3);
    237     testBinaryOpV(tan,S32,M_PI_4,0,3);
    238     testBinaryOpV(tan,F32,M_PI_4,0.0,3);
    239     testBinaryOpV(tan,F64,M_PI_4,0.0,3);
    240     testBinaryOpV(tan,C32,M_PI_4+0.78539816339744830962i,0.0+0.0i,3);
    241     testBinaryOpV(dtan,S32,45,0,3);
    242     testBinaryOpV(dtan,F32,45.0,0.0,3);
    243     testBinaryOpV(dtan,F64,45.0,0.0,3);
    244     testBinaryOpV(dtan,C32,45.0+45.0i,0.0+0.0i,3);
    245     testBinaryOpV(asin,S32,1,0,3);
    246     testBinaryOpV(asin,F32,1.0,0.0,3);
    247     testBinaryOpV(asin,F64,1.0,0.0,3);
    248     testBinaryOpV(asin,C32,1.0+1.0i,0.0+0.0i,3);
    249     testBinaryOpV(dasin,S32,1.0,0,3);
    250     testBinaryOpV(dasin,F32,1.0,0.0,3);
    251     testBinaryOpV(dasin,F64,1.0,0.0,3);
    252     testBinaryOpV(dasin,C32,1.0+1.0i,0.0+0.0i,3);
    253     testBinaryOpV(acos,S32,0,0,3);
    254     testBinaryOpV(acos,F32,0.0,0.0,3);
    255     testBinaryOpV(acos,F64,0.0,0.0,3);
    256     testBinaryOpV(acos,C32,0.0+0.0i,0.0+0.0i,3);
    257     testBinaryOpV(dacos,S32,0,0,3);
    258     testBinaryOpV(dacos,F32,0.0,0.0,3);
    259     testBinaryOpV(dacos,F64,0.0,0.0,3);
    260     testBinaryOpV(dacos,C32,0.0+0.0i,0.0+0.0i,3);
    261     testBinaryOpV(atan,S32,1,0,3);
    262     testBinaryOpV(atan,F32,1.0,0.0,3);
    263     testBinaryOpV(atan,F64,1.0,0.0,3);
    264     testBinaryOpV(atan,C32,1.0+1.0i,0.0+0.0i,3);
    265     testBinaryOpV(datan,S32,1,0,3);
    266     testBinaryOpV(datan,F32,1.0,0.0,3);
    267     testBinaryOpV(datan,F64,1.0,0.0,3);
    268     testBinaryOpV(datan,C32,1.0+1.0i,0.0+0.0i,3);
    269 
     200   
     201    testBinaryOpV( abs, S32, -10, 0, 3 );
     202    testBinaryOpV( abs, F32, -10.0, 0.0, 3 );
     203    testBinaryOpV( abs, F64, -10.0, 0.0, 3 );
     204    testBinaryOpV( abs, C32, -10.0 - 10.0i, 0.0 + 0.0i, 3 );
     205    testBinaryOpV( exp, S32, 10, 0, 3 );
     206    testBinaryOpV( exp, F32, 10.0, 0.0, 3 );
     207    testBinaryOpV( exp, F64, 10.0, 0.0, 3 );
     208    testBinaryOpV( exp, C32, 10.0 + 10.0i, 0.0 + 0.0i, 3 );
     209    testBinaryOpV( ln, S32, 10, 0, 3 );
     210    testBinaryOpV( ln, F32, 10.0, 0.0, 3 );
     211    testBinaryOpV( ln, F64, 10.0, 0.0, 3 );
     212    testBinaryOpV( ln, C32, 10.0 + 10.0i, 0.0 + 0.0i, 3 );
     213    testBinaryOpV( ten, S32, 3, 0, 3 );
     214    testBinaryOpV( ten, F32, 3.0, 0.0, 3 );
     215    testBinaryOpV( ten, F64, 3.0, 0.0, 3 );
     216    testBinaryOpV( ten, C32, 3.0 + 3.0i, 0.0 + 0.0i, 3 );
     217    testBinaryOpV( log, S32, 1000, 0, 3 );
     218    testBinaryOpV( log, F32, 1000.0, 0.0, 3 );
     219    testBinaryOpV( log, F64, 1000.0, 0.0, 3 );
     220    testBinaryOpV( log, C32, 1000.0 + 1000.0i, 0.0 + 0.0i, 3 );
     221    testBinaryOpV( sin, S32, M_PI_2, 0, 3 );
     222    testBinaryOpV( sin, F32, M_PI_2, 0.0, 3 );
     223    testBinaryOpV( sin, F64, M_PI_2, 0.0, 3 );
     224    testBinaryOpV( sin, C32, M_PI_2 + 1.57079632679489661923i, 0.0 + 0.0i, 3 );
     225    testBinaryOpV( dsin, S32, 90, 0, 3 );
     226    testBinaryOpV( dsin, F32, 90.0, 0.0, 3 );
     227    testBinaryOpV( dsin, F64, 90.0, 0.0, 3 );
     228    testBinaryOpV( dsin, C32, 90.0 + 90.0i, 0.0 + 0.0i, 3 );
     229    testBinaryOpV( cos, S32, 0, 0, 3 );
     230    testBinaryOpV( cos, F32, 0.0, 0.0, 3 );
     231    testBinaryOpV( cos, F64, 0.0, 0.0, 3 );
     232    testBinaryOpV( cos, C32, 0.0 + 0.0i, 0.0 + 0.0i, 3 );
     233    testBinaryOpV( dcos, S32, 0, 0, 3 );
     234    testBinaryOpV( dcos, F32, 0.0, 0.0, 3 );
     235    testBinaryOpV( dcos, F64, 0.0, 0.0, 3 );
     236    testBinaryOpV( dcos, C32, 0.0 + 0.0i, 0.0 + 0.0i, 3 );
     237    testBinaryOpV( tan, S32, M_PI_4, 0, 3 );
     238    testBinaryOpV( tan, F32, M_PI_4, 0.0, 3 );
     239    testBinaryOpV( tan, F64, M_PI_4, 0.0, 3 );
     240    testBinaryOpV( tan, C32, M_PI_4 + 0.78539816339744830962i, 0.0 + 0.0i, 3 );
     241    testBinaryOpV( dtan, S32, 45, 0, 3 );
     242    testBinaryOpV( dtan, F32, 45.0, 0.0, 3 );
     243    testBinaryOpV( dtan, F64, 45.0, 0.0, 3 );
     244    testBinaryOpV( dtan, C32, 45.0 + 45.0i, 0.0 + 0.0i, 3 );
     245    testBinaryOpV( asin, S32, 1, 0, 3 );
     246    testBinaryOpV( asin, F32, 1.0, 0.0, 3 );
     247    testBinaryOpV( asin, F64, 1.0, 0.0, 3 );
     248    testBinaryOpV( asin, C32, 1.0 + 1.0i, 0.0 + 0.0i, 3 );
     249    testBinaryOpV( dasin, S32, 1.0, 0, 3 );
     250    testBinaryOpV( dasin, F32, 1.0, 0.0, 3 );
     251    testBinaryOpV( dasin, F64, 1.0, 0.0, 3 );
     252    testBinaryOpV( dasin, C32, 1.0 + 1.0i, 0.0 + 0.0i, 3 );
     253    testBinaryOpV( acos, S32, 0, 0, 3 );
     254    testBinaryOpV( acos, F32, 0.0, 0.0, 3 );
     255    testBinaryOpV( acos, F64, 0.0, 0.0, 3 );
     256    testBinaryOpV( acos, C32, 0.0 + 0.0i, 0.0 + 0.0i, 3 );
     257    testBinaryOpV( dacos, S32, 0, 0, 3 );
     258    testBinaryOpV( dacos, F32, 0.0, 0.0, 3 );
     259    testBinaryOpV( dacos, F64, 0.0, 0.0, 3 );
     260    testBinaryOpV( dacos, C32, 0.0 + 0.0i, 0.0 + 0.0i, 3 );
     261    testBinaryOpV( atan, S32, 1, 0, 3 );
     262    testBinaryOpV( atan, F32, 1.0, 0.0, 3 );
     263    testBinaryOpV( atan, F64, 1.0, 0.0, 3 );
     264    testBinaryOpV( atan, C32, 1.0 + 1.0i, 0.0 + 0.0i, 3 );
     265    testBinaryOpV( datan, S32, 1, 0, 3 );
     266    testBinaryOpV( datan, F32, 1.0, 0.0, 3 );
     267    testBinaryOpV( datan, F64, 1.0, 0.0, 3 );
     268    testBinaryOpV( datan, C32, 1.0 + 1.0i, 0.0 + 0.0i, 3 );
     269   
    270270    return 0;
    271271}
  • trunk/psLib/test/dataManip/tst_psStats07.c

    r1281 r1365  
    11/*****************************************************************************
    2     This routine must ensure that PS_STAT_ROBUST_QUARTILE is correctly computed
    3     by the procedure psArrayStats().
    4  *****************************************************************************/
     2   This routine must ensure that PS_STAT_ROBUST_QUARTILE is correctly computed
     3   by the procedure psArrayStats().
     4*****************************************************************************/
    55#include <stdio.h>
    66#include "pslib.h"
     
    1717int main()
    1818{
    19     psStats *myStats    = NULL;
    20     int testStatus      = true;
     19    psStats * myStats = NULL;
     20    int testStatus = true;
    2121    int globalTestStatus = true;
    22     int i               = 0;
    23     psVector *myVector  = NULL;
    24     psVector *maskVector= NULL;
     22    int i = 0;
     23    psVector *myVector = NULL;
     24    psVector *maskVector = NULL;
    2525    // NOTE: These values were calculated by running the function on the data.
    2626    // A: They must be changed if we adjust the number of data points.
    2727    // B: We don't really know that they are correct.
    28     int count           = 0;
    29     int currentId       = psMemGetId();
    30     int memLeaks        = 0;
     28    int count = 0;
     29    int currentId = psMemGetId();
     30    int memLeaks = 0;
    3131    float realMeanNoMask = MEAN;
    3232    float realMedianNoMask = MEAN;
    3333    float realModeNoMask = MEAN;
    3434    float realStdevNoMask = STDEV * 0.33;
    35     float realLQNoMask = MEAN - (0.6 * STDEV);
    36     float realUQNoMask = MEAN + (0.6 * STDEV);
    37     float realN50NoMask = (float) N/4;
    38     float realNfitNoMask = (float) N/4;
     35    float realLQNoMask = MEAN - ( 0.6 * STDEV );
     36    float realUQNoMask = MEAN + ( 0.6 * STDEV );
     37    float realN50NoMask = ( float ) N / 4;
     38    float realNfitNoMask = ( float ) N / 4;
    3939    float realMeanWithMask = MEAN;
    4040    float realMedianWithMask = MEAN;
     
    4343    float realLQWithMask = MEAN;
    4444    float realUQWithMask = MEAN;
    45     float realN50WithMask = (float) N/4;
    46     float realNfitWithMask = (float) N/4;
    47 
    48 
     45    float realN50WithMask = ( float ) N / 4;
     46    float realNfitWithMask = ( float ) N / 4;
     47   
     48   
    4949    /*************************************************************************/
    5050    /*  Allocate and initialize data structures                              */
    5151    /*************************************************************************/
    52     myStats = psStatsAlloc(PS_STAT_ROBUST_MEAN |
    53                            PS_STAT_ROBUST_MEDIAN |
    54                            PS_STAT_ROBUST_MODE |
    55                            PS_STAT_ROBUST_STDEV |
    56                            PS_STAT_ROBUST_QUARTILE);
    57 
    58     maskVector = psVectorAlloc(N, PS_TYPE_U8);
     52    myStats = psStatsAlloc( PS_STAT_ROBUST_MEAN |
     53                            PS_STAT_ROBUST_MEDIAN |
     54                            PS_STAT_ROBUST_MODE |
     55                            PS_STAT_ROBUST_STDEV |
     56                            PS_STAT_ROBUST_QUARTILE );
     57                           
     58    maskVector = psVectorAlloc( N, PS_TYPE_U8 );
    5959    maskVector->n = N;
    60     myVector = psGaussianDev(MEAN, STDEV, N);
     60    myVector = psGaussianDev( MEAN, STDEV, N );
    6161    // Set the mask vector and calculate the expected maximum.
    62     for (i=0;i<N;i++) {
    63         if (i < (N/2)) {
    64             maskVector->data.U8[i] = 0;
    65             count++;
    66         } else {
    67             maskVector->data.U8[i] = 1;
    68         }
    69     }
     62    for ( i = 0;i < N;i++ ) {
     63            if ( i < ( N / 2 ) ) {
     64                    maskVector->data.U8[ i ] = 0;
     65                    count++;
     66                } else {
     67                    maskVector->data.U8[ i ] = 1;
     68                }
     69        }
    7070    /*************************************************************************/
    7171    /*  Call psVectorStats() with no vector mask.                            */
    7272    /*************************************************************************/
    73     printPositiveTestHeader(stdout,
    74                             "psStats functions",
    75                             "PS_STAT_ROBUST_STATS: robust mean: no vector mask");
    76 
    77     myStats = psVectorStats(myStats, myVector, NULL, 0);
    78 
    79     printf("The expected Mean was %f; the calculated Mean was %f\n",
    80            realMeanNoMask, myStats->robustMean);
    81 
    82     if (fabs(myStats->robustMean - realMeanNoMask) < (ERROR_TOLERANCE * realMeanNoMask)) {
    83         testStatus = true;
    84     } else {
    85         testStatus = false;
    86         globalTestStatus = false;
    87     }
    88     printFooter(stdout,
    89                 "psVector functions",
    90                 "PS_STAT_ROBUST_STATS: robust mean: no vector mask",
    91                 testStatus);
    92 
    93 
    94     printPositiveTestHeader(stdout,
    95                             "psStats functions",
    96                             "PS_STAT_ROBUST_STATS: robust Median: no vector mask");
    97 
    98     printf("The expected Median was %f; the calculated Median was %f\n",
    99            realMedianNoMask, myStats->robustMedian);
    100     if (fabs(myStats->robustMedian - realMedianNoMask) < (ERROR_TOLERANCE * realMedianNoMask)) {
    101         testStatus = true;
    102     } else {
    103         testStatus = false;
    104         globalTestStatus = false;
    105     }
    106     printFooter(stdout,
    107                 "psVector functions",
    108                 "PS_STAT_ROBUST_STATS: robust Median: no vector mask",
    109                 testStatus);
    110 
    111     printPositiveTestHeader(stdout,
    112                             "psStats functions",
    113                             "PS_STAT_ROBUST_STATS: robust Mode: no vector mask");
    114 
    115 
    116     printf("The expected Mode was %f; the calculated Mode was %f\n",
    117            realModeNoMask, myStats->robustMode);
    118     if (fabs(myStats->robustMode - realModeNoMask) < (ERROR_TOLERANCE * realModeNoMask)) {
    119         testStatus = true;
    120     } else {
    121         testStatus = false;
    122         globalTestStatus = false;
    123     }
    124     printFooter(stdout,
    125                 "psVector functions",
    126                 "PS_STAT_ROBUST_STATS: robust Mode: no vector mask",
    127                 testStatus);
    128 
    129 
    130 
    131     printPositiveTestHeader(stdout,
    132                             "psStats functions",
    133                             "PS_STAT_ROBUST_STATS: robust Stdev: no vector mask");
    134 
    135     printf("The expected Stdev was %f; the calculated Stdev was %f\n",
    136            realStdevNoMask, myStats->robustStdev);
    137     if (fabs(myStats->robustStdev - realStdevNoMask) < (ERROR_TOLERANCE * realStdevNoMask)) {
    138         testStatus = true;
    139     } else {
    140         testStatus = false;
    141         globalTestStatus = false;
    142     }
    143     printFooter(stdout,
    144                 "psVector functions",
    145                 "PS_STAT_ROBUST_STATS: robust Stdev: no vector mask",
    146                 testStatus);
    147 
    148 
    149 
    150     printPositiveTestHeader(stdout,
    151                             "psStats functions",
    152                             "PS_STAT_ROBUST_STATS: lower quartile: no vector mask");
    153 
    154     printf("The expected LQ was %f; the calculated LQ was %f\n",
    155            realLQNoMask, myStats->robustLQ);
    156 
    157     if (fabs(myStats->robustLQ - realLQNoMask) < (ERROR_TOLERANCE * realLQNoMask)) {
    158         testStatus = true;
    159     } else {
    160         testStatus = false;
    161         globalTestStatus = false;
    162     }
    163     printFooter(stdout,
    164                 "psVector functions",
    165                 "PS_STAT_ROBUST_STATS: lower quartile: no vector mask",
    166                 testStatus);
    167 
    168 
    169 
    170     printPositiveTestHeader(stdout,
    171                             "psStats functions",
    172                             "PS_STAT_ROBUST_STATS: upper quartile: no vector mask");
    173 
    174     printf("The expected UQ was %f; the calculated UQ was %f\n",
    175            realUQNoMask, myStats->robustUQ);
    176     if (fabs(myStats->robustUQ - realUQNoMask) < (ERROR_TOLERANCE * realUQNoMask)) {
    177         testStatus = true;
    178     } else {
    179         testStatus = false;
    180         globalTestStatus = false;
    181     }
    182     printFooter(stdout,
    183                 "psVector functions",
    184                 "PS_STAT_ROBUST_STATS: lower quartile: no vector mask",
    185                 testStatus);
    186 
    187 
    188 
    189     printPositiveTestHeader(stdout,
    190                             "psStats functions",
    191                             "PS_STAT_ROBUST_STATS: robust N50: no vector mask");
    192 
     73    printPositiveTestHeader( stdout,
     74                             "psStats functions",
     75                             "PS_STAT_ROBUST_STATS: robust mean: no vector mask" );
     76                             
     77    myStats = psVectorStats( myStats, myVector, NULL, 0 );
     78   
     79    printf( "The expected Mean was %.2f; the calculated Mean was %.2f\n",
     80            realMeanNoMask, myStats->robustMean );
     81           
     82    if ( fabs( myStats->robustMean - realMeanNoMask ) < ( ERROR_TOLERANCE * realMeanNoMask ) ) {
     83            testStatus = true;
     84        } else {
     85            testStatus = false;
     86            globalTestStatus = false;
     87        }
     88    printFooter( stdout,
     89                 "psVector functions",
     90                 "PS_STAT_ROBUST_STATS: robust mean: no vector mask",
     91                 testStatus );
     92                 
     93                 
     94    printPositiveTestHeader( stdout,
     95                             "psStats functions",
     96                             "PS_STAT_ROBUST_STATS: robust Median: no vector mask" );
     97                             
     98    printf( "The expected Median was %.2f; the calculated Median was %.2f\n",
     99            realMedianNoMask, myStats->robustMedian );
     100    if ( fabs( myStats->robustMedian - realMedianNoMask ) < ( ERROR_TOLERANCE * realMedianNoMask ) ) {
     101            testStatus = true;
     102        } else {
     103            testStatus = false;
     104            globalTestStatus = false;
     105        }
     106    printFooter( stdout,
     107                 "psVector functions",
     108                 "PS_STAT_ROBUST_STATS: robust Median: no vector mask",
     109                 testStatus );
     110                 
     111    printPositiveTestHeader( stdout,
     112                             "psStats functions",
     113                             "PS_STAT_ROBUST_STATS: robust Mode: no vector mask" );
     114                             
     115                             
     116    printf( "The expected Mode was %.2f; the calculated Mode was %.2f\n",
     117            realModeNoMask, myStats->robustMode );
     118    if ( fabs( myStats->robustMode - realModeNoMask ) < ( ERROR_TOLERANCE * realModeNoMask ) ) {
     119            testStatus = true;
     120        } else {
     121            testStatus = false;
     122            globalTestStatus = false;
     123        }
     124    printFooter( stdout,
     125                 "psVector functions",
     126                 "PS_STAT_ROBUST_STATS: robust Mode: no vector mask",
     127                 testStatus );
     128                 
     129                 
     130                 
     131    printPositiveTestHeader( stdout,
     132                             "psStats functions",
     133                             "PS_STAT_ROBUST_STATS: robust Stdev: no vector mask" );
     134                             
     135    printf( "The expected Stdev was %.2f; the calculated Stdev was %.2f\n",
     136            realStdevNoMask, myStats->robustStdev );
     137    if ( fabs( myStats->robustStdev - realStdevNoMask ) < ( ERROR_TOLERANCE * realStdevNoMask ) ) {
     138            testStatus = true;
     139        } else {
     140            testStatus = false;
     141            globalTestStatus = false;
     142        }
     143    printFooter( stdout,
     144                 "psVector functions",
     145                 "PS_STAT_ROBUST_STATS: robust Stdev: no vector mask",
     146                 testStatus );
     147                 
     148                 
     149                 
     150    printPositiveTestHeader( stdout,
     151                             "psStats functions",
     152                             "PS_STAT_ROBUST_STATS: lower quartile: no vector mask" );
     153                             
     154    printf( "The expected LQ was %.2f; the calculated LQ was %.2f\n",
     155            realLQNoMask, myStats->robustLQ );
     156           
     157    if ( fabs( myStats->robustLQ - realLQNoMask ) < ( ERROR_TOLERANCE * realLQNoMask ) ) {
     158            testStatus = true;
     159        } else {
     160            testStatus = false;
     161            globalTestStatus = false;
     162        }
     163    printFooter( stdout,
     164                 "psVector functions",
     165                 "PS_STAT_ROBUST_STATS: lower quartile: no vector mask",
     166                 testStatus );
     167                 
     168                 
     169                 
     170    printPositiveTestHeader( stdout,
     171                             "psStats functions",
     172                             "PS_STAT_ROBUST_STATS: upper quartile: no vector mask" );
     173                             
     174    printf( "The expected UQ was %.2f; the calculated UQ was %.2f\n",
     175            realUQNoMask, myStats->robustUQ );
     176    if ( fabs( myStats->robustUQ - realUQNoMask ) < ( ERROR_TOLERANCE * realUQNoMask ) ) {
     177            testStatus = true;
     178        } else {
     179            testStatus = false;
     180            globalTestStatus = false;
     181        }
     182    printFooter( stdout,
     183                 "psVector functions",
     184                 "PS_STAT_ROBUST_STATS: lower quartile: no vector mask",
     185                 testStatus );
     186                 
     187                 
     188                 
     189    printPositiveTestHeader( stdout,
     190                             "psStats functions",
     191                             "PS_STAT_ROBUST_STATS: robust N50: no vector mask" );
     192                             
    193193    // XXX:
    194194    realN50NoMask = myStats->robustN50;
    195 
    196     printf("The expected N50 was %f; the calculated N50 was %f\n",
    197            realN50NoMask, myStats->robustN50);
    198     if (fabs(myStats->robustN50 - realN50NoMask) < (ERROR_TOLERANCE * realN50NoMask)) {
    199         testStatus = true;
    200     } else {
    201         testStatus = false;
    202         globalTestStatus = false;
    203     }
    204     printFooter(stdout,
    205                 "psVector functions",
    206                 "PS_STAT_ROBUST_STATS: robust N50: no vector mask",
    207                 testStatus);
    208 
    209 
    210 
    211     printPositiveTestHeader(stdout,
    212                             "psStats functions",
    213                             "PS_STAT_ROBUST_STATS: robust Nfit: no vector mask");
    214 
     195   
     196    printf( "The expected N50 was %.2f; the calculated N50 was %.2f\n",
     197            realN50NoMask, myStats->robustN50 );
     198    if ( fabs( myStats->robustN50 - realN50NoMask ) < ( ERROR_TOLERANCE * realN50NoMask ) ) {
     199            testStatus = true;
     200        } else {
     201            testStatus = false;
     202            globalTestStatus = false;
     203        }
     204    printFooter( stdout,
     205                 "psVector functions",
     206                 "PS_STAT_ROBUST_STATS: robust N50: no vector mask",
     207                 testStatus );
     208                 
     209                 
     210                 
     211    printPositiveTestHeader( stdout,
     212                             "psStats functions",
     213                             "PS_STAT_ROBUST_STATS: robust Nfit: no vector mask" );
     214                             
    215215    // XXX:
    216216    realNfitNoMask = myStats->robustNfit;
    217 
    218     printf("The expected Nfit was %f; the calculated Nfit was %f\n",
    219            realNfitNoMask, myStats->robustNfit);
    220     if (fabs(myStats->robustNfit - realNfitNoMask) < (ERROR_TOLERANCE * realNfitNoMask)) {
    221         testStatus = true;
    222     } else {
    223         testStatus = false;
    224         globalTestStatus = false;
    225     }
    226     printFooter(stdout,
    227                 "psVector functions",
    228                 "PS_STAT_ROBUST_STATS: robust Nfit: no vector mask",
    229                 testStatus);
    230 
    231 
    232     return(0);
    233 
     217   
     218    printf( "The expected Nfit was %.2f; the calculated Nfit was %.2f\n",
     219            realNfitNoMask, myStats->robustNfit );
     220    if ( fabs( myStats->robustNfit - realNfitNoMask ) < ( ERROR_TOLERANCE * realNfitNoMask ) ) {
     221            testStatus = true;
     222        } else {
     223            testStatus = false;
     224            globalTestStatus = false;
     225        }
     226    printFooter( stdout,
     227                 "psVector functions",
     228                 "PS_STAT_ROBUST_STATS: robust Nfit: no vector mask",
     229                 testStatus );
     230                 
     231                 
     232    return ( 0 );
     233   
    234234    /*************************************************************************/
    235235    /*  Call psVectorStats() with vector mask.                               */
    236236    /*************************************************************************/
    237     printPositiveTestHeader(stdout,
    238                             "psStats functions",
    239                             "PS_STAT_ROBUST_STATS: robust mean: with vector mask");
    240 
    241     printf("Calling psVectorStats() on a vector with elements masked.\n");
    242     myStats = psVectorStats(myStats, myVector, maskVector, 1);
    243     printf("Called psVectorStats() on a vector with elements masked.\n");
    244     printf("The expected Mean was %f; the calculated Mean was %f\n",
    245            realMeanWithMask, myStats->robustMean);
    246     if (fabs(myStats->robustMean - realMeanWithMask) < (ERROR_TOLERANCE * realMeanWithMask)) {
    247         testStatus = true;
    248     } else {
    249         testStatus = false;
    250         globalTestStatus = false;
    251     }
    252     printFooter(stdout,
    253                 "psVector functions",
    254                 "PS_STAT_ROBUST_STATS: robust mean: with vector mask",
    255                 testStatus);
    256 
    257 
    258 
    259     printPositiveTestHeader(stdout,
    260                             "psStats functions",
    261                             "PS_STAT_ROBUST_STATS: robust Median: with vector mask");
    262 
    263     printf("The expected Median was %f; the calculated Median was %f\n",
    264            realMedianWithMask, myStats->robustMedian);
    265     if (fabs(myStats->robustMedian - realMedianWithMask) < (ERROR_TOLERANCE * realMedianWithMask)) {
    266         testStatus = true;
    267     } else {
    268         testStatus = false;
    269         globalTestStatus = false;
    270     }
    271     printFooter(stdout,
    272                 "psVector functions",
    273                 "PS_STAT_ROBUST_STATS: robust Median: with vector mask",
    274                 testStatus);
    275 
    276 
    277 
    278     printPositiveTestHeader(stdout,
    279                             "psStats functions",
    280                             "PS_STAT_ROBUST_STATS: robust Mode: with vector mask");
    281 
    282     printf("The expected Mode was %f; the calculated Mode was %f\n",
    283            realModeWithMask, myStats->robustMode);
    284     if (fabs(myStats->robustMode - realModeWithMask) < (ERROR_TOLERANCE * realModeWithMask)) {
    285         testStatus = true;
    286     } else {
    287         testStatus = false;
    288         globalTestStatus = false;
    289     }
    290     printFooter(stdout,
    291                 "psVector functions",
    292                 "PS_STAT_ROBUST_STATS: robust Mode: with vector mask",
    293                 testStatus);
    294 
    295 
    296 
    297     printPositiveTestHeader(stdout,
    298                             "psStats functions",
    299                             "PS_STAT_ROBUST_STATS: robust Stdev: with vector mask");
    300 
    301     printf("The expected Stdev was %f; the calculated Stdev was %f\n",
    302            realStdevWithMask, myStats->robustStdev);
    303     if (fabs(myStats->robustStdev - realStdevWithMask) < (ERROR_TOLERANCE * realStdevWithMask)) {
    304         testStatus = true;
    305     } else {
    306         testStatus = false;
    307         globalTestStatus = false;
    308     }
    309     printFooter(stdout,
    310                 "psVector functions",
    311                 "PS_STAT_ROBUST_STATS: robust Stdev: with vector mask",
    312                 testStatus);
    313 
    314 
    315 
    316     printPositiveTestHeader(stdout,
    317                             "psStats functions",
    318                             "PS_STAT_ROBUST_STATS: lower quartile: with vector mask");
    319 
    320     printf("The expected LQ was %f; the calculated LQ was %f\n",
    321            realLQWithMask, myStats->robustLQ);
    322     if (fabs(myStats->robustLQ - realLQWithMask) < (ERROR_TOLERANCE * realLQWithMask)) {
    323         testStatus = true;
    324     } else {
    325         testStatus = false;
    326         globalTestStatus = false;
    327     }
    328     printFooter(stdout,
    329                 "psVector functions",
    330                 "PS_STAT_ROBUST_STATS: lower quartile: with vector mask",
    331                 testStatus);
    332 
    333 
    334 
    335     printPositiveTestHeader(stdout,
    336                             "psStats functions",
    337                             "PS_STAT_ROBUST_STATS: upper quartile: with vector mask");
    338 
    339     printf("The expected UQ was %f; the calculated UQ was %f\n",
    340            realUQWithMask, myStats->robustUQ);
    341     if (fabs(myStats->robustUQ - realUQWithMask) < (ERROR_TOLERANCE * realUQWithMask)) {
    342         testStatus = true;
    343     } else {
    344         testStatus = false;
    345         globalTestStatus = false;
    346     }
    347     printFooter(stdout,
    348                 "psVector functions",
    349                 "PS_STAT_ROBUST_STATS: lower quartile: with vector mask",
    350                 testStatus);
    351 
    352 
    353 
    354     printPositiveTestHeader(stdout,
    355                             "psStats functions",
    356                             "PS_STAT_ROBUST_STATS: robust N50: with vector mask");
    357 
    358     printf("The expected N50 was %f; the calculated N50 was %f\n",
    359            realN50WithMask, myStats->robustN50);
    360     if (fabs(myStats->robustN50 - realN50WithMask) < (ERROR_TOLERANCE * realN50WithMask)) {
    361         testStatus = true;
    362     } else {
    363         testStatus = false;
    364         globalTestStatus = false;
    365     }
    366     printFooter(stdout,
    367                 "psVector functions",
    368                 "PS_STAT_ROBUST_STATS: robust N50: with vector mask",
    369                 testStatus);
    370 
    371 
    372 
    373     printPositiveTestHeader(stdout,
    374                             "psStats functions",
    375                             "PS_STAT_ROBUST_STATS: robust Nfit: with vector mask");
    376 
    377     printf("The expected Nfit was %f; the calculated Nfit was %f\n",
    378            realNfitWithMask, myStats->robustNfit);
    379     if (fabs(myStats->robustNfit - realNfitWithMask) < (ERROR_TOLERANCE * realNfitWithMask)) {
    380         testStatus = true;
    381     } else {
    382         testStatus = false;
    383         globalTestStatus = false;
    384     }
    385     printFooter(stdout,
    386                 "psVector functions",
    387                 "PS_STAT_ROBUST_STATS: robust Nfit: with vector mask",
    388                 testStatus);
    389 
    390 
    391 
     237    printPositiveTestHeader( stdout,
     238                             "psStats functions",
     239                             "PS_STAT_ROBUST_STATS: robust mean: with vector mask" );
     240                             
     241    printf( "Calling psVectorStats() on a vector with elements masked.\n" );
     242    myStats = psVectorStats( myStats, myVector, maskVector, 1 );
     243    printf( "Called psVectorStats() on a vector with elements masked.\n" );
     244    printf( "The expected Mean was %.2f; the calculated Mean was %.2f\n",
     245            realMeanWithMask, myStats->robustMean );
     246    if ( fabs( myStats->robustMean - realMeanWithMask ) < ( ERROR_TOLERANCE * realMeanWithMask ) ) {
     247            testStatus = true;
     248        } else {
     249            testStatus = false;
     250            globalTestStatus = false;
     251        }
     252    printFooter( stdout,
     253                 "psVector functions",
     254                 "PS_STAT_ROBUST_STATS: robust mean: with vector mask",
     255                 testStatus );
     256                 
     257                 
     258                 
     259    printPositiveTestHeader( stdout,
     260                             "psStats functions",
     261                             "PS_STAT_ROBUST_STATS: robust Median: with vector mask" );
     262                             
     263    printf( "The expected Median was %.2f; the calculated Median was %.2f\n",
     264            realMedianWithMask, myStats->robustMedian );
     265    if ( fabs( myStats->robustMedian - realMedianWithMask ) < ( ERROR_TOLERANCE * realMedianWithMask ) ) {
     266            testStatus = true;
     267        } else {
     268            testStatus = false;
     269            globalTestStatus = false;
     270        }
     271    printFooter( stdout,
     272                 "psVector functions",
     273                 "PS_STAT_ROBUST_STATS: robust Median: with vector mask",
     274                 testStatus );
     275                 
     276                 
     277                 
     278    printPositiveTestHeader( stdout,
     279                             "psStats functions",
     280                             "PS_STAT_ROBUST_STATS: robust Mode: with vector mask" );
     281                             
     282    printf( "The expected Mode was %.2f; the calculated Mode was %.2f\n",
     283            realModeWithMask, myStats->robustMode );
     284    if ( fabs( myStats->robustMode - realModeWithMask ) < ( ERROR_TOLERANCE * realModeWithMask ) ) {
     285            testStatus = true;
     286        } else {
     287            testStatus = false;
     288            globalTestStatus = false;
     289        }
     290    printFooter( stdout,
     291                 "psVector functions",
     292                 "PS_STAT_ROBUST_STATS: robust Mode: with vector mask",
     293                 testStatus );
     294                 
     295                 
     296                 
     297    printPositiveTestHeader( stdout,
     298                             "psStats functions",
     299                             "PS_STAT_ROBUST_STATS: robust Stdev: with vector mask" );
     300                             
     301    printf( "The expected Stdev was %.2f; the calculated Stdev was %.2f\n",
     302            realStdevWithMask, myStats->robustStdev );
     303    if ( fabs( myStats->robustStdev - realStdevWithMask ) < ( ERROR_TOLERANCE * realStdevWithMask ) ) {
     304            testStatus = true;
     305        } else {
     306            testStatus = false;
     307            globalTestStatus = false;
     308        }
     309    printFooter( stdout,
     310                 "psVector functions",
     311                 "PS_STAT_ROBUST_STATS: robust Stdev: with vector mask",
     312                 testStatus );
     313                 
     314                 
     315                 
     316    printPositiveTestHeader( stdout,
     317                             "psStats functions",
     318                             "PS_STAT_ROBUST_STATS: lower quartile: with vector mask" );
     319                             
     320    printf( "The expected LQ was %.2f; the calculated LQ was %.2f\n",
     321            realLQWithMask, myStats->robustLQ );
     322    if ( fabs( myStats->robustLQ - realLQWithMask ) < ( ERROR_TOLERANCE * realLQWithMask ) ) {
     323            testStatus = true;
     324        } else {
     325            testStatus = false;
     326            globalTestStatus = false;
     327        }
     328    printFooter( stdout,
     329                 "psVector functions",
     330                 "PS_STAT_ROBUST_STATS: lower quartile: with vector mask",
     331                 testStatus );
     332                 
     333                 
     334                 
     335    printPositiveTestHeader( stdout,
     336                             "psStats functions",
     337                             "PS_STAT_ROBUST_STATS: upper quartile: with vector mask" );
     338                             
     339    printf( "The expected UQ was %.2f; the calculated UQ was %.2f\n",
     340            realUQWithMask, myStats->robustUQ );
     341    if ( fabs( myStats->robustUQ - realUQWithMask ) < ( ERROR_TOLERANCE * realUQWithMask ) ) {
     342            testStatus = true;
     343        } else {
     344            testStatus = false;
     345            globalTestStatus = false;
     346        }
     347    printFooter( stdout,
     348                 "psVector functions",
     349                 "PS_STAT_ROBUST_STATS: lower quartile: with vector mask",
     350                 testStatus );
     351                 
     352                 
     353                 
     354    printPositiveTestHeader( stdout,
     355                             "psStats functions",
     356                             "PS_STAT_ROBUST_STATS: robust N50: with vector mask" );
     357                             
     358    printf( "The expected N50 was %.2f; the calculated N50 was %.2f\n",
     359            realN50WithMask, myStats->robustN50 );
     360    if ( fabs( myStats->robustN50 - realN50WithMask ) < ( ERROR_TOLERANCE * realN50WithMask ) ) {
     361            testStatus = true;
     362        } else {
     363            testStatus = false;
     364            globalTestStatus = false;
     365        }
     366    printFooter( stdout,
     367                 "psVector functions",
     368                 "PS_STAT_ROBUST_STATS: robust N50: with vector mask",
     369                 testStatus );
     370                 
     371                 
     372                 
     373    printPositiveTestHeader( stdout,
     374                             "psStats functions",
     375                             "PS_STAT_ROBUST_STATS: robust Nfit: with vector mask" );
     376                             
     377    printf( "The expected Nfit was %.2f; the calculated Nfit was %.2f\n",
     378            realNfitWithMask, myStats->robustNfit );
     379    if ( fabs( myStats->robustNfit - realNfitWithMask ) < ( ERROR_TOLERANCE * realNfitWithMask ) ) {
     380            testStatus = true;
     381        } else {
     382            testStatus = false;
     383            globalTestStatus = false;
     384        }
     385    printFooter( stdout,
     386                 "psVector functions",
     387                 "PS_STAT_ROBUST_STATS: robust Nfit: with vector mask",
     388                 testStatus );
     389                 
     390                 
     391                 
    392392    /*************************************************************************/
    393393    /*  Deallocate data structures                                           */
    394394    /*************************************************************************/
    395     printPositiveTestHeader(stdout,
    396                             "psStats functions",
    397                             "psStats(): deallocating memory");
    398 
    399     psFree(myStats);
    400     psFree(myVector);
    401     psFree(maskVector);
    402 
    403     psMemCheckCorruption(1);
    404     memLeaks = psMemCheckLeaks(currentId,NULL,NULL);
    405     if (0 != memLeaks) {
    406         psAbort(__func__,"Memory Leaks! (%d leaks)", memLeaks);
    407     }
    408 
    409     printFooter(stdout,
    410                 "psVector functions",
    411                 "psStats(): deallocating memory",
    412                 testStatus);
    413 
    414     return (!globalTestStatus);
     395    printPositiveTestHeader( stdout,
     396                             "psStats functions",
     397                             "psStats(): deallocating memory" );
     398                             
     399    psFree( myStats );
     400    psFree( myVector );
     401    psFree( maskVector );
     402   
     403    psMemCheckCorruption( 1 );
     404    memLeaks = psMemCheckLeaks( currentId, NULL, NULL );
     405    if ( 0 != memLeaks ) {
     406            psAbort( __func__, "Memory Leaks! (%d leaks)", memLeaks );
     407        }
     408       
     409    printFooter( stdout,
     410                 "psVector functions",
     411                 "psStats(): deallocating memory",
     412                 testStatus );
     413                 
     414    return ( !globalTestStatus );
    415415}
  • trunk/psLib/test/dataManip/tst_psVectorFFT.c

    r1193 r1365  
    11/** @file  tst_psVectorFFT.c
    2  *
    3  *  @brief Contains the tests for psFFT.[ch]
    4  *
    5  *
    6  *  @author Robert DeSonia, MHPCC
    7  *
    8  *  @version $Revision: 1.3 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-07-08 01:05:01 $
    10  *
    11  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
    12  */
     2*
     3*  @brief Contains the tests for psFFT.[ch]
     4*
     5*
     6*  @author Robert DeSonia, MHPCC
     7*
     8*  @version $Revision: 1.4 $ $Name: not supported by cvs2svn $
     9*  @date $Date: 2004-08-02 19:43:23 $
     10*
     11*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     12*/
    1313
    1414#include <math.h>
     
    2121img = psImageAlloc(c,r,PS_TYPE_##TYP); \
    2222for (unsigned int row=0;row<r;row++) { \
    23     ps##TYP* imgRow = img->data.TYP[row]; \
    24     for (unsigned int col=0;col<c;col++) { \
    25         imgRow[col] = (ps##TYP)(valueFcn); \
    26     } \
    27 }
    28 
    29 static int testVectorFFT(void);
    30 static int testVectorRealImaginary(void);
    31 static int testVectorComplex(void);
    32 static int testVectorConjugate(void);
    33 static int testVectorPowerSpectrum(void);
     23        ps##TYP* imgRow = img->data.TYP[row]; \
     24        for (unsigned int col=0;col<c;col++) { \
     25                imgRow[col] = (ps##TYP)(valueFcn); \
     26            } \
     27    }
     28   
     29static int testVectorFFT( void );
     30static int testVectorRealImaginary( void );
     31static int testVectorComplex( void );
     32static int testVectorConjugate( void );
     33static int testVectorPowerSpectrum( void );
    3434
    3535testDescription tests[] = {
    36                               {testVectorFFT,600,"psVectorFFT",0,false},
    37                               {testVectorRealImaginary,601,"psVectorRealImaginary",0,false},
    38                               {testVectorComplex,602,"psVectorComplex",0,false},
    39                               {testVectorConjugate,603,"psVectorConjugate",0,false},
    40                               {testVectorPowerSpectrum,604,"psVectorPowerSpectrum",0,false},
    41                               {NULL}
     36                              {
     37                                  testVectorFFT, 600, "psVectorFFT", 0, false
     38                              },
     39                              {
     40                                  testVectorRealImaginary, 601, "psVectorRealImaginary", 0, false
     41                              },
     42                              {
     43                                  testVectorComplex, 602, "psVectorComplex", 0, false
     44                              },
     45                              {
     46                                  testVectorConjugate, 603, "psVectorConjugate", 0, false
     47                              },
     48                              {
     49                                  testVectorPowerSpectrum, 604, "psVectorPowerSpectrum", 0, false
     50                              },
     51                              {
     52                                  NULL
     53                              }
    4254                          };
    43 
    44 int main(int argc, char* argv[])
    45 {
    46     psLogSetLevel(PS_LOG_INFO);
    47 
    48     if (! runTestSuite(stderr,"psFFT",tests,argc,argv) ) {
    49         psAbort(__FILE__,"One or more tests failed");
    50     }
    51     return 0;
    52 }
    53 
    54 int testVectorFFT(void)
    55 {
    56     psVector* vec = NULL;
     55                         
     56int main( int argc, char* argv[] )
     57{
     58    psLogSetLevel( PS_LOG_INFO );
     59   
     60    return ( ! runTestSuite( stderr, "psFFT", tests, argc, argv ) );
     61}
     62
     63int testVectorFFT( void )
     64{
     65    psVector * vec = NULL;
    5766    psVector* vec2 = NULL;
    5867    psVector* vec3 = NULL;
    59 
     68   
    6069    /*
    6170    1. assign a vector to a sinisoid
     
    6574    5. compare to original (should be equal to within a reasonable error)
    6675    */
    67 
     76   
    6877    // 1. assign a vector to a sinisoid
    69     vec=psVectorAlloc(100,PS_TYPE_F32);
    70     vec->n = vec->nalloc;
    71     for (unsigned int n = 0; n<100; n++) {
    72         vec->data.F32[n] = sinf((psF32)n / 50.0f * M_PI);
    73     }
    74 
     78    vec = psVectorAlloc( 100, PS_TYPE_F32 );
     79    vec->n = vec->nalloc;
     80    for ( unsigned int n = 0; n < 100; n++ ) {
     81            vec->data.F32[ n ] = sinf( ( psF32 ) n / 50.0f * M_PI );
     82        }
     83       
    7584    // 2. perform a forward transform
    76     vec2 = psVectorFFT(NULL,vec,PS_FFT_FORWARD);
    77     if (vec2->type.type != PS_TYPE_C32) {
    78         psError(__func__,"FFT didn't produce complex values?");
    79         return 1;
    80     }
    81 
    82 
     85    vec2 = psVectorFFT( NULL, vec, PS_FFT_FORWARD );
     86    if ( vec2->type.type != PS_TYPE_C32 ) {
     87            psError( __func__, "FFT didn't produce complex values?" );
     88            return 1;
     89        }
     90       
     91       
    8392    // 3. verify that the only significant component cooresponds to the freqency of the input in step 1.
    84     for (unsigned int n = 0; n<100; n++) {
    85         if (n==1 || n==99) {
    86             if (fabsf(cabsf(vec2->data.C32[n]) - 50.0f) > 0.1f) {
    87                 psError(__func__,"FFT didn't work for vector (n=%d)",n);
    88                 return 2;
    89             }
    90         } else {
    91             if (fabsf(cabsf(vec2->data.C32[n])) > 0.1f) {
    92                 psError(__func__,"FFT didn't work for vector (n=%d)",n);
    93                 return 3;
    94             }
    95         }
    96     }
    97 
     93    for ( unsigned int n = 0; n < 100; n++ ) {
     94            if ( n == 1 || n == 99 ) {
     95                    if ( fabsf( cabsf( vec2->data.C32[ n ] ) - 50.0f ) > 0.1f ) {
     96                            psError( __func__, "FFT didn't work for vector (n=%d)", n );
     97                            return 2;
     98                        }
     99                } else {
     100                    if ( fabsf( cabsf( vec2->data.C32[ n ] ) ) > 0.1f ) {
     101                            psError( __func__, "FFT didn't work for vector (n=%d)", n );
     102                            return 3;
     103                        }
     104                }
     105        }
     106       
    98107    // 4. perform a reverse transform
    99     vec3 = psVectorFFT(NULL,vec2,PS_FFT_REVERSE);
    100     if (vec3->type.type != PS_TYPE_C32) {
    101         psError(__func__,"FFT didn't produce complex values?");
    102         return 4;
    103     }
    104     for (unsigned int n = 0; n<100; n++) {
    105         psF32 val =sinf((psF32)n / 50.0f * M_PI);
    106         psF32 vecVal = crealf(vec3->data.C32[n])/100;
    107         if (fabsf(vecVal - val) > 0.1f) {
    108             psError(__func__,"Reverse FFT didn't give me the original vector back (n=%d) (%.2f vs %.2f)",
    109                     n,vecVal,val);
    110             return 5;
    111         }
    112     }
    113 
    114     psFree(vec);
    115     psFree(vec2);
    116     psFree(vec3);
    117 
    118     return 0;
    119 }
    120 
    121 int testVectorRealImaginary(void)
    122 {
    123     psVector* vec = NULL;
     108    vec3 = psVectorFFT( NULL, vec2, PS_FFT_REVERSE );
     109    if ( vec3->type.type != PS_TYPE_C32 ) {
     110            psError( __func__, "FFT didn't produce complex values?" );
     111            return 4;
     112        }
     113    for ( unsigned int n = 0; n < 100; n++ ) {
     114            psF32 val = sinf( ( psF32 ) n / 50.0f * M_PI );
     115            psF32 vecVal = crealf( vec3->data.C32[ n ] ) / 100;
     116            if ( fabsf( vecVal - val ) > 0.1f ) {
     117                    psError( __func__, "Reverse FFT didn't give me the original vector back (n=%d) (%.2f vs %.2f)",
     118                             n, vecVal, val );
     119                    return 5;
     120                }
     121        }
     122       
     123    psFree( vec );
     124    psFree( vec2 );
     125    psFree( vec3 );
     126   
     127    return 0;
     128}
     129
     130int testVectorRealImaginary( void )
     131{
     132    psVector * vec = NULL;
    124133    psVector* vec2 = NULL;
    125134    psVector* vec3 = NULL;
    126 
     135   
    127136    /*
    128137    1. create a C32 complex vector with distinctly different real and imaginary parts.
     
    130139    3. compare results to the real/imaginary components of input
    131140    */
    132 
     141   
    133142    // 1. create a C32 complex vector with distinctly different real and imaginary parts.
    134     vec=psVectorAlloc(100,PS_TYPE_C32);
    135     vec->n = vec->nalloc;
    136     for (unsigned int n = 0; n<100; n++) {
    137         vec->data.C32[n] = n + I * (n*2);
    138     }
    139 
     143    vec = psVectorAlloc( 100, PS_TYPE_C32 );
     144    vec->n = vec->nalloc;
     145    for ( unsigned int n = 0; n < 100; n++ ) {
     146            vec->data.C32[ n ] = n + I * ( n * 2 );
     147        }
     148       
    140149    // 2. call psVectorReal and psVectorImaginary
    141     vec2 = psVectorReal(vec2,vec);
    142     if (vec2 == NULL) {
    143         psError(__func__,"psVectorReal returned a NULL?");
    144         return 1;
    145     }
    146     if (vec2->type.type != PS_TYPE_F32) {
    147         psError(__func__,"psVectorReal returned a wrong type (%d)?",
    148                 vec2->type.type);
    149         return 2;
    150     }
    151 
    152     vec3 = psVectorImaginary(vec3,vec);
    153     if (vec3 == NULL) {
    154         psError(__func__,"psVectorImaginary returned a NULL?");
    155         return 3;
    156     }
    157     if (vec3->type.type != PS_TYPE_F32) {
    158         psError(__func__,"psVectorImaginary returned a wrong type (%d)?",
    159                 vec3->type.type);
    160         return 4;
    161     }
    162 
     150    vec2 = psVectorReal( vec2, vec );
     151    if ( vec2 == NULL ) {
     152            psError( __func__, "psVectorReal returned a NULL?" );
     153            return 1;
     154        }
     155    if ( vec2->type.type != PS_TYPE_F32 ) {
     156            psError( __func__, "psVectorReal returned a wrong type (%d)?",
     157                     vec2->type.type );
     158            return 2;
     159        }
     160       
     161    vec3 = psVectorImaginary( vec3, vec );
     162    if ( vec3 == NULL ) {
     163            psError( __func__, "psVectorImaginary returned a NULL?" );
     164            return 3;
     165        }
     166    if ( vec3->type.type != PS_TYPE_F32 ) {
     167            psError( __func__, "psVectorImaginary returned a wrong type (%d)?",
     168                     vec3->type.type );
     169            return 4;
     170        }
     171       
    163172    // 3. compare results to the real/imaginary components of input
    164     for (unsigned int n = 0; n<100; n++) {
    165         psF32 r = n;
    166         psF32 i = (n*2);
    167         if (fabsf(vec2->data.F32[n] -r) > FLT_EPSILON) {
    168             psError(__func__,"psVectorReal didn't return the real portion at n=%d",
    169                     n);
    170             return 5;
    171         }
    172         if (fabsf(vec3->data.F32[n] -i) > FLT_EPSILON) {
    173             psError(__func__,"psVectorImaginary didn't return the real portion at n=%d",
    174                     n);
    175             return 6;
    176         }
    177     }
    178 
    179     psFree(vec);
    180     psFree(vec2);
    181     psFree(vec3);
    182 
    183     return 0;
    184 }
    185 
    186 int testVectorComplex(void)
    187 {
    188     psVector* vec = NULL;
     173    for ( unsigned int n = 0; n < 100; n++ ) {
     174            psF32 r = n;
     175            psF32 i = ( n * 2 );
     176            if ( fabsf( vec2->data.F32[ n ] - r ) > FLT_EPSILON ) {
     177                    psError( __func__, "psVectorReal didn't return the real portion at n=%d",
     178                             n );
     179                    return 5;
     180                }
     181            if ( fabsf( vec3->data.F32[ n ] - i ) > FLT_EPSILON ) {
     182                    psError( __func__, "psVectorImaginary didn't return the real portion at n=%d",
     183                             n );
     184                    return 6;
     185                }
     186        }
     187       
     188    psFree( vec );
     189    psFree( vec2 );
     190    psFree( vec3 );
     191   
     192    return 0;
     193}
     194
     195int testVectorComplex( void )
     196{
     197    psVector * vec = NULL;
    189198    psVector* vec2 = NULL;
    190199    psVector* vec3 = NULL;
    191 
     200   
    192201    /*
    193202    1. create two unique psF32 vectors of the same size
     
    196205    4. call psVectorReal and psVectorImaginary on step 2 results
    197206    5. compare step 4 results to input.
    198 
     207   
    199208    6. create a psF32 and a psF64 vector of the same size
    200209    7. call psVectorComplex
    201210    8. verify that an appropriate error occurred.
    202 
     211   
    203212    9. create two psf32 vectors of different sizes
    204213    10. call psVectorComplex
    205214    11. verify thet an appropriate error occurred.
    206215    */
    207 
     216   
    208217    // 1. create two unique psF32 vectors of the same size
    209     vec=psVectorAlloc(100,PS_TYPE_F32);
    210     vec2=psVectorAlloc(100,PS_TYPE_F32);
     218    vec = psVectorAlloc( 100, PS_TYPE_F32 );
     219    vec2 = psVectorAlloc( 100, PS_TYPE_F32 );
    211220    vec->n = vec->nalloc;
    212221    vec2->n = vec2->nalloc;
    213     for (unsigned int n = 0; n<100; n++) {
    214         vec->data.F32[n] = n;
    215         vec2->data.F32[n] = (n*2);
    216     }
    217 
     222    for ( unsigned int n = 0; n < 100; n++ ) {
     223            vec->data.F32[ n ] = n;
     224            vec2->data.F32[ n ] = ( n * 2 );
     225        }
     226       
    218227    // 2. call psVectorComplex
    219     vec3 = psVectorComplex(vec3,vec,vec2);
    220 
     228    vec3 = psVectorComplex( vec3, vec, vec2 );
     229   
    221230    // 3. verify that the result is a psC32
    222     if (vec3->type.type != PS_TYPE_C32) {
    223         psError(__func__,"Vector Type from psVectorComplex is not complex? (%d)",
    224                 vec3->type.type);
    225         return 1;
    226     }
    227 
     231    if ( vec3->type.type != PS_TYPE_C32 ) {
     232            psError( __func__, "Vector Type from psVectorComplex is not complex? (%d)",
     233                     vec3->type.type );
     234            return 1;
     235        }
     236       
    228237    // 4. call psVectorReal and psVectorImaginary on step 2 results (not needed, just use crealf/cimagf)
    229238    // 5. compare step 4 results to input.
    230     for (unsigned int n = 0; n<100; n++) {
    231         if (fabsf(crealf(vec3->data.C32[n]) - n) > FLT_EPSILON ||
    232                 fabsf(cimagf(vec3->data.C32[n]) - (n*2)) > FLT_EPSILON) {
    233             psError(__func__,"psVectorComplex result is invalid (n=%d, %.2f+%.2fi)",
    234                     n,crealf(vec3->data.C32[n]),cimagf(vec3->data.C32[n]));
    235             return 2;
    236         };
    237     }
    238 
    239 
     239    for ( unsigned int n = 0; n < 100; n++ ) {
     240            if ( fabsf( crealf( vec3->data.C32[ n ] ) - n ) > FLT_EPSILON ||
     241                    fabsf( cimagf( vec3->data.C32[ n ] ) - ( n * 2 ) ) > FLT_EPSILON ) {
     242                    psError( __func__, "psVectorComplex result is invalid (n=%d, %.2f+%.2fi)",
     243                             n, crealf( vec3->data.C32[ n ] ), cimagf( vec3->data.C32[ n ] ) );
     244                    return 2;
     245                };
     246        }
     247       
     248       
    240249    // 6. create a psF32 and a psF64 vector of the same size
    241     vec2 = psVectorRecycle(vec2,PS_TYPE_F64, 100);
    242 
     250    vec2 = psVectorRecycle( vec2, PS_TYPE_F64, 100 );
     251   
    243252    // 7. call psVectorComplex
    244     psLogMsg(__func__,PS_LOG_INFO, "Following should be an error (type mismatch).");
    245     vec3 = psVectorComplex(vec3,vec,vec2);
     253    psLogMsg( __func__, PS_LOG_INFO, "Following should be an error (type mismatch)." );
     254    vec3 = psVectorComplex( vec3, vec, vec2 );
    246255    // 8. verify that an appropriate error occurred. (this partially has to be done via inspection)
    247     if (vec3 != NULL) {
    248         psError(__func__,"psVectorComplex returned a vector though input types mismatched.");
    249         return 3;
    250     }
    251 
     256    if ( vec3 != NULL ) {
     257            psError( __func__, "psVectorComplex returned a vector though input types mismatched." );
     258            return 3;
     259        }
     260       
    252261    // 9. create two psf32 vectors of different sizes
    253     vec2 = psVectorRecycle(vec2,PS_TYPE_F32,200);
    254 
     262    vec2 = psVectorRecycle( vec2, PS_TYPE_F32, 200 );
     263   
    255264    // 10. call psVectorComplex
    256     vec3 = psVectorComplex(vec3,vec,vec2);
    257 
     265    vec3 = psVectorComplex( vec3, vec, vec2 );
     266   
    258267    // 11. verify thet an appropriate error occurred. (actually, it isn't an error...)
    259     if (vec3->n != 100) {
    260         psError(__func__,"psVectorComplex returned a vector though input sizes mismatched.");
    261         return 4;
    262     }
    263 
    264     psFree(vec);
    265     psFree(vec2);
    266     psFree(vec3);
    267 
    268     return 0;
    269 }
    270 
    271 int testVectorConjugate(void)
    272 {
    273     psVector* vec = NULL;
    274     psVector* vec2 = NULL;
    275 
     268    if ( vec3->n != 100 ) {
     269            psError( __func__, "psVectorComplex returned a larger vector than the input supported (%d).", vec3->n );
     270            return 4;
     271        }
     272       
     273    psFree( vec );
     274    psFree( vec2 );
     275    psFree( vec3 );
     276   
     277    return 0;
     278}
     279
     280int testVectorConjugate( void )
     281{
     282    psVector * vec = NULL;
     283    psVector* vec2 = NULL;
     284   
    276285    /*
    277286    1. create a psC32 with unique real and imaginary values.
     
    280289    4. verify each value is conjugate of input (a+bi -> a-bi)
    281290    */
    282 
     291   
    283292    // 1. create a psC32 with unique real and imaginary values.
    284     vec=psVectorAlloc(100,PS_TYPE_C32);
    285     vec->n = vec->nalloc;
    286     for (unsigned int n = 0; n<100; n++) {
    287         vec->data.C32[n] = n + I * (n*2);
    288     }
    289 
     293    vec = psVectorAlloc( 100, PS_TYPE_C32 );
     294    vec->n = vec->nalloc;
     295    for ( unsigned int n = 0; n < 100; n++ ) {
     296            vec->data.C32[ n ] = n + I * ( n * 2 );
     297        }
     298       
    290299    // 2. call psVectorConjugate
    291     vec2 = psVectorConjugate(vec2,vec);
    292 
     300    vec2 = psVectorConjugate( vec2, vec );
     301   
    293302    // 3. verify result is psC32
    294     if (vec2->type.type != PS_TYPE_C32) {
    295         psError(__func__,"the psVectorConjugate didn't return a C32 vector");
    296         return 1;
    297     }
    298 
     303    if ( vec2->type.type != PS_TYPE_C32 ) {
     304            psError( __func__, "the psVectorConjugate didn't return a C32 vector" );
     305            return 1;
     306        }
     307       
    299308    // 4. verify each value is conjugate of input (a+bi -> a-bi)
    300     for (unsigned int n = 0; n<100; n++) {
    301         if (fabsf(crealf(vec->data.C32[n]) - crealf(vec2->data.C32[n])) > FLT_EPSILON ||
    302                 fabsf(cimagf(vec->data.C32[n]) + cimagf(vec2->data.C32[n])) > FLT_EPSILON) {
    303             psError(__func__,"psVectorComplex result is invalid (n=%d, %.2f+%.2fi)",
    304                     n,crealf(vec2->data.C32[n]),cimagf(vec2->data.C32[n]));
    305             return 2;
    306         };
    307     }
    308 
    309     psFree(vec);
    310     psFree(vec2);
    311 
    312     return 0;
    313 }
    314 
    315 int testVectorPowerSpectrum(void)
    316 {
    317     psVector* vec = NULL;
     309    for ( unsigned int n = 0; n < 100; n++ ) {
     310            if ( fabsf( crealf( vec->data.C32[ n ] ) - crealf( vec2->data.C32[ n ] ) ) > FLT_EPSILON ||
     311                    fabsf( cimagf( vec->data.C32[ n ] ) + cimagf( vec2->data.C32[ n ] ) ) > FLT_EPSILON ) {
     312                    psError( __func__, "psVectorComplex result is invalid (n=%d, %.2f+%.2fi)",
     313                             n, crealf( vec2->data.C32[ n ] ), cimagf( vec2->data.C32[ n ] ) );
     314                    return 2;
     315                };
     316        }
     317       
     318    psFree( vec );
     319    psFree( vec2 );
     320   
     321    return 0;
     322}
     323
     324int testVectorPowerSpectrum( void )
     325{
     326    psVector * vec = NULL;
    318327    psVector* vec2 = NULL;
    319328    psF32 val;
    320 
     329   
    321330    /*
    322331    1. create a psC32 vector with unique real and imaginary components
     
    325334    4. verify the values are the square of the absolute values of the original
    326335    */
    327 
     336   
    328337    // 1. create a psC32 vector with unique real and imaginary components
    329     vec=psVectorAlloc(100,PS_TYPE_C32);
    330     vec->n = vec->nalloc;
    331     for (unsigned int n = 0; n<100; n++) {
    332         vec->data.C32[n] = n + I * sinf(((psF32)n) / 50.f * M_PI);
    333     }
    334 
     338    vec = psVectorAlloc( 100, PS_TYPE_C32 );
     339    vec->n = vec->nalloc;
     340    for ( unsigned int n = 0; n < 100; n++ ) {
     341            vec->data.C32[ n ] = n + I * sinf( ( ( psF32 ) n ) / 50.f * M_PI );
     342        }
     343       
    335344    // 2. call psVectorPowerSpectrum
    336     vec2 = psVectorPowerSpectrum(vec2,vec);
    337 
     345    vec2 = psVectorPowerSpectrum( vec2, vec );
     346   
    338347    // 3. verify result is psF32
    339     if (vec2->type.type != PS_TYPE_F32) {
    340         psError(__func__,"the type was not PS_TYPE_F32.");
    341         return 1;
    342     }
    343 
     348    if ( vec2->type.type != PS_TYPE_F32 ) {
     349            psError( __func__, "the type was not PS_TYPE_F32." );
     350            return 1;
     351        }
     352       
    344353    // 4. verify the values are the square of the absolute values of the original
    345354    //   (ADD specifies something else)
     
    348357    //   P_N/2 = |C_N/2|^2/N^2
    349358    //  where j = 1,2,...,(N/2-1)
    350 
    351     val = cabsf(vec->data.C32[0])*cabsf(vec->data.C32[0])/100/100;
    352     if (fabsf(vec2->data.F32[0] - val) > FLT_EPSILON) {
    353         psError(__func__,"psVectorPowerSpectrum result is invalid (n=0, %.2f %.2f)",
    354                 vec2->data.F32[0],val);
    355         return 2;
    356     };
    357 
    358     for (unsigned int n = 1; n<50; n++) {
    359         val = ( cabsf(vec->data.C32[n])*cabsf(vec->data.C32[n])+
    360                 cabsf(vec->data.C32[100-n])*cabsf(vec->data.C32[100-n]) ) /100/100;
    361 
    362         if (fabsf(val - vec2->data.F32[n]) > FLT_EPSILON) {
    363             psError(__func__,"psVectorPowerSpectrum result is invalid (n=%d, %.2f %.2f)",
    364                     n,vec2->data.F32[n],val);
     359   
     360    val = cabsf( vec->data.C32[ 0 ] ) * cabsf( vec->data.C32[ 0 ] ) / 100 / 100;
     361    if ( fabsf( vec2->data.F32[ 0 ] - val ) > FLT_EPSILON ) {
     362            psError( __func__, "psVectorPowerSpectrum result is invalid (n=0, %.2f %.2f)",
     363                     vec2->data.F32[ 0 ], val );
    365364            return 2;
    366365        };
    367     }
    368 
    369     val = cabsf(vec->data.C32[50])*cabsf(vec->data.C32[50])/100/100;
    370     if (fabsf(vec2->data.F32[50] - val) > FLT_EPSILON) {
    371         psError(__func__,"psVectorPowerSpectrum result is invalid (n=50, %.2f %.2f)",
    372                 vec2->data.F32[0],val);
    373         return 2;
    374     };
    375 
    376     psFree(vec);
    377     psFree(vec2);
    378 
    379     return 0;
    380 }
     366       
     367    for ( unsigned int n = 1; n < 50; n++ ) {
     368            val = ( cabsf( vec->data.C32[ n ] ) * cabsf( vec->data.C32[ n ] ) +
     369                    cabsf( vec->data.C32[ 100 - n ] ) * cabsf( vec->data.C32[ 100 - n ] ) ) / 100 / 100;
     370                   
     371            if ( fabsf( val - vec2->data.F32[ n ] ) > FLT_EPSILON ) {
     372                    psError( __func__, "psVectorPowerSpectrum result is invalid (n=%d, %.2f %.2f)",
     373                             n, vec2->data.F32[ n ], val );
     374                    return 2;
     375                };
     376        }
     377       
     378    val = cabsf( vec->data.C32[ 50 ] ) * cabsf( vec->data.C32[ 50 ] ) / 100 / 100;
     379    if ( fabsf( vec2->data.F32[ 50 ] - val ) > FLT_EPSILON ) {
     380            psError( __func__, "psVectorPowerSpectrum result is invalid (n=50, %.2f %.2f)",
     381                     vec2->data.F32[ 0 ], val );
     382            return 2;
     383        };
     384       
     385    psFree( vec );
     386    psFree( vec2 );
     387   
     388    return 0;
     389}
  • trunk/psLib/test/dataManip/verified/tst_psHist02.stdout

    r1323 r1365  
    55\**********************************************************************************/
    66
    7 Bin number 0 bounds: (20.000000 - 30.000000) data (10000)
     7Bin number 0 bounds: (20.00 - 30.00) data (10000)
    88
    99---> TESTPOINT PASSED (psStats functions{Allocate and Perform Histogram, no mask} | tst_psHist02.c)
     
    2525\**********************************************************************************/
    2626
    27 Bin number 0 bounds: (20.000000 - 25.000000) data (5000)
    28 Bin number 1 bounds: (25.000000 - 30.000000) data (5000)
     27Bin number 0 bounds: (20.00 - 25.00) data (5000)
     28Bin number 1 bounds: (25.00 - 30.00) data (5000)
    2929
    3030---> TESTPOINT PASSED (psStats functions{Allocate and Perform Histogram, no mask} | tst_psHist02.c)
     
    4747\**********************************************************************************/
    4848
    49 Bin number 0 bounds: (20.000000 - 21.000000) data (1000)
    50 Bin number 1 bounds: (21.000000 - 22.000000) data (1000)
    51 Bin number 2 bounds: (22.000000 - 23.000000) data (1000)
    52 Bin number 3 bounds: (23.000000 - 24.000000) data (1000)
    53 Bin number 4 bounds: (24.000000 - 25.000000) data (1000)
    54 Bin number 5 bounds: (25.000000 - 26.000000) data (1000)
    55 Bin number 6 bounds: (26.000000 - 27.000000) data (1000)
    56 Bin number 7 bounds: (27.000000 - 28.000000) data (1000)
    57 Bin number 8 bounds: (28.000000 - 29.000002) data (1000)
    58 Bin number 9 bounds: (29.000002 - 30.000002) data (1000)
     49Bin number 0 bounds: (20.00 - 21.00) data (1000)
     50Bin number 1 bounds: (21.00 - 22.00) data (1000)
     51Bin number 2 bounds: (22.00 - 23.00) data (1000)
     52Bin number 3 bounds: (23.00 - 24.00) data (1000)
     53Bin number 4 bounds: (24.00 - 25.00) data (1000)
     54Bin number 5 bounds: (25.00 - 26.00) data (1000)
     55Bin number 6 bounds: (26.00 - 27.00) data (1000)
     56Bin number 7 bounds: (27.00 - 28.00) data (1000)
     57Bin number 8 bounds: (28.00 - 29.00) data (1000)
     58Bin number 9 bounds: (29.00 - 30.00) data (1000)
    5959
    6060---> TESTPOINT PASSED (psStats functions{Allocate and Perform Histogram, no mask} | tst_psHist02.c)
     
    8585\**********************************************************************************/
    8686
    87 Bin number 0 bounds: (20.000000 - 20.500000) data (500)
    88 Bin number 1 bounds: (20.500000 - 21.000000) data (500)
    89 Bin number 2 bounds: (21.000000 - 21.500000) data (500)
    90 Bin number 3 bounds: (21.500000 - 22.000000) data (500)
    91 Bin number 4 bounds: (22.000000 - 22.500000) data (500)
    92 Bin number 5 bounds: (22.500000 - 23.000000) data (500)
    93 Bin number 6 bounds: (23.000000 - 23.500000) data (500)
    94 Bin number 7 bounds: (23.500000 - 24.000000) data (500)
    95 Bin number 8 bounds: (24.000000 - 24.500002) data (500)
    96 Bin number 9 bounds: (24.500002 - 25.000002) data (500)
    97 Bin number 10 bounds: (25.000002 - 25.500002) data (500)
    98 Bin number 11 bounds: (25.500002 - 26.000002) data (500)
    99 Bin number 12 bounds: (26.000002 - 26.500002) data (500)
    100 Bin number 13 bounds: (26.500002 - 27.000002) data (500)
    101 Bin number 14 bounds: (27.000002 - 27.500002) data (500)
    102 Bin number 15 bounds: (27.500002 - 28.000002) data (500)
    103 Bin number 16 bounds: (28.000002 - 28.500002) data (500)
    104 Bin number 17 bounds: (28.500002 - 29.000002) data (500)
    105 Bin number 18 bounds: (29.000002 - 29.500002) data (500)
    106 Bin number 19 bounds: (29.500002 - 30.000002) data (500)
     87Bin number 0 bounds: (20.00 - 20.50) data (500)
     88Bin number 1 bounds: (20.50 - 21.00) data (500)
     89Bin number 2 bounds: (21.00 - 21.50) data (500)
     90Bin number 3 bounds: (21.50 - 22.00) data (500)
     91Bin number 4 bounds: (22.00 - 22.50) data (500)
     92Bin number 5 bounds: (22.50 - 23.00) data (500)
     93Bin number 6 bounds: (23.00 - 23.50) data (500)
     94Bin number 7 bounds: (23.50 - 24.00) data (500)
     95Bin number 8 bounds: (24.00 - 24.50) data (500)
     96Bin number 9 bounds: (24.50 - 25.00) data (500)
     97Bin number 10 bounds: (25.00 - 25.50) data (500)
     98Bin number 11 bounds: (25.50 - 26.00) data (500)
     99Bin number 12 bounds: (26.00 - 26.50) data (500)
     100Bin number 13 bounds: (26.50 - 27.00) data (500)
     101Bin number 14 bounds: (27.00 - 27.50) data (500)
     102Bin number 15 bounds: (27.50 - 28.00) data (500)
     103Bin number 16 bounds: (28.00 - 28.50) data (500)
     104Bin number 17 bounds: (28.50 - 29.00) data (500)
     105Bin number 18 bounds: (29.00 - 29.50) data (500)
     106Bin number 19 bounds: (29.50 - 30.00) data (500)
    107107
    108108---> TESTPOINT PASSED (psStats functions{Allocate and Perform Histogram, no mask} | tst_psHist02.c)
  • trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic02.stdout

    r1246 r1365  
    3131Operation: abs
    3232Input:
    33 -10.000000 -10.000000
    34 -10.000000 -10.000000
    35 -10.000000 -10.000000
    36 
    37 0.000000 0.000000
    38 0.000000 0.000000
    39 0.000000 0.000000
    40 
    41 Output:
    42 10.000000 10.000000
    43 10.000000 10.000000
    44 10.000000 10.000000
     33-10.00 -10.00
     34-10.00 -10.00
     35-10.00 -10.00
     36
     370.00 0.00
     380.00 0.00
     390.00 0.00
     40
     41Output:
     4210.00 10.00
     4310.00 10.00
     4410.00 10.00
    4545
    4646
     
    5555Operation: abs
    5656Input:
    57 -10.000000 -10.000000
    58 -10.000000 -10.000000
    59 -10.000000 -10.000000
    60 
    61 0.000000 0.000000
    62 0.000000 0.000000
    63 0.000000 0.000000
    64 
    65 Output:
    66 10.000000 10.000000
    67 10.000000 10.000000
    68 10.000000 10.000000
     57-10.00 -10.00
     58-10.00 -10.00
     59-10.00 -10.00
     60
     610.00 0.00
     620.00 0.00
     630.00 0.00
     64
     65Output:
     6610.00 10.00
     6710.00 10.00
     6810.00 10.00
    6969
    7070
     
    7979Operation: abs
    8080Input:
    81 -10.000000+-10.000000i -10.000000+-10.000000i
    82 -10.000000+-10.000000i -10.000000+-10.000000i
    83 -10.000000+-10.000000i -10.000000+-10.000000i
    84 
    85 0.000000+0.000000i 0.000000+0.000000i
    86 0.000000+0.000000i 0.000000+0.000000i
    87 0.000000+0.000000i 0.000000+0.000000i
    88 
    89 Output:
    90 14.142136+0.000000i 14.142136+0.000000i
    91 14.142136+0.000000i 14.142136+0.000000i
    92 14.142136+0.000000i 14.142136+0.000000i
     81-10.00-10.00i -10.00-10.00i
     82-10.00-10.00i -10.00-10.00i
     83-10.00-10.00i -10.00-10.00i
     84
     850.00+0.00i 0.00+0.00i
     860.00+0.00i 0.00+0.00i
     870.00+0.00i 0.00+0.00i
     88
     89Output:
     9014.14+0.00i 14.14+0.00i
     9114.14+0.00i 14.14+0.00i
     9214.14+0.00i 14.14+0.00i
    9393
    9494
     
    127127Operation: exp
    128128Input:
    129 10.000000 10.000000
    130 10.000000 10.000000
    131 10.000000 10.000000
    132 
    133 0.000000 0.000000
    134 0.000000 0.000000
    135 0.000000 0.000000
    136 
    137 Output:
    138 22026.464844 22026.464844
    139 22026.464844 22026.464844
    140 22026.464844 22026.464844
     12910.00 10.00
     13010.00 10.00
     13110.00 10.00
     132
     1330.00 0.00
     1340.00 0.00
     1350.00 0.00
     136
     137Output:
     13822026.46 22026.46
     13922026.46 22026.46
     14022026.46 22026.46
    141141
    142142
     
    151151Operation: exp
    152152Input:
    153 10.000000 10.000000
    154 10.000000 10.000000
    155 10.000000 10.000000
    156 
    157 0.000000 0.000000
    158 0.000000 0.000000
    159 0.000000 0.000000
    160 
    161 Output:
    162 22026.465795 22026.465795
    163 22026.465795 22026.465795
    164 22026.465795 22026.465795
     15310.00 10.00
     15410.00 10.00
     15510.00 10.00
     156
     1570.00 0.00
     1580.00 0.00
     1590.00 0.00
     160
     161Output:
     16222026.47 22026.47
     16322026.47 22026.47
     16422026.47 22026.47
    165165
    166166
     
    175175Operation: exp
    176176Input:
    177 10.000000+10.000000i 10.000000+10.000000i
    178 10.000000+10.000000i 10.000000+10.000000i
    179 10.000000+10.000000i 10.000000+10.000000i
    180 
    181 0.000000+0.000000i 0.000000+0.000000i
    182 0.000000+0.000000i 0.000000+0.000000i
    183 0.000000+0.000000i 0.000000+0.000000i
    184 
    185 Output:
    186 -18481.781250+-11982.862305i -18481.781250+-11982.862305i
    187 -18481.781250+-11982.862305i -18481.781250+-11982.862305i
    188 -18481.781250+-11982.862305i -18481.781250+-11982.862305i
     17710.00+10.00i 10.00+10.00i
     17810.00+10.00i 10.00+10.00i
     17910.00+10.00i 10.00+10.00i
     180
     1810.00+0.00i 0.00+0.00i
     1820.00+0.00i 0.00+0.00i
     1830.00+0.00i 0.00+0.00i
     184
     185Output:
     186-18481.78-11982.86i -18481.78-11982.86i
     187-18481.78-11982.86i -18481.78-11982.86i
     188-18481.78-11982.86i -18481.78-11982.86i
    189189
    190190
     
    223223Operation: ln
    224224Input:
    225 10.000000 10.000000
    226 10.000000 10.000000
    227 10.000000 10.000000
    228 
    229 0.000000 0.000000
    230 0.000000 0.000000
    231 0.000000 0.000000
    232 
    233 Output:
    234 2.302585 2.302585
    235 2.302585 2.302585
    236 2.302585 2.302585
     22510.00 10.00
     22610.00 10.00
     22710.00 10.00
     228
     2290.00 0.00
     2300.00 0.00
     2310.00 0.00
     232
     233Output:
     2342.30 2.30
     2352.30 2.30
     2362.30 2.30
    237237
    238238
     
    247247Operation: ln
    248248Input:
    249 10.000000 10.000000
    250 10.000000 10.000000
    251 10.000000 10.000000
    252 
    253 0.000000 0.000000
    254 0.000000 0.000000
    255 0.000000 0.000000
    256 
    257 Output:
    258 2.302585 2.302585
    259 2.302585 2.302585
    260 2.302585 2.302585
     24910.00 10.00
     25010.00 10.00
     25110.00 10.00
     252
     2530.00 0.00
     2540.00 0.00
     2550.00 0.00
     256
     257Output:
     2582.30 2.30
     2592.30 2.30
     2602.30 2.30
    261261
    262262
     
    271271Operation: ln
    272272Input:
    273 10.000000+10.000000i 10.000000+10.000000i
    274 10.000000+10.000000i 10.000000+10.000000i
    275 10.000000+10.000000i 10.000000+10.000000i
    276 
    277 0.000000+0.000000i 0.000000+0.000000i
    278 0.000000+0.000000i 0.000000+0.000000i
    279 0.000000+0.000000i 0.000000+0.000000i
    280 
    281 Output:
    282 2.649159+0.785398i 2.649159+0.785398i
    283 2.649159+0.785398i 2.649159+0.785398i
    284 2.649159+0.785398i 2.649159+0.785398i
     27310.00+10.00i 10.00+10.00i
     27410.00+10.00i 10.00+10.00i
     27510.00+10.00i 10.00+10.00i
     276
     2770.00+0.00i 0.00+0.00i
     2780.00+0.00i 0.00+0.00i
     2790.00+0.00i 0.00+0.00i
     280
     281Output:
     2822.65+0.79i 2.65+0.79i
     2832.65+0.79i 2.65+0.79i
     2842.65+0.79i 2.65+0.79i
    285285
    286286
     
    319319Operation: ten
    320320Input:
    321 3.000000 3.000000
    322 3.000000 3.000000
    323 3.000000 3.000000
    324 
    325 0.000000 0.000000
    326 0.000000 0.000000
    327 0.000000 0.000000
    328 
    329 Output:
    330 1000.000000 1000.000000
    331 1000.000000 1000.000000
    332 1000.000000 1000.000000
     3213.00 3.00
     3223.00 3.00
     3233.00 3.00
     324
     3250.00 0.00
     3260.00 0.00
     3270.00 0.00
     328
     329Output:
     3301000.00 1000.00
     3311000.00 1000.00
     3321000.00 1000.00
    333333
    334334
     
    343343Operation: ten
    344344Input:
    345 3.000000 3.000000
    346 3.000000 3.000000
    347 3.000000 3.000000
    348 
    349 0.000000 0.000000
    350 0.000000 0.000000
    351 0.000000 0.000000
    352 
    353 Output:
    354 1000.000000 1000.000000
    355 1000.000000 1000.000000
    356 1000.000000 1000.000000
     3453.00 3.00
     3463.00 3.00
     3473.00 3.00
     348
     3490.00 0.00
     3500.00 0.00
     3510.00 0.00
     352
     353Output:
     3541000.00 1000.00
     3551000.00 1000.00
     3561000.00 1000.00
    357357
    358358
     
    367367Operation: ten
    368368Input:
    369 3.000000+3.000000i 3.000000+3.000000i
    370 3.000000+3.000000i 3.000000+3.000000i
    371 3.000000+3.000000i 3.000000+3.000000i
    372 
    373 0.000000+0.000000i 0.000000+0.000000i
    374 0.000000+0.000000i 0.000000+0.000000i
    375 0.000000+0.000000i 0.000000+0.000000i
    376 
    377 Output:
    378 811.214661+584.748474i 811.214661+584.748474i
    379 811.214661+584.748474i 811.214661+584.748474i
    380 811.214661+584.748474i 811.214661+584.748474i
     3693.00+3.00i 3.00+3.00i
     3703.00+3.00i 3.00+3.00i
     3713.00+3.00i 3.00+3.00i
     372
     3730.00+0.00i 0.00+0.00i
     3740.00+0.00i 0.00+0.00i
     3750.00+0.00i 0.00+0.00i
     376
     377Output:
     378811.21+584.75i 811.21+584.75i
     379811.21+584.75i 811.21+584.75i
     380811.21+584.75i 811.21+584.75i
    381381
    382382
     
    415415Operation: log
    416416Input:
    417 1000.000000 1000.000000
    418 1000.000000 1000.000000
    419 1000.000000 1000.000000
    420 
    421 0.000000 0.000000
    422 0.000000 0.000000
    423 0.000000 0.000000
    424 
    425 Output:
    426 3.000000 3.000000
    427 3.000000 3.000000
    428 3.000000 3.000000
     4171000.00 1000.00
     4181000.00 1000.00
     4191000.00 1000.00
     420
     4210.00 0.00
     4220.00 0.00
     4230.00 0.00
     424
     425Output:
     4263.00 3.00
     4273.00 3.00
     4283.00 3.00
    429429
    430430
     
    439439Operation: log
    440440Input:
    441 1000.000000 1000.000000
    442 1000.000000 1000.000000
    443 1000.000000 1000.000000
    444 
    445 0.000000 0.000000
    446 0.000000 0.000000
    447 0.000000 0.000000
    448 
    449 Output:
    450 3.000000 3.000000
    451 3.000000 3.000000
    452 3.000000 3.000000
     4411000.00 1000.00
     4421000.00 1000.00
     4431000.00 1000.00
     444
     4450.00 0.00
     4460.00 0.00
     4470.00 0.00
     448
     449Output:
     4503.00 3.00
     4513.00 3.00
     4523.00 3.00
    453453
    454454
     
    463463Operation: log
    464464Input:
    465 1000.000000+1000.000000i 1000.000000+1000.000000i
    466 1000.000000+1000.000000i 1000.000000+1000.000000i
    467 1000.000000+1000.000000i 1000.000000+1000.000000i
    468 
    469 0.000000+0.000000i 0.000000+0.000000i
    470 0.000000+0.000000i 0.000000+0.000000i
    471 0.000000+0.000000i 0.000000+0.000000i
    472 
    473 Output:
    474 3.150515+0.341094i 3.150515+0.341094i
    475 3.150515+0.341094i 3.150515+0.341094i
    476 3.150515+0.341094i 3.150515+0.341094i
     4651000.00+1000.00i 1000.00+1000.00i
     4661000.00+1000.00i 1000.00+1000.00i
     4671000.00+1000.00i 1000.00+1000.00i
     468
     4690.00+0.00i 0.00+0.00i
     4700.00+0.00i 0.00+0.00i
     4710.00+0.00i 0.00+0.00i
     472
     473Output:
     4743.15+0.34i 3.15+0.34i
     4753.15+0.34i 3.15+0.34i
     4763.15+0.34i 3.15+0.34i
    477477
    478478
     
    511511Operation: sin
    512512Input:
    513 1.570796 1.570796
    514 1.570796 1.570796
    515 1.570796 1.570796
    516 
    517 0.000000 0.000000
    518 0.000000 0.000000
    519 0.000000 0.000000
    520 
    521 Output:
    522 1.000000 1.000000
    523 1.000000 1.000000
    524 1.000000 1.000000
     5131.57 1.57
     5141.57 1.57
     5151.57 1.57
     516
     5170.00 0.00
     5180.00 0.00
     5190.00 0.00
     520
     521Output:
     5221.00 1.00
     5231.00 1.00
     5241.00 1.00
    525525
    526526
     
    535535Operation: sin
    536536Input:
    537 1.570796 1.570796
    538 1.570796 1.570796
    539 1.570796 1.570796
    540 
    541 0.000000 0.000000
    542 0.000000 0.000000
    543 0.000000 0.000000
    544 
    545 Output:
    546 1.000000 1.000000
    547 1.000000 1.000000
    548 1.000000 1.000000
     5371.57 1.57
     5381.57 1.57
     5391.57 1.57
     540
     5410.00 0.00
     5420.00 0.00
     5430.00 0.00
     544
     545Output:
     5461.00 1.00
     5471.00 1.00
     5481.00 1.00
    549549
    550550
     
    559559Operation: sin
    560560Input:
    561 1.570796+1.570796i 1.570796+1.570796i
    562 1.570796+1.570796i 1.570796+1.570796i
    563 1.570796+1.570796i 1.570796+1.570796i
    564 
    565 0.000000+0.000000i 0.000000+0.000000i
    566 0.000000+0.000000i 0.000000+0.000000i
    567 0.000000+0.000000i 0.000000+0.000000i
    568 
    569 Output:
    570 2.509179+-0.000000i 2.509179+-0.000000i
    571 2.509179+-0.000000i 2.509179+-0.000000i
    572 2.509179+-0.000000i 2.509179+-0.000000i
     5611.57+1.57i 1.57+1.57i
     5621.57+1.57i 1.57+1.57i
     5631.57+1.57i 1.57+1.57i
     564
     5650.00+0.00i 0.00+0.00i
     5660.00+0.00i 0.00+0.00i
     5670.00+0.00i 0.00+0.00i
     568
     569Output:
     5702.51-0.00i 2.51-0.00i
     5712.51-0.00i 2.51-0.00i
     5722.51-0.00i 2.51-0.00i
    573573
    574574
     
    607607Operation: dsin
    608608Input:
    609 90.000000 90.000000
    610 90.000000 90.000000
    611 90.000000 90.000000
    612 
    613 0.000000 0.000000
    614 0.000000 0.000000
    615 0.000000 0.000000
    616 
    617 Output:
    618 1.000000 1.000000
    619 1.000000 1.000000
    620 1.000000 1.000000
     60990.00 90.00
     61090.00 90.00
     61190.00 90.00
     612
     6130.00 0.00
     6140.00 0.00
     6150.00 0.00
     616
     617Output:
     6181.00 1.00
     6191.00 1.00
     6201.00 1.00
    621621
    622622
     
    631631Operation: dsin
    632632Input:
    633 90.000000 90.000000
    634 90.000000 90.000000
    635 90.000000 90.000000
    636 
    637 0.000000 0.000000
    638 0.000000 0.000000
    639 0.000000 0.000000
    640 
    641 Output:
    642 1.000000 1.000000
    643 1.000000 1.000000
    644 1.000000 1.000000
     63390.00 90.00
     63490.00 90.00
     63590.00 90.00
     636
     6370.00 0.00
     6380.00 0.00
     6390.00 0.00
     640
     641Output:
     6421.00 1.00
     6431.00 1.00
     6441.00 1.00
    645645
    646646
     
    655655Operation: dsin
    656656Input:
    657 90.000000+90.000000i 90.000000+90.000000i
    658 90.000000+90.000000i 90.000000+90.000000i
    659 90.000000+90.000000i 90.000000+90.000000i
    660 
    661 0.000000+0.000000i 0.000000+0.000000i
    662 0.000000+0.000000i 0.000000+0.000000i
    663 0.000000+0.000000i 0.000000+0.000000i
    664 
    665 Output:
    666 2.509178+0.000000i 2.509178+0.000000i
    667 2.509178+0.000000i 2.509178+0.000000i
    668 2.509178+0.000000i 2.509178+0.000000i
     65790.00+90.00i 90.00+90.00i
     65890.00+90.00i 90.00+90.00i
     65990.00+90.00i 90.00+90.00i
     660
     6610.00+0.00i 0.00+0.00i
     6620.00+0.00i 0.00+0.00i
     6630.00+0.00i 0.00+0.00i
     664
     665Output:
     6662.51-0.00i 2.51-0.00i
     6672.51-0.00i 2.51-0.00i
     6682.51-0.00i 2.51-0.00i
    669669
    670670
     
    703703Operation: cos
    704704Input:
    705 0.000000 0.000000
    706 0.000000 0.000000
    707 0.000000 0.000000
    708 
    709 0.000000 0.000000
    710 0.000000 0.000000
    711 0.000000 0.000000
    712 
    713 Output:
    714 1.000000 1.000000
    715 1.000000 1.000000
    716 1.000000 1.000000
     7050.00 0.00
     7060.00 0.00
     7070.00 0.00
     708
     7090.00 0.00
     7100.00 0.00
     7110.00 0.00
     712
     713Output:
     7141.00 1.00
     7151.00 1.00
     7161.00 1.00
    717717
    718718
     
    727727Operation: cos
    728728Input:
    729 0.000000 0.000000
    730 0.000000 0.000000
    731 0.000000 0.000000
    732 
    733 0.000000 0.000000
    734 0.000000 0.000000
    735 0.000000 0.000000
    736 
    737 Output:
    738 1.000000 1.000000
    739 1.000000 1.000000
    740 1.000000 1.000000
     7290.00 0.00
     7300.00 0.00
     7310.00 0.00
     732
     7330.00 0.00
     7340.00 0.00
     7350.00 0.00
     736
     737Output:
     7381.00 1.00
     7391.00 1.00
     7401.00 1.00
    741741
    742742
     
    751751Operation: cos
    752752Input:
    753 0.000000+0.000000i 0.000000+0.000000i
    754 0.000000+0.000000i 0.000000+0.000000i
    755 0.000000+0.000000i 0.000000+0.000000i
    756 
    757 0.000000+0.000000i 0.000000+0.000000i
    758 0.000000+0.000000i 0.000000+0.000000i
    759 0.000000+0.000000i 0.000000+0.000000i
    760 
    761 Output:
    762 1.000000+-0.000000i 1.000000+-0.000000i
    763 1.000000+-0.000000i 1.000000+-0.000000i
    764 1.000000+-0.000000i 1.000000+-0.000000i
     7530.00+0.00i 0.00+0.00i
     7540.00+0.00i 0.00+0.00i
     7550.00+0.00i 0.00+0.00i
     756
     7570.00+0.00i 0.00+0.00i
     7580.00+0.00i 0.00+0.00i
     7590.00+0.00i 0.00+0.00i
     760
     761Output:
     7621.00-0.00i 1.00-0.00i
     7631.00-0.00i 1.00-0.00i
     7641.00-0.00i 1.00-0.00i
    765765
    766766
     
    799799Operation: dcos
    800800Input:
    801 0.000000 0.000000
    802 0.000000 0.000000
    803 0.000000 0.000000
    804 
    805 0.000000 0.000000
    806 0.000000 0.000000
    807 0.000000 0.000000
    808 
    809 Output:
    810 1.000000 1.000000
    811 1.000000 1.000000
    812 1.000000 1.000000
     8010.00 0.00
     8020.00 0.00
     8030.00 0.00
     804
     8050.00 0.00
     8060.00 0.00
     8070.00 0.00
     808
     809Output:
     8101.00 1.00
     8111.00 1.00
     8121.00 1.00
    813813
    814814
     
    823823Operation: dcos
    824824Input:
    825 0.000000 0.000000
    826 0.000000 0.000000
    827 0.000000 0.000000
    828 
    829 0.000000 0.000000
    830 0.000000 0.000000
    831 0.000000 0.000000
    832 
    833 Output:
    834 1.000000 1.000000
    835 1.000000 1.000000
    836 1.000000 1.000000
     8250.00 0.00
     8260.00 0.00
     8270.00 0.00
     828
     8290.00 0.00
     8300.00 0.00
     8310.00 0.00
     832
     833Output:
     8341.00 1.00
     8351.00 1.00
     8361.00 1.00
    837837
    838838
     
    847847Operation: dcos
    848848Input:
    849 0.000000+0.000000i 0.000000+0.000000i
    850 0.000000+0.000000i 0.000000+0.000000i
    851 0.000000+0.000000i 0.000000+0.000000i
    852 
    853 0.000000+0.000000i 0.000000+0.000000i
    854 0.000000+0.000000i 0.000000+0.000000i
    855 0.000000+0.000000i 0.000000+0.000000i
    856 
    857 Output:
    858 1.000000+-0.000000i 1.000000+-0.000000i
    859 1.000000+-0.000000i 1.000000+-0.000000i
    860 1.000000+-0.000000i 1.000000+-0.000000i
     8490.00+0.00i 0.00+0.00i
     8500.00+0.00i 0.00+0.00i
     8510.00+0.00i 0.00+0.00i
     852
     8530.00+0.00i 0.00+0.00i
     8540.00+0.00i 0.00+0.00i
     8550.00+0.00i 0.00+0.00i
     856
     857Output:
     8581.00-0.00i 1.00-0.00i
     8591.00-0.00i 1.00-0.00i
     8601.00-0.00i 1.00-0.00i
    861861
    862862
     
    895895Operation: tan
    896896Input:
    897 0.785398 0.785398
    898 0.785398 0.785398
    899 0.785398 0.785398
    900 
    901 0.000000 0.000000
    902 0.000000 0.000000
    903 0.000000 0.000000
    904 
    905 Output:
    906 1.000000 1.000000
    907 1.000000 1.000000
    908 1.000000 1.000000
     8970.79 0.79
     8980.79 0.79
     8990.79 0.79
     900
     9010.00 0.00
     9020.00 0.00
     9030.00 0.00
     904
     905Output:
     9061.00 1.00
     9071.00 1.00
     9081.00 1.00
    909909
    910910
     
    919919Operation: tan
    920920Input:
    921 0.785398 0.785398
    922 0.785398 0.785398
    923 0.785398 0.785398
    924 
    925 0.000000 0.000000
    926 0.000000 0.000000
    927 0.000000 0.000000
    928 
    929 Output:
    930 1.000000 1.000000
    931 1.000000 1.000000
    932 1.000000 1.000000
     9210.79 0.79
     9220.79 0.79
     9230.79 0.79
     924
     9250.00 0.00
     9260.00 0.00
     9270.00 0.00
     928
     929Output:
     9301.00 1.00
     9311.00 1.00
     9321.00 1.00
    933933
    934934
     
    943943Operation: tan
    944944Input:
    945 0.785398+0.785398i 0.785398+0.785398i
    946 0.785398+0.785398i 0.785398+0.785398i
    947 0.785398+0.785398i 0.785398+0.785398i
    948 
    949 0.000000+0.000000i 0.000000+0.000000i
    950 0.000000+0.000000i 0.000000+0.000000i
    951 0.000000+0.000000i 0.000000+0.000000i
    952 
    953 Output:
    954 0.398537+0.917152i 0.398537+0.917152i
    955 0.398537+0.917152i 0.398537+0.917152i
    956 0.398537+0.917152i 0.398537+0.917152i
     9450.79+0.79i 0.79+0.79i
     9460.79+0.79i 0.79+0.79i
     9470.79+0.79i 0.79+0.79i
     948
     9490.00+0.00i 0.00+0.00i
     9500.00+0.00i 0.00+0.00i
     9510.00+0.00i 0.00+0.00i
     952
     953Output:
     9540.40+0.92i 0.40+0.92i
     9550.40+0.92i 0.40+0.92i
     9560.40+0.92i 0.40+0.92i
    957957
    958958
     
    991991Operation: dtan
    992992Input:
    993 45.000000 45.000000
    994 45.000000 45.000000
    995 45.000000 45.000000
    996 
    997 0.000000 0.000000
    998 0.000000 0.000000
    999 0.000000 0.000000
    1000 
    1001 Output:
    1002 1.000000 1.000000
    1003 1.000000 1.000000
    1004 1.000000 1.000000
     99345.00 45.00
     99445.00 45.00
     99545.00 45.00
     996
     9970.00 0.00
     9980.00 0.00
     9990.00 0.00
     1000
     1001Output:
     10021.00 1.00
     10031.00 1.00
     10041.00 1.00
    10051005
    10061006
     
    10151015Operation: dtan
    10161016Input:
    1017 45.000000 45.000000
    1018 45.000000 45.000000
    1019 45.000000 45.000000
    1020 
    1021 0.000000 0.000000
    1022 0.000000 0.000000
    1023 0.000000 0.000000
    1024 
    1025 Output:
    1026 1.000000 1.000000
    1027 1.000000 1.000000
    1028 1.000000 1.000000
     101745.00 45.00
     101845.00 45.00
     101945.00 45.00
     1020
     10210.00 0.00
     10220.00 0.00
     10230.00 0.00
     1024
     1025Output:
     10261.00 1.00
     10271.00 1.00
     10281.00 1.00
    10291029
    10301030
     
    10391039Operation: dtan
    10401040Input:
    1041 45.000000+45.000000i 45.000000+45.000000i
    1042 45.000000+45.000000i 45.000000+45.000000i
    1043 45.000000+45.000000i 45.000000+45.000000i
    1044 
    1045 0.000000+0.000000i 0.000000+0.000000i
    1046 0.000000+0.000000i 0.000000+0.000000i
    1047 0.000000+0.000000i 0.000000+0.000000i
    1048 
    1049 Output:
    1050 0.398537+0.917152i 0.398537+0.917152i
    1051 0.398537+0.917152i 0.398537+0.917152i
    1052 0.398537+0.917152i 0.398537+0.917152i
     104145.00+45.00i 45.00+45.00i
     104245.00+45.00i 45.00+45.00i
     104345.00+45.00i 45.00+45.00i
     1044
     10450.00+0.00i 0.00+0.00i
     10460.00+0.00i 0.00+0.00i
     10470.00+0.00i 0.00+0.00i
     1048
     1049Output:
     10500.40+0.92i 0.40+0.92i
     10510.40+0.92i 0.40+0.92i
     10520.40+0.92i 0.40+0.92i
    10531053
    10541054
     
    10871087Operation: asin
    10881088Input:
    1089 1.000000 1.000000
    1090 1.000000 1.000000
    1091 1.000000 1.000000
    1092 
    1093 0.000000 0.000000
    1094 0.000000 0.000000
    1095 0.000000 0.000000
    1096 
    1097 Output:
    1098 1.570796 1.570796
    1099 1.570796 1.570796
    1100 1.570796 1.570796
     10891.00 1.00
     10901.00 1.00
     10911.00 1.00
     1092
     10930.00 0.00
     10940.00 0.00
     10950.00 0.00
     1096
     1097Output:
     10981.57 1.57
     10991.57 1.57
     11001.57 1.57
    11011101
    11021102
     
    11111111Operation: asin
    11121112Input:
    1113 1.000000 1.000000
    1114 1.000000 1.000000
    1115 1.000000 1.000000
    1116 
    1117 0.000000 0.000000
    1118 0.000000 0.000000
    1119 0.000000 0.000000
    1120 
    1121 Output:
    1122 1.570796 1.570796
    1123 1.570796 1.570796
    1124 1.570796 1.570796
     11131.00 1.00
     11141.00 1.00
     11151.00 1.00
     1116
     11170.00 0.00
     11180.00 0.00
     11190.00 0.00
     1120
     1121Output:
     11221.57 1.57
     11231.57 1.57
     11241.57 1.57
    11251125
    11261126
     
    11351135Operation: asin
    11361136Input:
    1137 1.000000+1.000000i 1.000000+1.000000i
    1138 1.000000+1.000000i 1.000000+1.000000i
    1139 1.000000+1.000000i 1.000000+1.000000i
    1140 
    1141 0.000000+0.000000i 0.000000+0.000000i
    1142 0.000000+0.000000i 0.000000+0.000000i
    1143 0.000000+0.000000i 0.000000+0.000000i
    1144 
    1145 Output:
    1146 0.666239+1.061275i 0.666239+1.061275i
    1147 0.666239+1.061275i 0.666239+1.061275i
    1148 0.666239+1.061275i 0.666239+1.061275i
     11371.00+1.00i 1.00+1.00i
     11381.00+1.00i 1.00+1.00i
     11391.00+1.00i 1.00+1.00i
     1140
     11410.00+0.00i 0.00+0.00i
     11420.00+0.00i 0.00+0.00i
     11430.00+0.00i 0.00+0.00i
     1144
     1145Output:
     11460.67+1.06i 0.67+1.06i
     11470.67+1.06i 0.67+1.06i
     11480.67+1.06i 0.67+1.06i
    11491149
    11501150
     
    11681168
    11691169Output:
    1170 89 89
    1171 89 89
    1172 89 89
     117090 90
     117190 90
     117290 90
    11731173
    11741174
     
    11831183Operation: dasin
    11841184Input:
    1185 1.000000 1.000000
    1186 1.000000 1.000000
    1187 1.000000 1.000000
    1188 
    1189 0.000000 0.000000
    1190 0.000000 0.000000
    1191 0.000000 0.000000
    1192 
    1193 Output:
    1194 90.000000 90.000000
    1195 90.000000 90.000000
    1196 90.000000 90.000000
     11851.00 1.00
     11861.00 1.00
     11871.00 1.00
     1188
     11890.00 0.00
     11900.00 0.00
     11910.00 0.00
     1192
     1193Output:
     119490.00 90.00
     119590.00 90.00
     119690.00 90.00
    11971197
    11981198
     
    12071207Operation: dasin
    12081208Input:
    1209 1.000000 1.000000
    1210 1.000000 1.000000
    1211 1.000000 1.000000
    1212 
    1213 0.000000 0.000000
    1214 0.000000 0.000000
    1215 0.000000 0.000000
    1216 
    1217 Output:
    1218 90.000000 90.000000
    1219 90.000000 90.000000
    1220 90.000000 90.000000
     12091.00 1.00
     12101.00 1.00
     12111.00 1.00
     1212
     12130.00 0.00
     12140.00 0.00
     12150.00 0.00
     1216
     1217Output:
     121890.00 90.00
     121990.00 90.00
     122090.00 90.00
    12211221
    12221222
     
    12311231Operation: dasin
    12321232Input:
    1233 1.000000+1.000000i 1.000000+1.000000i
    1234 1.000000+1.000000i 1.000000+1.000000i
    1235 1.000000+1.000000i 1.000000+1.000000i
    1236 
    1237 0.000000+0.000000i 0.000000+0.000000i
    1238 0.000000+0.000000i 0.000000+0.000000i
    1239 0.000000+0.000000i 0.000000+0.000000i
    1240 
    1241 Output:
    1242 38.172707+60.806583i 38.172707+60.806583i
    1243 38.172707+60.806583i 38.172707+60.806583i
    1244 38.172707+60.806583i 38.172707+60.806583i
     12331.00+1.00i 1.00+1.00i
     12341.00+1.00i 1.00+1.00i
     12351.00+1.00i 1.00+1.00i
     1236
     12370.00+0.00i 0.00+0.00i
     12380.00+0.00i 0.00+0.00i
     12390.00+0.00i 0.00+0.00i
     1240
     1241Output:
     124238.17+60.81i 38.17+60.81i
     124338.17+60.81i 38.17+60.81i
     124438.17+60.81i 38.17+60.81i
    12451245
    12461246
     
    12791279Operation: acos
    12801280Input:
    1281 0.000000 0.000000
    1282 0.000000 0.000000
    1283 0.000000 0.000000
    1284 
    1285 0.000000 0.000000
    1286 0.000000 0.000000
    1287 0.000000 0.000000
    1288 
    1289 Output:
    1290 1.570796 1.570796
    1291 1.570796 1.570796
    1292 1.570796 1.570796
     12810.00 0.00
     12820.00 0.00
     12830.00 0.00
     1284
     12850.00 0.00
     12860.00 0.00
     12870.00 0.00
     1288
     1289Output:
     12901.57 1.57
     12911.57 1.57
     12921.57 1.57
    12931293
    12941294
     
    13031303Operation: acos
    13041304Input:
    1305 0.000000 0.000000
    1306 0.000000 0.000000
    1307 0.000000 0.000000
    1308 
    1309 0.000000 0.000000
    1310 0.000000 0.000000
    1311 0.000000 0.000000
    1312 
    1313 Output:
    1314 1.570796 1.570796
    1315 1.570796 1.570796
    1316 1.570796 1.570796
     13050.00 0.00
     13060.00 0.00
     13070.00 0.00
     1308
     13090.00 0.00
     13100.00 0.00
     13110.00 0.00
     1312
     1313Output:
     13141.57 1.57
     13151.57 1.57
     13161.57 1.57
    13171317
    13181318
     
    13271327Operation: acos
    13281328Input:
    1329 0.000000+0.000000i 0.000000+0.000000i
    1330 0.000000+0.000000i 0.000000+0.000000i
    1331 0.000000+0.000000i 0.000000+0.000000i
    1332 
    1333 0.000000+0.000000i 0.000000+0.000000i
    1334 0.000000+0.000000i 0.000000+0.000000i
    1335 0.000000+0.000000i 0.000000+0.000000i
    1336 
    1337 Output:
    1338 1.570796+-0.000000i 1.570796+-0.000000i
    1339 1.570796+-0.000000i 1.570796+-0.000000i
    1340 1.570796+-0.000000i 1.570796+-0.000000i
     13290.00+0.00i 0.00+0.00i
     13300.00+0.00i 0.00+0.00i
     13310.00+0.00i 0.00+0.00i
     1332
     13330.00+0.00i 0.00+0.00i
     13340.00+0.00i 0.00+0.00i
     13350.00+0.00i 0.00+0.00i
     1336
     1337Output:
     13381.57-0.00i 1.57-0.00i
     13391.57-0.00i 1.57-0.00i
     13401.57-0.00i 1.57-0.00i
    13411341
    13421342
     
    13601360
    13611361Output:
    1362 89 89
    1363 89 89
    1364 89 89
     136290 90
     136390 90
     136490 90
    13651365
    13661366
     
    13751375Operation: dacos
    13761376Input:
    1377 0.000000 0.000000
    1378 0.000000 0.000000
    1379 0.000000 0.000000
    1380 
    1381 0.000000 0.000000
    1382 0.000000 0.000000
    1383 0.000000 0.000000
    1384 
    1385 Output:
    1386 90.000000 90.000000
    1387 90.000000 90.000000
    1388 90.000000 90.000000
     13770.00 0.00
     13780.00 0.00
     13790.00 0.00
     1380
     13810.00 0.00
     13820.00 0.00
     13830.00 0.00
     1384
     1385Output:
     138690.00 90.00
     138790.00 90.00
     138890.00 90.00
    13891389
    13901390
     
    13991399Operation: dacos
    14001400Input:
    1401 0.000000 0.000000
    1402 0.000000 0.000000
    1403 0.000000 0.000000
    1404 
    1405 0.000000 0.000000
    1406 0.000000 0.000000
    1407 0.000000 0.000000
    1408 
    1409 Output:
    1410 90.000000 90.000000
    1411 90.000000 90.000000
    1412 90.000000 90.000000
     14010.00 0.00
     14020.00 0.00
     14030.00 0.00
     1404
     14050.00 0.00
     14060.00 0.00
     14070.00 0.00
     1408
     1409Output:
     141090.00 90.00
     141190.00 90.00
     141290.00 90.00
    14131413
    14141414
     
    14231423Operation: dacos
    14241424Input:
    1425 0.000000+0.000000i 0.000000+0.000000i
    1426 0.000000+0.000000i 0.000000+0.000000i
    1427 0.000000+0.000000i 0.000000+0.000000i
    1428 
    1429 0.000000+0.000000i 0.000000+0.000000i
    1430 0.000000+0.000000i 0.000000+0.000000i
    1431 0.000000+0.000000i 0.000000+0.000000i
    1432 
    1433 Output:
    1434 90.000000+0.000000i 90.000000+0.000000i
    1435 90.000000+0.000000i 90.000000+0.000000i
    1436 90.000000+0.000000i 90.000000+0.000000i
     14250.00+0.00i 0.00+0.00i
     14260.00+0.00i 0.00+0.00i
     14270.00+0.00i 0.00+0.00i
     1428
     14290.00+0.00i 0.00+0.00i
     14300.00+0.00i 0.00+0.00i
     14310.00+0.00i 0.00+0.00i
     1432
     1433Output:
     143490.00+0.00i 90.00+0.00i
     143590.00+0.00i 90.00+0.00i
     143690.00+0.00i 90.00+0.00i
    14371437
    14381438
     
    14711471Operation: atan
    14721472Input:
    1473 1.000000 1.000000
    1474 1.000000 1.000000
    1475 1.000000 1.000000
    1476 
    1477 0.000000 0.000000
    1478 0.000000 0.000000
    1479 0.000000 0.000000
    1480 
    1481 Output:
    1482 0.785398 0.785398
    1483 0.785398 0.785398
    1484 0.785398 0.785398
     14731.00 1.00
     14741.00 1.00
     14751.00 1.00
     1476
     14770.00 0.00
     14780.00 0.00
     14790.00 0.00
     1480
     1481Output:
     14820.79 0.79
     14830.79 0.79
     14840.79 0.79
    14851485
    14861486
     
    14951495Operation: atan
    14961496Input:
    1497 1.000000 1.000000
    1498 1.000000 1.000000
    1499 1.000000 1.000000
    1500 
    1501 0.000000 0.000000
    1502 0.000000 0.000000
    1503 0.000000 0.000000
    1504 
    1505 Output:
    1506 0.785398 0.785398
    1507 0.785398 0.785398
    1508 0.785398 0.785398
     14971.00 1.00
     14981.00 1.00
     14991.00 1.00
     1500
     15010.00 0.00
     15020.00 0.00
     15030.00 0.00
     1504
     1505Output:
     15060.79 0.79
     15070.79 0.79
     15080.79 0.79
    15091509
    15101510
     
    15191519Operation: atan
    15201520Input:
    1521 1.000000+1.000000i 1.000000+1.000000i
    1522 1.000000+1.000000i 1.000000+1.000000i
    1523 1.000000+1.000000i 1.000000+1.000000i
    1524 
    1525 0.000000+0.000000i 0.000000+0.000000i
    1526 0.000000+0.000000i 0.000000+0.000000i
    1527 0.000000+0.000000i 0.000000+0.000000i
    1528 
    1529 Output:
    1530 1.017222+0.402359i 1.017222+0.402359i
    1531 1.017222+0.402359i 1.017222+0.402359i
    1532 1.017222+0.402359i 1.017222+0.402359i
     15211.00+1.00i 1.00+1.00i
     15221.00+1.00i 1.00+1.00i
     15231.00+1.00i 1.00+1.00i
     1524
     15250.00+0.00i 0.00+0.00i
     15260.00+0.00i 0.00+0.00i
     15270.00+0.00i 0.00+0.00i
     1528
     1529Output:
     15301.02+0.40i 1.02+0.40i
     15311.02+0.40i 1.02+0.40i
     15321.02+0.40i 1.02+0.40i
    15331533
    15341534
     
    15671567Operation: datan
    15681568Input:
    1569 1.000000 1.000000
    1570 1.000000 1.000000
    1571 1.000000 1.000000
    1572 
    1573 0.000000 0.000000
    1574 0.000000 0.000000
    1575 0.000000 0.000000
    1576 
    1577 Output:
    1578 45.000000 45.000000
    1579 45.000000 45.000000
    1580 45.000000 45.000000
     15691.00 1.00
     15701.00 1.00
     15711.00 1.00
     1572
     15730.00 0.00
     15740.00 0.00
     15750.00 0.00
     1576
     1577Output:
     157845.00 45.00
     157945.00 45.00
     158045.00 45.00
    15811581
    15821582
     
    15911591Operation: datan
    15921592Input:
    1593 1.000000 1.000000
    1594 1.000000 1.000000
    1595 1.000000 1.000000
    1596 
    1597 0.000000 0.000000
    1598 0.000000 0.000000
    1599 0.000000 0.000000
    1600 
    1601 Output:
    1602 45.000000 45.000000
    1603 45.000000 45.000000
    1604 45.000000 45.000000
     15931.00 1.00
     15941.00 1.00
     15951.00 1.00
     1596
     15970.00 0.00
     15980.00 0.00
     15990.00 0.00
     1600
     1601Output:
     160245.00 45.00
     160345.00 45.00
     160445.00 45.00
    16051605
    16061606
     
    16151615Operation: datan
    16161616Input:
    1617 1.000000+1.000000i 1.000000+1.000000i
    1618 1.000000+1.000000i 1.000000+1.000000i
    1619 1.000000+1.000000i 1.000000+1.000000i
    1620 
    1621 0.000000+0.000000i 0.000000+0.000000i
    1622 0.000000+0.000000i 0.000000+0.000000i
    1623 0.000000+0.000000i 0.000000+0.000000i
    1624 
    1625 Output:
    1626 58.282524+23.053499i 58.282524+23.053499i
    1627 58.282524+23.053499i 58.282524+23.053499i
    1628 58.282524+23.053499i 58.282524+23.053499i
     16171.00+1.00i 1.00+1.00i
     16181.00+1.00i 1.00+1.00i
     16191.00+1.00i 1.00+1.00i
     1620
     16210.00+0.00i 0.00+0.00i
     16220.00+0.00i 0.00+0.00i
     16230.00+0.00i 0.00+0.00i
     1624
     1625Output:
     162658.28+23.05i 58.28+23.05i
     162758.28+23.05i 58.28+23.05i
     162858.28+23.05i 58.28+23.05i
    16291629
    16301630
     
    16631663Operation: abs
    16641664Input:
    1665 -10.000000
    1666 -10.000000
    1667 -10.000000
    1668 
    1669 0.000000
    1670 0.000000
    1671 0.000000
    1672 
    1673 Output:
    1674 10.000000
    1675 10.000000
    1676 10.000000
     1665-10.00
     1666-10.00
     1667-10.00
     1668
     16690.00
     16700.00
     16710.00
     1672
     1673Output:
     167410.00
     167510.00
     167610.00
    16771677
    16781678
     
    16871687Operation: abs
    16881688Input:
    1689 -10.000000
    1690 -10.000000
    1691 -10.000000
    1692 
    1693 0.000000
    1694 0.000000
    1695 0.000000
    1696 
    1697 Output:
    1698 10.000000
    1699 10.000000
    1700 10.000000
     1689-10.00
     1690-10.00
     1691-10.00
     1692
     16930.00
     16940.00
     16950.00
     1696
     1697Output:
     169810.00
     169910.00
     170010.00
    17011701
    17021702
     
    17111711Operation: abs
    17121712Input:
    1713 -10.000000+-10.000000i
    1714 -10.000000+-10.000000i
    1715 -10.000000+-10.000000i
    1716 
    1717 0.000000+0.000000i
    1718 0.000000+0.000000i
    1719 0.000000+0.000000i
    1720 
    1721 Output:
    1722 14.142136+0.000000i
    1723 14.142136+0.000000i
    1724 14.142136+0.000000i
     1713-10.00-10.00i
     1714-10.00-10.00i
     1715-10.00-10.00i
     1716
     17170.00+0.00i
     17180.00+0.00i
     17190.00+0.00i
     1720
     1721Output:
     172214.14+0.00i
     172314.14+0.00i
     172414.14+0.00i
    17251725
    17261726
     
    17591759Operation: exp
    17601760Input:
    1761 10.000000
    1762 10.000000
    1763 10.000000
    1764 
    1765 0.000000
    1766 0.000000
    1767 0.000000
    1768 
    1769 Output:
    1770 22026.464844
    1771 22026.464844
    1772 22026.464844
     176110.00
     176210.00
     176310.00
     1764
     17650.00
     17660.00
     17670.00
     1768
     1769Output:
     177022026.46
     177122026.46
     177222026.46
    17731773
    17741774
     
    17831783Operation: exp
    17841784Input:
    1785 10.000000
    1786 10.000000
    1787 10.000000
    1788 
    1789 0.000000
    1790 0.000000
    1791 0.000000
    1792 
    1793 Output:
    1794 22026.465795
    1795 22026.465795
    1796 22026.465795
     178510.00
     178610.00
     178710.00
     1788
     17890.00
     17900.00
     17910.00
     1792
     1793Output:
     179422026.47
     179522026.47
     179622026.47
    17971797
    17981798
     
    18071807Operation: exp
    18081808Input:
    1809 10.000000+10.000000i
    1810 10.000000+10.000000i
    1811 10.000000+10.000000i
    1812 
    1813 0.000000+0.000000i
    1814 0.000000+0.000000i
    1815 0.000000+0.000000i
    1816 
    1817 Output:
    1818 -18481.781250+-11982.862305i
    1819 -18481.781250+-11982.862305i
    1820 -18481.781250+-11982.862305i
     180910.00+10.00i
     181010.00+10.00i
     181110.00+10.00i
     1812
     18130.00+0.00i
     18140.00+0.00i
     18150.00+0.00i
     1816
     1817Output:
     1818-18481.78-11982.86i
     1819-18481.78-11982.86i
     1820-18481.78-11982.86i
    18211821
    18221822
     
    18551855Operation: ln
    18561856Input:
    1857 10.000000
    1858 10.000000
    1859 10.000000
    1860 
    1861 0.000000
    1862 0.000000
    1863 0.000000
    1864 
    1865 Output:
    1866 2.302585
    1867 2.302585
    1868 2.302585
     185710.00
     185810.00
     185910.00
     1860
     18610.00
     18620.00
     18630.00
     1864
     1865Output:
     18662.30
     18672.30
     18682.30
    18691869
    18701870
     
    18791879Operation: ln
    18801880Input:
    1881 10.000000
    1882 10.000000
    1883 10.000000
    1884 
    1885 0.000000
    1886 0.000000
    1887 0.000000
    1888 
    1889 Output:
    1890 2.302585
    1891 2.302585
    1892 2.302585
     188110.00
     188210.00
     188310.00
     1884
     18850.00
     18860.00
     18870.00
     1888
     1889Output:
     18902.30
     18912.30
     18922.30
    18931893
    18941894
     
    19031903Operation: ln
    19041904Input:
    1905 10.000000+10.000000i
    1906 10.000000+10.000000i
    1907 10.000000+10.000000i
    1908 
    1909 0.000000+0.000000i
    1910 0.000000+0.000000i
    1911 0.000000+0.000000i
    1912 
    1913 Output:
    1914 2.649159+0.785398i
    1915 2.649159+0.785398i
    1916 2.649159+0.785398i
     190510.00+10.00i
     190610.00+10.00i
     190710.00+10.00i
     1908
     19090.00+0.00i
     19100.00+0.00i
     19110.00+0.00i
     1912
     1913Output:
     19142.65+0.79i
     19152.65+0.79i
     19162.65+0.79i
    19171917
    19181918
     
    19511951Operation: ten
    19521952Input:
    1953 3.000000
    1954 3.000000
    1955 3.000000
    1956 
    1957 0.000000
    1958 0.000000
    1959 0.000000
    1960 
    1961 Output:
    1962 1000.000000
    1963 1000.000000
    1964 1000.000000
     19533.00
     19543.00
     19553.00
     1956
     19570.00
     19580.00
     19590.00
     1960
     1961Output:
     19621000.00
     19631000.00
     19641000.00
    19651965
    19661966
     
    19751975Operation: ten
    19761976Input:
    1977 3.000000
    1978 3.000000
    1979 3.000000
    1980 
    1981 0.000000
    1982 0.000000
    1983 0.000000
    1984 
    1985 Output:
    1986 1000.000000
    1987 1000.000000
    1988 1000.000000
     19773.00
     19783.00
     19793.00
     1980
     19810.00
     19820.00
     19830.00
     1984
     1985Output:
     19861000.00
     19871000.00
     19881000.00
    19891989
    19901990
     
    19991999Operation: ten
    20002000Input:
    2001 3.000000+3.000000i
    2002 3.000000+3.000000i
    2003 3.000000+3.000000i
    2004 
    2005 0.000000+0.000000i
    2006 0.000000+0.000000i
    2007 0.000000+0.000000i
    2008 
    2009 Output:
    2010 811.214661+584.748474i
    2011 811.214661+584.748474i
    2012 811.214661+584.748474i
     20013.00+3.00i
     20023.00+3.00i
     20033.00+3.00i
     2004
     20050.00+0.00i
     20060.00+0.00i
     20070.00+0.00i
     2008
     2009Output:
     2010811.21+584.75i
     2011811.21+584.75i
     2012811.21+584.75i
    20132013
    20142014
     
    20472047Operation: log
    20482048Input:
    2049 1000.000000
    2050 1000.000000
    2051 1000.000000
    2052 
    2053 0.000000
    2054 0.000000
    2055 0.000000
    2056 
    2057 Output:
    2058 3.000000
    2059 3.000000
    2060 3.000000
     20491000.00
     20501000.00
     20511000.00
     2052
     20530.00
     20540.00
     20550.00
     2056
     2057Output:
     20583.00
     20593.00
     20603.00
    20612061
    20622062
     
    20712071Operation: log
    20722072Input:
    2073 1000.000000
    2074 1000.000000
    2075 1000.000000
    2076 
    2077 0.000000
    2078 0.000000
    2079 0.000000
    2080 
    2081 Output:
    2082 3.000000
    2083 3.000000
    2084 3.000000
     20731000.00
     20741000.00
     20751000.00
     2076
     20770.00
     20780.00
     20790.00
     2080
     2081Output:
     20823.00
     20833.00
     20843.00
    20852085
    20862086
     
    20952095Operation: log
    20962096Input:
    2097 1000.000000+1000.000000i
    2098 1000.000000+1000.000000i
    2099 1000.000000+1000.000000i
    2100 
    2101 0.000000+0.000000i
    2102 0.000000+0.000000i
    2103 0.000000+0.000000i
    2104 
    2105 Output:
    2106 3.150515+0.341094i
    2107 3.150515+0.341094i
    2108 3.150515+0.341094i
     20971000.00+1000.00i
     20981000.00+1000.00i
     20991000.00+1000.00i
     2100
     21010.00+0.00i
     21020.00+0.00i
     21030.00+0.00i
     2104
     2105Output:
     21063.15+0.34i
     21073.15+0.34i
     21083.15+0.34i
    21092109
    21102110
     
    21432143Operation: sin
    21442144Input:
    2145 1.570796
    2146 1.570796
    2147 1.570796
    2148 
    2149 0.000000
    2150 0.000000
    2151 0.000000
    2152 
    2153 Output:
    2154 1.000000
    2155 1.000000
    2156 1.000000
     21451.57
     21461.57
     21471.57
     2148
     21490.00
     21500.00
     21510.00
     2152
     2153Output:
     21541.00
     21551.00
     21561.00
    21572157
    21582158
     
    21672167Operation: sin
    21682168Input:
    2169 1.570796
    2170 1.570796
    2171 1.570796
    2172 
    2173 0.000000
    2174 0.000000
    2175 0.000000
    2176 
    2177 Output:
    2178 1.000000
    2179 1.000000
    2180 1.000000
     21691.57
     21701.57
     21711.57
     2172
     21730.00
     21740.00
     21750.00
     2176
     2177Output:
     21781.00
     21791.00
     21801.00
    21812181
    21822182
     
    21912191Operation: sin
    21922192Input:
    2193 1.570796+1.570796i
    2194 1.570796+1.570796i
    2195 1.570796+1.570796i
    2196 
    2197 0.000000+0.000000i
    2198 0.000000+0.000000i
    2199 0.000000+0.000000i
    2200 
    2201 Output:
    2202 2.509179+-0.000000i
    2203 2.509179+-0.000000i
    2204 2.509179+-0.000000i
     21931.57+1.57i
     21941.57+1.57i
     21951.57+1.57i
     2196
     21970.00+0.00i
     21980.00+0.00i
     21990.00+0.00i
     2200
     2201Output:
     22022.51-0.00i
     22032.51-0.00i
     22042.51-0.00i
    22052205
    22062206
     
    22392239Operation: dsin
    22402240Input:
    2241 90.000000
    2242 90.000000
    2243 90.000000
    2244 
    2245 0.000000
    2246 0.000000
    2247 0.000000
    2248 
    2249 Output:
    2250 1.000000
    2251 1.000000
    2252 1.000000
     224190.00
     224290.00
     224390.00
     2244
     22450.00
     22460.00
     22470.00
     2248
     2249Output:
     22501.00
     22511.00
     22521.00
    22532253
    22542254
     
    22632263Operation: dsin
    22642264Input:
    2265 90.000000
    2266 90.000000
    2267 90.000000
    2268 
    2269 0.000000
    2270 0.000000
    2271 0.000000
    2272 
    2273 Output:
    2274 1.000000
    2275 1.000000
    2276 1.000000
     226590.00
     226690.00
     226790.00
     2268
     22690.00
     22700.00
     22710.00
     2272
     2273Output:
     22741.00
     22751.00
     22761.00
    22772277
    22782278
     
    22872287Operation: dsin
    22882288Input:
    2289 90.000000+90.000000i
    2290 90.000000+90.000000i
    2291 90.000000+90.000000i
    2292 
    2293 0.000000+0.000000i
    2294 0.000000+0.000000i
    2295 0.000000+0.000000i
    2296 
    2297 Output:
    2298 2.509178+0.000000i
    2299 2.509178+0.000000i
    2300 2.509178+0.000000i
     228990.00+90.00i
     229090.00+90.00i
     229190.00+90.00i
     2292
     22930.00+0.00i
     22940.00+0.00i
     22950.00+0.00i
     2296
     2297Output:
     22982.51-0.00i
     22992.51-0.00i
     23002.51-0.00i
    23012301
    23022302
     
    23352335Operation: cos
    23362336Input:
    2337 0.000000
    2338 0.000000
    2339 0.000000
    2340 
    2341 0.000000
    2342 0.000000
    2343 0.000000
    2344 
    2345 Output:
    2346 1.000000
    2347 1.000000
    2348 1.000000
     23370.00
     23380.00
     23390.00
     2340
     23410.00
     23420.00
     23430.00
     2344
     2345Output:
     23461.00
     23471.00
     23481.00
    23492349
    23502350
     
    23592359Operation: cos
    23602360Input:
    2361 0.000000
    2362 0.000000
    2363 0.000000
    2364 
    2365 0.000000
    2366 0.000000
    2367 0.000000
    2368 
    2369 Output:
    2370 1.000000
    2371 1.000000
    2372 1.000000
     23610.00
     23620.00
     23630.00
     2364
     23650.00
     23660.00
     23670.00
     2368
     2369Output:
     23701.00
     23711.00
     23721.00
    23732373
    23742374
     
    23832383Operation: cos
    23842384Input:
    2385 0.000000+0.000000i
    2386 0.000000+0.000000i
    2387 0.000000+0.000000i
    2388 
    2389 0.000000+0.000000i
    2390 0.000000+0.000000i
    2391 0.000000+0.000000i
    2392 
    2393 Output:
    2394 1.000000+-0.000000i
    2395 1.000000+-0.000000i
    2396 1.000000+-0.000000i
     23850.00+0.00i
     23860.00+0.00i
     23870.00+0.00i
     2388
     23890.00+0.00i
     23900.00+0.00i
     23910.00+0.00i
     2392
     2393Output:
     23941.00-0.00i
     23951.00-0.00i
     23961.00-0.00i
    23972397
    23982398
     
    24312431Operation: dcos
    24322432Input:
    2433 0.000000
    2434 0.000000
    2435 0.000000
    2436 
    2437 0.000000
    2438 0.000000
    2439 0.000000
    2440 
    2441 Output:
    2442 1.000000
    2443 1.000000
    2444 1.000000
     24330.00
     24340.00
     24350.00
     2436
     24370.00
     24380.00
     24390.00
     2440
     2441Output:
     24421.00
     24431.00
     24441.00
    24452445
    24462446
     
    24552455Operation: dcos
    24562456Input:
    2457 0.000000
    2458 0.000000
    2459 0.000000
    2460 
    2461 0.000000
    2462 0.000000
    2463 0.000000
    2464 
    2465 Output:
    2466 1.000000
    2467 1.000000
    2468 1.000000
     24570.00
     24580.00
     24590.00
     2460
     24610.00
     24620.00
     24630.00
     2464
     2465Output:
     24661.00
     24671.00
     24681.00
    24692469
    24702470
     
    24792479Operation: dcos
    24802480Input:
    2481 0.000000+0.000000i
    2482 0.000000+0.000000i
    2483 0.000000+0.000000i
    2484 
    2485 0.000000+0.000000i
    2486 0.000000+0.000000i
    2487 0.000000+0.000000i
    2488 
    2489 Output:
    2490 1.000000+-0.000000i
    2491 1.000000+-0.000000i
    2492 1.000000+-0.000000i
     24810.00+0.00i
     24820.00+0.00i
     24830.00+0.00i
     2484
     24850.00+0.00i
     24860.00+0.00i
     24870.00+0.00i
     2488
     2489Output:
     24901.00-0.00i
     24911.00-0.00i
     24921.00-0.00i
    24932493
    24942494
     
    25272527Operation: tan
    25282528Input:
    2529 0.785398
    2530 0.785398
    2531 0.785398
    2532 
    2533 0.000000
    2534 0.000000
    2535 0.000000
    2536 
    2537 Output:
    2538 1.000000
    2539 1.000000
    2540 1.000000
     25290.79
     25300.79
     25310.79
     2532
     25330.00
     25340.00
     25350.00
     2536
     2537Output:
     25381.00
     25391.00
     25401.00
    25412541
    25422542
     
    25512551Operation: tan
    25522552Input:
    2553 0.785398
    2554 0.785398
    2555 0.785398
    2556 
    2557 0.000000
    2558 0.000000
    2559 0.000000
    2560 
    2561 Output:
    2562 1.000000
    2563 1.000000
    2564 1.000000
     25530.79
     25540.79
     25550.79
     2556
     25570.00
     25580.00
     25590.00
     2560
     2561Output:
     25621.00
     25631.00
     25641.00
    25652565
    25662566
     
    25752575Operation: tan
    25762576Input:
    2577 0.785398+0.785398i
    2578 0.785398+0.785398i
    2579 0.785398+0.785398i
    2580 
    2581 0.000000+0.000000i
    2582 0.000000+0.000000i
    2583 0.000000+0.000000i
    2584 
    2585 Output:
    2586 0.398537+0.917152i
    2587 0.398537+0.917152i
    2588 0.398537+0.917152i
     25770.79+0.79i
     25780.79+0.79i
     25790.79+0.79i
     2580
     25810.00+0.00i
     25820.00+0.00i
     25830.00+0.00i
     2584
     2585Output:
     25860.40+0.92i
     25870.40+0.92i
     25880.40+0.92i
    25892589
    25902590
     
    26232623Operation: dtan
    26242624Input:
    2625 45.000000
    2626 45.000000
    2627 45.000000
    2628 
    2629 0.000000
    2630 0.000000
    2631 0.000000
    2632 
    2633 Output:
    2634 1.000000
    2635 1.000000
    2636 1.000000
     262545.00
     262645.00
     262745.00
     2628
     26290.00
     26300.00
     26310.00
     2632
     2633Output:
     26341.00
     26351.00
     26361.00
    26372637
    26382638
     
    26472647Operation: dtan
    26482648Input:
    2649 45.000000
    2650 45.000000
    2651 45.000000
    2652 
    2653 0.000000
    2654 0.000000
    2655 0.000000
    2656 
    2657 Output:
    2658 1.000000
    2659 1.000000
    2660 1.000000
     264945.00
     265045.00
     265145.00
     2652
     26530.00
     26540.00
     26550.00
     2656
     2657Output:
     26581.00
     26591.00
     26601.00
    26612661
    26622662
     
    26712671Operation: dtan
    26722672Input:
    2673 45.000000+45.000000i
    2674 45.000000+45.000000i
    2675 45.000000+45.000000i
    2676 
    2677 0.000000+0.000000i
    2678 0.000000+0.000000i
    2679 0.000000+0.000000i
    2680 
    2681 Output:
    2682 0.398537+0.917152i
    2683 0.398537+0.917152i
    2684 0.398537+0.917152i
     267345.00+45.00i
     267445.00+45.00i
     267545.00+45.00i
     2676
     26770.00+0.00i
     26780.00+0.00i
     26790.00+0.00i
     2680
     2681Output:
     26820.40+0.92i
     26830.40+0.92i
     26840.40+0.92i
    26852685
    26862686
     
    27192719Operation: asin
    27202720Input:
    2721 1.000000
    2722 1.000000
    2723 1.000000
    2724 
    2725 0.000000
    2726 0.000000
    2727 0.000000
    2728 
    2729 Output:
    2730 1.570796
    2731 1.570796
    2732 1.570796
     27211.00
     27221.00
     27231.00
     2724
     27250.00
     27260.00
     27270.00
     2728
     2729Output:
     27301.57
     27311.57
     27321.57
    27332733
    27342734
     
    27432743Operation: asin
    27442744Input:
    2745 1.000000
    2746 1.000000
    2747 1.000000
    2748 
    2749 0.000000
    2750 0.000000
    2751 0.000000
    2752 
    2753 Output:
    2754 1.570796
    2755 1.570796
    2756 1.570796
     27451.00
     27461.00
     27471.00
     2748
     27490.00
     27500.00
     27510.00
     2752
     2753Output:
     27541.57
     27551.57
     27561.57
    27572757
    27582758
     
    27672767Operation: asin
    27682768Input:
    2769 1.000000+1.000000i
    2770 1.000000+1.000000i
    2771 1.000000+1.000000i
    2772 
    2773 0.000000+0.000000i
    2774 0.000000+0.000000i
    2775 0.000000+0.000000i
    2776 
    2777 Output:
    2778 0.666239+1.061275i
    2779 0.666239+1.061275i
    2780 0.666239+1.061275i
     27691.00+1.00i
     27701.00+1.00i
     27711.00+1.00i
     2772
     27730.00+0.00i
     27740.00+0.00i
     27750.00+0.00i
     2776
     2777Output:
     27780.67+1.06i
     27790.67+1.06i
     27800.67+1.06i
    27812781
    27822782
     
    28002800
    28012801Output:
    2802 89
    2803 89
    2804 89
     280290
     280390
     280490
    28052805
    28062806
     
    28152815Operation: dasin
    28162816Input:
    2817 1.000000
    2818 1.000000
    2819 1.000000
    2820 
    2821 0.000000
    2822 0.000000
    2823 0.000000
    2824 
    2825 Output:
    2826 90.000000
    2827 90.000000
    2828 90.000000
     28171.00
     28181.00
     28191.00
     2820
     28210.00
     28220.00
     28230.00
     2824
     2825Output:
     282690.00
     282790.00
     282890.00
    28292829
    28302830
     
    28392839Operation: dasin
    28402840Input:
    2841 1.000000
    2842 1.000000
    2843 1.000000
    2844 
    2845 0.000000
    2846 0.000000
    2847 0.000000
    2848 
    2849 Output:
    2850 90.000000
    2851 90.000000
    2852 90.000000
     28411.00
     28421.00
     28431.00
     2844
     28450.00
     28460.00
     28470.00
     2848
     2849Output:
     285090.00
     285190.00
     285290.00
    28532853
    28542854
     
    28632863Operation: dasin
    28642864Input:
    2865 1.000000+1.000000i
    2866 1.000000+1.000000i
    2867 1.000000+1.000000i
    2868 
    2869 0.000000+0.000000i
    2870 0.000000+0.000000i
    2871 0.000000+0.000000i
    2872 
    2873 Output:
    2874 38.172707+60.806583i
    2875 38.172707+60.806583i
    2876 38.172707+60.806583i
     28651.00+1.00i
     28661.00+1.00i
     28671.00+1.00i
     2868
     28690.00+0.00i
     28700.00+0.00i
     28710.00+0.00i
     2872
     2873Output:
     287438.17+60.81i
     287538.17+60.81i
     287638.17+60.81i
    28772877
    28782878
     
    29112911Operation: acos
    29122912Input:
    2913 0.000000
    2914 0.000000
    2915 0.000000
    2916 
    2917 0.000000
    2918 0.000000
    2919 0.000000
    2920 
    2921 Output:
    2922 1.570796
    2923 1.570796
    2924 1.570796
     29130.00
     29140.00
     29150.00
     2916
     29170.00
     29180.00
     29190.00
     2920
     2921Output:
     29221.57
     29231.57
     29241.57
    29252925
    29262926
     
    29352935Operation: acos
    29362936Input:
    2937 0.000000
    2938 0.000000
    2939 0.000000
    2940 
    2941 0.000000
    2942 0.000000
    2943 0.000000
    2944 
    2945 Output:
    2946 1.570796
    2947 1.570796
    2948 1.570796
     29370.00
     29380.00
     29390.00
     2940
     29410.00
     29420.00
     29430.00
     2944
     2945Output:
     29461.57
     29471.57
     29481.57
    29492949
    29502950
     
    29592959Operation: acos
    29602960Input:
    2961 0.000000+0.000000i
    2962 0.000000+0.000000i
    2963 0.000000+0.000000i
    2964 
    2965 0.000000+0.000000i
    2966 0.000000+0.000000i
    2967 0.000000+0.000000i
    2968 
    2969 Output:
    2970 1.570796+-0.000000i
    2971 1.570796+-0.000000i
    2972 1.570796+-0.000000i
     29610.00+0.00i
     29620.00+0.00i
     29630.00+0.00i
     2964
     29650.00+0.00i
     29660.00+0.00i
     29670.00+0.00i
     2968
     2969Output:
     29701.57-0.00i
     29711.57-0.00i
     29721.57-0.00i
    29732973
    29742974
     
    29922992
    29932993Output:
    2994 89
    2995 89
    2996 89
     299490
     299590
     299690
    29972997
    29982998
     
    30073007Operation: dacos
    30083008Input:
    3009 0.000000
    3010 0.000000
    3011 0.000000
    3012 
    3013 0.000000
    3014 0.000000
    3015 0.000000
    3016 
    3017 Output:
    3018 90.000000
    3019 90.000000
    3020 90.000000
     30090.00
     30100.00
     30110.00
     3012
     30130.00
     30140.00
     30150.00
     3016
     3017Output:
     301890.00
     301990.00
     302090.00
    30213021
    30223022
     
    30313031Operation: dacos
    30323032Input:
    3033 0.000000
    3034 0.000000
    3035 0.000000
    3036 
    3037 0.000000
    3038 0.000000
    3039 0.000000
    3040 
    3041 Output:
    3042 90.000000
    3043 90.000000
    3044 90.000000
     30330.00
     30340.00
     30350.00
     3036
     30370.00
     30380.00
     30390.00
     3040
     3041Output:
     304290.00
     304390.00
     304490.00
    30453045
    30463046
     
    30553055Operation: dacos
    30563056Input:
    3057 0.000000+0.000000i
    3058 0.000000+0.000000i
    3059 0.000000+0.000000i
    3060 
    3061 0.000000+0.000000i
    3062 0.000000+0.000000i
    3063 0.000000+0.000000i
    3064 
    3065 Output:
    3066 90.000000+0.000000i
    3067 90.000000+0.000000i
    3068 90.000000+0.000000i
     30570.00+0.00i
     30580.00+0.00i
     30590.00+0.00i
     3060
     30610.00+0.00i
     30620.00+0.00i
     30630.00+0.00i
     3064
     3065Output:
     306690.00+0.00i
     306790.00+0.00i
     306890.00+0.00i
    30693069
    30703070
     
    31033103Operation: atan
    31043104Input:
    3105 1.000000
    3106 1.000000
    3107 1.000000
    3108 
    3109 0.000000
    3110 0.000000
    3111 0.000000
    3112 
    3113 Output:
    3114 0.785398
    3115 0.785398
    3116 0.785398
     31051.00
     31061.00
     31071.00
     3108
     31090.00
     31100.00
     31110.00
     3112
     3113Output:
     31140.79
     31150.79
     31160.79
    31173117
    31183118
     
    31273127Operation: atan
    31283128Input:
    3129 1.000000
    3130 1.000000
    3131 1.000000
    3132 
    3133 0.000000
    3134 0.000000
    3135 0.000000
    3136 
    3137 Output:
    3138 0.785398
    3139 0.785398
    3140 0.785398
     31291.00
     31301.00
     31311.00
     3132
     31330.00
     31340.00
     31350.00
     3136
     3137Output:
     31380.79
     31390.79
     31400.79
    31413141
    31423142
     
    31513151Operation: atan
    31523152Input:
    3153 1.000000+1.000000i
    3154 1.000000+1.000000i
    3155 1.000000+1.000000i
    3156 
    3157 0.000000+0.000000i
    3158 0.000000+0.000000i
    3159 0.000000+0.000000i
    3160 
    3161 Output:
    3162 1.017222+0.402359i
    3163 1.017222+0.402359i
    3164 1.017222+0.402359i
     31531.00+1.00i
     31541.00+1.00i
     31551.00+1.00i
     3156
     31570.00+0.00i
     31580.00+0.00i
     31590.00+0.00i
     3160
     3161Output:
     31621.02+0.40i
     31631.02+0.40i
     31641.02+0.40i
    31653165
    31663166
     
    31993199Operation: datan
    32003200Input:
    3201 1.000000
    3202 1.000000
    3203 1.000000
    3204 
    3205 0.000000
    3206 0.000000
    3207 0.000000
    3208 
    3209 Output:
    3210 45.000000
    3211 45.000000
    3212 45.000000
     32011.00
     32021.00
     32031.00
     3204
     32050.00
     32060.00
     32070.00
     3208
     3209Output:
     321045.00
     321145.00
     321245.00
    32133213
    32143214
     
    32233223Operation: datan
    32243224Input:
    3225 1.000000
    3226 1.000000
    3227 1.000000
    3228 
    3229 0.000000
    3230 0.000000
    3231 0.000000
    3232 
    3233 Output:
    3234 45.000000
    3235 45.000000
    3236 45.000000
     32251.00
     32261.00
     32271.00
     3228
     32290.00
     32300.00
     32310.00
     3232
     3233Output:
     323445.00
     323545.00
     323645.00
    32373237
    32383238
     
    32473247Operation: datan
    32483248Input:
    3249 1.000000+1.000000i
    3250 1.000000+1.000000i
    3251 1.000000+1.000000i
    3252 
    3253 0.000000+0.000000i
    3254 0.000000+0.000000i
    3255 0.000000+0.000000i
    3256 
    3257 Output:
    3258 58.282524+23.053499i
    3259 58.282524+23.053499i
    3260 58.282524+23.053499i
    3261 
    3262 
    3263 ---> TESTPOINT PASSED (psMatrixVectorArithmetic{Test vector psUnaryOp} | tst_psMatrixVectorArithmetic02.c)
    3264 
     32491.00+1.00i
     32501.00+1.00i
     32511.00+1.00i
     3252
     32530.00+0.00i
     32540.00+0.00i
     32550.00+0.00i
     3256
     3257Output:
     325858.28+23.05i
     325958.28+23.05i
     326058.28+23.05i
     3261
     3262
     3263---> TESTPOINT PASSED (psMatrixVectorArithmetic{Test vector psUnaryOp} | tst_psMatrixVectorArithmetic02.c)
     3264
  • trunk/psLib/test/dataManip/verified/tst_psStats07.stdout

    r1310 r1365  
    66
    77(LQBinNum, UQBinNum, maxBinNum) is (15, 35, 27)
    8 The expected Mean was 32.000000; the calculated Mean was 32.588161
     8The expected Mean was 32.00; the calculated Mean was 32.59
    99
    1010---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust mean: no vector mask} | tst_psStats07.c)
     
    1616\**********************************************************************************/
    1717
    18 The expected Median was 32.000000; the calculated Median was 32.485466
     18The expected Median was 32.00; the calculated Median was 32.49
    1919
    2020---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust Median: no vector mask} | tst_psStats07.c)
     
    2626\**********************************************************************************/
    2727
    28 The expected Mode was 32.000000; the calculated Mode was 32.588655
     28The expected Mode was 32.00; the calculated Mode was 32.59
    2929
    3030---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust Mode: no vector mask} | tst_psStats07.c)
     
    3636\**********************************************************************************/
    3737
    38 The expected Stdev was 0.660000; the calculated Stdev was 0.655572
     38The expected Stdev was 0.66; the calculated Stdev was 0.66
    3939
    4040---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust Stdev: no vector mask} | tst_psStats07.c)
     
    4646\**********************************************************************************/
    4747
    48 The expected LQ was 30.799999; the calculated LQ was 30.018070
     48The expected LQ was 30.80; the calculated LQ was 30.02
    4949
    5050---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: lower quartile: no vector mask} | tst_psStats07.c)
     
    5656\**********************************************************************************/
    5757
    58 The expected UQ was 33.200001; the calculated UQ was 34.325886
     58The expected UQ was 33.20; the calculated UQ was 34.33
    5959
    6060---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: lower quartile: no vector mask} | tst_psStats07.c)
     
    6666\**********************************************************************************/
    6767
    68 The expected N50 was 143.000000; the calculated N50 was 143.000000
     68The expected N50 was 143.00; the calculated N50 was 143.00
    6969
    7070---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust N50: no vector mask} | tst_psStats07.c)
     
    7676\**********************************************************************************/
    7777
    78 The expected Nfit was 80.000000; the calculated Nfit was 80.000000
     78The expected Nfit was 80.00; the calculated Nfit was 80.00
    7979
    8080---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust Nfit: no vector mask} | tst_psStats07.c)
  • trunk/psLib/test/image/tst_psImageStats00.c

    r1073 r1365  
    11/*****************************************************************************
    2     This routine must ensure that the psHistogram structure is correctly
    3     allocated and populated by the psImageHistogram() function.
    4  *****************************************************************************/
     2   This routine must ensure that the psHistogram structure is correctly
     3   allocated and populated by the psImageHistogram() function.
     4*****************************************************************************/
    55#include <stdio.h>
    66#include "pslib.h"
     
    1616int main()
    1717{
    18     psHistogram *myHist = NULL;
    19     psHistogram *myHist2= NULL;
    20     psImage *tmpImage   = NULL;
    21     psImage *tmpMask    = NULL;
    22     int testStatus      = true;
    23     int memLeaks        = 0;
    24     int nb              = 0;
    25     int i               = 0;
    26     int j               = 0;
    27     int IMAGE_X_SIZE    = 0;
    28     int IMAGE_Y_SIZE    = 0;
    29     int currentId       = 0;
    30 
    31     currentId       = psMemGetId();
    32     for (nb=0;nb<6;nb++) {
    33         if (nb == 0) {
    34             IMAGE_X_SIZE = 1;
    35             IMAGE_Y_SIZE = 1;
     18    psHistogram * myHist = NULL;
     19    psHistogram *myHist2 = NULL;
     20    psImage *tmpImage = NULL;
     21    psImage *tmpMask = NULL;
     22    int testStatus = true;
     23    int memLeaks = 0;
     24    int nb = 0;
     25    int i = 0;
     26    int j = 0;
     27    int IMAGE_X_SIZE = 0;
     28    int IMAGE_Y_SIZE = 0;
     29    int currentId = 0;
     30   
     31    currentId = psMemGetId();
     32    for ( nb = 0;nb < 6;nb++ ) {
     33            if ( nb == 0 ) {
     34                    IMAGE_X_SIZE = 1;
     35                    IMAGE_Y_SIZE = 1;
     36                }
     37            if ( nb == 1 ) {
     38                    IMAGE_X_SIZE = 1;
     39                    IMAGE_Y_SIZE = N;
     40                }
     41            if ( nb == 2 ) {
     42                    IMAGE_X_SIZE = N;
     43                    IMAGE_Y_SIZE = 1;
     44                }
     45            if ( nb == 3 ) {
     46                    IMAGE_X_SIZE = N;
     47                    IMAGE_Y_SIZE = N;
     48                }
     49            if ( nb == 4 ) {
     50                    IMAGE_X_SIZE = N;
     51                    IMAGE_Y_SIZE = M;
     52                }
     53            if ( nb == 5 ) {
     54                    IMAGE_X_SIZE = M;
     55                    IMAGE_Y_SIZE = N;
     56                }
     57            printf( "*******************************\n" );
     58            printf( "* IMAGE SIZE is (%d by %d)\n", IMAGE_X_SIZE, IMAGE_Y_SIZE );
     59            printf( "*******************************\n" );
     60            /*********************************************************************/
     61            /*  Allocate and initialize data structures                      */
     62            /*********************************************************************/
     63            tmpImage = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32 );
     64           
     65            for ( i = 0;i < tmpImage->numRows;i++ ) {
     66                    for ( j = 0;j < tmpImage->numCols;j++ ) {
     67                            tmpImage->data.F32[ i ][ j ] = ( float ) ( i + j + 0.1 );
     68                        }
     69                }
     70            tmpMask = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U8 );
     71            for ( i = 0;i < tmpMask->numRows;i++ ) {
     72                    for ( j = 0;j < tmpMask->numCols;j++ ) {
     73                            if ( ( i > ( tmpMask->numRows / 2 ) ) &&
     74                                    ( j > ( tmpMask->numCols / 2 ) ) ) {
     75                                    tmpMask->data.U8[ i ][ j ] = 1;
     76                                } else {
     77                                    tmpMask->data.U8[ i ][ j ] = 0;
     78                                }
     79                        }
     80                }
     81               
     82            /*************************************************************************/
     83            /*  Calculate Histogram with no mask                             */
     84            /*************************************************************************/
     85            printPositiveTestHeader( stdout,
     86                                     "psImageStats functions",
     87                                     "Calculate Histogram, no mask" );
     88                                     
     89            myHist = psHistogramAlloc( 0.0, ( float ) ( IMAGE_X_SIZE + IMAGE_Y_SIZE ),
     90                                       NUM_BINS );
     91            myHist = psImageHistogram( myHist, tmpImage, NULL, 0 );
     92            for ( i = 0;i < NUM_BINS;i++ ) {
     93                    printf( "Bin number %d bounds: (%.1f - %.1f) data (%d)\n", i,
     94                            myHist->bounds->data.F32[ i ],
     95                            myHist->bounds->data.F32[ i + 1 ],
     96                            myHist->nums->data.S32[ i ] );
     97                }
     98            psFree( myHist );
     99           
     100            psMemCheckCorruption( 1 );
     101            printFooter( stdout,
     102                         "psImageStats functions",
     103                         "Calculate Histogram, no mask",
     104                         testStatus );
     105                         
     106            /*************************************************************************/
     107            /*  Calculate Histogram with mask                                */
     108            /*************************************************************************/
     109            printPositiveTestHeader( stdout,
     110                                     "psImageStats functions",
     111                                     "Calculate Histogram with mask" );
     112                                     
     113            myHist = psHistogramAlloc( 0.0, ( float ) ( IMAGE_X_SIZE + IMAGE_Y_SIZE ),
     114                                       NUM_BINS );
     115            myHist = psImageHistogram( myHist, tmpImage, tmpMask, 1 );
     116            for ( i = 0;i < NUM_BINS;i++ ) {
     117                    printf( "Bin number %d bounds: (%.2f - %.2f) data (%d)\n", i,
     118                            myHist->bounds->data.F32[ i ],
     119                            myHist->bounds->data.F32[ i + 1 ],
     120                            myHist->nums->data.S32[ i ] );
     121                }
     122               
     123            psMemCheckCorruption( 1 );
     124            printFooter( stdout,
     125                         "psImageStats functions",
     126                         "Calculate Histogram with mask",
     127                         testStatus );
     128                         
     129            /*************************************************************************/
     130            /*  Deallocate data structures                                   */
     131            /*************************************************************************/
     132            printPositiveTestHeader( stdout,
     133                                     "psImageStats functions",
     134                                     "Deallocate the psHistogram/psImage structure." );
     135            psFree( myHist );
     136            psFree( tmpImage );
     137            psFree( tmpMask );
     138           
     139            psMemCheckCorruption( 1 );
     140            memLeaks = psMemCheckLeaks( currentId, NULL, NULL );
     141            if ( 0 != memLeaks ) {
     142                    psAbort( __func__, "Memory Leaks! (%d leaks)", memLeaks );
     143                }
     144               
     145            printFooter( stdout,
     146                         "psImageStats functions",
     147                         "Deallocate the psHistogram/psImage structure.",
     148                         testStatus );
    36149        }
    37         if (nb == 1) {
    38             IMAGE_X_SIZE = 1;
    39             IMAGE_Y_SIZE = N;
     150    printPositiveTestHeader( stdout,
     151                             "psImageStats functions",
     152                             "Calling psImageHistogram() with NULL parameters" );
     153                             
     154    tmpImage = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32 );
     155    myHist = psHistogramAlloc( 0.0, ( float ) ( IMAGE_X_SIZE + IMAGE_Y_SIZE ),
     156                               NUM_BINS );
     157    myHist2 = psImageHistogram( NULL, tmpImage, NULL, 0 );
     158    if ( myHist2 != NULL ) {
     159            printf( "ERROR: myHist2 not equal to NULL\n" );
    40160        }
    41         if (nb == 2) {
    42             IMAGE_X_SIZE = N;
    43             IMAGE_Y_SIZE = 1;
     161       
     162    myHist2 = psImageHistogram( myHist, NULL, NULL, 0 );
     163    myHist2 = psImageHistogram( NULL, tmpImage, NULL, 0 );
     164    if ( myHist2 != NULL ) {
     165            printf( "ERROR: myHist2 not equal to NULL\n" );
    44166        }
    45         if (nb == 3) {
    46             IMAGE_X_SIZE = N;
    47             IMAGE_Y_SIZE = N;
     167       
     168    psMemCheckCorruption( 1 );
     169    psFree( myHist );
     170    psFree( tmpImage );
     171    psMemCheckCorruption( 1 );
     172    memLeaks = psMemCheckLeaks( currentId, NULL, NULL );
     173    if ( 0 != memLeaks ) {
     174            psAbort( __func__, "Memory Leaks! (%d leaks)", memLeaks );
    48175        }
    49         if (nb == 4) {
    50             IMAGE_X_SIZE = N;
    51             IMAGE_Y_SIZE = M;
    52         }
    53         if (nb == 5) {
    54             IMAGE_X_SIZE = M;
    55             IMAGE_Y_SIZE = N;
    56         }
    57         printf("*******************************\n");
    58         printf("* IMAGE SIZE is (%d by %d)\n", IMAGE_X_SIZE, IMAGE_Y_SIZE);
    59         printf("*******************************\n");
    60         /*********************************************************************/
    61         /*  Allocate and initialize data structures                      */
    62         /*********************************************************************/
    63         tmpImage = psImageAlloc(IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32);
    64 
    65         for (i=0;i<tmpImage->numRows;i++) {
    66             for (j=0;j<tmpImage->numCols;j++) {
    67                 tmpImage->data.F32[i][j] = (float) (i + j + 0.1);
    68             }
    69         }
    70         tmpMask = psImageAlloc(IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U8);
    71         for (i=0;i<tmpMask->numRows;i++) {
    72             for (j=0;j<tmpMask->numCols;j++) {
    73                 if ((i > (tmpMask->numRows/2)) &&
    74                         (j > (tmpMask->numCols/2))) {
    75                     tmpMask->data.U8[i][j] = 1;
    76                 } else {
    77                     tmpMask->data.U8[i][j] = 0;
    78                 }
    79             }
    80         }
    81 
    82         /*************************************************************************/
    83         /*  Calculate Histogram with no mask                             */
    84         /*************************************************************************/
    85         printPositiveTestHeader(stdout,
    86                                 "psImageStats functions",
    87                                 "Calculate Histogram, no mask");
    88 
    89         myHist = psHistogramAlloc(0.0, (float) (IMAGE_X_SIZE + IMAGE_Y_SIZE),
    90                                   NUM_BINS);
    91         myHist = psImageHistogram(myHist, tmpImage, NULL, 0);
    92         for (i=0;i<NUM_BINS;i++) {
    93             printf("Bin number %d bounds: (%f - %f) data (%d)\n", i,
    94                    myHist->bounds->data.F32[i],
    95                    myHist->bounds->data.F32[i+1],
    96                    myHist->nums->data.S32[i]);
    97         }
    98         psFree(myHist);
    99 
    100         psMemCheckCorruption(1);
    101         printFooter(stdout,
    102                     "psImageStats functions",
    103                     "Calculate Histogram, no mask",
    104                     testStatus);
    105 
    106         /*************************************************************************/
    107         /*  Calculate Histogram with mask                                */
    108         /*************************************************************************/
    109         printPositiveTestHeader(stdout,
    110                                 "psImageStats functions",
    111                                 "Calculate Histogram with mask");
    112 
    113         myHist = psHistogramAlloc(0.0, (float) (IMAGE_X_SIZE + IMAGE_Y_SIZE),
    114                                   NUM_BINS);
    115         myHist = psImageHistogram(myHist, tmpImage, tmpMask, 1);
    116         for (i=0;i<NUM_BINS;i++) {
    117             printf("Bin number %d bounds: (%f - %f) data (%d)\n", i,
    118                    myHist->bounds->data.F32[i],
    119                    myHist->bounds->data.F32[i+1],
    120                    myHist->nums->data.S32[i]);
    121         }
    122 
    123         psMemCheckCorruption(1);
    124         printFooter(stdout,
    125                     "psImageStats functions",
    126                     "Calculate Histogram with mask",
    127                     testStatus);
    128 
    129         /*************************************************************************/
    130         /*  Deallocate data structures                                   */
    131         /*************************************************************************/
    132         printPositiveTestHeader(stdout,
    133                                 "psImageStats functions",
    134                                 "Deallocate the psHistogram/psImage structure.");
    135         psFree(myHist);
    136         psFree(tmpImage);
    137         psFree(tmpMask);
    138 
    139         psMemCheckCorruption(1);
    140         memLeaks = psMemCheckLeaks(currentId,NULL,NULL);
    141         if (0 != memLeaks) {
    142             psAbort(__func__,"Memory Leaks! (%d leaks)", memLeaks);
    143         }
    144 
    145         printFooter(stdout,
    146                     "psImageStats functions",
    147                     "Deallocate the psHistogram/psImage structure.",
    148                     testStatus);
    149     }
    150     printPositiveTestHeader(stdout,
    151                             "psImageStats functions",
    152                             "Calling psImageHistogram() with NULL parameters");
    153 
    154     tmpImage = psImageAlloc(IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32);
    155     myHist  = psHistogramAlloc(0.0, (float) (IMAGE_X_SIZE + IMAGE_Y_SIZE),
    156                                NUM_BINS);
    157     myHist2 = psImageHistogram(NULL, tmpImage, NULL, 0);
    158     if (myHist2 != NULL) {
    159         printf("ERROR: myHist2 not equal to NULL\n");
    160     }
    161 
    162     myHist2 = psImageHistogram(myHist, NULL, NULL, 0);
    163     myHist2 = psImageHistogram(NULL, tmpImage, NULL, 0);
    164     if (myHist2 != NULL) {
    165         printf("ERROR: myHist2 not equal to NULL\n");
    166     }
    167 
    168     psMemCheckCorruption(1);
    169     psFree(myHist);
    170     psFree(tmpImage);
    171     psMemCheckCorruption(1);
    172     memLeaks = psMemCheckLeaks(currentId,NULL,NULL);
    173     if (0 != memLeaks) {
    174         psAbort(__func__,"Memory Leaks! (%d leaks)", memLeaks);
    175     }
    176 
    177     printFooter(stdout,
    178                 "psImageStats functions",
    179                 "Calling psImageHistogram() with NULL parameters",
    180                 testStatus);
    181 
    182     return (!testStatus);
     176       
     177    printFooter( stdout,
     178                 "psImageStats functions",
     179                 "Calling psImageHistogram() with NULL parameters",
     180                 testStatus );
     181                 
     182    return ( !testStatus );
    183183}
  • trunk/psLib/test/image/tst_psImageStats01.c

    r1234 r1365  
    11/*****************************************************************************
    2     This routine must ensure that the psImageStats() routine can correctly
    3     call the psVectorStats() routine.  Since the psVectorStats() will be
    4     thouroughly tested elsewhere, we will only test psImageStats() with
    5     the PS_STAT_SAMPLE_MEAN here.
    6  *****************************************************************************/
     2   This routine must ensure that the psImageStats() routine can correctly
     3   call the psVectorStats() routine.  Since the psVectorStats() will be
     4   thouroughly tested elsewhere, we will only test psImageStats() with
     5   the PS_STAT_SAMPLE_MEAN here.
     6*****************************************************************************/
    77#include <stdio.h>
    88#include "pslib.h"
     
    1717int main()
    1818{
    19     psStats *myStats    = NULL;
    20     psStats *myStats2   = NULL;
    21     psImage *tmpImage   = NULL;
    22     psImage *tmpMask    = NULL;
    23     int testStatus      = true;
    24     int memLeaks        = 0;
    25     int nb              = 0;
    26     int i               = 0;
    27     int j               = 0;
    28     int IMAGE_X_SIZE    = 0;
    29     int IMAGE_Y_SIZE    = 0;
    30     int currentId       = 0;
    31 
    32     currentId       = psMemGetId();
    33     for (nb=0;nb<6;nb++) {
    34         if (nb == 0) {
    35             IMAGE_X_SIZE = 1;
    36             IMAGE_Y_SIZE = 1;
     19    psStats * myStats = NULL;
     20    psStats *myStats2 = NULL;
     21    psImage *tmpImage = NULL;
     22    psImage *tmpMask = NULL;
     23    int testStatus = true;
     24    int memLeaks = 0;
     25    int nb = 0;
     26    int i = 0;
     27    int j = 0;
     28    int IMAGE_X_SIZE = 0;
     29    int IMAGE_Y_SIZE = 0;
     30    int currentId = 0;
     31   
     32    currentId = psMemGetId();
     33    for ( nb = 0;nb < 6;nb++ ) {
     34            if ( nb == 0 ) {
     35                    IMAGE_X_SIZE = 1;
     36                    IMAGE_Y_SIZE = 1;
     37                }
     38            if ( nb == 1 ) {
     39                    IMAGE_X_SIZE = 1;
     40                    IMAGE_Y_SIZE = N;
     41                }
     42            if ( nb == 2 ) {
     43                    IMAGE_X_SIZE = N;
     44                    IMAGE_Y_SIZE = 1;
     45                }
     46            if ( nb == 3 ) {
     47                    IMAGE_X_SIZE = N;
     48                    IMAGE_Y_SIZE = N;
     49                }
     50            if ( nb == 4 ) {
     51                    IMAGE_X_SIZE = N;
     52                    IMAGE_Y_SIZE = M;
     53                }
     54            if ( nb == 5 ) {
     55                    IMAGE_X_SIZE = M;
     56                    IMAGE_Y_SIZE = N;
     57                }
     58            printf( "*******************************\n" );
     59            printf( "* IMAGE SIZE is (%d by %d)\n", IMAGE_X_SIZE, IMAGE_Y_SIZE );
     60            printf( "*******************************\n" );
     61           
     62            /*************************************************************************/
     63            /*  Allocate and initialize data structures                      */
     64            /*************************************************************************/
     65            tmpImage = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32 );
     66           
     67            for ( i = 0;i < tmpImage->numRows;i++ ) {
     68                    for ( j = 0;j < tmpImage->numCols;j++ ) {
     69                            tmpImage->data.F32[ i ][ j ] = ( float ) ( i + j );
     70                        }
     71                }
     72            tmpMask = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U8 );
     73            for ( i = 0;i < tmpMask->numRows;i++ ) {
     74                    for ( j = 0;j < tmpMask->numCols;j++ ) {
     75                            if ( ( i > ( tmpMask->numRows / 2 ) ) &&
     76                                    ( j > ( tmpMask->numCols / 2 ) ) ) {
     77                                    tmpMask->data.U8[ i ][ j ] = 1;
     78                                } else {
     79                                    tmpMask->data.U8[ i ][ j ] = 0;
     80                                }
     81                        }
     82                }
     83               
     84            myStats = psStatsAlloc( PS_STAT_SAMPLE_MEAN );
     85            /*************************************************************************/
     86            /*  Calculate Sample Mean with no mask                           */
     87            /*************************************************************************/
     88            printPositiveTestHeader( stdout,
     89                                     "psImageStats functions",
     90                                     "Calculate Sample Mean, no mask %d" );
     91                                     
     92            myStats = psImageStats( myStats, tmpImage, NULL, 0 );
     93            printf( "The sample mean was %.2f\n", myStats->sampleMean );
     94           
     95            psMemCheckCorruption( 1 );
     96           
     97            printFooter( stdout,
     98                         "psImageStats functions",
     99                         "Calculate Sample Mean, no mask",
     100                         testStatus );
     101                         
     102            /*************************************************************************/
     103            /*  Calculate Sample Mean with mask                              */
     104            /*************************************************************************/
     105            printPositiveTestHeader( stdout,
     106                                     "psImageStats functions",
     107                                     "Calculate Sample Mean with mask" );
     108                                     
     109            myStats = psImageStats( myStats, tmpImage, tmpMask, 1 );
     110            printf( "The sample mean was %.2f\n", myStats->sampleMean );
     111           
     112            psMemCheckCorruption( 1 );
     113           
     114            printFooter( stdout,
     115                         "psImageStats functions",
     116                         "Calculate Sample Mean with mask",
     117                         testStatus );
     118                         
     119            /*************************************************************************/
     120            /*  Deallocate data structures                                   */
     121            /*************************************************************************/
     122            printPositiveTestHeader( stdout,
     123                                     "psImageStats functions",
     124                                     "Deallocate the psStats/psImage structure." );
     125            psFree( myStats );
     126            psFree( tmpImage );
     127            psFree( tmpMask );
     128           
     129            psMemCheckCorruption( 1 );
     130            memLeaks = psMemCheckLeaks( currentId, NULL, NULL );
     131            if ( 0 != memLeaks ) {
     132                    psAbort( __func__, "Memory Leaks! (%d leaks)", memLeaks );
     133                }
     134               
     135            printFooter( stdout,
     136                         "psImageStats functions",
     137                         "Deallocate the psStats/psImage structure.",
     138                         testStatus );
    37139        }
    38         if (nb == 1) {
    39             IMAGE_X_SIZE = 1;
    40             IMAGE_Y_SIZE = N;
    41         }
    42         if (nb == 2) {
    43             IMAGE_X_SIZE = N;
    44             IMAGE_Y_SIZE = 1;
    45         }
    46         if (nb == 3) {
    47             IMAGE_X_SIZE = N;
    48             IMAGE_Y_SIZE = N;
    49         }
    50         if (nb == 4) {
    51             IMAGE_X_SIZE = N;
    52             IMAGE_Y_SIZE = M;
    53         }
    54         if (nb == 5) {
    55             IMAGE_X_SIZE = M;
    56             IMAGE_Y_SIZE = N;
    57         }
    58         printf("*******************************\n");
    59         printf("* IMAGE SIZE is (%d by %d)\n", IMAGE_X_SIZE, IMAGE_Y_SIZE);
    60         printf("*******************************\n");
    61 
    62         /*************************************************************************/
    63         /*  Allocate and initialize data structures                      */
    64         /*************************************************************************/
    65         tmpImage = psImageAlloc(IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32);
    66 
    67         for (i=0;i<tmpImage->numRows;i++) {
    68             for (j=0;j<tmpImage->numCols;j++) {
    69                 tmpImage->data.F32[i][j] = (float) (i + j);
    70             }
    71         }
    72         tmpMask = psImageAlloc(IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U8);
    73         for (i=0;i<tmpMask->numRows;i++) {
    74             for (j=0;j<tmpMask->numCols;j++) {
    75                 if ((i > (tmpMask->numRows/2)) &&
    76                         (j > (tmpMask->numCols/2))) {
    77                     tmpMask->data.U8[i][j] = 1;
    78                 } else {
    79                     tmpMask->data.U8[i][j] = 0;
    80                 }
    81             }
    82         }
    83 
    84         myStats = psStatsAlloc(PS_STAT_SAMPLE_MEAN);
    85         /*************************************************************************/
    86         /*  Calculate Sample Mean with no mask                           */
    87         /*************************************************************************/
    88         printPositiveTestHeader(stdout,
    89                                 "psImageStats functions",
    90                                 "Calculate Sample Mean, no mask %d");
    91 
    92         myStats = psImageStats(myStats, tmpImage, NULL, 0);
    93         printf("The sample mean was %f\n", myStats->sampleMean);
    94 
    95         psMemCheckCorruption(1);
    96 
    97         printFooter(stdout,
    98                     "psImageStats functions",
    99                     "Calculate Sample Mean, no mask",
    100                     testStatus);
    101 
    102         /*************************************************************************/
    103         /*  Calculate Sample Mean with mask                              */
    104         /*************************************************************************/
    105         printPositiveTestHeader(stdout,
    106                                 "psImageStats functions",
    107                                 "Calculate Sample Mean with mask");
    108 
    109         myStats = psImageStats(myStats, tmpImage, tmpMask, 1);
    110         printf("The sample mean was %f\n", myStats->sampleMean);
    111 
    112         psMemCheckCorruption(1);
    113 
    114         printFooter(stdout,
    115                     "psImageStats functions",
    116                     "Calculate Sample Mean with mask",
    117                     testStatus);
    118 
    119         /*************************************************************************/
    120         /*  Deallocate data structures                                   */
    121         /*************************************************************************/
    122         printPositiveTestHeader(stdout,
    123                                 "psImageStats functions",
    124                                 "Deallocate the psStats/psImage structure.");
    125         psFree(myStats);
    126         psFree(tmpImage);
    127         psFree(tmpMask);
    128 
    129         psMemCheckCorruption(1);
    130         memLeaks = psMemCheckLeaks(currentId,NULL,NULL);
    131         if (0 != memLeaks) {
    132             psAbort(__func__,"Memory Leaks! (%d leaks)", memLeaks);
    133         }
    134 
    135         printFooter(stdout,
    136                     "psImageStats functions",
    137                     "Deallocate the psStats/psImage structure.",
    138                     testStatus);
    139     }
    140 
     140       
    141141    /*************************************************************************/
    142142    /*  Test With Various Null Inputs                                        */
    143143    /*************************************************************************/
    144     printPositiveTestHeader(stdout,
    145                             "psImageStats functions",
    146                             "Test With Various Null Inputs");
    147 
    148     tmpImage = psImageAlloc(IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32);
    149     tmpMask = psImageAlloc(IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U8);
    150     myStats = psStatsAlloc(0);
    151 
    152     myStats2 = psImageStats(myStats, NULL, NULL, 0);
    153     if (myStats2 != NULL) {
    154         printf("ERROR: myStats2 = psImageStats(myStats, NULL, NULL, 0) != NULL\n");
    155     }
    156 
    157     myStats2 = psImageStats(NULL, tmpImage, NULL, 0);
    158     if (myStats2 != NULL) {
    159         printf("ERROR: myStats2 = psImageStats(NULL, tmpImage, NULL, 0) != NULL\n");
    160     }
    161 
    162     myStats2 = psImageStats(myStats, tmpImage, NULL, 0);
    163 
    164     psFree(myStats);
    165     psFree(tmpImage);
    166     psFree(tmpMask);
    167 
    168     psMemCheckCorruption(1);
    169     memLeaks = psMemCheckLeaks(currentId,NULL,NULL);
    170     if (0 != memLeaks) {
    171         psAbort(__func__,"Memory Leaks! (%d leaks)", memLeaks);
    172     }
    173 
    174     printFooter(stdout,
    175                 "psImageStats functions",
    176                 "Test With Various Null Inputs",
    177                 testStatus);
    178     return (!testStatus);
     144    printPositiveTestHeader( stdout,
     145                             "psImageStats functions",
     146                             "Test With Various Null Inputs" );
     147                             
     148    tmpImage = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_F32 );
     149    tmpMask = psImageAlloc( IMAGE_X_SIZE, IMAGE_Y_SIZE, PS_TYPE_U8 );
     150    myStats = psStatsAlloc( 0 );
     151   
     152    myStats2 = psImageStats( myStats, NULL, NULL, 0 );
     153    if ( myStats2 != NULL ) {
     154            printf( "ERROR: myStats2 = psImageStats(myStats, NULL, NULL, 0) != NULL\n" );
     155        }
     156       
     157    myStats2 = psImageStats( NULL, tmpImage, NULL, 0 );
     158    if ( myStats2 != NULL ) {
     159            printf( "ERROR: myStats2 = psImageStats(NULL, tmpImage, NULL, 0) != NULL\n" );
     160        }
     161       
     162    myStats2 = psImageStats( myStats, tmpImage, NULL, 0 );
     163   
     164    psFree( myStats );
     165    psFree( tmpImage );
     166    psFree( tmpMask );
     167   
     168    psMemCheckCorruption( 1 );
     169    memLeaks = psMemCheckLeaks( currentId, NULL, NULL );
     170    if ( 0 != memLeaks ) {
     171            psAbort( __func__, "Memory Leaks! (%d leaks)", memLeaks );
     172        }
     173       
     174    printFooter( stdout,
     175                 "psImageStats functions",
     176                 "Test With Various Null Inputs",
     177                 testStatus );
     178    return ( !testStatus );
    179179}
  • trunk/psLib/test/image/tst_psImageStats02.c

    r1078 r1365  
    11/*****************************************************************************
    2     This routine must ensure that the psImageStats() routine can correctly
    3     call the psVectorStats() routine.  Since the psVectorStats() will be
    4     thouroughly tested elsewhere, we will only test psImageStats() with
    5     the PS_STAT_SAMPLE_MEAN here.
    6  
    7     NOTE: After you debug, set CHEBY_X_DIM != CHEBY_Y_DIM.
    8     Also, uses non-square images.
    9  *****************************************************************************/
     2   This routine must ensure that the psImageStats() routine can correctly
     3   call the psVectorStats() routine.  Since the psVectorStats() will be
     4   thouroughly tested elsewhere, we will only test psImageStats() with
     5   the PS_STAT_SAMPLE_MEAN here.
     6
     7   NOTE: After you debug, set CHEBY_X_DIM != CHEBY_Y_DIM.
     8   Also, uses non-square images.
     9*****************************************************************************/
    1010#include <stdio.h>
    1111#include "pslib.h"
     
    1919#define CHEBY_X_DIM 8
    2020#define CHEBY_Y_DIM 8
    21 #define THRESHOLD 1.0
     21#define THRESHOLD 10
    2222int main()
    2323{
    24     psStats *myStats    = NULL;
    25     psImage *tmpImage   = NULL;
    26     psImage *outImage   = NULL;
     24    psStats * myStats = NULL;
     25    psImage *tmpImage = NULL;
     26    psImage *outImage = NULL;
    2727    psPolynomial2D *my2DPoly = NULL;
    28     int testStatus      = true;
    29     int memLeaks        = 0;
    30     int i               = 0;
    31     int j               = 0;
    32     int rc              = 0;
    33     int currentId       = 0;
    34 
    35     currentId       = psMemGetId();
     28    int testStatus = true;
     29    int memLeaks = 0;
     30    int i = 0;
     31    int j = 0;
     32    int rc = 0;
     33    int currentId = 0;
     34   
     35    currentId = psMemGetId();
    3636    /*************************************************************************/
    3737    /*  Allocate and initialize data structures                      */
    3838    /*************************************************************************/
    39     tmpImage = psImageAlloc(IMAGE_SIZE, IMAGE_SIZE, PS_TYPE_F32);
    40     outImage = psImageAlloc(IMAGE_SIZE, IMAGE_SIZE, PS_TYPE_F32);
    41     for (i=0;i<IMAGE_SIZE;i++) {
    42         for (j=0;j<IMAGE_SIZE;j++) {
    43             tmpImage->data.F32[i][j] = 4.0;
    44             tmpImage->data.F32[i][j] = (float) (i + j);
    45             tmpImage->data.F32[i][j] = (float) (i + j) + (4.0 * (float) i);
    46             outImage->data.F32[i][j] = 0.0;
     39    tmpImage = psImageAlloc( IMAGE_SIZE, IMAGE_SIZE, PS_TYPE_F32 );
     40    outImage = psImageAlloc( IMAGE_SIZE, IMAGE_SIZE, PS_TYPE_F32 );
     41    for ( i = 0;i < IMAGE_SIZE;i++ ) {
     42            for ( j = 0;j < IMAGE_SIZE;j++ ) {
     43                    tmpImage->data.F32[ i ][ j ] = 4.0;
     44                    tmpImage->data.F32[ i ][ j ] = ( float ) ( i + j );
     45                    tmpImage->data.F32[ i ][ j ] = ( float ) ( i + j ) + ( 4.0 * ( float ) i );
     46                    outImage->data.F32[ i ][ j ] = 0.0;
     47                }
    4748        }
    48     }
    49     my2DPoly = psPolynomial2DAlloc(CHEBY_X_DIM, CHEBY_Y_DIM);
     49    my2DPoly = psPolynomial2DAlloc( CHEBY_X_DIM, CHEBY_Y_DIM );
    5050    /*************************************************************************/
    5151    /*  Calculate Chebyshev Polynomials, no mask                     */
    5252    /*************************************************************************/
    53     printPositiveTestHeader(stdout,
    54                             "psImageStats functions",
    55                             "Calculate Chebyshev Polynomials, no mask");
    56 
    57     my2DPoly = psImageFitPolynomial(tmpImage, my2DPoly);
    58     for (i=0;i<CHEBY_X_DIM;i++) {
    59         for (j=0;j<CHEBY_Y_DIM;j++) {
    60             printf("Cheby Polynomial (%d, %d) coefficient is %f\n", i, j, my2DPoly->coeff[i][j]);
     53    printPositiveTestHeader( stdout,
     54                             "psImageStats functions",
     55                             "Calculate Chebyshev Polynomials, no mask" );
     56                             
     57    my2DPoly = psImageFitPolynomial( tmpImage, my2DPoly );
     58    for ( i = 0;i < CHEBY_X_DIM;i++ ) {
     59            for ( j = 0;j < CHEBY_Y_DIM;j++ ) {
     60                    printf( "Cheby Polynomial (%d, %d) coefficient is %.2f\n", i, j, my2DPoly->coeff[ i ][ j ] );
     61                }
    6162        }
    62     }
    63 
    64     psMemCheckCorruption(1);
    65     printFooter(stdout,
    66                 "psImageStats functions",
    67                 "Calculate Chebyshev Polynomials, no mask",
    68                 testStatus);
     63       
     64    psMemCheckCorruption( 1 );
     65    printFooter( stdout,
     66                 "psImageStats functions",
     67                 "Calculate Chebyshev Polynomials, no mask",
     68                 testStatus );
    6969    /*************************************************************************/
    7070    /*  Evaluate Chebyshev Polynomials, no mask                      */
    7171    /*************************************************************************/
    72     printPositiveTestHeader(stdout,
    73                             "psImageStats functions",
    74                             "Calculate Chebyshev Polynomials, no mask");
    75 
    76     rc = psImageEvalPolynomial(outImage, my2DPoly);
    77     for (i=0;i<IMAGE_SIZE;i++) {
    78         for (j=0;j<IMAGE_SIZE;j++) {
    79 
    80             //             printf("pixel[%d][%d] is (%f, %f)\n", i, j,
    81             //                     tmpImage->data.F32[i][j],
    82             //                     outImage->data.F32[i][j]);
    83             if (fabs(outImage->data.F32[i][j] - tmpImage->data.F32[i][j]) > THRESHOLD) {
    84                 printf("Pixel (%d, %d) is %f, should be %f\n", i, j,
    85                        outImage->data.F32[i][j],
    86                        tmpImage->data.F32[i][j]);
    87             }
    88 
     72    printPositiveTestHeader( stdout,
     73                             "psImageStats functions",
     74                             "Calculate Chebyshev Polynomials, no mask" );
     75                             
     76    rc = psImageEvalPolynomial( outImage, my2DPoly );
     77    for ( i = 0;i < IMAGE_SIZE;i++ ) {
     78            for ( j = 0;j < IMAGE_SIZE;j++ ) {
     79           
     80                    //             printf("pixel[%d][%d] is (%f, %f)\n", i, j,
     81                    //                     tmpImage->data.F32[i][j],
     82                    //                     outImage->data.F32[i][j]);
     83                    if ( fabs( outImage->data.F32[ i ][ j ] - tmpImage->data.F32[ i ][ j ] ) > THRESHOLD ) {
     84                            printf( "Pixel (%d, %d) is %.2f, should be %.2f\n", i, j,
     85                                    outImage->data.F32[ i ][ j ],
     86                                    tmpImage->data.F32[ i ][ j ] );
     87                        }
     88                       
     89                }
    8990        }
    90     }
    91 
    92     psMemCheckCorruption(1);
    93     printFooter(stdout,
    94                 "psImageStats functions",
    95                 "Calculate Chebyshev Polynomials, no mask",
    96                 testStatus);
    97 
     91       
     92    psMemCheckCorruption( 1 );
     93    printFooter( stdout,
     94                 "psImageStats functions",
     95                 "Calculate Chebyshev Polynomials, no mask",
     96                 testStatus );
     97                 
    9898    /*************************************************************************/
    9999    /*  Deallocate data structures                                   */
    100100    /*************************************************************************/
    101     printPositiveTestHeader(stdout,
    102                             "psImageStats functions",
    103                             "Deallocate the psStats/psImage structure.");
    104     psFree(myStats);
    105     psFree(tmpImage);
    106     psFree(outImage);
    107     psFree(my2DPoly);
    108 
    109     psMemCheckCorruption(1);
    110     memLeaks = psMemCheckLeaks(currentId,NULL,NULL);
    111     if (0 != memLeaks) {
    112         psAbort(__func__,"Memory Leaks! (%d leaks)", memLeaks);
    113     }
    114 
    115     printFooter(stdout,
    116                 "psImageStats functions",
    117                 "Deallocate the psStats/psImage structure.",
    118                 testStatus);
    119 
    120     return (!testStatus);
     101    printPositiveTestHeader( stdout,
     102                             "psImageStats functions",
     103                             "Deallocate the psStats/psImage structure." );
     104    psFree( myStats );
     105    psFree( tmpImage );
     106    psFree( outImage );
     107    psFree( my2DPoly );
     108   
     109    psMemCheckCorruption( 1 );
     110    memLeaks = psMemCheckLeaks( currentId, NULL, NULL );
     111    if ( 0 != memLeaks ) {
     112            psAbort( __func__, "Memory Leaks! (%d leaks)", memLeaks );
     113        }
     114       
     115    printFooter( stdout,
     116                 "psImageStats functions",
     117                 "Deallocate the psStats/psImage structure.",
     118                 testStatus );
     119                 
     120    return ( !testStatus );
    121121}
  • trunk/psLib/test/image/verified/tst_psImageStats00.stdout

    r1042 r1365  
    88\**********************************************************************************/
    99
    10 Bin number 0 bounds: (0.000000 - 0.100000) data (0)
    11 Bin number 1 bounds: (0.100000 - 0.200000) data (1)
    12 Bin number 2 bounds: (0.200000 - 0.300000) data (0)
    13 Bin number 3 bounds: (0.300000 - 0.400000) data (0)
    14 Bin number 4 bounds: (0.400000 - 0.500000) data (0)
    15 Bin number 5 bounds: (0.500000 - 0.600000) data (0)
    16 Bin number 6 bounds: (0.600000 - 0.700000) data (0)
    17 Bin number 7 bounds: (0.700000 - 0.800000) data (0)
    18 Bin number 8 bounds: (0.800000 - 0.900000) data (0)
    19 Bin number 9 bounds: (0.900000 - 1.000000) data (0)
    20 Bin number 10 bounds: (1.000000 - 1.100000) data (0)
    21 Bin number 11 bounds: (1.100000 - 1.200000) data (0)
    22 Bin number 12 bounds: (1.200000 - 1.300000) data (0)
    23 Bin number 13 bounds: (1.300000 - 1.400000) data (0)
    24 Bin number 14 bounds: (1.400000 - 1.500000) data (0)
    25 Bin number 15 bounds: (1.500000 - 1.600000) data (0)
    26 Bin number 16 bounds: (1.600000 - 1.700000) data (0)
    27 Bin number 17 bounds: (1.700000 - 1.800000) data (0)
    28 Bin number 18 bounds: (1.800000 - 1.900000) data (0)
    29 Bin number 19 bounds: (1.900000 - 2.000000) data (0)
    30 
    31 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
    32 
    33 /***************************** TESTPOINT ******************************************\
    34 *             TestFile: tst_psImageStats00.c                                       *
    35 *            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
    36 *             TestType: Positive                                                   *
    37 \**********************************************************************************/
    38 
    39 Bin number 0 bounds: (0.000000 - 0.100000) data (0)
    40 Bin number 1 bounds: (0.100000 - 0.200000) data (1)
    41 Bin number 2 bounds: (0.200000 - 0.300000) data (0)
    42 Bin number 3 bounds: (0.300000 - 0.400000) data (0)
    43 Bin number 4 bounds: (0.400000 - 0.500000) data (0)
    44 Bin number 5 bounds: (0.500000 - 0.600000) data (0)
    45 Bin number 6 bounds: (0.600000 - 0.700000) data (0)
    46 Bin number 7 bounds: (0.700000 - 0.800000) data (0)
    47 Bin number 8 bounds: (0.800000 - 0.900000) data (0)
    48 Bin number 9 bounds: (0.900000 - 1.000000) data (0)
    49 Bin number 10 bounds: (1.000000 - 1.100000) data (0)
    50 Bin number 11 bounds: (1.100000 - 1.200000) data (0)
    51 Bin number 12 bounds: (1.200000 - 1.300000) data (0)
    52 Bin number 13 bounds: (1.300000 - 1.400000) data (0)
    53 Bin number 14 bounds: (1.400000 - 1.500000) data (0)
    54 Bin number 15 bounds: (1.500000 - 1.600000) data (0)
    55 Bin number 16 bounds: (1.600000 - 1.700000) data (0)
    56 Bin number 17 bounds: (1.700000 - 1.800000) data (0)
    57 Bin number 18 bounds: (1.800000 - 1.900000) data (0)
    58 Bin number 19 bounds: (1.900000 - 2.000000) data (0)
     10Bin number 0 bounds: (0.0 - 0.1) data (1)
     11Bin number 1 bounds: (0.1 - 0.2) data (0)
     12Bin number 2 bounds: (0.2 - 0.3) data (0)
     13Bin number 3 bounds: (0.3 - 0.4) data (0)
     14Bin number 4 bounds: (0.4 - 0.5) data (0)
     15Bin number 5 bounds: (0.5 - 0.6) data (0)
     16Bin number 6 bounds: (0.6 - 0.7) data (0)
     17Bin number 7 bounds: (0.7 - 0.8) data (0)
     18Bin number 8 bounds: (0.8 - 0.9) data (0)
     19Bin number 9 bounds: (0.9 - 1.0) data (0)
     20Bin number 10 bounds: (1.0 - 1.1) data (0)
     21Bin number 11 bounds: (1.1 - 1.2) data (0)
     22Bin number 12 bounds: (1.2 - 1.3) data (0)
     23Bin number 13 bounds: (1.3 - 1.4) data (0)
     24Bin number 14 bounds: (1.4 - 1.5) data (0)
     25Bin number 15 bounds: (1.5 - 1.6) data (0)
     26Bin number 16 bounds: (1.6 - 1.7) data (0)
     27Bin number 17 bounds: (1.7 - 1.8) data (0)
     28Bin number 18 bounds: (1.8 - 1.9) data (0)
     29Bin number 19 bounds: (1.9 - 2.0) data (0)
     30
     31---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
     32
     33/***************************** TESTPOINT ******************************************\
     34*             TestFile: tst_psImageStats00.c                                       *
     35*            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
     36*             TestType: Positive                                                   *
     37\**********************************************************************************/
     38
     39Bin number 0 bounds: (0.00 - 0.10) data (1)
     40Bin number 1 bounds: (0.10 - 0.20) data (0)
     41Bin number 2 bounds: (0.20 - 0.30) data (0)
     42Bin number 3 bounds: (0.30 - 0.40) data (0)
     43Bin number 4 bounds: (0.40 - 0.50) data (0)
     44Bin number 5 bounds: (0.50 - 0.60) data (0)
     45Bin number 6 bounds: (0.60 - 0.70) data (0)
     46Bin number 7 bounds: (0.70 - 0.80) data (0)
     47Bin number 8 bounds: (0.80 - 0.90) data (0)
     48Bin number 9 bounds: (0.90 - 1.00) data (0)
     49Bin number 10 bounds: (1.00 - 1.10) data (0)
     50Bin number 11 bounds: (1.10 - 1.20) data (0)
     51Bin number 12 bounds: (1.20 - 1.30) data (0)
     52Bin number 13 bounds: (1.30 - 1.40) data (0)
     53Bin number 14 bounds: (1.40 - 1.50) data (0)
     54Bin number 15 bounds: (1.50 - 1.60) data (0)
     55Bin number 16 bounds: (1.60 - 1.70) data (0)
     56Bin number 17 bounds: (1.70 - 1.80) data (0)
     57Bin number 18 bounds: (1.80 - 1.90) data (0)
     58Bin number 19 bounds: (1.90 - 2.00) data (0)
    5959
    6060---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c)
     
    7878\**********************************************************************************/
    7979
    80 Bin number 0 bounds: (0.000000 - 1.650000) data (2)
    81 Bin number 1 bounds: (1.650000 - 3.300000) data (2)
    82 Bin number 2 bounds: (3.300000 - 4.950000) data (1)
    83 Bin number 3 bounds: (4.950000 - 6.600000) data (2)
    84 Bin number 4 bounds: (6.600000 - 8.250000) data (2)
    85 Bin number 5 bounds: (8.250000 - 9.900000) data (1)
    86 Bin number 6 bounds: (9.900000 - 11.550000) data (2)
    87 Bin number 7 bounds: (11.550000 - 13.200000) data (2)
    88 Bin number 8 bounds: (13.200000 - 14.849999) data (1)
    89 Bin number 9 bounds: (14.849999 - 16.500000) data (2)
    90 Bin number 10 bounds: (16.500000 - 18.150000) data (2)
    91 Bin number 11 bounds: (18.150000 - 19.799999) data (1)
    92 Bin number 12 bounds: (19.799999 - 21.449999) data (2)
    93 Bin number 13 bounds: (21.449999 - 23.100000) data (1)
    94 Bin number 14 bounds: (23.100000 - 24.750000) data (2)
    95 Bin number 15 bounds: (24.750000 - 26.400000) data (2)
    96 Bin number 16 bounds: (26.400000 - 28.049999) data (1)
    97 Bin number 17 bounds: (28.049999 - 29.699999) data (2)
    98 Bin number 18 bounds: (29.699999 - 31.350000) data (2)
    99 Bin number 19 bounds: (31.350000 - 33.000000) data (0)
    100 
    101 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
    102 
    103 /***************************** TESTPOINT ******************************************\
    104 *             TestFile: tst_psImageStats00.c                                       *
    105 *            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
    106 *             TestType: Positive                                                   *
    107 \**********************************************************************************/
    108 
    109 Bin number 0 bounds: (0.000000 - 1.650000) data (2)
    110 Bin number 1 bounds: (1.650000 - 3.300000) data (2)
    111 Bin number 2 bounds: (3.300000 - 4.950000) data (1)
    112 Bin number 3 bounds: (4.950000 - 6.600000) data (2)
    113 Bin number 4 bounds: (6.600000 - 8.250000) data (2)
    114 Bin number 5 bounds: (8.250000 - 9.900000) data (1)
    115 Bin number 6 bounds: (9.900000 - 11.550000) data (2)
    116 Bin number 7 bounds: (11.550000 - 13.200000) data (2)
    117 Bin number 8 bounds: (13.200000 - 14.849999) data (1)
    118 Bin number 9 bounds: (14.849999 - 16.500000) data (2)
    119 Bin number 10 bounds: (16.500000 - 18.150000) data (2)
    120 Bin number 11 bounds: (18.150000 - 19.799999) data (1)
    121 Bin number 12 bounds: (19.799999 - 21.449999) data (2)
    122 Bin number 13 bounds: (21.449999 - 23.100000) data (1)
    123 Bin number 14 bounds: (23.100000 - 24.750000) data (2)
    124 Bin number 15 bounds: (24.750000 - 26.400000) data (2)
    125 Bin number 16 bounds: (26.400000 - 28.049999) data (1)
    126 Bin number 17 bounds: (28.049999 - 29.699999) data (2)
    127 Bin number 18 bounds: (29.699999 - 31.350000) data (2)
    128 Bin number 19 bounds: (31.350000 - 33.000000) data (0)
     80Bin number 0 bounds: (0.0 - 1.7) data (2)
     81Bin number 1 bounds: (1.7 - 3.3) data (2)
     82Bin number 2 bounds: (3.3 - 5.0) data (1)
     83Bin number 3 bounds: (5.0 - 6.6) data (2)
     84Bin number 4 bounds: (6.6 - 8.2) data (2)
     85Bin number 5 bounds: (8.2 - 9.9) data (1)
     86Bin number 6 bounds: (9.9 - 11.6) data (2)
     87Bin number 7 bounds: (11.6 - 13.2) data (2)
     88Bin number 8 bounds: (13.2 - 14.9) data (1)
     89Bin number 9 bounds: (14.9 - 16.5) data (2)
     90Bin number 10 bounds: (16.5 - 18.2) data (2)
     91Bin number 11 bounds: (18.2 - 19.8) data (1)
     92Bin number 12 bounds: (19.8 - 21.5) data (2)
     93Bin number 13 bounds: (21.5 - 23.1) data (2)
     94Bin number 14 bounds: (23.1 - 24.8) data (1)
     95Bin number 15 bounds: (24.8 - 26.4) data (2)
     96Bin number 16 bounds: (26.4 - 28.1) data (1)
     97Bin number 17 bounds: (28.1 - 29.7) data (2)
     98Bin number 18 bounds: (29.7 - 31.4) data (2)
     99Bin number 19 bounds: (31.4 - 33.0) data (0)
     100
     101---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
     102
     103/***************************** TESTPOINT ******************************************\
     104*             TestFile: tst_psImageStats00.c                                       *
     105*            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
     106*             TestType: Positive                                                   *
     107\**********************************************************************************/
     108
     109Bin number 0 bounds: (0.00 - 1.65) data (2)
     110Bin number 1 bounds: (1.65 - 3.30) data (2)
     111Bin number 2 bounds: (3.30 - 4.95) data (1)
     112Bin number 3 bounds: (4.95 - 6.60) data (2)
     113Bin number 4 bounds: (6.60 - 8.25) data (2)
     114Bin number 5 bounds: (8.25 - 9.90) data (1)
     115Bin number 6 bounds: (9.90 - 11.55) data (2)
     116Bin number 7 bounds: (11.55 - 13.20) data (2)
     117Bin number 8 bounds: (13.20 - 14.85) data (1)
     118Bin number 9 bounds: (14.85 - 16.50) data (2)
     119Bin number 10 bounds: (16.50 - 18.15) data (2)
     120Bin number 11 bounds: (18.15 - 19.80) data (1)
     121Bin number 12 bounds: (19.80 - 21.45) data (2)
     122Bin number 13 bounds: (21.45 - 23.10) data (2)
     123Bin number 14 bounds: (23.10 - 24.75) data (1)
     124Bin number 15 bounds: (24.75 - 26.40) data (2)
     125Bin number 16 bounds: (26.40 - 28.05) data (1)
     126Bin number 17 bounds: (28.05 - 29.70) data (2)
     127Bin number 18 bounds: (29.70 - 31.35) data (2)
     128Bin number 19 bounds: (31.35 - 33.00) data (0)
    129129
    130130---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c)
     
    148148\**********************************************************************************/
    149149
    150 Bin number 0 bounds: (0.000000 - 1.650000) data (2)
    151 Bin number 1 bounds: (1.650000 - 3.300000) data (2)
    152 Bin number 2 bounds: (3.300000 - 4.950000) data (1)
    153 Bin number 3 bounds: (4.950000 - 6.600000) data (2)
    154 Bin number 4 bounds: (6.600000 - 8.250000) data (2)
    155 Bin number 5 bounds: (8.250000 - 9.900000) data (1)
    156 Bin number 6 bounds: (9.900000 - 11.550000) data (2)
    157 Bin number 7 bounds: (11.550000 - 13.200000) data (2)
    158 Bin number 8 bounds: (13.200000 - 14.849999) data (1)
    159 Bin number 9 bounds: (14.849999 - 16.500000) data (2)
    160 Bin number 10 bounds: (16.500000 - 18.150000) data (2)
    161 Bin number 11 bounds: (18.150000 - 19.799999) data (1)
    162 Bin number 12 bounds: (19.799999 - 21.449999) data (2)
    163 Bin number 13 bounds: (21.449999 - 23.100000) data (1)
    164 Bin number 14 bounds: (23.100000 - 24.750000) data (2)
    165 Bin number 15 bounds: (24.750000 - 26.400000) data (2)
    166 Bin number 16 bounds: (26.400000 - 28.049999) data (1)
    167 Bin number 17 bounds: (28.049999 - 29.699999) data (2)
    168 Bin number 18 bounds: (29.699999 - 31.350000) data (2)
    169 Bin number 19 bounds: (31.350000 - 33.000000) data (0)
    170 
    171 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
    172 
    173 /***************************** TESTPOINT ******************************************\
    174 *             TestFile: tst_psImageStats00.c                                       *
    175 *            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
    176 *             TestType: Positive                                                   *
    177 \**********************************************************************************/
    178 
    179 Bin number 0 bounds: (0.000000 - 1.650000) data (2)
    180 Bin number 1 bounds: (1.650000 - 3.300000) data (2)
    181 Bin number 2 bounds: (3.300000 - 4.950000) data (1)
    182 Bin number 3 bounds: (4.950000 - 6.600000) data (2)
    183 Bin number 4 bounds: (6.600000 - 8.250000) data (2)
    184 Bin number 5 bounds: (8.250000 - 9.900000) data (1)
    185 Bin number 6 bounds: (9.900000 - 11.550000) data (2)
    186 Bin number 7 bounds: (11.550000 - 13.200000) data (2)
    187 Bin number 8 bounds: (13.200000 - 14.849999) data (1)
    188 Bin number 9 bounds: (14.849999 - 16.500000) data (2)
    189 Bin number 10 bounds: (16.500000 - 18.150000) data (2)
    190 Bin number 11 bounds: (18.150000 - 19.799999) data (1)
    191 Bin number 12 bounds: (19.799999 - 21.449999) data (2)
    192 Bin number 13 bounds: (21.449999 - 23.100000) data (1)
    193 Bin number 14 bounds: (23.100000 - 24.750000) data (2)
    194 Bin number 15 bounds: (24.750000 - 26.400000) data (2)
    195 Bin number 16 bounds: (26.400000 - 28.049999) data (1)
    196 Bin number 17 bounds: (28.049999 - 29.699999) data (2)
    197 Bin number 18 bounds: (29.699999 - 31.350000) data (2)
    198 Bin number 19 bounds: (31.350000 - 33.000000) data (0)
     150Bin number 0 bounds: (0.0 - 1.7) data (2)
     151Bin number 1 bounds: (1.7 - 3.3) data (2)
     152Bin number 2 bounds: (3.3 - 5.0) data (1)
     153Bin number 3 bounds: (5.0 - 6.6) data (2)
     154Bin number 4 bounds: (6.6 - 8.2) data (2)
     155Bin number 5 bounds: (8.2 - 9.9) data (1)
     156Bin number 6 bounds: (9.9 - 11.6) data (2)
     157Bin number 7 bounds: (11.6 - 13.2) data (2)
     158Bin number 8 bounds: (13.2 - 14.9) data (1)
     159Bin number 9 bounds: (14.9 - 16.5) data (2)
     160Bin number 10 bounds: (16.5 - 18.2) data (2)
     161Bin number 11 bounds: (18.2 - 19.8) data (1)
     162Bin number 12 bounds: (19.8 - 21.5) data (2)
     163Bin number 13 bounds: (21.5 - 23.1) data (2)
     164Bin number 14 bounds: (23.1 - 24.8) data (1)
     165Bin number 15 bounds: (24.8 - 26.4) data (2)
     166Bin number 16 bounds: (26.4 - 28.1) data (1)
     167Bin number 17 bounds: (28.1 - 29.7) data (2)
     168Bin number 18 bounds: (29.7 - 31.4) data (2)
     169Bin number 19 bounds: (31.4 - 33.0) data (0)
     170
     171---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
     172
     173/***************************** TESTPOINT ******************************************\
     174*             TestFile: tst_psImageStats00.c                                       *
     175*            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
     176*             TestType: Positive                                                   *
     177\**********************************************************************************/
     178
     179Bin number 0 bounds: (0.00 - 1.65) data (2)
     180Bin number 1 bounds: (1.65 - 3.30) data (2)
     181Bin number 2 bounds: (3.30 - 4.95) data (1)
     182Bin number 3 bounds: (4.95 - 6.60) data (2)
     183Bin number 4 bounds: (6.60 - 8.25) data (2)
     184Bin number 5 bounds: (8.25 - 9.90) data (1)
     185Bin number 6 bounds: (9.90 - 11.55) data (2)
     186Bin number 7 bounds: (11.55 - 13.20) data (2)
     187Bin number 8 bounds: (13.20 - 14.85) data (1)
     188Bin number 9 bounds: (14.85 - 16.50) data (2)
     189Bin number 10 bounds: (16.50 - 18.15) data (2)
     190Bin number 11 bounds: (18.15 - 19.80) data (1)
     191Bin number 12 bounds: (19.80 - 21.45) data (2)
     192Bin number 13 bounds: (21.45 - 23.10) data (2)
     193Bin number 14 bounds: (23.10 - 24.75) data (1)
     194Bin number 15 bounds: (24.75 - 26.40) data (2)
     195Bin number 16 bounds: (26.40 - 28.05) data (1)
     196Bin number 17 bounds: (28.05 - 29.70) data (2)
     197Bin number 18 bounds: (29.70 - 31.35) data (2)
     198Bin number 19 bounds: (31.35 - 33.00) data (0)
    199199
    200200---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c)
     
    218218\**********************************************************************************/
    219219
    220 Bin number 0 bounds: (0.000000 - 3.200000) data (10)
    221 Bin number 1 bounds: (3.200000 - 6.400000) data (18)
    222 Bin number 2 bounds: (6.400000 - 9.600000) data (27)
    223 Bin number 3 bounds: (9.600000 - 12.800000) data (36)
    224 Bin number 4 bounds: (12.800000 - 16.000000) data (45)
    225 Bin number 5 bounds: (16.000000 - 19.200001) data (74)
    226 Bin number 6 bounds: (19.200001 - 22.400000) data (66)
    227 Bin number 7 bounds: (22.400000 - 25.600000) data (75)
    228 Bin number 8 bounds: (25.600000 - 28.800001) data (84)
    229 Bin number 9 bounds: (28.800001 - 32.000000) data (93)
    230 Bin number 10 bounds: (32.000000 - 35.200001) data (118)
    231 Bin number 11 bounds: (35.200001 - 38.400002) data (78)
    232 Bin number 12 bounds: (38.400002 - 41.600002) data (69)
    233 Bin number 13 bounds: (41.600002 - 44.799999) data (60)
    234 Bin number 14 bounds: (44.799999 - 48.000000) data (51)
    235 Bin number 15 bounds: (48.000000 - 51.200001) data (54)
    236 Bin number 16 bounds: (51.200001 - 54.400002) data (30)
    237 Bin number 17 bounds: (54.400002 - 57.600002) data (21)
    238 Bin number 18 bounds: (57.600002 - 60.799999) data (12)
    239 Bin number 19 bounds: (60.799999 - 64.000000) data (3)
    240 
    241 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
    242 
    243 /***************************** TESTPOINT ******************************************\
    244 *             TestFile: tst_psImageStats00.c                                       *
    245 *            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
    246 *             TestType: Positive                                                   *
    247 \**********************************************************************************/
    248 
    249 Bin number 0 bounds: (0.000000 - 3.200000) data (10)
    250 Bin number 1 bounds: (3.200000 - 6.400000) data (18)
    251 Bin number 2 bounds: (6.400000 - 9.600000) data (27)
    252 Bin number 3 bounds: (9.600000 - 12.800000) data (36)
    253 Bin number 4 bounds: (12.800000 - 16.000000) data (45)
    254 Bin number 5 bounds: (16.000000 - 19.200001) data (74)
    255 Bin number 6 bounds: (19.200001 - 22.400000) data (66)
    256 Bin number 7 bounds: (22.400000 - 25.600000) data (75)
    257 Bin number 8 bounds: (25.600000 - 28.800001) data (84)
    258 Bin number 9 bounds: (28.800001 - 32.000000) data (93)
    259 Bin number 10 bounds: (32.000000 - 35.200001) data (115)
    260 Bin number 11 bounds: (35.200001 - 38.400002) data (66)
    261 Bin number 12 bounds: (38.400002 - 41.600002) data (48)
    262 Bin number 13 bounds: (41.600002 - 44.799999) data (30)
    263 Bin number 14 bounds: (44.799999 - 48.000000) data (12)
    264 Bin number 15 bounds: (48.000000 - 51.200001) data (0)
    265 Bin number 16 bounds: (51.200001 - 54.400002) data (0)
    266 Bin number 17 bounds: (54.400002 - 57.600002) data (0)
    267 Bin number 18 bounds: (57.600002 - 60.799999) data (0)
    268 Bin number 19 bounds: (60.799999 - 64.000000) data (0)
     220Bin number 0 bounds: (0.0 - 3.2) data (10)
     221Bin number 1 bounds: (3.2 - 6.4) data (18)
     222Bin number 2 bounds: (6.4 - 9.6) data (27)
     223Bin number 3 bounds: (9.6 - 12.8) data (36)
     224Bin number 4 bounds: (12.8 - 16.0) data (45)
     225Bin number 5 bounds: (16.0 - 19.2) data (74)
     226Bin number 6 bounds: (19.2 - 22.4) data (66)
     227Bin number 7 bounds: (22.4 - 25.6) data (75)
     228Bin number 8 bounds: (25.6 - 28.8) data (84)
     229Bin number 9 bounds: (28.8 - 32.0) data (93)
     230Bin number 10 bounds: (32.0 - 35.2) data (118)
     231Bin number 11 bounds: (35.2 - 38.4) data (78)
     232Bin number 12 bounds: (38.4 - 41.6) data (69)
     233Bin number 13 bounds: (41.6 - 44.8) data (60)
     234Bin number 14 bounds: (44.8 - 48.0) data (51)
     235Bin number 15 bounds: (48.0 - 51.2) data (54)
     236Bin number 16 bounds: (51.2 - 54.4) data (30)
     237Bin number 17 bounds: (54.4 - 57.6) data (21)
     238Bin number 18 bounds: (57.6 - 60.8) data (12)
     239Bin number 19 bounds: (60.8 - 64.0) data (3)
     240
     241---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
     242
     243/***************************** TESTPOINT ******************************************\
     244*             TestFile: tst_psImageStats00.c                                       *
     245*            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
     246*             TestType: Positive                                                   *
     247\**********************************************************************************/
     248
     249Bin number 0 bounds: (0.00 - 3.20) data (10)
     250Bin number 1 bounds: (3.20 - 6.40) data (18)
     251Bin number 2 bounds: (6.40 - 9.60) data (27)
     252Bin number 3 bounds: (9.60 - 12.80) data (36)
     253Bin number 4 bounds: (12.80 - 16.00) data (45)
     254Bin number 5 bounds: (16.00 - 19.20) data (74)
     255Bin number 6 bounds: (19.20 - 22.40) data (66)
     256Bin number 7 bounds: (22.40 - 25.60) data (75)
     257Bin number 8 bounds: (25.60 - 28.80) data (84)
     258Bin number 9 bounds: (28.80 - 32.00) data (93)
     259Bin number 10 bounds: (32.00 - 35.20) data (115)
     260Bin number 11 bounds: (35.20 - 38.40) data (66)
     261Bin number 12 bounds: (38.40 - 41.60) data (48)
     262Bin number 13 bounds: (41.60 - 44.80) data (30)
     263Bin number 14 bounds: (44.80 - 48.00) data (12)
     264Bin number 15 bounds: (48.00 - 51.20) data (0)
     265Bin number 16 bounds: (51.20 - 54.40) data (0)
     266Bin number 17 bounds: (54.40 - 57.60) data (0)
     267Bin number 18 bounds: (57.60 - 60.80) data (0)
     268Bin number 19 bounds: (60.80 - 64.00) data (0)
    269269
    270270---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c)
     
    288288\**********************************************************************************/
    289289
    290 Bin number 0 bounds: (0.000000 - 4.800000) data (15)
    291 Bin number 1 bounds: (4.800000 - 9.600000) data (40)
    292 Bin number 2 bounds: (9.600000 - 14.400001) data (65)
    293 Bin number 3 bounds: (14.400001 - 19.200001) data (90)
    294 Bin number 4 bounds: (19.200001 - 24.000000) data (90)
    295 Bin number 5 bounds: (24.000000 - 28.800001) data (135)
    296 Bin number 6 bounds: (28.800001 - 33.600002) data (157)
    297 Bin number 7 bounds: (33.600002 - 38.400002) data (160)
    298 Bin number 8 bounds: (38.400002 - 43.200001) data (160)
    299 Bin number 9 bounds: (43.200001 - 48.000000) data (128)
    300 Bin number 10 bounds: (48.000000 - 52.800003) data (160)
    301 Bin number 11 bounds: (52.800003 - 57.600002) data (160)
    302 Bin number 12 bounds: (57.600002 - 62.400002) data (160)
    303 Bin number 13 bounds: (62.400002 - 67.200005) data (150)
    304 Bin number 14 bounds: (67.200005 - 72.000000) data (102)
    305 Bin number 15 bounds: (72.000000 - 76.800003) data (105)
    306 Bin number 16 bounds: (76.800003 - 81.600006) data (80)
    307 Bin number 17 bounds: (81.600006 - 86.400002) data (55)
    308 Bin number 18 bounds: (86.400002 - 91.200005) data (30)
    309 Bin number 19 bounds: (91.200005 - 96.000000) data (6)
    310 
    311 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
    312 
    313 /***************************** TESTPOINT ******************************************\
    314 *             TestFile: tst_psImageStats00.c                                       *
    315 *            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
    316 *             TestType: Positive                                                   *
    317 \**********************************************************************************/
    318 
    319 Bin number 0 bounds: (0.000000 - 4.800000) data (15)
    320 Bin number 1 bounds: (4.800000 - 9.600000) data (40)
    321 Bin number 2 bounds: (9.600000 - 14.400001) data (65)
    322 Bin number 3 bounds: (14.400001 - 19.200001) data (90)
    323 Bin number 4 bounds: (19.200001 - 24.000000) data (90)
    324 Bin number 5 bounds: (24.000000 - 28.800001) data (135)
    325 Bin number 6 bounds: (28.800001 - 33.600002) data (157)
    326 Bin number 7 bounds: (33.600002 - 38.400002) data (160)
    327 Bin number 8 bounds: (38.400002 - 43.200001) data (160)
    328 Bin number 9 bounds: (43.200001 - 48.000000) data (128)
    329 Bin number 10 bounds: (48.000000 - 52.800003) data (154)
    330 Bin number 11 bounds: (52.800003 - 57.600002) data (130)
    331 Bin number 12 bounds: (57.600002 - 62.400002) data (105)
    332 Bin number 13 bounds: (62.400002 - 67.200005) data (76)
    333 Bin number 14 bounds: (67.200005 - 72.000000) data (42)
    334 Bin number 15 bounds: (72.000000 - 76.800003) data (30)
    335 Bin number 16 bounds: (76.800003 - 81.600006) data (6)
    336 Bin number 17 bounds: (81.600006 - 86.400002) data (0)
    337 Bin number 18 bounds: (86.400002 - 91.200005) data (0)
    338 Bin number 19 bounds: (91.200005 - 96.000000) data (0)
     290Bin number 0 bounds: (0.0 - 4.8) data (15)
     291Bin number 1 bounds: (4.8 - 9.6) data (40)
     292Bin number 2 bounds: (9.6 - 14.4) data (65)
     293Bin number 3 bounds: (14.4 - 19.2) data (90)
     294Bin number 4 bounds: (19.2 - 24.0) data (90)
     295Bin number 5 bounds: (24.0 - 28.8) data (135)
     296Bin number 6 bounds: (28.8 - 33.6) data (157)
     297Bin number 7 bounds: (33.6 - 38.4) data (160)
     298Bin number 8 bounds: (38.4 - 43.2) data (160)
     299Bin number 9 bounds: (43.2 - 48.0) data (128)
     300Bin number 10 bounds: (48.0 - 52.8) data (160)
     301Bin number 11 bounds: (52.8 - 57.6) data (160)
     302Bin number 12 bounds: (57.6 - 62.4) data (160)
     303Bin number 13 bounds: (62.4 - 67.2) data (150)
     304Bin number 14 bounds: (67.2 - 72.0) data (102)
     305Bin number 15 bounds: (72.0 - 76.8) data (105)
     306Bin number 16 bounds: (76.8 - 81.6) data (80)
     307Bin number 17 bounds: (81.6 - 86.4) data (55)
     308Bin number 18 bounds: (86.4 - 91.2) data (30)
     309Bin number 19 bounds: (91.2 - 96.0) data (6)
     310
     311---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
     312
     313/***************************** TESTPOINT ******************************************\
     314*             TestFile: tst_psImageStats00.c                                       *
     315*            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
     316*             TestType: Positive                                                   *
     317\**********************************************************************************/
     318
     319Bin number 0 bounds: (0.00 - 4.80) data (15)
     320Bin number 1 bounds: (4.80 - 9.60) data (40)
     321Bin number 2 bounds: (9.60 - 14.40) data (65)
     322Bin number 3 bounds: (14.40 - 19.20) data (90)
     323Bin number 4 bounds: (19.20 - 24.00) data (90)
     324Bin number 5 bounds: (24.00 - 28.80) data (135)
     325Bin number 6 bounds: (28.80 - 33.60) data (157)
     326Bin number 7 bounds: (33.60 - 38.40) data (160)
     327Bin number 8 bounds: (38.40 - 43.20) data (160)
     328Bin number 9 bounds: (43.20 - 48.00) data (128)
     329Bin number 10 bounds: (48.00 - 52.80) data (154)
     330Bin number 11 bounds: (52.80 - 57.60) data (130)
     331Bin number 12 bounds: (57.60 - 62.40) data (105)
     332Bin number 13 bounds: (62.40 - 67.20) data (76)
     333Bin number 14 bounds: (67.20 - 72.00) data (42)
     334Bin number 15 bounds: (72.00 - 76.80) data (30)
     335Bin number 16 bounds: (76.80 - 81.60) data (6)
     336Bin number 17 bounds: (81.60 - 86.40) data (0)
     337Bin number 18 bounds: (86.40 - 91.20) data (0)
     338Bin number 19 bounds: (91.20 - 96.00) data (0)
    339339
    340340---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c)
     
    358358\**********************************************************************************/
    359359
    360 Bin number 0 bounds: (0.000000 - 4.800000) data (15)
    361 Bin number 1 bounds: (4.800000 - 9.600000) data (40)
    362 Bin number 2 bounds: (9.600000 - 14.400001) data (65)
    363 Bin number 3 bounds: (14.400001 - 19.200001) data (90)
    364 Bin number 4 bounds: (19.200001 - 24.000000) data (90)
    365 Bin number 5 bounds: (24.000000 - 28.800001) data (135)
    366 Bin number 6 bounds: (28.800001 - 33.600002) data (157)
    367 Bin number 7 bounds: (33.600002 - 38.400002) data (160)
    368 Bin number 8 bounds: (38.400002 - 43.200001) data (160)
    369 Bin number 9 bounds: (43.200001 - 48.000000) data (128)
    370 Bin number 10 bounds: (48.000000 - 52.800003) data (160)
    371 Bin number 11 bounds: (52.800003 - 57.600002) data (160)
    372 Bin number 12 bounds: (57.600002 - 62.400002) data (160)
    373 Bin number 13 bounds: (62.400002 - 67.200005) data (150)
    374 Bin number 14 bounds: (67.200005 - 72.000000) data (102)
    375 Bin number 15 bounds: (72.000000 - 76.800003) data (105)
    376 Bin number 16 bounds: (76.800003 - 81.600006) data (80)
    377 Bin number 17 bounds: (81.600006 - 86.400002) data (55)
    378 Bin number 18 bounds: (86.400002 - 91.200005) data (30)
    379 Bin number 19 bounds: (91.200005 - 96.000000) data (6)
    380 
    381 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
    382 
    383 /***************************** TESTPOINT ******************************************\
    384 *             TestFile: tst_psImageStats00.c                                       *
    385 *            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
    386 *             TestType: Positive                                                   *
    387 \**********************************************************************************/
    388 
    389 Bin number 0 bounds: (0.000000 - 4.800000) data (15)
    390 Bin number 1 bounds: (4.800000 - 9.600000) data (40)
    391 Bin number 2 bounds: (9.600000 - 14.400001) data (65)
    392 Bin number 3 bounds: (14.400001 - 19.200001) data (90)
    393 Bin number 4 bounds: (19.200001 - 24.000000) data (90)
    394 Bin number 5 bounds: (24.000000 - 28.800001) data (135)
    395 Bin number 6 bounds: (28.800001 - 33.600002) data (157)
    396 Bin number 7 bounds: (33.600002 - 38.400002) data (160)
    397 Bin number 8 bounds: (38.400002 - 43.200001) data (160)
    398 Bin number 9 bounds: (43.200001 - 48.000000) data (128)
    399 Bin number 10 bounds: (48.000000 - 52.800003) data (154)
    400 Bin number 11 bounds: (52.800003 - 57.600002) data (130)
    401 Bin number 12 bounds: (57.600002 - 62.400002) data (105)
    402 Bin number 13 bounds: (62.400002 - 67.200005) data (76)
    403 Bin number 14 bounds: (67.200005 - 72.000000) data (42)
    404 Bin number 15 bounds: (72.000000 - 76.800003) data (30)
    405 Bin number 16 bounds: (76.800003 - 81.600006) data (6)
    406 Bin number 17 bounds: (81.600006 - 86.400002) data (0)
    407 Bin number 18 bounds: (86.400002 - 91.200005) data (0)
    408 Bin number 19 bounds: (91.200005 - 96.000000) data (0)
     360Bin number 0 bounds: (0.0 - 4.8) data (15)
     361Bin number 1 bounds: (4.8 - 9.6) data (40)
     362Bin number 2 bounds: (9.6 - 14.4) data (65)
     363Bin number 3 bounds: (14.4 - 19.2) data (90)
     364Bin number 4 bounds: (19.2 - 24.0) data (90)
     365Bin number 5 bounds: (24.0 - 28.8) data (135)
     366Bin number 6 bounds: (28.8 - 33.6) data (157)
     367Bin number 7 bounds: (33.6 - 38.4) data (160)
     368Bin number 8 bounds: (38.4 - 43.2) data (160)
     369Bin number 9 bounds: (43.2 - 48.0) data (128)
     370Bin number 10 bounds: (48.0 - 52.8) data (160)
     371Bin number 11 bounds: (52.8 - 57.6) data (160)
     372Bin number 12 bounds: (57.6 - 62.4) data (160)
     373Bin number 13 bounds: (62.4 - 67.2) data (150)
     374Bin number 14 bounds: (67.2 - 72.0) data (102)
     375Bin number 15 bounds: (72.0 - 76.8) data (105)
     376Bin number 16 bounds: (76.8 - 81.6) data (80)
     377Bin number 17 bounds: (81.6 - 86.4) data (55)
     378Bin number 18 bounds: (86.4 - 91.2) data (30)
     379Bin number 19 bounds: (91.2 - 96.0) data (6)
     380
     381---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram, no mask} | tst_psImageStats00.c)
     382
     383/***************************** TESTPOINT ******************************************\
     384*             TestFile: tst_psImageStats00.c                                       *
     385*            TestPoint: psImageStats functions{Calculate Histogram with mask}      *
     386*             TestType: Positive                                                   *
     387\**********************************************************************************/
     388
     389Bin number 0 bounds: (0.00 - 4.80) data (15)
     390Bin number 1 bounds: (4.80 - 9.60) data (40)
     391Bin number 2 bounds: (9.60 - 14.40) data (65)
     392Bin number 3 bounds: (14.40 - 19.20) data (90)
     393Bin number 4 bounds: (19.20 - 24.00) data (90)
     394Bin number 5 bounds: (24.00 - 28.80) data (135)
     395Bin number 6 bounds: (28.80 - 33.60) data (157)
     396Bin number 7 bounds: (33.60 - 38.40) data (160)
     397Bin number 8 bounds: (38.40 - 43.20) data (160)
     398Bin number 9 bounds: (43.20 - 48.00) data (128)
     399Bin number 10 bounds: (48.00 - 52.80) data (154)
     400Bin number 11 bounds: (52.80 - 57.60) data (130)
     401Bin number 12 bounds: (57.60 - 62.40) data (105)
     402Bin number 13 bounds: (62.40 - 67.20) data (76)
     403Bin number 14 bounds: (67.20 - 72.00) data (42)
     404Bin number 15 bounds: (72.00 - 76.80) data (30)
     405Bin number 16 bounds: (76.80 - 81.60) data (6)
     406Bin number 17 bounds: (81.60 - 86.40) data (0)
     407Bin number 18 bounds: (86.40 - 91.20) data (0)
     408Bin number 19 bounds: (91.20 - 96.00) data (0)
    409409
    410410---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c)
  • trunk/psLib/test/image/verified/tst_psImageStats01.stdout

    r1034 r1365  
    88\**********************************************************************************/
    99
    10 The sample mean was 0.000000
    11 
    12 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
    13 
    14 /***************************** TESTPOINT ******************************************\
    15 *             TestFile: tst_psImageStats01.c                                       *
    16 *            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
    17 *             TestType: Positive                                                   *
    18 \**********************************************************************************/
    19 
    20 The sample mean was 0.000000
     10The sample mean was 0.00
     11
     12---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
     13
     14/***************************** TESTPOINT ******************************************\
     15*             TestFile: tst_psImageStats01.c                                       *
     16*            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
     17*             TestType: Positive                                                   *
     18\**********************************************************************************/
     19
     20The sample mean was 0.00
    2121
    2222---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c)
     
    4040\**********************************************************************************/
    4141
    42 The sample mean was 15.500000
    43 
    44 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
    45 
    46 /***************************** TESTPOINT ******************************************\
    47 *             TestFile: tst_psImageStats01.c                                       *
    48 *            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
    49 *             TestType: Positive                                                   *
    50 \**********************************************************************************/
    51 
    52 The sample mean was 15.500000
     42The sample mean was 15.50
     43
     44---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
     45
     46/***************************** TESTPOINT ******************************************\
     47*             TestFile: tst_psImageStats01.c                                       *
     48*            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
     49*             TestType: Positive                                                   *
     50\**********************************************************************************/
     51
     52The sample mean was 15.50
    5353
    5454---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c)
     
    7272\**********************************************************************************/
    7373
    74 The sample mean was 15.500000
    75 
    76 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
    77 
    78 /***************************** TESTPOINT ******************************************\
    79 *             TestFile: tst_psImageStats01.c                                       *
    80 *            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
    81 *             TestType: Positive                                                   *
    82 \**********************************************************************************/
    83 
    84 The sample mean was 15.500000
     74The sample mean was 15.50
     75
     76---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
     77
     78/***************************** TESTPOINT ******************************************\
     79*             TestFile: tst_psImageStats01.c                                       *
     80*            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
     81*             TestType: Positive                                                   *
     82\**********************************************************************************/
     83
     84The sample mean was 15.50
    8585
    8686---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c)
     
    104104\**********************************************************************************/
    105105
    106 The sample mean was 31.000000
    107 
    108 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
    109 
    110 /***************************** TESTPOINT ******************************************\
    111 *             TestFile: tst_psImageStats01.c                                       *
    112 *            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
    113 *             TestType: Positive                                                   *
    114 \**********************************************************************************/
    115 
    116 The sample mean was 26.212767
     106The sample mean was 31.00
     107
     108---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
     109
     110/***************************** TESTPOINT ******************************************\
     111*             TestFile: tst_psImageStats01.c                                       *
     112*            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
     113*             TestType: Positive                                                   *
     114\**********************************************************************************/
     115
     116The sample mean was 26.21
    117117
    118118---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c)
     
    136136\**********************************************************************************/
    137137
    138 The sample mean was 47.000000
    139 
    140 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
    141 
    142 /***************************** TESTPOINT ******************************************\
    143 *             TestFile: tst_psImageStats01.c                                       *
    144 *            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
    145 *             TestType: Positive                                                   *
    146 \**********************************************************************************/
    147 
    148 The sample mean was 39.656349
     138The sample mean was 47.00
     139
     140---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
     141
     142/***************************** TESTPOINT ******************************************\
     143*             TestFile: tst_psImageStats01.c                                       *
     144*            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
     145*             TestType: Positive                                                   *
     146\**********************************************************************************/
     147
     148The sample mean was 39.66
    149149
    150150---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c)
     
    168168\**********************************************************************************/
    169169
    170 The sample mean was 47.000000
    171 
    172 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
    173 
    174 /***************************** TESTPOINT ******************************************\
    175 *             TestFile: tst_psImageStats01.c                                       *
    176 *            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
    177 *             TestType: Positive                                                   *
    178 \**********************************************************************************/
    179 
    180 The sample mean was 39.656349
     170The sample mean was 47.00
     171
     172---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean, no mask} | tst_psImageStats01.c)
     173
     174/***************************** TESTPOINT ******************************************\
     175*             TestFile: tst_psImageStats01.c                                       *
     176*            TestPoint: psImageStats functions{Calculate Sample Mean with mask}    *
     177*             TestType: Positive                                                   *
     178\**********************************************************************************/
     179
     180The sample mean was 39.66
    181181
    182182---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c)
  • trunk/psLib/test/image/verified/tst_psImageStats02.stdout

    r1198 r1365  
    55\**********************************************************************************/
    66
    7 Cheby Polynomial (0, 0) coefficient is 189.000000
    8 Cheby Polynomial (0, 1) coefficient is 25.935616
    9 Cheby Polynomial (0, 2) coefficient is 0.000005
    10 Cheby Polynomial (0, 3) coefficient is 2.879415
    11 Cheby Polynomial (0, 4) coefficient is 0.000004
    12 Cheby Polynomial (0, 5) coefficient is 1.034911
    13 Cheby Polynomial (0, 6) coefficient is 0.000019
    14 Cheby Polynomial (0, 7) coefficient is 0.526690
    15 Cheby Polynomial (1, 0) coefficient is 129.677979
    16 Cheby Polynomial (1, 1) coefficient is -0.000024
    17 Cheby Polynomial (1, 2) coefficient is 0.000002
    18 Cheby Polynomial (1, 3) coefficient is 0.000003
    19 Cheby Polynomial (1, 4) coefficient is 0.000003
    20 Cheby Polynomial (1, 5) coefficient is -0.000004
    21 Cheby Polynomial (1, 6) coefficient is 0.000016
    22 Cheby Polynomial (1, 7) coefficient is -0.000015
    23 Cheby Polynomial (2, 0) coefficient is -0.000034
    24 Cheby Polynomial (2, 1) coefficient is 0.000010
    25 Cheby Polynomial (2, 2) coefficient is -0.000002
    26 Cheby Polynomial (2, 3) coefficient is 0.000001
    27 Cheby Polynomial (2, 4) coefficient is 0.000002
    28 Cheby Polynomial (2, 5) coefficient is 0.000000
    29 Cheby Polynomial (2, 6) coefficient is -0.000000
    30 Cheby Polynomial (2, 7) coefficient is -0.000001
    31 Cheby Polynomial (3, 0) coefficient is 14.397046
    32 Cheby Polynomial (3, 1) coefficient is 0.000007
    33 Cheby Polynomial (3, 2) coefficient is -0.000000
    34 Cheby Polynomial (3, 3) coefficient is -0.000001
    35 Cheby Polynomial (3, 4) coefficient is 0.000001
    36 Cheby Polynomial (3, 5) coefficient is -0.000001
    37 Cheby Polynomial (3, 6) coefficient is 0.000002
    38 Cheby Polynomial (3, 7) coefficient is -0.000002
    39 Cheby Polynomial (4, 0) coefficient is 0.000023
    40 Cheby Polynomial (4, 1) coefficient is 0.000003
    41 Cheby Polynomial (4, 2) coefficient is -0.000003
    42 Cheby Polynomial (4, 3) coefficient is -0.000002
    43 Cheby Polynomial (4, 4) coefficient is 0.000000
    44 Cheby Polynomial (4, 5) coefficient is 0.000001
    45 Cheby Polynomial (4, 6) coefficient is -0.000000
    46 Cheby Polynomial (4, 7) coefficient is 0.000000
    47 Cheby Polynomial (5, 0) coefficient is 5.174568
    48 Cheby Polynomial (5, 1) coefficient is -0.000000
    49 Cheby Polynomial (5, 2) coefficient is 0.000000
    50 Cheby Polynomial (5, 3) coefficient is -0.000001
    51 Cheby Polynomial (5, 4) coefficient is -0.000001
    52 Cheby Polynomial (5, 5) coefficient is 0.000000
    53 Cheby Polynomial (5, 6) coefficient is 0.000001
    54 Cheby Polynomial (5, 7) coefficient is 0.000000
    55 Cheby Polynomial (6, 0) coefficient is 0.000014
    56 Cheby Polynomial (6, 1) coefficient is -0.000001
    57 Cheby Polynomial (6, 2) coefficient is 0.000001
    58 Cheby Polynomial (6, 3) coefficient is 0.000001
    59 Cheby Polynomial (6, 4) coefficient is -0.000001
    60 Cheby Polynomial (6, 5) coefficient is 0.000001
    61 Cheby Polynomial (6, 6) coefficient is 0.000000
    62 Cheby Polynomial (6, 7) coefficient is -0.000000
    63 Cheby Polynomial (7, 0) coefficient is 2.633517
    64 Cheby Polynomial (7, 1) coefficient is -0.000005
    65 Cheby Polynomial (7, 2) coefficient is -0.000001
    66 Cheby Polynomial (7, 3) coefficient is -0.000000
    67 Cheby Polynomial (7, 4) coefficient is 0.000001
    68 Cheby Polynomial (7, 5) coefficient is -0.000001
    69 Cheby Polynomial (7, 6) coefficient is 0.000001
    70 Cheby Polynomial (7, 7) coefficient is -0.000001
     7Cheby Polynomial (0, 0) coefficient is 189.00
     8Cheby Polynomial (0, 1) coefficient is 25.94
     9Cheby Polynomial (0, 2) coefficient is 0.00
     10Cheby Polynomial (0, 3) coefficient is 2.88
     11Cheby Polynomial (0, 4) coefficient is 0.00
     12Cheby Polynomial (0, 5) coefficient is 1.03
     13Cheby Polynomial (0, 6) coefficient is 0.00
     14Cheby Polynomial (0, 7) coefficient is 0.53
     15Cheby Polynomial (1, 0) coefficient is 129.68
     16Cheby Polynomial (1, 1) coefficient is -0.00
     17Cheby Polynomial (1, 2) coefficient is 0.00
     18Cheby Polynomial (1, 3) coefficient is 0.00
     19Cheby Polynomial (1, 4) coefficient is 0.00
     20Cheby Polynomial (1, 5) coefficient is 0.00
     21Cheby Polynomial (1, 6) coefficient is 0.00
     22Cheby Polynomial (1, 7) coefficient is 0.00
     23Cheby Polynomial (2, 0) coefficient is -0.00
     24Cheby Polynomial (2, 1) coefficient is 0.00
     25Cheby Polynomial (2, 2) coefficient is -0.00
     26Cheby Polynomial (2, 3) coefficient is 0.00
     27Cheby Polynomial (2, 4) coefficient is 0.00
     28Cheby Polynomial (2, 5) coefficient is 0.00
     29Cheby Polynomial (2, 6) coefficient is -0.00
     30Cheby Polynomial (2, 7) coefficient is -0.00
     31Cheby Polynomial (3, 0) coefficient is 14.40
     32Cheby Polynomial (3, 1) coefficient is 0.00
     33Cheby Polynomial (3, 2) coefficient is 0.00
     34Cheby Polynomial (3, 3) coefficient is 0.00
     35Cheby Polynomial (3, 4) coefficient is 0.00
     36Cheby Polynomial (3, 5) coefficient is -0.00
     37Cheby Polynomial (3, 6) coefficient is 0.00
     38Cheby Polynomial (3, 7) coefficient is 0.00
     39Cheby Polynomial (4, 0) coefficient is 0.00
     40Cheby Polynomial (4, 1) coefficient is 0.00
     41Cheby Polynomial (4, 2) coefficient is -0.00
     42Cheby Polynomial (4, 3) coefficient is -0.00
     43Cheby Polynomial (4, 4) coefficient is 0.00
     44Cheby Polynomial (4, 5) coefficient is 0.00
     45Cheby Polynomial (4, 6) coefficient is -0.00
     46Cheby Polynomial (4, 7) coefficient is 0.00
     47Cheby Polynomial (5, 0) coefficient is 5.17
     48Cheby Polynomial (5, 1) coefficient is 0.00
     49Cheby Polynomial (5, 2) coefficient is -0.00
     50Cheby Polynomial (5, 3) coefficient is 0.00
     51Cheby Polynomial (5, 4) coefficient is -0.00
     52Cheby Polynomial (5, 5) coefficient is 0.00
     53Cheby Polynomial (5, 6) coefficient is 0.00
     54Cheby Polynomial (5, 7) coefficient is 0.00
     55Cheby Polynomial (6, 0) coefficient is 0.00
     56Cheby Polynomial (6, 1) coefficient is -0.00
     57Cheby Polynomial (6, 2) coefficient is -0.00
     58Cheby Polynomial (6, 3) coefficient is 0.00
     59Cheby Polynomial (6, 4) coefficient is -0.00
     60Cheby Polynomial (6, 5) coefficient is -0.00
     61Cheby Polynomial (6, 6) coefficient is -0.00
     62Cheby Polynomial (6, 7) coefficient is -0.00
     63Cheby Polynomial (7, 0) coefficient is 2.63
     64Cheby Polynomial (7, 1) coefficient is -0.00
     65Cheby Polynomial (7, 2) coefficient is -0.00
     66Cheby Polynomial (7, 3) coefficient is 0.00
     67Cheby Polynomial (7, 4) coefficient is 0.00
     68Cheby Polynomial (7, 5) coefficient is 0.00
     69Cheby Polynomial (7, 6) coefficient is -0.00
     70Cheby Polynomial (7, 7) coefficient is 0.00
    7171
    7272---> TESTPOINT PASSED (psImageStats functions{Calculate Chebyshev Polynomials, no mask} | tst_psImageStats02.c)
     
    7878\**********************************************************************************/
    7979
    80 Pixel (0, 0) is 6.927072, should be 0.000000
    81 Pixel (0, 1) is 7.173949, should be 1.000000
    82 Pixel (0, 2) is 7.655376, should be 2.000000
    83 Pixel (0, 3) is 8.347930, should be 3.000000
    84 Pixel (0, 4) is 9.218961, should be 4.000000
    85 Pixel (0, 5) is 10.229467, should be 5.000000
    86 Pixel (0, 6) is 11.337466, should be 6.000000
    87 Pixel (0, 7) is 12.501254, should be 7.000000
    88 Pixel (0, 8) is 13.682820, should be 8.000000
    89 Pixel (0, 9) is 14.850384, should be 9.000000
    90 Pixel (0, 10) is 15.980532, should be 10.000000
    91 Pixel (0, 11) is 17.059172, should be 11.000000
    92 Pixel (0, 12) is 18.081587, should be 12.000000
    93 Pixel (0, 13) is 19.051620, should be 13.000000
    94 Pixel (0, 14) is 19.980064, should be 14.000000
    95 Pixel (0, 15) is 20.882164, should be 15.000000
    96 Pixel (0, 16) is 21.775343, should be 16.000000
    97 Pixel (0, 17) is 22.676605, should be 17.000000
    98 Pixel (0, 18) is 23.600229, should be 18.000000
    99 Pixel (0, 19) is 24.556124, should be 19.000000
    100 Pixel (0, 20) is 25.548784, should be 20.000000
    101 Pixel (0, 21) is 26.577057, should be 21.000000
    102 Pixel (0, 22) is 27.634684, should be 22.000000
    103 Pixel (0, 23) is 28.711458, should be 23.000000
    104 Pixel (0, 24) is 29.794844, should be 24.000000
    105 Pixel (0, 25) is 30.871885, should be 25.000000
    106 Pixel (0, 26) is 31.931026, should be 26.000000
    107 Pixel (0, 27) is 32.963749, should be 27.000000
    108 Pixel (0, 28) is 33.965645, should be 28.000000
    109 Pixel (0, 29) is 34.937035, should be 29.000000
    110 Pixel (0, 30) is 35.882740, should be 30.000000
    111 Pixel (0, 31) is 36.811340, should be 31.000000
    112 Pixel (0, 32) is 37.733940, should be 32.000000
    113 Pixel (0, 33) is 38.662556, should be 33.000000
    114 Pixel (0, 34) is 39.608231, should be 34.000000
    115 Pixel (0, 35) is 40.579613, should be 35.000000
    116 Pixel (0, 36) is 41.581539, should be 36.000000
    117 Pixel (0, 37) is 42.614243, should be 37.000000
    118 Pixel (0, 38) is 43.673363, should be 38.000000
    119 Pixel (0, 39) is 44.750423, should be 39.000000
    120 Pixel (0, 40) is 45.833805, should be 40.000000
    121 Pixel (0, 41) is 46.910572, should be 41.000000
    122 Pixel (0, 42) is 47.968204, should be 42.000000
    123 Pixel (0, 43) is 48.996479, should be 43.000000
    124 Pixel (0, 44) is 49.989136, should be 44.000000
    125 Pixel (0, 45) is 50.945053, should be 45.000000
    126 Pixel (0, 46) is 51.868679, should be 46.000000
    127 Pixel (0, 47) is 52.769932, should be 47.000000
    128 Pixel (0, 48) is 53.663113, should be 48.000000
    129 Pixel (0, 49) is 54.565205, should be 49.000000
    130 Pixel (0, 50) is 55.493645, should be 50.000000
    131 Pixel (0, 51) is 56.463696, should be 51.000000
    132 Pixel (0, 52) is 57.486126, should be 52.000000
    133 Pixel (0, 53) is 58.564747, should be 53.000000
    134 Pixel (0, 54) is 59.694889, should be 54.000000
    135 Pixel (0, 55) is 60.862446, should be 55.000000
    136 Pixel (0, 56) is 62.044003, should be 56.000000
    137 Pixel (0, 57) is 63.207813, should be 57.000000
    138 Pixel (0, 58) is 64.315796, should be 58.000000
    139 Pixel (0, 59) is 65.326294, should be 59.000000
    140 Pixel (0, 60) is 66.197350, should be 60.000000
    141 Pixel (0, 61) is 66.889877, should be 61.000000
    142 Pixel (0, 62) is 67.371300, should be 62.000000
    143 Pixel (0, 63) is 67.618172, should be 63.000000
    144 Pixel (1, 0) is 8.161349, should be 5.000000
    145 Pixel (1, 1) is 8.408226, should be 6.000000
    146 Pixel (1, 2) is 8.889652, should be 7.000000
    147 Pixel (1, 3) is 9.582205, should be 8.000000
    148 Pixel (1, 4) is 10.453232, should be 9.000000
    149 Pixel (1, 5) is 11.463740, should be 10.000000
    150 Pixel (1, 6) is 12.571740, should be 11.000000
    151 Pixel (1, 7) is 13.735526, should be 12.000000
    152 Pixel (1, 8) is 14.917092, should be 13.000000
    153 Pixel (1, 9) is 16.084658, should be 14.000000
    154 Pixel (1, 10) is 17.214804, should be 15.000000
    155 Pixel (1, 11) is 18.293444, should be 16.000000
    156 Pixel (1, 12) is 19.315859, should be 17.000000
    157 Pixel (1, 13) is 20.285892, should be 18.000000
    158 Pixel (1, 14) is 21.214336, should be 19.000000
    159 Pixel (1, 15) is 22.116434, should be 20.000000
    160 Pixel (1, 16) is 23.009617, should be 21.000000
    161 Pixel (1, 17) is 23.910875, should be 22.000000
    162 Pixel (1, 18) is 24.834503, should be 23.000000
    163 Pixel (1, 19) is 25.790409, should be 24.000000
    164 Pixel (1, 20) is 26.783060, should be 25.000000
    165 Pixel (1, 21) is 27.811335, should be 26.000000
    166 Pixel (1, 22) is 28.868959, should be 27.000000
    167 Pixel (1, 23) is 29.945730, should be 28.000000
    168 Pixel (1, 24) is 31.029118, should be 29.000000
    169 Pixel (1, 25) is 32.106163, should be 30.000000
    170 Pixel (1, 26) is 33.165302, should be 31.000000
    171 Pixel (1, 27) is 34.198025, should be 32.000000
    172 Pixel (1, 28) is 35.199921, should be 33.000000
    173 Pixel (1, 29) is 36.171310, should be 34.000000
    174 Pixel (1, 30) is 37.117016, should be 35.000000
    175 Pixel (1, 31) is 38.045616, should be 36.000000
    176 Pixel (1, 32) is 38.968216, should be 37.000000
    177 Pixel (1, 33) is 39.896832, should be 38.000000
    178 Pixel (1, 34) is 40.842506, should be 39.000000
    179 Pixel (1, 35) is 41.813889, should be 40.000000
    180 Pixel (1, 36) is 42.815815, should be 41.000000
    181 Pixel (1, 37) is 43.848518, should be 42.000000
    182 Pixel (1, 38) is 44.907639, should be 43.000000
    183 Pixel (1, 39) is 45.984699, should be 44.000000
    184 Pixel (1, 40) is 47.068077, should be 45.000000
    185 Pixel (1, 41) is 48.144848, should be 46.000000
    186 Pixel (1, 42) is 49.202480, should be 47.000000
    187 Pixel (1, 43) is 50.230755, should be 48.000000
    188 Pixel (1, 44) is 51.223408, should be 49.000000
    189 Pixel (1, 45) is 52.179325, should be 50.000000
    190 Pixel (1, 46) is 53.102955, should be 51.000000
    191 Pixel (1, 47) is 54.004208, should be 52.000000
    192 Pixel (1, 48) is 54.897388, should be 53.000000
    193 Pixel (1, 49) is 55.799480, should be 54.000000
    194 Pixel (1, 50) is 56.727924, should be 55.000000
    195 Pixel (1, 51) is 57.697971, should be 56.000000
    196 Pixel (1, 52) is 58.720402, should be 57.000000
    197 Pixel (1, 53) is 59.799023, should be 58.000000
    198 Pixel (1, 54) is 60.929165, should be 59.000000
    199 Pixel (1, 55) is 62.096729, should be 60.000000
    200 Pixel (1, 56) is 63.278286, should be 61.000000
    201 Pixel (1, 57) is 64.442101, should be 62.000000
    202 Pixel (1, 58) is 65.550079, should be 63.000000
    203 Pixel (1, 59) is 66.560577, should be 64.000000
    204 Pixel (1, 60) is 67.431633, should be 65.000000
    205 Pixel (1, 61) is 68.124161, should be 66.000000
    206 Pixel (1, 62) is 68.605583, should be 67.000000
    207 Pixel (2, 3) is 11.989437, should be 13.000000
    208 Pixel (2, 4) is 12.860472, should be 14.000000
    209 Pixel (2, 5) is 13.870976, should be 15.000000
    210 Pixel (2, 6) is 14.978971, should be 16.000000
    211 Pixel (2, 63) is 71.259666, should be 73.000000
    212 Pixel (3, 1) is 14.278136, should be 16.000000
    213 Pixel (3, 2) is 14.759560, should be 17.000000
    214 Pixel (3, 3) is 15.452109, should be 18.000000
    215 Pixel (3, 4) is 16.323143, should be 19.000000
    216 Pixel (3, 5) is 17.333652, should be 20.000000
    217 Pixel (3, 6) is 18.441645, should be 21.000000
    218 Pixel (3, 7) is 19.605431, should be 22.000000
    219 Pixel (3, 8) is 20.786999, should be 23.000000
    220 Pixel (3, 9) is 21.954563, should be 24.000000
    221 Pixel (3, 10) is 23.084709, should be 25.000000
    222 Pixel (3, 11) is 24.163351, should be 26.000000
    223 Pixel (3, 12) is 25.185764, should be 27.000000
    224 Pixel (3, 13) is 26.155800, should be 28.000000
    225 Pixel (3, 14) is 27.084242, should be 29.000000
    226 Pixel (3, 15) is 27.986349, should be 30.000000
    227 Pixel (3, 16) is 28.879530, should be 31.000000
    228 Pixel (3, 17) is 29.780794, should be 32.000000
    229 Pixel (3, 18) is 30.704420, should be 33.000000
    230 Pixel (3, 19) is 31.660322, should be 34.000000
    231 Pixel (3, 20) is 32.652969, should be 35.000000
    232 Pixel (3, 21) is 33.681244, should be 36.000000
    233 Pixel (3, 22) is 34.738869, should be 37.000000
    234 Pixel (3, 23) is 35.815647, should be 38.000000
    235 Pixel (3, 24) is 36.899029, should be 39.000000
    236 Pixel (3, 25) is 37.976067, should be 40.000000
    237 Pixel (3, 26) is 39.035198, should be 41.000000
    238 Pixel (3, 27) is 40.067924, should be 42.000000
    239 Pixel (3, 28) is 41.069824, should be 43.000000
    240 Pixel (3, 29) is 42.041218, should be 44.000000
    241 Pixel (3, 30) is 42.986923, should be 45.000000
    242 Pixel (3, 31) is 43.915524, should be 46.000000
    243 Pixel (3, 32) is 44.838123, should be 47.000000
    244 Pixel (3, 33) is 45.766739, should be 48.000000
    245 Pixel (3, 34) is 46.712414, should be 49.000000
    246 Pixel (3, 35) is 47.683792, should be 50.000000
    247 Pixel (3, 36) is 48.685715, should be 51.000000
    248 Pixel (3, 37) is 49.718422, should be 52.000000
    249 Pixel (3, 38) is 50.777538, should be 53.000000
    250 Pixel (3, 39) is 51.854603, should be 54.000000
    251 Pixel (3, 40) is 52.937984, should be 55.000000
    252 Pixel (3, 41) is 54.014748, should be 56.000000
    253 Pixel (3, 42) is 55.072380, should be 57.000000
    254 Pixel (3, 43) is 56.100655, should be 58.000000
    255 Pixel (3, 44) is 57.093311, should be 59.000000
    256 Pixel (3, 45) is 58.049221, should be 60.000000
    257 Pixel (3, 46) is 58.972851, should be 61.000000
    258 Pixel (3, 47) is 59.874096, should be 62.000000
    259 Pixel (3, 48) is 60.767277, should be 63.000000
    260 Pixel (3, 49) is 61.669369, should be 64.000000
    261 Pixel (3, 50) is 62.597813, should be 65.000000
    262 Pixel (3, 51) is 63.567867, should be 66.000000
    263 Pixel (3, 52) is 64.590294, should be 67.000000
    264 Pixel (3, 53) is 65.668915, should be 68.000000
    265 Pixel (3, 54) is 66.799057, should be 69.000000
    266 Pixel (3, 55) is 67.966614, should be 70.000000
    267 Pixel (3, 56) is 69.148170, should be 71.000000
    268 Pixel (3, 57) is 70.311981, should be 72.000000
    269 Pixel (3, 58) is 71.419960, should be 73.000000
    270 Pixel (3, 59) is 72.430458, should be 74.000000
    271 Pixel (3, 60) is 73.301514, should be 75.000000
    272 Pixel (3, 61) is 73.994041, should be 76.000000
    273 Pixel (3, 62) is 74.475464, should be 77.000000
    274 Pixel (3, 63) is 74.722336, should be 78.000000
    275 Pixel (4, 0) is 18.386347, should be 20.000000
    276 Pixel (4, 1) is 18.633223, should be 21.000000
    277 Pixel (4, 2) is 19.114639, should be 22.000000
    278 Pixel (4, 3) is 19.807188, should be 23.000000
    279 Pixel (4, 4) is 20.678223, should be 24.000000
    280 Pixel (4, 5) is 21.688732, should be 25.000000
    281 Pixel (4, 6) is 22.796722, should be 26.000000
    282 Pixel (4, 7) is 23.960510, should be 27.000000
    283 Pixel (4, 8) is 25.142078, should be 28.000000
    284 Pixel (4, 9) is 26.309643, should be 29.000000
    285 Pixel (4, 10) is 27.439787, should be 30.000000
    286 Pixel (4, 11) is 28.518431, should be 31.000000
    287 Pixel (4, 12) is 29.540842, should be 32.000000
    288 Pixel (4, 13) is 30.510878, should be 33.000000
    289 Pixel (4, 14) is 31.439322, should be 34.000000
    290 Pixel (4, 15) is 32.341431, should be 35.000000
    291 Pixel (4, 16) is 33.234608, should be 36.000000
    292 Pixel (4, 17) is 34.135872, should be 37.000000
    293 Pixel (4, 18) is 35.059502, should be 38.000000
    294 Pixel (4, 19) is 36.015400, should be 39.000000
    295 Pixel (4, 20) is 37.008049, should be 40.000000
    296 Pixel (4, 21) is 38.036324, should be 41.000000
    297 Pixel (4, 22) is 39.093948, should be 42.000000
    298 Pixel (4, 23) is 40.170727, should be 43.000000
    299 Pixel (4, 24) is 41.254105, should be 44.000000
    300 Pixel (4, 25) is 42.331139, should be 45.000000
    301 Pixel (4, 26) is 43.390274, should be 46.000000
    302 Pixel (4, 27) is 44.423000, should be 47.000000
    303 Pixel (4, 28) is 45.424900, should be 48.000000
    304 Pixel (4, 29) is 46.396290, should be 49.000000
    305 Pixel (4, 30) is 47.341991, should be 50.000000
    306 Pixel (4, 31) is 48.270596, should be 51.000000
    307 Pixel (4, 32) is 49.193195, should be 52.000000
    308 Pixel (4, 33) is 50.121807, should be 53.000000
    309 Pixel (4, 34) is 51.067486, should be 54.000000
    310 Pixel (4, 35) is 52.038868, should be 55.000000
    311 Pixel (4, 36) is 53.040791, should be 56.000000
    312 Pixel (4, 37) is 54.073498, should be 57.000000
    313 Pixel (4, 38) is 55.132618, should be 58.000000
    314 Pixel (4, 39) is 56.209679, should be 59.000000
    315 Pixel (4, 40) is 57.293053, should be 60.000000
    316 Pixel (4, 41) is 58.369827, should be 61.000000
    317 Pixel (4, 42) is 59.427456, should be 62.000000
    318 Pixel (4, 43) is 60.455734, should be 63.000000
    319 Pixel (4, 44) is 61.448387, should be 64.000000
    320 Pixel (4, 45) is 62.404301, should be 65.000000
    321 Pixel (4, 46) is 63.327930, should be 66.000000
    322 Pixel (4, 47) is 64.229172, should be 67.000000
    323 Pixel (4, 48) is 65.122353, should be 68.000000
    324 Pixel (4, 49) is 66.024445, should be 69.000000
    325 Pixel (4, 50) is 66.952888, should be 70.000000
    326 Pixel (4, 51) is 67.922943, should be 71.000000
    327 Pixel (4, 52) is 68.945374, should be 72.000000
    328 Pixel (4, 53) is 70.023994, should be 73.000000
    329 Pixel (4, 54) is 71.154137, should be 74.000000
    330 Pixel (4, 55) is 72.321693, should be 75.000000
    331 Pixel (4, 56) is 73.503250, should be 76.000000
    332 Pixel (4, 57) is 74.667061, should be 77.000000
    333 Pixel (4, 58) is 75.775040, should be 78.000000
    334 Pixel (4, 59) is 76.785538, should be 79.000000
    335 Pixel (4, 60) is 77.656593, should be 80.000000
    336 Pixel (4, 61) is 78.349121, should be 81.000000
    337 Pixel (4, 62) is 78.830544, should be 82.000000
    338 Pixel (4, 63) is 79.077415, should be 83.000000
    339 Pixel (5, 0) is 23.438900, should be 25.000000
    340 Pixel (5, 1) is 23.685776, should be 26.000000
    341 Pixel (5, 2) is 24.167196, should be 27.000000
    342 Pixel (5, 3) is 24.859745, should be 28.000000
    343 Pixel (5, 4) is 25.730778, should be 29.000000
    344 Pixel (5, 5) is 26.741287, should be 30.000000
    345 Pixel (5, 6) is 27.849277, should be 31.000000
    346 Pixel (5, 7) is 29.013062, should be 32.000000
    347 Pixel (5, 8) is 30.194633, should be 33.000000
    348 Pixel (5, 9) is 31.362202, should be 34.000000
    349 Pixel (5, 10) is 32.492336, should be 35.000000
    350 Pixel (5, 11) is 33.570980, should be 36.000000
    351 Pixel (5, 12) is 34.593395, should be 37.000000
    352 Pixel (5, 13) is 35.563431, should be 38.000000
    353 Pixel (5, 14) is 36.491875, should be 39.000000
    354 Pixel (5, 15) is 37.393982, should be 40.000000
    355 Pixel (5, 16) is 38.287159, should be 41.000000
    356 Pixel (5, 17) is 39.188427, should be 42.000000
    357 Pixel (5, 18) is 40.112053, should be 43.000000
    358 Pixel (5, 19) is 41.067951, should be 44.000000
    359 Pixel (5, 20) is 42.060600, should be 45.000000
    360 Pixel (5, 21) is 43.088879, should be 46.000000
    361 Pixel (5, 22) is 44.146500, should be 47.000000
    362 Pixel (5, 23) is 45.223278, should be 48.000000
    363 Pixel (5, 24) is 46.306656, should be 49.000000
    364 Pixel (5, 25) is 47.383690, should be 50.000000
    365 Pixel (5, 26) is 48.442825, should be 51.000000
    366 Pixel (5, 27) is 49.475555, should be 52.000000
    367 Pixel (5, 28) is 50.477451, should be 53.000000
    368 Pixel (5, 29) is 51.448841, should be 54.000000
    369 Pixel (5, 30) is 52.394543, should be 55.000000
    370 Pixel (5, 31) is 53.323143, should be 56.000000
    371 Pixel (5, 32) is 54.245747, should be 57.000000
    372 Pixel (5, 33) is 55.174358, should be 58.000000
    373 Pixel (5, 34) is 56.120037, should be 59.000000
    374 Pixel (5, 35) is 57.091419, should be 60.000000
    375 Pixel (5, 36) is 58.093342, should be 61.000000
    376 Pixel (5, 37) is 59.126049, should be 62.000000
    377 Pixel (5, 38) is 60.185169, should be 63.000000
    378 Pixel (5, 39) is 61.262234, should be 64.000000
    379 Pixel (5, 40) is 62.345604, should be 65.000000
    380 Pixel (5, 41) is 63.422379, should be 66.000000
    381 Pixel (5, 42) is 64.480019, should be 67.000000
    382 Pixel (5, 43) is 65.508286, should be 68.000000
    383 Pixel (5, 44) is 66.500938, should be 69.000000
    384 Pixel (5, 45) is 67.456848, should be 70.000000
    385 Pixel (5, 46) is 68.380478, should be 71.000000
    386 Pixel (5, 47) is 69.281731, should be 72.000000
    387 Pixel (5, 48) is 70.174911, should be 73.000000
    388 Pixel (5, 49) is 71.076996, should be 74.000000
    389 Pixel (5, 50) is 72.005440, should be 75.000000
    390 Pixel (5, 51) is 72.975487, should be 76.000000
    391 Pixel (5, 52) is 73.997925, should be 77.000000
    392 Pixel (5, 53) is 75.076546, should be 78.000000
    393 Pixel (5, 54) is 76.206688, should be 79.000000
    394 Pixel (5, 55) is 77.374245, should be 80.000000
    395 Pixel (5, 56) is 78.555801, should be 81.000000
    396 Pixel (5, 57) is 79.719612, should be 82.000000
    397 Pixel (5, 58) is 80.827591, should be 83.000000
    398 Pixel (5, 59) is 81.838089, should be 84.000000
    399 Pixel (5, 60) is 82.709145, should be 85.000000
    400 Pixel (5, 61) is 83.401672, should be 86.000000
    401 Pixel (5, 62) is 83.883095, should be 87.000000
    402 Pixel (5, 63) is 84.129967, should be 88.000000
    403 Pixel (6, 0) is 28.978821, should be 30.000000
    404 Pixel (6, 1) is 29.225697, should be 31.000000
    405 Pixel (6, 2) is 29.707121, should be 32.000000
    406 Pixel (6, 3) is 30.399666, should be 33.000000
    407 Pixel (6, 4) is 31.270700, should be 34.000000
    408 Pixel (6, 5) is 32.281208, should be 35.000000
    409 Pixel (6, 6) is 33.389198, should be 36.000000
    410 Pixel (6, 7) is 34.552982, should be 37.000000
    411 Pixel (6, 8) is 35.734558, should be 38.000000
    412 Pixel (6, 9) is 36.902122, should be 39.000000
    413 Pixel (6, 10) is 38.032261, should be 40.000000
    414 Pixel (6, 11) is 39.110905, should be 41.000000
    415 Pixel (6, 12) is 40.133320, should be 42.000000
    416 Pixel (6, 13) is 41.103355, should be 43.000000
    417 Pixel (6, 14) is 42.031799, should be 44.000000
    418 Pixel (6, 15) is 42.933907, should be 45.000000
    419 Pixel (6, 16) is 43.827087, should be 46.000000
    420 Pixel (6, 17) is 44.728352, should be 47.000000
    421 Pixel (6, 18) is 45.651978, should be 48.000000
    422 Pixel (6, 19) is 46.607880, should be 49.000000
    423 Pixel (6, 20) is 47.600521, should be 50.000000
    424 Pixel (6, 21) is 48.628799, should be 51.000000
    425 Pixel (6, 22) is 49.686420, should be 52.000000
    426 Pixel (6, 23) is 50.763195, should be 53.000000
    427 Pixel (6, 24) is 51.846577, should be 54.000000
    428 Pixel (6, 25) is 52.923611, should be 55.000000
    429 Pixel (6, 26) is 53.982746, should be 56.000000
    430 Pixel (6, 27) is 55.015476, should be 57.000000
    431 Pixel (6, 28) is 56.017372, should be 58.000000
    432 Pixel (6, 29) is 56.988762, should be 59.000000
    433 Pixel (6, 30) is 57.934464, should be 60.000000
    434 Pixel (6, 31) is 58.863060, should be 61.000000
    435 Pixel (6, 32) is 59.785667, should be 62.000000
    436 Pixel (6, 33) is 60.714279, should be 63.000000
    437 Pixel (6, 34) is 61.659958, should be 64.000000
    438 Pixel (6, 35) is 62.631340, should be 65.000000
    439 Pixel (6, 36) is 63.633255, should be 66.000000
    440 Pixel (6, 37) is 64.665970, should be 67.000000
    441 Pixel (6, 38) is 65.725090, should be 68.000000
    442 Pixel (6, 39) is 66.802147, should be 69.000000
    443 Pixel (6, 40) is 67.885521, should be 70.000000
    444 Pixel (6, 41) is 68.962288, should be 71.000000
    445 Pixel (6, 42) is 70.019920, should be 72.000000
    446 Pixel (6, 43) is 71.048203, should be 73.000000
    447 Pixel (6, 44) is 72.040855, should be 74.000000
    448 Pixel (6, 45) is 72.996765, should be 75.000000
    449 Pixel (6, 46) is 73.920395, should be 76.000000
    450 Pixel (6, 47) is 74.821648, should be 77.000000
    451 Pixel (6, 48) is 75.714828, should be 78.000000
    452 Pixel (6, 49) is 76.616920, should be 79.000000
    453 Pixel (6, 50) is 77.545364, should be 80.000000
    454 Pixel (6, 51) is 78.515411, should be 81.000000
    455 Pixel (6, 52) is 79.537849, should be 82.000000
    456 Pixel (6, 53) is 80.616470, should be 83.000000
    457 Pixel (6, 54) is 81.746613, should be 84.000000
    458 Pixel (6, 55) is 82.914162, should be 85.000000
    459 Pixel (6, 56) is 84.095718, should be 86.000000
    460 Pixel (6, 57) is 85.259529, should be 87.000000
    461 Pixel (6, 58) is 86.367508, should be 88.000000
    462 Pixel (6, 59) is 87.378014, should be 89.000000
    463 Pixel (6, 60) is 88.249062, should be 90.000000
    464 Pixel (6, 61) is 88.941589, should be 91.000000
    465 Pixel (6, 62) is 89.423012, should be 92.000000
    466 Pixel (6, 63) is 89.669884, should be 93.000000
    467 Pixel (7, 2) is 35.526096, should be 37.000000
    468 Pixel (7, 3) is 36.218639, should be 38.000000
    469 Pixel (7, 4) is 37.089676, should be 39.000000
    470 Pixel (7, 5) is 38.100182, should be 40.000000
    471 Pixel (7, 6) is 39.208172, should be 41.000000
    472 Pixel (7, 7) is 40.371956, should be 42.000000
    473 Pixel (7, 8) is 41.553528, should be 43.000000
    474 Pixel (7, 9) is 42.721092, should be 44.000000
    475 Pixel (7, 10) is 43.851231, should be 45.000000
    476 Pixel (7, 11) is 44.929874, should be 46.000000
    477 Pixel (7, 12) is 45.952286, should be 47.000000
    478 Pixel (7, 13) is 46.922325, should be 48.000000
    479 Pixel (7, 14) is 47.850777, should be 49.000000
    480 Pixel (7, 15) is 48.752880, should be 50.000000
    481 Pixel (7, 16) is 49.646057, should be 51.000000
    482 Pixel (7, 17) is 50.547321, should be 52.000000
    483 Pixel (7, 18) is 51.470947, should be 53.000000
    484 Pixel (7, 19) is 52.426857, should be 54.000000
    485 Pixel (7, 20) is 53.419491, should be 55.000000
    486 Pixel (7, 21) is 54.447769, should be 56.000000
    487 Pixel (7, 22) is 55.505390, should be 57.000000
    488 Pixel (7, 23) is 56.582165, should be 58.000000
    489 Pixel (7, 24) is 57.665546, should be 59.000000
    490 Pixel (7, 25) is 58.742580, should be 60.000000
    491 Pixel (7, 26) is 59.801716, should be 61.000000
    492 Pixel (7, 27) is 60.834446, should be 62.000000
    493 Pixel (7, 28) is 61.836342, should be 63.000000
    494 Pixel (7, 29) is 62.807732, should be 64.000000
    495 Pixel (7, 30) is 63.753433, should be 65.000000
    496 Pixel (7, 31) is 64.682030, should be 66.000000
    497 Pixel (7, 32) is 65.604637, should be 67.000000
    498 Pixel (7, 33) is 66.533249, should be 68.000000
    499 Pixel (7, 34) is 67.478920, should be 69.000000
    500 Pixel (7, 35) is 68.450302, should be 70.000000
    501 Pixel (7, 36) is 69.452217, should be 71.000000
    502 Pixel (7, 37) is 70.484932, should be 72.000000
    503 Pixel (7, 38) is 71.544060, should be 73.000000
    504 Pixel (7, 39) is 72.621117, should be 74.000000
    505 Pixel (7, 40) is 73.704491, should be 75.000000
    506 Pixel (7, 41) is 74.781258, should be 76.000000
    507 Pixel (7, 42) is 75.838882, should be 77.000000
    508 Pixel (7, 43) is 76.867172, should be 78.000000
    509 Pixel (7, 44) is 77.859825, should be 79.000000
    510 Pixel (7, 45) is 78.815735, should be 80.000000
    511 Pixel (7, 46) is 79.739365, should be 81.000000
    512 Pixel (7, 47) is 80.640617, should be 82.000000
    513 Pixel (7, 48) is 81.533798, should be 83.000000
    514 Pixel (7, 49) is 82.435883, should be 84.000000
    515 Pixel (7, 50) is 83.364334, should be 85.000000
    516 Pixel (7, 51) is 84.334381, should be 86.000000
    517 Pixel (7, 52) is 85.356812, should be 87.000000
    518 Pixel (7, 53) is 86.435432, should be 88.000000
    519 Pixel (7, 54) is 87.565575, should be 89.000000
    520 Pixel (7, 55) is 88.733131, should be 90.000000
    521 Pixel (7, 56) is 89.914688, should be 91.000000
    522 Pixel (7, 61) is 94.760567, should be 96.000000
    523 Pixel (7, 62) is 95.241982, should be 97.000000
    524 Pixel (7, 63) is 95.488853, should be 98.000000
    525 Pixel (8, 4) is 42.997402, should be 44.000000
    526 Pixel (8, 63) is 101.396591, should be 103.000000
    527 Pixel (9, 0) is 46.543343, should be 45.000000
    528 Pixel (10, 0) is 52.194046, should be 50.000000
    529 Pixel (10, 1) is 52.440922, should be 51.000000
    530 Pixel (10, 9) is 60.117329, should be 59.000000
    531 Pixel (10, 10) is 61.247471, should be 60.000000
    532 Pixel (10, 11) is 62.326111, should be 61.000000
    533 Pixel (10, 12) is 63.348526, should be 62.000000
    534 Pixel (10, 13) is 64.318565, should be 63.000000
    535 Pixel (10, 14) is 65.247009, should be 64.000000
    536 Pixel (10, 15) is 66.149117, should be 65.000000
    537 Pixel (10, 16) is 67.042290, should be 66.000000
    538 Pixel (10, 24) is 75.061806, should be 74.000000
    539 Pixel (10, 25) is 76.138832, should be 75.000000
    540 Pixel (10, 26) is 77.197975, should be 76.000000
    541 Pixel (10, 27) is 78.230690, should be 77.000000
    542 Pixel (10, 28) is 79.232597, should be 78.000000
    543 Pixel (10, 29) is 80.203979, should be 79.000000
    544 Pixel (10, 30) is 81.149681, should be 80.000000
    545 Pixel (10, 31) is 82.078278, should be 81.000000
    546 Pixel (10, 32) is 83.000885, should be 82.000000
    547 Pixel (10, 39) is 90.017372, should be 89.000000
    548 Pixel (10, 40) is 91.100746, should be 90.000000
    549 Pixel (10, 41) is 92.177513, should be 91.000000
    550 Pixel (10, 42) is 93.235138, should be 92.000000
    551 Pixel (10, 43) is 94.263412, should be 93.000000
    552 Pixel (10, 44) is 95.256073, should be 94.000000
    553 Pixel (10, 45) is 96.211983, should be 95.000000
    554 Pixel (10, 46) is 97.135612, should be 96.000000
    555 Pixel (10, 47) is 98.036858, should be 97.000000
    556 Pixel (10, 55) is 106.129387, should be 105.000000
    557 Pixel (10, 56) is 107.310951, should be 106.000000
    558 Pixel (10, 57) is 108.474754, should be 107.000000
    559 Pixel (10, 58) is 109.582733, should be 108.000000
    560 Pixel (10, 59) is 110.593239, should be 109.000000
    561 Pixel (10, 60) is 111.464287, should be 110.000000
    562 Pixel (10, 61) is 112.156822, should be 111.000000
    563 Pixel (11, 0) is 57.587215, should be 55.000000
    564 Pixel (11, 1) is 57.834091, should be 56.000000
    565 Pixel (11, 2) is 58.315510, should be 57.000000
    566 Pixel (11, 3) is 59.008057, should be 58.000000
    567 Pixel (11, 7) is 63.161362, should be 62.000000
    568 Pixel (11, 8) is 64.342926, should be 63.000000
    569 Pixel (11, 9) is 65.510483, should be 64.000000
    570 Pixel (11, 10) is 66.640625, should be 65.000000
    571 Pixel (11, 11) is 67.719269, should be 66.000000
    572 Pixel (11, 12) is 68.741676, should be 67.000000
    573 Pixel (11, 13) is 69.711723, should be 68.000000
    574 Pixel (11, 14) is 70.640167, should be 69.000000
    575 Pixel (11, 15) is 71.542274, should be 70.000000
    576 Pixel (11, 16) is 72.435448, should be 71.000000
    577 Pixel (11, 17) is 73.336716, should be 72.000000
    578 Pixel (11, 18) is 74.260345, should be 73.000000
    579 Pixel (11, 19) is 75.216240, should be 74.000000
    580 Pixel (11, 20) is 76.208900, should be 75.000000
    581 Pixel (11, 21) is 77.237175, should be 76.000000
    582 Pixel (11, 22) is 78.294800, should be 77.000000
    583 Pixel (11, 23) is 79.371574, should be 78.000000
    584 Pixel (11, 24) is 80.454956, should be 79.000000
    585 Pixel (11, 25) is 81.531982, should be 80.000000
    586 Pixel (11, 26) is 82.591125, should be 81.000000
    587 Pixel (11, 27) is 83.623840, should be 82.000000
    588 Pixel (11, 28) is 84.625748, should be 83.000000
    589 Pixel (11, 29) is 85.597130, should be 84.000000
    590 Pixel (11, 30) is 86.542831, should be 85.000000
    591 Pixel (11, 31) is 87.471428, should be 86.000000
    592 Pixel (11, 32) is 88.394035, should be 87.000000
    593 Pixel (11, 33) is 89.322647, should be 88.000000
    594 Pixel (11, 34) is 90.268318, should be 89.000000
    595 Pixel (11, 35) is 91.239700, should be 90.000000
    596 Pixel (11, 36) is 92.241623, should be 91.000000
    597 Pixel (11, 37) is 93.274338, should be 92.000000
    598 Pixel (11, 38) is 94.333466, should be 93.000000
    599 Pixel (11, 39) is 95.410522, should be 94.000000
    600 Pixel (11, 40) is 96.493904, should be 95.000000
    601 Pixel (11, 41) is 97.570663, should be 96.000000
    602 Pixel (11, 42) is 98.628288, should be 97.000000
    603 Pixel (11, 43) is 99.656563, should be 98.000000
    604 Pixel (11, 44) is 100.649223, should be 99.000000
    605 Pixel (11, 45) is 101.605133, should be 100.000000
    606 Pixel (11, 46) is 102.528763, should be 101.000000
    607 Pixel (11, 47) is 103.430008, should be 102.000000
    608 Pixel (11, 48) is 104.323196, should be 103.000000
    609 Pixel (11, 49) is 105.225281, should be 104.000000
    610 Pixel (11, 50) is 106.153732, should be 105.000000
    611 Pixel (11, 51) is 107.123779, should be 106.000000
    612 Pixel (11, 52) is 108.146210, should be 107.000000
    613 Pixel (11, 53) is 109.224831, should be 108.000000
    614 Pixel (11, 54) is 110.354980, should be 109.000000
    615 Pixel (11, 55) is 111.522530, should be 110.000000
    616 Pixel (11, 56) is 112.704102, should be 111.000000
    617 Pixel (11, 57) is 113.867912, should be 112.000000
    618 Pixel (11, 58) is 114.975891, should be 113.000000
    619 Pixel (11, 59) is 115.986397, should be 114.000000
    620 Pixel (11, 60) is 116.857445, should be 115.000000
    621 Pixel (11, 61) is 117.549980, should be 116.000000
    622 Pixel (11, 62) is 118.031387, should be 117.000000
    623 Pixel (12, 0) is 62.699329, should be 60.000000
    624 Pixel (12, 1) is 62.946201, should be 61.000000
    625 Pixel (12, 2) is 63.427620, should be 62.000000
    626 Pixel (12, 3) is 64.120163, should be 63.000000
    627 Pixel (12, 5) is 66.001686, should be 65.000000
    628 Pixel (12, 6) is 67.109680, should be 66.000000
    629 Pixel (12, 7) is 68.273460, should be 67.000000
    630 Pixel (12, 8) is 69.455032, should be 68.000000
    631 Pixel (12, 9) is 70.622589, should be 69.000000
    632 Pixel (12, 10) is 71.752739, should be 70.000000
    633 Pixel (12, 11) is 72.831375, should be 71.000000
    634 Pixel (12, 12) is 73.853783, should be 72.000000
    635 Pixel (12, 13) is 74.823830, should be 73.000000
    636 Pixel (12, 14) is 75.752281, should be 74.000000
    637 Pixel (12, 15) is 76.654381, should be 75.000000
    638 Pixel (12, 16) is 77.547569, should be 76.000000
    639 Pixel (12, 17) is 78.448830, should be 77.000000
    640 Pixel (12, 18) is 79.372459, should be 78.000000
    641 Pixel (12, 19) is 80.328369, should be 79.000000
    642 Pixel (12, 20) is 81.321014, should be 80.000000
    643 Pixel (12, 21) is 82.349289, should be 81.000000
    644 Pixel (12, 22) is 83.406914, should be 82.000000
    645 Pixel (12, 23) is 84.483688, should be 83.000000
    646 Pixel (12, 24) is 85.567070, should be 84.000000
    647 Pixel (12, 25) is 86.644096, should be 85.000000
    648 Pixel (12, 26) is 87.703239, should be 86.000000
    649 Pixel (12, 27) is 88.735954, should be 87.000000
    650 Pixel (12, 28) is 89.737862, should be 88.000000
    651 Pixel (12, 29) is 90.709244, should be 89.000000
    652 Pixel (12, 30) is 91.654945, should be 90.000000
    653 Pixel (12, 31) is 92.583542, should be 91.000000
    654 Pixel (12, 32) is 93.506149, should be 92.000000
    655 Pixel (12, 33) is 94.434761, should be 93.000000
    656 Pixel (12, 34) is 95.380432, should be 94.000000
    657 Pixel (12, 35) is 96.351814, should be 95.000000
    658 Pixel (12, 36) is 97.353737, should be 96.000000
    659 Pixel (12, 37) is 98.386452, should be 97.000000
    660 Pixel (12, 38) is 99.445580, should be 98.000000
    661 Pixel (12, 39) is 100.522636, should be 99.000000
    662 Pixel (12, 40) is 101.606018, should be 100.000000
    663 Pixel (12, 41) is 102.682777, should be 101.000000
    664 Pixel (12, 42) is 103.740402, should be 102.000000
    665 Pixel (12, 43) is 104.768677, should be 103.000000
    666 Pixel (12, 44) is 105.761322, should be 104.000000
    667 Pixel (12, 45) is 106.717247, should be 105.000000
    668 Pixel (12, 46) is 107.640877, should be 106.000000
    669 Pixel (12, 47) is 108.542122, should be 107.000000
    670 Pixel (12, 48) is 109.435310, should be 108.000000
    671 Pixel (12, 49) is 110.337395, should be 109.000000
    672 Pixel (12, 50) is 111.265846, should be 110.000000
    673 Pixel (12, 51) is 112.235893, should be 111.000000
    674 Pixel (12, 52) is 113.258324, should be 112.000000
    675 Pixel (12, 53) is 114.336952, should be 113.000000
    676 Pixel (12, 54) is 115.467087, should be 114.000000
    677 Pixel (12, 55) is 116.634636, should be 115.000000
    678 Pixel (12, 56) is 117.816208, should be 116.000000
    679 Pixel (12, 57) is 118.980011, should be 117.000000
    680 Pixel (12, 58) is 120.087990, should be 118.000000
    681 Pixel (12, 59) is 121.098503, should be 119.000000
    682 Pixel (12, 60) is 121.969551, should be 120.000000
    683 Pixel (12, 61) is 122.662086, should be 121.000000
    684 Pixel (12, 62) is 123.143494, should be 122.000000
    685 Pixel (13, 0) is 67.549660, should be 65.000000
    686 Pixel (13, 1) is 67.796532, should be 66.000000
    687 Pixel (13, 2) is 68.277954, should be 67.000000
    688 Pixel (13, 7) is 73.123795, should be 72.000000
    689 Pixel (13, 8) is 74.305367, should be 73.000000
    690 Pixel (13, 9) is 75.472939, should be 74.000000
    691 Pixel (13, 10) is 76.603073, should be 75.000000
    692 Pixel (13, 11) is 77.681717, should be 76.000000
    693 Pixel (13, 12) is 78.704124, should be 77.000000
    694 Pixel (13, 13) is 79.674164, should be 78.000000
    695 Pixel (13, 14) is 80.602615, should be 79.000000
    696 Pixel (13, 15) is 81.504715, should be 80.000000
    697 Pixel (13, 16) is 82.397903, should be 81.000000
    698 Pixel (13, 17) is 83.299164, should be 82.000000
    699 Pixel (13, 18) is 84.222794, should be 83.000000
    700 Pixel (13, 19) is 85.178711, should be 84.000000
    701 Pixel (13, 20) is 86.171349, should be 85.000000
    702 Pixel (13, 21) is 87.199623, should be 86.000000
    703 Pixel (13, 22) is 88.257248, should be 87.000000
    704 Pixel (13, 23) is 89.334023, should be 88.000000
    705 Pixel (13, 24) is 90.417404, should be 89.000000
    706 Pixel (13, 25) is 91.494431, should be 90.000000
    707 Pixel (13, 26) is 92.553566, should be 91.000000
    708 Pixel (13, 27) is 93.586288, should be 92.000000
    709 Pixel (13, 28) is 94.588188, should be 93.000000
    710 Pixel (13, 29) is 95.559578, should be 94.000000
    711 Pixel (13, 30) is 96.505280, should be 95.000000
    712 Pixel (13, 31) is 97.433876, should be 96.000000
    713 Pixel (13, 32) is 98.356483, should be 97.000000
    714 Pixel (13, 33) is 99.285095, should be 98.000000
    715 Pixel (13, 34) is 100.230766, should be 99.000000
    716 Pixel (13, 35) is 101.202156, should be 100.000000
    717 Pixel (13, 36) is 102.204071, should be 101.000000
    718 Pixel (13, 37) is 103.236794, should be 102.000000
    719 Pixel (13, 38) is 104.295914, should be 103.000000
    720 Pixel (13, 39) is 105.372971, should be 104.000000
    721 Pixel (13, 40) is 106.456352, should be 105.000000
    722 Pixel (13, 41) is 107.533112, should be 106.000000
    723 Pixel (13, 42) is 108.590736, should be 107.000000
    724 Pixel (13, 43) is 109.619011, should be 108.000000
    725 Pixel (13, 44) is 110.611664, should be 109.000000
    726 Pixel (13, 45) is 111.567581, should be 110.000000
    727 Pixel (13, 46) is 112.491211, should be 111.000000
    728 Pixel (13, 47) is 113.392456, should be 112.000000
    729 Pixel (13, 48) is 114.285645, should be 113.000000
    730 Pixel (13, 49) is 115.187729, should be 114.000000
    731 Pixel (13, 50) is 116.116180, should be 115.000000
    732 Pixel (13, 51) is 117.086220, should be 116.000000
    733 Pixel (13, 52) is 118.108658, should be 117.000000
    734 Pixel (13, 53) is 119.187286, should be 118.000000
    735 Pixel (13, 54) is 120.317421, should be 119.000000
    736 Pixel (13, 55) is 121.484970, should be 120.000000
    737 Pixel (13, 56) is 122.666542, should be 121.000000
    738 Pixel (13, 57) is 123.830345, should be 122.000000
    739 Pixel (13, 58) is 124.938332, should be 123.000000
    740 Pixel (13, 59) is 125.948830, should be 124.000000
    741 Pixel (13, 60) is 126.819878, should be 125.000000
    742 Pixel (13, 61) is 127.512413, should be 126.000000
    743 Pixel (14, 0) is 72.191757, should be 70.000000
    744 Pixel (14, 1) is 72.438629, should be 71.000000
    745 Pixel (14, 9) is 80.115044, should be 79.000000
    746 Pixel (14, 10) is 81.245178, should be 80.000000
    747 Pixel (14, 11) is 82.323822, should be 81.000000
    748 Pixel (14, 12) is 83.346230, should be 82.000000
    749 Pixel (14, 13) is 84.316269, should be 83.000000
    750 Pixel (14, 14) is 85.244720, should be 84.000000
    751 Pixel (14, 15) is 86.146820, should be 85.000000
    752 Pixel (14, 16) is 87.040009, should be 86.000000
    753 Pixel (14, 24) is 95.059509, should be 94.000000
    754 Pixel (14, 25) is 96.136536, should be 95.000000
    755 Pixel (14, 26) is 97.195671, should be 96.000000
    756 Pixel (14, 27) is 98.228394, should be 97.000000
    757 Pixel (14, 28) is 99.230293, should be 98.000000
    758 Pixel (14, 29) is 100.201683, should be 99.000000
    759 Pixel (14, 30) is 101.147377, should be 100.000000
    760 Pixel (14, 31) is 102.075981, should be 101.000000
    761 Pixel (14, 39) is 110.015076, should be 109.000000
    762 Pixel (14, 40) is 111.098457, should be 110.000000
    763 Pixel (14, 41) is 112.175217, should be 111.000000
    764 Pixel (14, 42) is 113.232841, should be 112.000000
    765 Pixel (14, 43) is 114.261116, should be 113.000000
    766 Pixel (14, 44) is 115.253769, should be 114.000000
    767 Pixel (14, 45) is 116.209679, should be 115.000000
    768 Pixel (14, 46) is 117.133308, should be 116.000000
    769 Pixel (14, 47) is 118.034561, should be 117.000000
    770 Pixel (14, 55) is 126.127083, should be 125.000000
    771 Pixel (14, 56) is 127.308655, should be 126.000000
    772 Pixel (14, 57) is 128.472458, should be 127.000000
    773 Pixel (14, 58) is 129.580444, should be 128.000000
    774 Pixel (14, 59) is 130.590958, should be 129.000000
    775 Pixel (14, 60) is 131.462006, should be 130.000000
    776 Pixel (14, 61) is 132.154541, should be 131.000000
    777 Pixel (15, 0) is 76.702263, should be 75.000000
    778 Pixel (15, 58) is 134.090927, should be 133.000000
    779 Pixel (15, 59) is 135.101425, should be 134.000000
    780 Pixel (16, 0) is 81.168243, should be 80.000000
    781 Pixel (16, 63) is 141.859314, should be 143.000000
    782 Pixel (17, 4) is 87.966415, should be 89.000000
    783 Pixel (17, 5) is 88.976913, should be 90.000000
    784 Pixel (17, 63) is 146.365601, should be 148.000000
    785 Pixel (18, 3) is 91.713509, should be 93.000000
    786 Pixel (18, 4) is 92.584534, should be 94.000000
    787 Pixel (18, 5) is 93.595032, should be 95.000000
    788 Pixel (18, 6) is 94.703026, should be 96.000000
    789 Pixel (18, 7) is 95.866806, should be 97.000000
    790 Pixel (18, 18) is 106.965820, should be 108.000000
    791 Pixel (18, 19) is 107.921722, should be 109.000000
    792 Pixel (18, 20) is 108.914375, should be 110.000000
    793 Pixel (18, 21) is 109.942650, should be 111.000000
    794 Pixel (18, 34) is 122.973785, should be 124.000000
    795 Pixel (18, 35) is 123.945175, should be 125.000000
    796 Pixel (18, 36) is 124.947090, should be 126.000000
    797 Pixel (18, 37) is 125.979820, should be 127.000000
    798 Pixel (18, 49) is 137.930756, should be 139.000000
    799 Pixel (18, 50) is 138.859222, should be 140.000000
    800 Pixel (18, 51) is 139.829285, should be 141.000000
    801 Pixel (18, 52) is 140.851715, should be 142.000000
    802 Pixel (18, 53) is 141.930328, should be 143.000000
    803 Pixel (18, 62) is 150.736877, should be 152.000000
    804 Pixel (18, 63) is 150.983749, should be 153.000000
    805 Pixel (19, 2) is 95.800407, should be 97.000000
    806 Pixel (19, 3) is 96.492950, should be 98.000000
    807 Pixel (19, 4) is 97.363976, should be 99.000000
    808 Pixel (19, 5) is 98.374474, should be 100.000000
    809 Pixel (19, 6) is 99.482468, should be 101.000000
    810 Pixel (19, 7) is 100.646248, should be 102.000000
    811 Pixel (19, 8) is 101.827812, should be 103.000000
    812 Pixel (19, 9) is 102.995369, should be 104.000000
    813 Pixel (19, 16) is 109.920364, should be 111.000000
    814 Pixel (19, 17) is 110.821632, should be 112.000000
    815 Pixel (19, 18) is 111.745262, should be 113.000000
    816 Pixel (19, 19) is 112.701164, should be 114.000000
    817 Pixel (19, 20) is 113.693817, should be 115.000000
    818 Pixel (19, 21) is 114.722092, should be 116.000000
    819 Pixel (19, 22) is 115.779716, should be 117.000000
    820 Pixel (19, 23) is 116.856483, should be 118.000000
    821 Pixel (19, 24) is 117.939865, should be 119.000000
    822 Pixel (19, 31) is 124.956329, should be 126.000000
    823 Pixel (19, 32) is 125.878944, should be 127.000000
    824 Pixel (19, 33) is 126.807564, should be 128.000000
    825 Pixel (19, 34) is 127.753242, should be 129.000000
    826 Pixel (19, 35) is 128.724625, should be 130.000000
    827 Pixel (19, 36) is 129.726532, should be 131.000000
    828 Pixel (19, 37) is 130.759247, should be 132.000000
    829 Pixel (19, 38) is 131.818390, should be 133.000000
    830 Pixel (19, 39) is 132.895432, should be 134.000000
    831 Pixel (19, 40) is 133.978821, should be 135.000000
    832 Pixel (19, 47) is 140.914932, should be 142.000000
    833 Pixel (19, 48) is 141.808121, should be 143.000000
    834 Pixel (19, 49) is 142.710205, should be 144.000000
    835 Pixel (19, 50) is 143.638657, should be 145.000000
    836 Pixel (19, 51) is 144.608719, should be 146.000000
    837 Pixel (19, 52) is 145.631149, should be 147.000000
    838 Pixel (19, 53) is 146.709763, should be 148.000000
    839 Pixel (19, 54) is 147.839905, should be 149.000000
    840 Pixel (19, 62) is 155.516312, should be 157.000000
    841 Pixel (19, 63) is 155.763184, should be 158.000000
    842 Pixel (20, 2) is 100.763664, should be 102.000000
    843 Pixel (20, 3) is 101.456207, should be 103.000000
    844 Pixel (20, 4) is 102.327232, should be 104.000000
    845 Pixel (20, 5) is 103.337730, should be 105.000000
    846 Pixel (20, 6) is 104.445724, should be 106.000000
    847 Pixel (20, 7) is 105.609505, should be 107.000000
    848 Pixel (20, 8) is 106.791069, should be 108.000000
    849 Pixel (20, 9) is 107.958626, should be 109.000000
    850 Pixel (20, 15) is 113.990417, should be 115.000000
    851 Pixel (20, 16) is 114.883606, should be 116.000000
    852 Pixel (20, 17) is 115.784882, should be 117.000000
    853 Pixel (20, 18) is 116.708504, should be 118.000000
    854 Pixel (20, 19) is 117.664406, should be 119.000000
    855 Pixel (20, 20) is 118.657051, should be 120.000000
    856 Pixel (20, 21) is 119.685341, should be 121.000000
    857 Pixel (20, 22) is 120.742958, should be 122.000000
    858 Pixel (20, 23) is 121.819725, should be 123.000000
    859 Pixel (20, 24) is 122.903107, should be 124.000000
    860 Pixel (20, 25) is 123.980141, should be 125.000000
    861 Pixel (20, 30) is 128.990982, should be 130.000000
    862 Pixel (20, 31) is 129.919571, should be 131.000000
    863 Pixel (20, 32) is 130.842178, should be 132.000000
    864 Pixel (20, 33) is 131.770798, should be 133.000000
    865 Pixel (20, 34) is 132.716476, should be 134.000000
    866 Pixel (20, 35) is 133.687866, should be 135.000000
    867 Pixel (20, 36) is 134.689774, should be 136.000000
    868 Pixel (20, 37) is 135.722488, should be 137.000000
    869 Pixel (20, 38) is 136.781631, should be 138.000000
    870 Pixel (20, 39) is 137.858673, should be 139.000000
    871 Pixel (20, 40) is 138.942047, should be 140.000000
    872 Pixel (20, 46) is 144.976913, should be 146.000000
    873 Pixel (20, 47) is 145.878143, should be 147.000000
    874 Pixel (20, 48) is 146.771332, should be 148.000000
    875 Pixel (20, 49) is 147.673416, should be 149.000000
    876 Pixel (20, 50) is 148.601868, should be 150.000000
    877 Pixel (20, 51) is 149.571915, should be 151.000000
    878 Pixel (20, 52) is 150.594360, should be 152.000000
    879 Pixel (20, 53) is 151.672989, should be 153.000000
    880 Pixel (20, 54) is 152.803116, should be 154.000000
    881 Pixel (20, 55) is 153.970657, should be 155.000000
    882 Pixel (20, 61) is 159.998108, should be 161.000000
    883 Pixel (20, 62) is 160.479507, should be 162.000000
    884 Pixel (20, 63) is 160.726395, should be 163.000000
    885 Pixel (21, 2) is 105.905037, should be 107.000000
    886 Pixel (21, 3) is 106.597580, should be 108.000000
    887 Pixel (21, 4) is 107.468605, should be 109.000000
    888 Pixel (21, 5) is 108.479103, should be 110.000000
    889 Pixel (21, 6) is 109.587105, should be 111.000000
    890 Pixel (21, 7) is 110.750885, should be 112.000000
    891 Pixel (21, 8) is 111.932449, should be 113.000000
    892 Pixel (21, 17) is 120.926254, should be 122.000000
    893 Pixel (21, 18) is 121.849876, should be 123.000000
    894 Pixel (21, 19) is 122.805779, should be 124.000000
    895 Pixel (21, 20) is 123.798424, should be 125.000000
    896 Pixel (21, 21) is 124.826706, should be 126.000000
    897 Pixel (21, 22) is 125.884323, should be 127.000000
    898 Pixel (21, 23) is 126.961082, should be 128.000000
    899 Pixel (21, 32) is 135.983551, should be 137.000000
    900 Pixel (21, 33) is 136.912170, should be 138.000000
    901 Pixel (21, 34) is 137.857834, should be 139.000000
    902 Pixel (21, 35) is 138.829224, should be 140.000000
    903 Pixel (21, 36) is 139.831146, should be 141.000000
    904 Pixel (21, 37) is 140.863861, should be 142.000000
    905 Pixel (21, 38) is 141.922989, should be 143.000000
    906 Pixel (21, 48) is 151.912704, should be 153.000000
    907 Pixel (21, 49) is 152.814789, should be 154.000000
    908 Pixel (21, 50) is 153.743240, should be 155.000000
    909 Pixel (21, 51) is 154.713287, should be 156.000000
    910 Pixel (21, 52) is 155.735733, should be 157.000000
    911 Pixel (21, 53) is 156.814362, should be 158.000000
    912 Pixel (21, 54) is 157.944504, should be 159.000000
    913 Pixel (21, 62) is 165.620895, should be 167.000000
    914 Pixel (21, 63) is 165.867752, should be 168.000000
    915 Pixel (22, 3) is 111.885727, should be 113.000000
    916 Pixel (22, 4) is 112.756744, should be 114.000000
    917 Pixel (22, 5) is 113.767242, should be 115.000000
    918 Pixel (22, 6) is 114.875237, should be 116.000000
    919 Pixel (22, 62) is 170.909042, should be 172.000000
    920 Pixel (22, 63) is 171.155914, should be 173.000000
    921 Pixel (23, 63) is 176.539764, should be 178.000000
    922 Pixel (24, 0) is 121.265671, should be 120.000000
    923 Pixel (24, 63) is 181.956696, should be 183.000000
    924 Pixel (25, 0) is 126.650871, should be 125.000000
    925 Pixel (25, 58) is 184.039474, should be 183.000000
    926 Pixel (25, 59) is 185.049973, should be 184.000000
    927 Pixel (26, 0) is 131.946564, should be 130.000000
    928 Pixel (26, 1) is 132.193436, should be 131.000000
    929 Pixel (26, 11) is 142.078583, should be 141.000000
    930 Pixel (26, 12) is 143.100998, should be 142.000000
    931 Pixel (26, 13) is 144.071045, should be 143.000000
    932 Pixel (26, 43) is 174.015884, should be 173.000000
    933 Pixel (26, 44) is 175.008530, should be 174.000000
    934 Pixel (26, 56) is 187.063385, should be 186.000000
    935 Pixel (26, 57) is 188.227188, should be 187.000000
    936 Pixel (26, 58) is 189.335175, should be 188.000000
    937 Pixel (26, 59) is 190.345673, should be 189.000000
    938 Pixel (26, 60) is 191.216721, should be 190.000000
    939 Pixel (27, 0) is 137.110168, should be 135.000000
    940 Pixel (27, 1) is 137.357040, should be 136.000000
    941 Pixel (27, 9) is 145.033386, should be 144.000000
    942 Pixel (27, 10) is 146.163528, should be 145.000000
    943 Pixel (27, 11) is 147.242172, should be 146.000000
    944 Pixel (27, 12) is 148.264572, should be 147.000000
    945 Pixel (27, 13) is 149.234619, should be 148.000000
    946 Pixel (27, 14) is 150.163071, should be 149.000000
    947 Pixel (27, 15) is 151.065186, should be 150.000000
    948 Pixel (27, 25) is 161.054886, should be 160.000000
    949 Pixel (27, 26) is 162.114014, should be 161.000000
    950 Pixel (27, 27) is 163.146729, should be 162.000000
    951 Pixel (27, 28) is 164.148621, should be 163.000000
    952 Pixel (27, 29) is 165.120010, should be 164.000000
    953 Pixel (27, 30) is 166.065704, should be 165.000000
    954 Pixel (27, 40) is 176.016800, should be 175.000000
    955 Pixel (27, 41) is 177.093567, should be 176.000000
    956 Pixel (27, 42) is 178.151184, should be 177.000000
    957 Pixel (27, 43) is 179.179459, should be 178.000000
    958 Pixel (27, 44) is 180.172104, should be 179.000000
    959 Pixel (27, 45) is 181.128006, should be 180.000000
    960 Pixel (27, 46) is 182.051636, should be 181.000000
    961 Pixel (27, 55) is 191.045395, should be 190.000000
    962 Pixel (27, 56) is 192.226959, should be 191.000000
    963 Pixel (27, 57) is 193.390762, should be 192.000000
    964 Pixel (27, 58) is 194.498749, should be 193.000000
    965 Pixel (27, 59) is 195.509247, should be 194.000000
    966 Pixel (27, 60) is 196.380295, should be 195.000000
    967 Pixel (27, 61) is 197.072830, should be 196.000000
    968 Pixel (28, 0) is 142.119690, should be 140.000000
    969 Pixel (28, 1) is 142.366562, should be 141.000000
    970 Pixel (28, 9) is 150.042908, should be 149.000000
    971 Pixel (28, 10) is 151.173050, should be 150.000000
    972 Pixel (28, 11) is 152.251694, should be 151.000000
    973 Pixel (28, 12) is 153.274109, should be 152.000000
    974 Pixel (28, 13) is 154.244141, should be 153.000000
    975 Pixel (28, 14) is 155.172592, should be 154.000000
    976 Pixel (28, 15) is 156.074707, should be 155.000000
    977 Pixel (28, 25) is 166.064407, should be 165.000000
    978 Pixel (28, 26) is 167.123535, should be 166.000000
    979 Pixel (28, 27) is 168.156250, should be 167.000000
    980 Pixel (28, 28) is 169.158142, should be 168.000000
    981 Pixel (28, 29) is 170.129532, should be 169.000000
    982 Pixel (28, 30) is 171.075226, should be 170.000000
    983 Pixel (28, 31) is 172.003830, should be 171.000000
    984 Pixel (28, 40) is 181.026321, should be 180.000000
    985 Pixel (28, 41) is 182.103088, should be 181.000000
    986 Pixel (28, 42) is 183.160706, should be 182.000000
    987 Pixel (28, 43) is 184.188980, should be 183.000000
    988 Pixel (28, 44) is 185.181625, should be 184.000000
    989 Pixel (28, 45) is 186.137527, should be 185.000000
    990 Pixel (28, 46) is 187.061157, should be 186.000000
    991 Pixel (28, 55) is 196.054916, should be 195.000000
    992 Pixel (28, 56) is 197.236481, should be 196.000000
    993 Pixel (28, 57) is 198.400284, should be 197.000000
    994 Pixel (28, 58) is 199.508270, should be 198.000000
    995 Pixel (28, 59) is 200.518768, should be 199.000000
    996 Pixel (28, 60) is 201.389816, should be 200.000000
    997 Pixel (28, 61) is 202.082352, should be 201.000000
    998 Pixel (29, 0) is 146.976593, should be 145.000000
    999 Pixel (29, 1) is 147.223465, should be 146.000000
    1000 Pixel (29, 10) is 156.029953, should be 155.000000
    1001 Pixel (29, 11) is 157.108597, should be 156.000000
    1002 Pixel (29, 12) is 158.131012, should be 157.000000
    1003 Pixel (29, 13) is 159.101059, should be 158.000000
    1004 Pixel (29, 14) is 160.029495, should be 159.000000
    1005 Pixel (29, 27) is 173.013153, should be 172.000000
    1006 Pixel (29, 28) is 174.015045, should be 173.000000
    1007 Pixel (29, 42) is 188.017609, should be 187.000000
    1008 Pixel (29, 43) is 189.045883, should be 188.000000
    1009 Pixel (29, 44) is 190.038528, should be 189.000000
    1010 Pixel (29, 56) is 202.093384, should be 201.000000
    1011 Pixel (29, 57) is 203.257187, should be 202.000000
    1012 Pixel (29, 58) is 204.365173, should be 203.000000
    1013 Pixel (29, 59) is 205.375671, should be 204.000000
    1014 Pixel (29, 60) is 206.246719, should be 205.000000
    1015 Pixel (30, 0) is 151.705017, should be 150.000000
    1016 Pixel (30, 58) is 209.093597, should be 208.000000
    1017 Pixel (30, 59) is 210.104095, should be 209.000000
    1018 Pixel (31, 0) is 156.348038, should be 155.000000
    1019 Pixel (32, 63) is 221.652069, should be 223.000000
    1020 Pixel (33, 4) is 167.895950, should be 169.000000
    1021 Pixel (33, 5) is 168.906448, should be 170.000000
    1022 Pixel (33, 63) is 226.295059, should be 228.000000
    1023 Pixel (34, 3) is 171.753357, should be 173.000000
    1024 Pixel (34, 4) is 172.624374, should be 174.000000
    1025 Pixel (34, 5) is 173.634872, should be 175.000000
    1026 Pixel (34, 6) is 174.742859, should be 176.000000
    1027 Pixel (34, 7) is 175.906631, should be 177.000000
    1028 Pixel (34, 19) is 187.961548, should be 189.000000
    1029 Pixel (34, 20) is 188.954193, should be 190.000000
    1030 Pixel (34, 21) is 189.982468, should be 191.000000
    1031 Pixel (34, 35) is 203.984970, should be 205.000000
    1032 Pixel (34, 36) is 204.986893, should be 206.000000
    1033 Pixel (34, 49) is 217.970520, should be 219.000000
    1034 Pixel (34, 50) is 218.898956, should be 220.000000
    1035 Pixel (34, 51) is 219.869003, should be 221.000000
    1036 Pixel (34, 52) is 220.891434, should be 222.000000
    1037 Pixel (34, 53) is 221.970062, should be 223.000000
    1038 Pixel (34, 62) is 230.776611, should be 232.000000
    1039 Pixel (34, 63) is 231.023483, should be 233.000000
    1040 Pixel (35, 2) is 175.917755, should be 177.000000
    1041 Pixel (35, 3) is 176.610291, should be 178.000000
    1042 Pixel (35, 4) is 177.481308, should be 179.000000
    1043 Pixel (35, 5) is 178.491806, should be 180.000000
    1044 Pixel (35, 6) is 179.599792, should be 181.000000
    1045 Pixel (35, 7) is 180.763565, should be 182.000000
    1046 Pixel (35, 8) is 181.945129, should be 183.000000
    1047 Pixel (35, 17) is 190.938950, should be 192.000000
    1048 Pixel (35, 18) is 191.862579, should be 193.000000
    1049 Pixel (35, 19) is 192.818481, should be 194.000000
    1050 Pixel (35, 20) is 193.811127, should be 195.000000
    1051 Pixel (35, 21) is 194.839401, should be 196.000000
    1052 Pixel (35, 22) is 195.897018, should be 197.000000
    1053 Pixel (35, 23) is 196.973785, should be 198.000000
    1054 Pixel (35, 32) is 205.996216, should be 207.000000
    1055 Pixel (35, 33) is 206.924835, should be 208.000000
    1056 Pixel (35, 34) is 207.870514, should be 209.000000
    1057 Pixel (35, 35) is 208.841904, should be 210.000000
    1058 Pixel (35, 36) is 209.843826, should be 211.000000
    1059 Pixel (35, 37) is 210.876541, should be 212.000000
    1060 Pixel (35, 38) is 211.935669, should be 213.000000
    1061 Pixel (35, 48) is 221.925369, should be 223.000000
    1062 Pixel (35, 49) is 222.827454, should be 224.000000
    1063 Pixel (35, 50) is 223.755905, should be 225.000000
    1064 Pixel (35, 51) is 224.725937, should be 226.000000
    1065 Pixel (35, 52) is 225.748367, should be 227.000000
    1066 Pixel (35, 53) is 226.826996, should be 228.000000
    1067 Pixel (35, 54) is 227.957138, should be 229.000000
    1068 Pixel (35, 62) is 235.633545, should be 237.000000
    1069 Pixel (35, 63) is 235.880417, should be 238.000000
    1070 Pixel (36, 2) is 180.927292, should be 182.000000
    1071 Pixel (36, 3) is 181.619827, should be 183.000000
    1072 Pixel (36, 4) is 182.490845, should be 184.000000
    1073 Pixel (36, 5) is 183.501343, should be 185.000000
    1074 Pixel (36, 6) is 184.609329, should be 186.000000
    1075 Pixel (36, 7) is 185.773102, should be 187.000000
    1076 Pixel (36, 8) is 186.954666, should be 188.000000
    1077 Pixel (36, 17) is 195.948486, should be 197.000000
    1078 Pixel (36, 18) is 196.872116, should be 198.000000
    1079 Pixel (36, 19) is 197.828018, should be 199.000000
    1080 Pixel (36, 20) is 198.820663, should be 200.000000
    1081 Pixel (36, 21) is 199.848938, should be 201.000000
    1082 Pixel (36, 22) is 200.906555, should be 202.000000
    1083 Pixel (36, 23) is 201.983322, should be 203.000000
    1084 Pixel (36, 33) is 211.934372, should be 213.000000
    1085 Pixel (36, 34) is 212.880051, should be 214.000000
    1086 Pixel (36, 35) is 213.851440, should be 215.000000
    1087 Pixel (36, 36) is 214.853363, should be 216.000000
    1088 Pixel (36, 37) is 215.886078, should be 217.000000
    1089 Pixel (36, 38) is 216.945206, should be 218.000000
    1090 Pixel (36, 48) is 226.934906, should be 228.000000
    1091 Pixel (36, 49) is 227.836990, should be 229.000000
    1092 Pixel (36, 50) is 228.765442, should be 230.000000
    1093 Pixel (36, 51) is 229.735489, should be 231.000000
    1094 Pixel (36, 52) is 230.757904, should be 232.000000
    1095 Pixel (36, 53) is 231.836533, should be 233.000000
    1096 Pixel (36, 54) is 232.966675, should be 234.000000
    1097 Pixel (36, 62) is 240.643082, should be 242.000000
    1098 Pixel (36, 63) is 240.889954, should be 243.000000
    1099 Pixel (37, 3) is 186.783417, should be 188.000000
    1100 Pixel (37, 4) is 187.654434, should be 189.000000
    1101 Pixel (37, 5) is 188.664932, should be 190.000000
    1102 Pixel (37, 6) is 189.772919, should be 191.000000
    1103 Pixel (37, 7) is 190.936691, should be 192.000000
    1104 Pixel (37, 19) is 202.991608, should be 204.000000
    1105 Pixel (37, 20) is 203.984253, should be 205.000000
    1106 Pixel (37, 50) is 233.929031, should be 235.000000
    1107 Pixel (37, 51) is 234.899078, should be 236.000000
    1108 Pixel (37, 52) is 235.921509, should be 237.000000
    1109 Pixel (37, 62) is 245.806671, should be 247.000000
    1110 Pixel (37, 63) is 246.053543, should be 248.000000
    1111 Pixel (38, 4) is 192.950089, should be 194.000000
    1112 Pixel (38, 5) is 193.960587, should be 195.000000
    1113 Pixel (38, 63) is 251.349228, should be 253.000000
    1114 Pixel (39, 0) is 196.043472, should be 195.000000
    1115 Pixel (39, 63) is 256.734406, should be 258.000000
    1116 Pixel (40, 0) is 201.460358, should be 200.000000
    1117 Pixel (41, 0) is 206.844208, should be 205.000000
    1118 Pixel (41, 1) is 207.091080, should be 206.000000
    1119 Pixel (41, 57) is 263.124786, should be 262.000000
    1120 Pixel (41, 58) is 264.232758, should be 263.000000
    1121 Pixel (41, 59) is 265.243256, should be 264.000000
    1122 Pixel (41, 60) is 266.114319, should be 265.000000
    1123 Pixel (42, 0) is 212.132355, should be 210.000000
    1124 Pixel (42, 1) is 212.379211, should be 211.000000
    1125 Pixel (42, 9) is 220.055542, should be 219.000000
    1126 Pixel (42, 10) is 221.185684, should be 220.000000
    1127 Pixel (42, 11) is 222.264328, should be 221.000000
    1128 Pixel (42, 12) is 223.286758, should be 222.000000
    1129 Pixel (42, 13) is 224.256805, should be 223.000000
    1130 Pixel (42, 14) is 225.185257, should be 224.000000
    1131 Pixel (42, 15) is 226.087372, should be 225.000000
    1132 Pixel (42, 24) is 235.000031, should be 234.000000
    1133 Pixel (42, 25) is 236.077057, should be 235.000000
    1134 Pixel (42, 26) is 237.136185, should be 236.000000
    1135 Pixel (42, 27) is 238.168900, should be 237.000000
    1136 Pixel (42, 28) is 239.170792, should be 238.000000
    1137 Pixel (42, 29) is 240.142181, should be 239.000000
    1138 Pixel (42, 30) is 241.087875, should be 240.000000
    1139 Pixel (42, 31) is 242.016464, should be 241.000000
    1140 Pixel (42, 40) is 251.038986, should be 250.000000
    1141 Pixel (42, 41) is 252.115738, should be 251.000000
    1142 Pixel (42, 42) is 253.173355, should be 252.000000
    1143 Pixel (42, 43) is 254.201645, should be 253.000000
    1144 Pixel (42, 44) is 255.194290, should be 254.000000
    1145 Pixel (42, 45) is 256.150177, should be 255.000000
    1146 Pixel (42, 46) is 257.073792, should be 256.000000
    1147 Pixel (42, 55) is 266.067566, should be 265.000000
    1148 Pixel (42, 56) is 267.249146, should be 266.000000
    1149 Pixel (42, 57) is 268.412933, should be 267.000000
    1150 Pixel (42, 58) is 269.520935, should be 268.000000
    1151 Pixel (42, 59) is 270.531433, should be 269.000000
    1152 Pixel (42, 60) is 271.402466, should be 270.000000
    1153 Pixel (42, 61) is 272.095001, should be 271.000000
    1154 Pixel (43, 0) is 217.273712, should be 215.000000
    1155 Pixel (43, 1) is 217.520569, should be 216.000000
    1156 Pixel (43, 2) is 218.001968, should be 217.000000
    1157 Pixel (43, 8) is 224.029327, should be 223.000000
    1158 Pixel (43, 9) is 225.196869, should be 224.000000
    1159 Pixel (43, 10) is 226.327026, should be 225.000000
    1160 Pixel (43, 11) is 227.405670, should be 226.000000
    1161 Pixel (43, 12) is 228.428101, should be 227.000000
    1162 Pixel (43, 13) is 229.398148, should be 228.000000
    1163 Pixel (43, 14) is 230.326599, should be 229.000000
    1164 Pixel (43, 15) is 231.228714, should be 230.000000
    1165 Pixel (43, 16) is 232.121902, should be 231.000000
    1166 Pixel (43, 17) is 233.023193, should be 232.000000
    1167 Pixel (43, 23) is 239.057999, should be 238.000000
    1168 Pixel (43, 24) is 240.141373, should be 239.000000
    1169 Pixel (43, 25) is 241.218399, should be 240.000000
    1170 Pixel (43, 26) is 242.277512, should be 241.000000
    1171 Pixel (43, 27) is 243.310226, should be 242.000000
    1172 Pixel (43, 28) is 244.312134, should be 243.000000
    1173 Pixel (43, 29) is 245.283524, should be 244.000000
    1174 Pixel (43, 30) is 246.229202, should be 245.000000
    1175 Pixel (43, 31) is 247.157822, should be 246.000000
    1176 Pixel (43, 32) is 248.080429, should be 247.000000
    1177 Pixel (43, 33) is 249.009048, should be 248.000000
    1178 Pixel (43, 38) is 254.019882, should be 253.000000
    1179 Pixel (43, 39) is 255.096939, should be 254.000000
    1180 Pixel (43, 40) is 256.180328, should be 255.000000
    1181 Pixel (43, 41) is 257.257080, should be 256.000000
    1182 Pixel (43, 42) is 258.314667, should be 257.000000
    1183 Pixel (43, 43) is 259.342957, should be 258.000000
    1184 Pixel (43, 44) is 260.335632, should be 259.000000
    1185 Pixel (43, 45) is 261.291534, should be 260.000000
    1186 Pixel (43, 46) is 262.215149, should be 261.000000
    1187 Pixel (43, 47) is 263.116394, should be 262.000000
    1188 Pixel (43, 48) is 264.009583, should be 263.000000
    1189 Pixel (43, 54) is 270.041382, should be 269.000000
    1190 Pixel (43, 55) is 271.208923, should be 270.000000
    1191 Pixel (43, 56) is 272.390503, should be 271.000000
    1192 Pixel (43, 57) is 273.554291, should be 272.000000
    1193 Pixel (43, 58) is 274.662292, should be 273.000000
    1194 Pixel (43, 59) is 275.672791, should be 274.000000
    1195 Pixel (43, 60) is 276.543823, should be 275.000000
    1196 Pixel (43, 61) is 277.236359, should be 276.000000
    1197 Pixel (44, 0) is 222.236954, should be 220.000000
    1198 Pixel (44, 1) is 222.483826, should be 221.000000
    1199 Pixel (44, 9) is 230.160110, should be 229.000000
    1200 Pixel (44, 10) is 231.290253, should be 230.000000
    1201 Pixel (44, 11) is 232.368912, should be 231.000000
    1202 Pixel (44, 12) is 233.391327, should be 232.000000
    1203 Pixel (44, 13) is 234.361389, should be 233.000000
    1204 Pixel (44, 14) is 235.289841, should be 234.000000
    1205 Pixel (44, 15) is 236.191956, should be 235.000000
    1206 Pixel (44, 16) is 237.085144, should be 236.000000
    1207 Pixel (44, 23) is 244.021240, should be 243.000000
    1208 Pixel (44, 24) is 245.104584, should be 244.000000
    1209 Pixel (44, 25) is 246.181610, should be 245.000000
    1210 Pixel (44, 26) is 247.240753, should be 246.000000
    1211 Pixel (44, 27) is 248.273468, should be 247.000000
    1212 Pixel (44, 28) is 249.275360, should be 248.000000
    1213 Pixel (44, 29) is 250.246735, should be 249.000000
    1214 Pixel (44, 30) is 251.192444, should be 250.000000
    1215 Pixel (44, 31) is 252.121033, should be 251.000000
    1216 Pixel (44, 32) is 253.043640, should be 252.000000
    1217 Pixel (44, 39) is 260.060150, should be 259.000000
    1218 Pixel (44, 40) is 261.143524, should be 260.000000
    1219 Pixel (44, 41) is 262.220306, should be 261.000000
    1220 Pixel (44, 42) is 263.277924, should be 262.000000
    1221 Pixel (44, 43) is 264.306183, should be 263.000000
    1222 Pixel (44, 44) is 265.298828, should be 264.000000
    1223 Pixel (44, 45) is 266.254730, should be 265.000000
    1224 Pixel (44, 46) is 267.178375, should be 266.000000
    1225 Pixel (44, 47) is 268.079620, should be 267.000000
    1226 Pixel (44, 54) is 275.004578, should be 274.000000
    1227 Pixel (44, 55) is 276.172150, should be 275.000000
    1228 Pixel (44, 56) is 277.353699, should be 276.000000
    1229 Pixel (44, 57) is 278.517517, should be 277.000000
    1230 Pixel (44, 58) is 279.625488, should be 278.000000
    1231 Pixel (44, 59) is 280.635986, should be 279.000000
    1232 Pixel (44, 60) is 281.507050, should be 280.000000
    1233 Pixel (44, 61) is 282.199585, should be 281.000000
    1234 Pixel (45, 0) is 227.016373, should be 225.000000
    1235 Pixel (45, 1) is 227.263245, should be 226.000000
    1236 Pixel (45, 10) is 236.069672, should be 235.000000
    1237 Pixel (45, 11) is 237.148331, should be 236.000000
    1238 Pixel (45, 12) is 238.170746, should be 237.000000
    1239 Pixel (45, 13) is 239.140808, should be 238.000000
    1240 Pixel (45, 14) is 240.069260, should be 239.000000
    1241 Pixel (45, 26) is 252.020172, should be 251.000000
    1242 Pixel (45, 27) is 253.052887, should be 252.000000
    1243 Pixel (45, 28) is 254.054779, should be 253.000000
    1244 Pixel (45, 29) is 255.026184, should be 254.000000
    1245 Pixel (45, 42) is 268.057312, should be 267.000000
    1246 Pixel (45, 43) is 269.085602, should be 268.000000
    1247 Pixel (45, 44) is 270.078247, should be 269.000000
    1248 Pixel (45, 45) is 271.034149, should be 270.000000
    1249 Pixel (45, 56) is 282.133118, should be 281.000000
    1250 Pixel (45, 57) is 283.296906, should be 282.000000
    1251 Pixel (45, 58) is 284.404907, should be 283.000000
    1252 Pixel (45, 59) is 285.415405, should be 284.000000
    1253 Pixel (45, 60) is 286.286438, should be 285.000000
    1254 Pixel (46, 0) is 231.634460, should be 230.000000
    1255 Pixel (46, 58) is 289.023010, should be 288.000000
    1256 Pixel (46, 59) is 290.033478, should be 289.000000
    1257 Pixel (47, 0) is 236.140778, should be 235.000000
    1258 Pixel (47, 63) is 296.831665, should be 298.000000
    1259 Pixel (48, 4) is 242.898560, should be 244.000000
    1260 Pixel (48, 5) is 243.909058, should be 245.000000
    1261 Pixel (48, 63) is 301.297638, should be 303.000000
    1262 Pixel (49, 2) is 245.845490, should be 247.000000
    1263 Pixel (49, 3) is 246.538025, should be 248.000000
    1264 Pixel (49, 4) is 247.409058, should be 249.000000
    1265 Pixel (49, 5) is 248.419556, should be 250.000000
    1266 Pixel (49, 6) is 249.527527, should be 251.000000
    1267 Pixel (49, 7) is 250.691315, should be 252.000000
    1268 Pixel (49, 8) is 251.872864, should be 253.000000
    1269 Pixel (49, 16) is 259.965363, should be 261.000000
    1270 Pixel (49, 17) is 260.866638, should be 262.000000
    1271 Pixel (49, 18) is 261.790283, should be 263.000000
    1272 Pixel (49, 19) is 262.746185, should be 264.000000
    1273 Pixel (49, 20) is 263.738831, should be 265.000000
    1274 Pixel (49, 21) is 264.767090, should be 266.000000
    1275 Pixel (49, 22) is 265.824707, should be 267.000000
    1276 Pixel (49, 23) is 266.901489, should be 268.000000
    1277 Pixel (49, 24) is 267.984863, should be 269.000000
    1278 Pixel (49, 32) is 275.923920, should be 277.000000
    1279 Pixel (49, 33) is 276.852539, should be 278.000000
    1280 Pixel (49, 34) is 277.798218, should be 279.000000
    1281 Pixel (49, 35) is 278.769592, should be 280.000000
    1282 Pixel (49, 36) is 279.771515, should be 281.000000
    1283 Pixel (49, 37) is 280.804230, should be 282.000000
    1284 Pixel (49, 38) is 281.863373, should be 283.000000
    1285 Pixel (49, 39) is 282.940430, should be 284.000000
    1286 Pixel (49, 47) is 290.959869, should be 292.000000
    1287 Pixel (49, 48) is 291.853058, should be 293.000000
    1288 Pixel (49, 49) is 292.755157, should be 294.000000
    1289 Pixel (49, 50) is 293.683594, should be 295.000000
    1290 Pixel (49, 51) is 294.653656, should be 296.000000
    1291 Pixel (49, 52) is 295.676056, should be 297.000000
    1292 Pixel (49, 53) is 296.754669, should be 298.000000
    1293 Pixel (49, 54) is 297.884827, should be 299.000000
    1294 Pixel (49, 62) is 305.561218, should be 307.000000
    1295 Pixel (49, 63) is 305.808105, should be 308.000000
    1296 Pixel (50, 2) is 250.487579, should be 252.000000
    1297 Pixel (50, 3) is 251.180115, should be 253.000000
    1298 Pixel (50, 4) is 252.051147, should be 254.000000
    1299 Pixel (50, 5) is 253.061646, should be 255.000000
    1300 Pixel (50, 6) is 254.169617, should be 256.000000
    1301 Pixel (50, 7) is 255.333405, should be 257.000000
    1302 Pixel (50, 8) is 256.514984, should be 258.000000
    1303 Pixel (50, 9) is 257.682556, should be 259.000000
    1304 Pixel (50, 10) is 258.812683, should be 260.000000
    1305 Pixel (50, 11) is 259.891327, should be 261.000000
    1306 Pixel (50, 12) is 260.913757, should be 262.000000
    1307 Pixel (50, 13) is 261.883759, should be 263.000000
    1308 Pixel (50, 14) is 262.812225, should be 264.000000
    1309 Pixel (50, 15) is 263.714325, should be 265.000000
    1310 Pixel (50, 16) is 264.607513, should be 266.000000
    1311 Pixel (50, 17) is 265.508789, should be 267.000000
    1312 Pixel (50, 18) is 266.432434, should be 268.000000
    1313 Pixel (50, 19) is 267.388336, should be 269.000000
    1314 Pixel (50, 20) is 268.380981, should be 270.000000
    1315 Pixel (50, 21) is 269.409241, should be 271.000000
    1316 Pixel (50, 22) is 270.466858, should be 272.000000
    1317 Pixel (50, 23) is 271.543640, should be 273.000000
    1318 Pixel (50, 24) is 272.627014, should be 274.000000
    1319 Pixel (50, 25) is 273.704041, should be 275.000000
    1320 Pixel (50, 26) is 274.763153, should be 276.000000
    1321 Pixel (50, 27) is 275.795868, should be 277.000000
    1322 Pixel (50, 28) is 276.797760, should be 278.000000
    1323 Pixel (50, 29) is 277.769165, should be 279.000000
    1324 Pixel (50, 30) is 278.714844, should be 280.000000
    1325 Pixel (50, 31) is 279.643463, should be 281.000000
    1326 Pixel (50, 32) is 280.566071, should be 282.000000
    1327 Pixel (50, 33) is 281.494690, should be 283.000000
    1328 Pixel (50, 34) is 282.440369, should be 284.000000
    1329 Pixel (50, 35) is 283.411743, should be 285.000000
    1330 Pixel (50, 36) is 284.413666, should be 286.000000
    1331 Pixel (50, 37) is 285.446381, should be 287.000000
    1332 Pixel (50, 38) is 286.505524, should be 288.000000
    1333 Pixel (50, 39) is 287.582581, should be 289.000000
    1334 Pixel (50, 40) is 288.665955, should be 290.000000
    1335 Pixel (50, 41) is 289.742706, should be 291.000000
    1336 Pixel (50, 42) is 290.800323, should be 292.000000
    1337 Pixel (50, 43) is 291.828613, should be 293.000000
    1338 Pixel (50, 44) is 292.821259, should be 294.000000
    1339 Pixel (50, 45) is 293.777161, should be 295.000000
    1340 Pixel (50, 46) is 294.700775, should be 296.000000
    1341 Pixel (50, 47) is 295.602020, should be 297.000000
    1342 Pixel (50, 48) is 296.495209, should be 298.000000
    1343 Pixel (50, 49) is 297.397308, should be 299.000000
    1344 Pixel (50, 50) is 298.325745, should be 300.000000
    1345 Pixel (50, 51) is 299.295776, should be 301.000000
    1346 Pixel (50, 52) is 300.318207, should be 302.000000
    1347 Pixel (50, 53) is 301.396820, should be 303.000000
    1348 Pixel (50, 54) is 302.526978, should be 304.000000
    1349 Pixel (50, 55) is 303.694519, should be 305.000000
    1350 Pixel (50, 56) is 304.876099, should be 306.000000
    1351 Pixel (50, 61) is 309.721954, should be 311.000000
    1352 Pixel (50, 62) is 310.203369, should be 312.000000
    1353 Pixel (50, 63) is 310.450256, should be 313.000000
    1354 Pixel (51, 1) is 254.856476, should be 256.000000
    1355 Pixel (51, 2) is 255.337906, should be 257.000000
    1356 Pixel (51, 3) is 256.030457, should be 258.000000
    1357 Pixel (51, 4) is 256.901489, should be 259.000000
    1358 Pixel (51, 5) is 257.911987, should be 260.000000
    1359 Pixel (51, 6) is 259.019958, should be 261.000000
    1360 Pixel (51, 7) is 260.183746, should be 262.000000
    1361 Pixel (51, 8) is 261.365295, should be 263.000000
    1362 Pixel (51, 9) is 262.532867, should be 264.000000
    1363 Pixel (51, 10) is 263.662994, should be 265.000000
    1364 Pixel (51, 11) is 264.741638, should be 266.000000
    1365 Pixel (51, 12) is 265.764069, should be 267.000000
    1366 Pixel (51, 13) is 266.734100, should be 268.000000
    1367 Pixel (51, 14) is 267.662537, should be 269.000000
    1368 Pixel (51, 15) is 268.564636, should be 270.000000
    1369 Pixel (51, 16) is 269.457825, should be 271.000000
    1370 Pixel (51, 17) is 270.359100, should be 272.000000
    1371 Pixel (51, 18) is 271.282745, should be 273.000000
    1372 Pixel (51, 19) is 272.238647, should be 274.000000
    1373 Pixel (51, 20) is 273.231293, should be 275.000000
    1374 Pixel (51, 21) is 274.259552, should be 276.000000
    1375 Pixel (51, 22) is 275.317169, should be 277.000000
    1376 Pixel (51, 23) is 276.393951, should be 278.000000
    1377 Pixel (51, 24) is 277.477325, should be 279.000000
    1378 Pixel (51, 25) is 278.554352, should be 280.000000
    1379 Pixel (51, 26) is 279.613464, should be 281.000000
    1380 Pixel (51, 27) is 280.646179, should be 282.000000
    1381 Pixel (51, 28) is 281.648071, should be 283.000000
    1382 Pixel (51, 29) is 282.619476, should be 284.000000
    1383 Pixel (51, 30) is 283.565155, should be 285.000000
    1384 Pixel (51, 31) is 284.493774, should be 286.000000
    1385 Pixel (51, 32) is 285.416382, should be 287.000000
    1386 Pixel (51, 33) is 286.345001, should be 288.000000
    1387 Pixel (51, 34) is 287.290680, should be 289.000000
    1388 Pixel (51, 35) is 288.262054, should be 290.000000
    1389 Pixel (51, 36) is 289.263977, should be 291.000000
    1390 Pixel (51, 37) is 290.296692, should be 292.000000
    1391 Pixel (51, 38) is 291.355835, should be 293.000000
    1392 Pixel (51, 39) is 292.432892, should be 294.000000
    1393 Pixel (51, 40) is 293.516266, should be 295.000000
    1394 Pixel (51, 41) is 294.593018, should be 296.000000
    1395 Pixel (51, 42) is 295.650635, should be 297.000000
    1396 Pixel (51, 43) is 296.678925, should be 298.000000
    1397 Pixel (51, 44) is 297.671570, should be 299.000000
    1398 Pixel (51, 45) is 298.627472, should be 300.000000
    1399 Pixel (51, 46) is 299.551086, should be 301.000000
    1400 Pixel (51, 47) is 300.452332, should be 302.000000
    1401 Pixel (51, 48) is 301.345520, should be 303.000000
    1402 Pixel (51, 49) is 302.247620, should be 304.000000
    1403 Pixel (51, 50) is 303.176025, should be 305.000000
    1404 Pixel (51, 51) is 304.146088, should be 306.000000
    1405 Pixel (51, 52) is 305.168518, should be 307.000000
    1406 Pixel (51, 53) is 306.247131, should be 308.000000
    1407 Pixel (51, 54) is 307.377289, should be 309.000000
    1408 Pixel (51, 55) is 308.544830, should be 310.000000
    1409 Pixel (51, 56) is 309.726410, should be 311.000000
    1410 Pixel (51, 57) is 310.890198, should be 312.000000
    1411 Pixel (51, 58) is 311.998199, should be 313.000000
    1412 Pixel (51, 60) is 313.879730, should be 315.000000
    1413 Pixel (51, 61) is 314.572266, should be 316.000000
    1414 Pixel (51, 62) is 315.053680, should be 317.000000
    1415 Pixel (51, 63) is 315.300568, should be 318.000000
    1416 Pixel (52, 1) is 259.968658, should be 261.000000
    1417 Pixel (52, 2) is 260.450073, should be 262.000000
    1418 Pixel (52, 3) is 261.142609, should be 263.000000
    1419 Pixel (52, 4) is 262.013641, should be 264.000000
    1420 Pixel (52, 5) is 263.024139, should be 265.000000
    1421 Pixel (52, 6) is 264.132111, should be 266.000000
    1422 Pixel (52, 7) is 265.295898, should be 267.000000
    1423 Pixel (52, 8) is 266.477448, should be 268.000000
    1424 Pixel (52, 9) is 267.645020, should be 269.000000
    1425 Pixel (52, 10) is 268.775146, should be 270.000000
    1426 Pixel (52, 11) is 269.853790, should be 271.000000
    1427 Pixel (52, 12) is 270.876221, should be 272.000000
    1428 Pixel (52, 13) is 271.846252, should be 273.000000
    1429 Pixel (52, 14) is 272.774719, should be 274.000000
    1430 Pixel (52, 15) is 273.676788, should be 275.000000
    1431 Pixel (52, 16) is 274.569977, should be 276.000000
    1432 Pixel (52, 17) is 275.471252, should be 277.000000
    1433 Pixel (52, 18) is 276.394897, should be 278.000000
    1434 Pixel (52, 19) is 277.350800, should be 279.000000
    1435 Pixel (52, 20) is 278.343445, should be 280.000000
    1436 Pixel (52, 21) is 279.371704, should be 281.000000
    1437 Pixel (52, 22) is 280.429321, should be 282.000000
    1438 Pixel (52, 23) is 281.506104, should be 283.000000
    1439 Pixel (52, 24) is 282.589478, should be 284.000000
    1440 Pixel (52, 25) is 283.666504, should be 285.000000
    1441 Pixel (52, 26) is 284.725616, should be 286.000000
    1442 Pixel (52, 27) is 285.758331, should be 287.000000
    1443 Pixel (52, 28) is 286.760223, should be 288.000000
    1444 Pixel (52, 29) is 287.731628, should be 289.000000
    1445 Pixel (52, 30) is 288.677307, should be 290.000000
    1446 Pixel (52, 31) is 289.605927, should be 291.000000
    1447 Pixel (52, 32) is 290.528534, should be 292.000000
    1448 Pixel (52, 33) is 291.457153, should be 293.000000
    1449 Pixel (52, 34) is 292.402832, should be 294.000000
    1450 Pixel (52, 35) is 293.374207, should be 295.000000
    1451 Pixel (52, 36) is 294.376129, should be 296.000000
    1452 Pixel (52, 37) is 295.408844, should be 297.000000
    1453 Pixel (52, 38) is 296.467987, should be 298.000000
    1454 Pixel (52, 39) is 297.545044, should be 299.000000
    1455 Pixel (52, 40) is 298.628418, should be 300.000000
    1456 Pixel (52, 41) is 299.705170, should be 301.000000
    1457 Pixel (52, 42) is 300.762787, should be 302.000000
    1458 Pixel (52, 43) is 301.791077, should be 303.000000
    1459 Pixel (52, 44) is 302.783722, should be 304.000000
    1460 Pixel (52, 45) is 303.739624, should be 305.000000
    1461 Pixel (52, 46) is 304.663239, should be 306.000000
    1462 Pixel (52, 47) is 305.564484, should be 307.000000
    1463 Pixel (52, 48) is 306.457672, should be 308.000000
    1464 Pixel (52, 49) is 307.359741, should be 309.000000
    1465 Pixel (52, 50) is 308.288177, should be 310.000000
    1466 Pixel (52, 51) is 309.258240, should be 311.000000
    1467 Pixel (52, 52) is 310.280670, should be 312.000000
    1468 Pixel (52, 53) is 311.359283, should be 313.000000
    1469 Pixel (52, 54) is 312.489441, should be 314.000000
    1470 Pixel (52, 55) is 313.656982, should be 315.000000
    1471 Pixel (52, 56) is 314.838562, should be 316.000000
    1472 Pixel (52, 60) is 318.991882, should be 320.000000
    1473 Pixel (52, 61) is 319.684418, should be 321.000000
    1474 Pixel (52, 62) is 320.165833, should be 322.000000
    1475 Pixel (52, 63) is 320.412720, should be 323.000000
    1476 Pixel (53, 2) is 265.843201, should be 267.000000
    1477 Pixel (53, 3) is 266.535736, should be 268.000000
    1478 Pixel (53, 4) is 267.406769, should be 269.000000
    1479 Pixel (53, 5) is 268.417267, should be 270.000000
    1480 Pixel (53, 6) is 269.525238, should be 271.000000
    1481 Pixel (53, 7) is 270.689026, should be 272.000000
    1482 Pixel (53, 8) is 271.870575, should be 273.000000
    1483 Pixel (53, 16) is 279.963104, should be 281.000000
    1484 Pixel (53, 17) is 280.864380, should be 282.000000
    1485 Pixel (53, 18) is 281.788025, should be 283.000000
    1486 Pixel (53, 19) is 282.743927, should be 284.000000
    1487 Pixel (53, 20) is 283.736572, should be 285.000000
    1488 Pixel (53, 21) is 284.764832, should be 286.000000
    1489 Pixel (53, 22) is 285.822449, should be 287.000000
    1490 Pixel (53, 23) is 286.899231, should be 288.000000
    1491 Pixel (53, 24) is 287.982605, should be 289.000000
    1492 Pixel (53, 31) is 294.999054, should be 296.000000
    1493 Pixel (53, 32) is 295.921661, should be 297.000000
    1494 Pixel (53, 33) is 296.850281, should be 298.000000
    1495 Pixel (53, 34) is 297.795959, should be 299.000000
    1496 Pixel (53, 35) is 298.767334, should be 300.000000
    1497 Pixel (53, 36) is 299.769257, should be 301.000000
    1498 Pixel (53, 37) is 300.801971, should be 302.000000
    1499 Pixel (53, 38) is 301.861115, should be 303.000000
    1500 Pixel (53, 39) is 302.938171, should be 304.000000
    1501 Pixel (53, 47) is 310.957611, should be 312.000000
    1502 Pixel (53, 48) is 311.850800, should be 313.000000
    1503 Pixel (53, 49) is 312.752869, should be 314.000000
    1504 Pixel (53, 50) is 313.681305, should be 315.000000
    1505 Pixel (53, 51) is 314.651367, should be 316.000000
    1506 Pixel (53, 52) is 315.673798, should be 317.000000
    1507 Pixel (53, 53) is 316.752411, should be 318.000000
    1508 Pixel (53, 54) is 317.882568, should be 319.000000
    1509 Pixel (53, 62) is 325.558960, should be 327.000000
    1510 Pixel (53, 63) is 325.805847, should be 328.000000
    1511 Pixel (54, 63) is 331.456512, should be 333.000000
    1512 Pixel (55, 0) is 276.603424, should be 275.000000
    1513 Pixel (55, 59) is 335.002472, should be 334.000000
    1514 Pixel (56, 0) is 282.511169, should be 280.000000
    1515 Pixel (56, 1) is 282.758026, should be 281.000000
    1516 Pixel (56, 2) is 283.239441, should be 282.000000
    1517 Pixel (56, 7) is 288.085266, should be 287.000000
    1518 Pixel (56, 8) is 289.266815, should be 288.000000
    1519 Pixel (56, 9) is 290.434387, should be 289.000000
    1520 Pixel (56, 10) is 291.564484, should be 290.000000
    1521 Pixel (56, 11) is 292.643158, should be 291.000000
    1522 Pixel (56, 12) is 293.665588, should be 292.000000
    1523 Pixel (56, 13) is 294.635620, should be 293.000000
    1524 Pixel (56, 14) is 295.564087, should be 294.000000
    1525 Pixel (56, 15) is 296.466187, should be 295.000000
    1526 Pixel (56, 16) is 297.359375, should be 296.000000
    1527 Pixel (56, 17) is 298.260620, should be 297.000000
    1528 Pixel (56, 18) is 299.184265, should be 298.000000
    1529 Pixel (56, 19) is 300.140167, should be 299.000000
    1530 Pixel (56, 20) is 301.132812, should be 300.000000
    1531 Pixel (56, 21) is 302.161102, should be 301.000000
    1532 Pixel (56, 22) is 303.218689, should be 302.000000
    1533 Pixel (56, 23) is 304.295471, should be 303.000000
    1534 Pixel (56, 24) is 305.378845, should be 304.000000
    1535 Pixel (56, 25) is 306.455872, should be 305.000000
    1536 Pixel (56, 26) is 307.514984, should be 306.000000
    1537 Pixel (56, 27) is 308.547699, should be 307.000000
    1538 Pixel (56, 28) is 309.549591, should be 308.000000
    1539 Pixel (56, 29) is 310.520996, should be 309.000000
    1540 Pixel (56, 30) is 311.466675, should be 310.000000
    1541 Pixel (56, 31) is 312.395294, should be 311.000000
    1542 Pixel (56, 32) is 313.317902, should be 312.000000
    1543 Pixel (56, 33) is 314.246521, should be 313.000000
    1544 Pixel (56, 34) is 315.192200, should be 314.000000
    1545 Pixel (56, 35) is 316.163574, should be 315.000000
    1546 Pixel (56, 36) is 317.165497, should be 316.000000
    1547 Pixel (56, 37) is 318.198212, should be 317.000000
    1548 Pixel (56, 38) is 319.257355, should be 318.000000
    1549 Pixel (56, 39) is 320.334412, should be 319.000000
    1550 Pixel (56, 40) is 321.417786, should be 320.000000
    1551 Pixel (56, 41) is 322.494537, should be 321.000000
    1552 Pixel (56, 42) is 323.552185, should be 322.000000
    1553 Pixel (56, 43) is 324.580444, should be 323.000000
    1554 Pixel (56, 44) is 325.573090, should be 324.000000
    1555 Pixel (56, 45) is 326.528992, should be 325.000000
    1556 Pixel (56, 46) is 327.452606, should be 326.000000
    1557 Pixel (56, 47) is 328.353821, should be 327.000000
    1558 Pixel (56, 48) is 329.247009, should be 328.000000
    1559 Pixel (56, 49) is 330.149109, should be 329.000000
    1560 Pixel (56, 50) is 331.077545, should be 330.000000
    1561 Pixel (56, 51) is 332.047607, should be 331.000000
    1562 Pixel (56, 52) is 333.070038, should be 332.000000
    1563 Pixel (56, 53) is 334.148621, should be 333.000000
    1564 Pixel (56, 54) is 335.278809, should be 334.000000
    1565 Pixel (56, 55) is 336.446350, should be 335.000000
    1566 Pixel (56, 56) is 337.627930, should be 336.000000
    1567 Pixel (56, 57) is 338.791718, should be 337.000000
    1568 Pixel (56, 58) is 339.899719, should be 338.000000
    1569 Pixel (56, 59) is 340.910217, should be 339.000000
    1570 Pixel (56, 60) is 341.781250, should be 340.000000
    1571 Pixel (56, 61) is 342.473785, should be 341.000000
    1572 Pixel (57, 0) is 288.330200, should be 285.000000
    1573 Pixel (57, 1) is 288.577057, should be 286.000000
    1574 Pixel (57, 2) is 289.058472, should be 287.000000
    1575 Pixel (57, 3) is 289.751007, should be 288.000000
    1576 Pixel (57, 4) is 290.622009, should be 289.000000
    1577 Pixel (57, 5) is 291.632507, should be 290.000000
    1578 Pixel (57, 6) is 292.740509, should be 291.000000
    1579 Pixel (57, 7) is 293.904266, should be 292.000000
    1580 Pixel (57, 8) is 295.085846, should be 293.000000
    1581 Pixel (57, 9) is 296.253387, should be 294.000000
    1582 Pixel (57, 10) is 297.383514, should be 295.000000
    1583 Pixel (57, 11) is 298.462189, should be 296.000000
    1584 Pixel (57, 12) is 299.484589, should be 297.000000
    1585 Pixel (57, 13) is 300.454651, should be 298.000000
    1586 Pixel (57, 14) is 301.383087, should be 299.000000
    1587 Pixel (57, 15) is 302.285217, should be 300.000000
    1588 Pixel (57, 16) is 303.178406, should be 301.000000
    1589 Pixel (57, 17) is 304.079651, should be 302.000000
    1590 Pixel (57, 18) is 305.003265, should be 303.000000
    1591 Pixel (57, 19) is 305.959167, should be 304.000000
    1592 Pixel (57, 20) is 306.951813, should be 305.000000
    1593 Pixel (57, 21) is 307.980133, should be 306.000000
    1594 Pixel (57, 22) is 309.037720, should be 307.000000
    1595 Pixel (57, 23) is 310.114471, should be 308.000000
    1596 Pixel (57, 24) is 311.197845, should be 309.000000
    1597 Pixel (57, 25) is 312.274872, should be 310.000000
    1598 Pixel (57, 26) is 313.334015, should be 311.000000
    1599 Pixel (57, 27) is 314.366730, should be 312.000000
    1600 Pixel (57, 28) is 315.368622, should be 313.000000
    1601 Pixel (57, 29) is 316.339996, should be 314.000000
    1602 Pixel (57, 30) is 317.285706, should be 315.000000
    1603 Pixel (57, 31) is 318.214264, should be 316.000000
    1604 Pixel (57, 32) is 319.136871, should be 317.000000
    1605 Pixel (57, 33) is 320.065521, should be 318.000000
    1606 Pixel (57, 34) is 321.011200, should be 319.000000
    1607 Pixel (57, 35) is 321.982605, should be 320.000000
    1608 Pixel (57, 36) is 322.984528, should be 321.000000
    1609 Pixel (57, 37) is 324.017242, should be 322.000000
    1610 Pixel (57, 38) is 325.076355, should be 323.000000
    1611 Pixel (57, 39) is 326.153412, should be 324.000000
    1612 Pixel (57, 40) is 327.236786, should be 325.000000
    1613 Pixel (57, 41) is 328.313568, should be 326.000000
    1614 Pixel (57, 42) is 329.371216, should be 327.000000
    1615 Pixel (57, 43) is 330.399445, should be 328.000000
    1616 Pixel (57, 44) is 331.392090, should be 329.000000
    1617 Pixel (57, 45) is 332.347992, should be 330.000000
    1618 Pixel (57, 46) is 333.271637, should be 331.000000
    1619 Pixel (57, 47) is 334.172852, should be 332.000000
    1620 Pixel (57, 48) is 335.066040, should be 333.000000
    1621 Pixel (57, 49) is 335.968109, should be 334.000000
    1622 Pixel (57, 50) is 336.896576, should be 335.000000
    1623 Pixel (57, 51) is 337.866608, should be 336.000000
    1624 Pixel (57, 52) is 338.889038, should be 337.000000
    1625 Pixel (57, 53) is 339.967651, should be 338.000000
    1626 Pixel (57, 54) is 341.097809, should be 339.000000
    1627 Pixel (57, 55) is 342.265381, should be 340.000000
    1628 Pixel (57, 56) is 343.446930, should be 341.000000
    1629 Pixel (57, 57) is 344.610748, should be 342.000000
    1630 Pixel (57, 58) is 345.718719, should be 343.000000
    1631 Pixel (57, 59) is 346.729218, should be 344.000000
    1632 Pixel (57, 60) is 347.600281, should be 345.000000
    1633 Pixel (57, 61) is 348.292816, should be 346.000000
    1634 Pixel (57, 62) is 348.774231, should be 347.000000
    1635 Pixel (57, 63) is 349.021118, should be 348.000000
    1636 Pixel (58, 0) is 293.870117, should be 290.000000
    1637 Pixel (58, 1) is 294.116943, should be 291.000000
    1638 Pixel (58, 2) is 294.598358, should be 292.000000
    1639 Pixel (58, 3) is 295.290894, should be 293.000000
    1640 Pixel (58, 4) is 296.161926, should be 294.000000
    1641 Pixel (58, 5) is 297.172424, should be 295.000000
    1642 Pixel (58, 6) is 298.280396, should be 296.000000
    1643 Pixel (58, 7) is 299.444183, should be 297.000000
    1644 Pixel (58, 8) is 300.625732, should be 298.000000
    1645 Pixel (58, 9) is 301.793304, should be 299.000000
    1646 Pixel (58, 10) is 302.923401, should be 300.000000
    1647 Pixel (58, 11) is 304.002045, should be 301.000000
    1648 Pixel (58, 12) is 305.024506, should be 302.000000
    1649 Pixel (58, 13) is 305.994537, should be 303.000000
    1650 Pixel (58, 14) is 306.923004, should be 304.000000
    1651 Pixel (58, 15) is 307.825104, should be 305.000000
    1652 Pixel (58, 16) is 308.718292, should be 306.000000
    1653 Pixel (58, 17) is 309.619537, should be 307.000000
    1654 Pixel (58, 18) is 310.543182, should be 308.000000
    1655 Pixel (58, 19) is 311.499084, should be 309.000000
    1656 Pixel (58, 20) is 312.491760, should be 310.000000
    1657 Pixel (58, 21) is 313.520020, should be 311.000000
    1658 Pixel (58, 22) is 314.577606, should be 312.000000
    1659 Pixel (58, 23) is 315.654388, should be 313.000000
    1660 Pixel (58, 24) is 316.737762, should be 314.000000
    1661 Pixel (58, 25) is 317.814789, should be 315.000000
    1662 Pixel (58, 26) is 318.873901, should be 316.000000
    1663 Pixel (58, 27) is 319.906616, should be 317.000000
    1664 Pixel (58, 28) is 320.908508, should be 318.000000
    1665 Pixel (58, 29) is 321.879913, should be 319.000000
    1666 Pixel (58, 30) is 322.825592, should be 320.000000
    1667 Pixel (58, 31) is 323.754181, should be 321.000000
    1668 Pixel (58, 32) is 324.676788, should be 322.000000
    1669 Pixel (58, 33) is 325.605438, should be 323.000000
    1670 Pixel (58, 34) is 326.551117, should be 324.000000
    1671 Pixel (58, 35) is 327.522491, should be 325.000000
    1672 Pixel (58, 36) is 328.524414, should be 326.000000
    1673 Pixel (58, 37) is 329.557129, should be 327.000000
    1674 Pixel (58, 38) is 330.616272, should be 328.000000
    1675 Pixel (58, 39) is 331.693329, should be 329.000000
    1676 Pixel (58, 40) is 332.776703, should be 330.000000
    1677 Pixel (58, 41) is 333.853455, should be 331.000000
    1678 Pixel (58, 42) is 334.911102, should be 332.000000
    1679 Pixel (58, 43) is 335.939392, should be 333.000000
    1680 Pixel (58, 44) is 336.932007, should be 334.000000
    1681 Pixel (58, 45) is 337.887909, should be 335.000000
    1682 Pixel (58, 46) is 338.811523, should be 336.000000
    1683 Pixel (58, 47) is 339.712738, should be 337.000000
    1684 Pixel (58, 48) is 340.605927, should be 338.000000
    1685 Pixel (58, 49) is 341.508026, should be 339.000000
    1686 Pixel (58, 50) is 342.436462, should be 340.000000
    1687 Pixel (58, 51) is 343.406525, should be 341.000000
    1688 Pixel (58, 52) is 344.428925, should be 342.000000
    1689 Pixel (58, 53) is 345.507538, should be 343.000000
    1690 Pixel (58, 54) is 346.637726, should be 344.000000
    1691 Pixel (58, 55) is 347.805267, should be 345.000000
    1692 Pixel (58, 56) is 348.986847, should be 346.000000
    1693 Pixel (58, 57) is 350.150635, should be 347.000000
    1694 Pixel (58, 58) is 351.258636, should be 348.000000
    1695 Pixel (58, 59) is 352.269135, should be 349.000000
    1696 Pixel (58, 60) is 353.140167, should be 350.000000
    1697 Pixel (58, 61) is 353.832703, should be 351.000000
    1698 Pixel (58, 62) is 354.314117, should be 352.000000
    1699 Pixel (58, 63) is 354.561035, should be 353.000000
    1700 Pixel (59, 0) is 298.922668, should be 295.000000
    1701 Pixel (59, 1) is 299.169495, should be 296.000000
    1702 Pixel (59, 2) is 299.650909, should be 297.000000
    1703 Pixel (59, 3) is 300.343445, should be 298.000000
    1704 Pixel (59, 4) is 301.214478, should be 299.000000
    1705 Pixel (59, 5) is 302.224976, should be 300.000000
    1706 Pixel (59, 6) is 303.332947, should be 301.000000
    1707 Pixel (59, 7) is 304.496735, should be 302.000000
    1708 Pixel (59, 8) is 305.678284, should be 303.000000
    1709 Pixel (59, 9) is 306.845856, should be 304.000000
    1710 Pixel (59, 10) is 307.975952, should be 305.000000
    1711 Pixel (59, 11) is 309.054596, should be 306.000000
    1712 Pixel (59, 12) is 310.077057, should be 307.000000
    1713 Pixel (59, 13) is 311.047089, should be 308.000000
    1714 Pixel (59, 14) is 311.975555, should be 309.000000
    1715 Pixel (59, 15) is 312.877655, should be 310.000000
    1716 Pixel (59, 16) is 313.770844, should be 311.000000
    1717 Pixel (59, 17) is 314.672119, should be 312.000000
    1718 Pixel (59, 18) is 315.595734, should be 313.000000
    1719 Pixel (59, 19) is 316.551636, should be 314.000000
    1720 Pixel (59, 20) is 317.544312, should be 315.000000
    1721 Pixel (59, 21) is 318.572571, should be 316.000000
    1722 Pixel (59, 22) is 319.630157, should be 317.000000
    1723 Pixel (59, 23) is 320.706940, should be 318.000000
    1724 Pixel (59, 24) is 321.790314, should be 319.000000
    1725 Pixel (59, 25) is 322.867340, should be 320.000000
    1726 Pixel (59, 26) is 323.926453, should be 321.000000
    1727 Pixel (59, 27) is 324.959167, should be 322.000000
    1728 Pixel (59, 28) is 325.961060, should be 323.000000
    1729 Pixel (59, 29) is 326.932465, should be 324.000000
    1730 Pixel (59, 30) is 327.878143, should be 325.000000
    1731 Pixel (59, 31) is 328.806732, should be 326.000000
    1732 Pixel (59, 32) is 329.729340, should be 327.000000
    1733 Pixel (59, 33) is 330.657990, should be 328.000000
    1734 Pixel (59, 34) is 331.603668, should be 329.000000
    1735 Pixel (59, 35) is 332.575043, should be 330.000000
    1736 Pixel (59, 36) is 333.576965, should be 331.000000
    1737 Pixel (59, 37) is 334.609680, should be 332.000000
    1738 Pixel (59, 38) is 335.668823, should be 333.000000
    1739 Pixel (59, 39) is 336.745880, should be 334.000000
    1740 Pixel (59, 40) is 337.829254, should be 335.000000
    1741 Pixel (59, 41) is 338.906006, should be 336.000000
    1742 Pixel (59, 42) is 339.963654, should be 337.000000
    1743 Pixel (59, 43) is 340.991943, should be 338.000000
    1744 Pixel (59, 44) is 341.984558, should be 339.000000
    1745 Pixel (59, 45) is 342.940460, should be 340.000000
    1746 Pixel (59, 46) is 343.864044, should be 341.000000
    1747 Pixel (59, 47) is 344.765289, should be 342.000000
    1748 Pixel (59, 48) is 345.658478, should be 343.000000
    1749 Pixel (59, 49) is 346.560577, should be 344.000000
    1750 Pixel (59, 50) is 347.489014, should be 345.000000
    1751 Pixel (59, 51) is 348.459076, should be 346.000000
    1752 Pixel (59, 52) is 349.481476, should be 347.000000
    1753 Pixel (59, 53) is 350.560089, should be 348.000000
    1754 Pixel (59, 54) is 351.690277, should be 349.000000
    1755 Pixel (59, 55) is 352.857819, should be 350.000000
    1756 Pixel (59, 56) is 354.039398, should be 351.000000
    1757 Pixel (59, 57) is 355.203186, should be 352.000000
    1758 Pixel (59, 58) is 356.311188, should be 353.000000
    1759 Pixel (59, 59) is 357.321686, should be 354.000000
    1760 Pixel (59, 60) is 358.192719, should be 355.000000
    1761 Pixel (59, 61) is 358.885254, should be 356.000000
    1762 Pixel (59, 62) is 359.366669, should be 357.000000
    1763 Pixel (59, 63) is 359.613586, should be 358.000000
    1764 Pixel (60, 0) is 303.277740, should be 300.000000
    1765 Pixel (60, 1) is 303.524597, should be 301.000000
    1766 Pixel (60, 2) is 304.006012, should be 302.000000
    1767 Pixel (60, 3) is 304.698547, should be 303.000000
    1768 Pixel (60, 4) is 305.569550, should be 304.000000
    1769 Pixel (60, 5) is 306.580048, should be 305.000000
    1770 Pixel (60, 6) is 307.688049, should be 306.000000
    1771 Pixel (60, 7) is 308.851807, should be 307.000000
    1772 Pixel (60, 8) is 310.033386, should be 308.000000
    1773 Pixel (60, 9) is 311.200897, should be 309.000000
    1774 Pixel (60, 10) is 312.331055, should be 310.000000
    1775 Pixel (60, 11) is 313.409698, should be 311.000000
    1776 Pixel (60, 12) is 314.432129, should be 312.000000
    1777 Pixel (60, 13) is 315.402191, should be 313.000000
    1778 Pixel (60, 14) is 316.330627, should be 314.000000
    1779 Pixel (60, 15) is 317.232758, should be 315.000000
    1780 Pixel (60, 16) is 318.125946, should be 316.000000
    1781 Pixel (60, 17) is 319.027222, should be 317.000000
    1782 Pixel (60, 18) is 319.950806, should be 318.000000
    1783 Pixel (60, 19) is 320.906708, should be 319.000000
    1784 Pixel (60, 20) is 321.899384, should be 320.000000
    1785 Pixel (60, 21) is 322.927673, should be 321.000000
    1786 Pixel (60, 22) is 323.985291, should be 322.000000
    1787 Pixel (60, 23) is 325.062012, should be 323.000000
    1788 Pixel (60, 24) is 326.145386, should be 324.000000
    1789 Pixel (60, 25) is 327.222412, should be 325.000000
    1790 Pixel (60, 26) is 328.281555, should be 326.000000
    1791 Pixel (60, 27) is 329.314270, should be 327.000000
    1792 Pixel (60, 28) is 330.316162, should be 328.000000
    1793 Pixel (60, 29) is 331.287537, should be 329.000000
    1794 Pixel (60, 30) is 332.233246, should be 330.000000
    1795 Pixel (60, 31) is 333.161804, should be 331.000000
    1796 Pixel (60, 32) is 334.084412, should be 332.000000
    1797 Pixel (60, 33) is 335.013062, should be 333.000000
    1798 Pixel (60, 34) is 335.958740, should be 334.000000
    1799 Pixel (60, 35) is 336.930145, should be 335.000000
    1800 Pixel (60, 36) is 337.932068, should be 336.000000
    1801 Pixel (60, 37) is 338.964783, should be 337.000000
    1802 Pixel (60, 38) is 340.023895, should be 338.000000
    1803 Pixel (60, 39) is 341.100952, should be 339.000000
    1804 Pixel (60, 40) is 342.184326, should be 340.000000
    1805 Pixel (60, 41) is 343.261139, should be 341.000000
    1806 Pixel (60, 42) is 344.318756, should be 342.000000
    1807 Pixel (60, 43) is 345.347015, should be 343.000000
    1808 Pixel (60, 44) is 346.339630, should be 344.000000
    1809 Pixel (60, 45) is 347.295532, should be 345.000000
    1810 Pixel (60, 46) is 348.219147, should be 346.000000
    1811 Pixel (60, 47) is 349.120392, should be 347.000000
    1812 Pixel (60, 48) is 350.013580, should be 348.000000
    1813 Pixel (60, 49) is 350.915649, should be 349.000000
    1814 Pixel (60, 50) is 351.844116, should be 350.000000
    1815 Pixel (60, 51) is 352.814148, should be 351.000000
    1816 Pixel (60, 52) is 353.836548, should be 352.000000
    1817 Pixel (60, 53) is 354.915192, should be 353.000000
    1818 Pixel (60, 54) is 356.045319, should be 354.000000
    1819 Pixel (60, 55) is 357.212921, should be 355.000000
    1820 Pixel (60, 56) is 358.394470, should be 356.000000
    1821 Pixel (60, 57) is 359.558289, should be 357.000000
    1822 Pixel (60, 58) is 360.666260, should be 358.000000
    1823 Pixel (60, 59) is 361.676758, should be 359.000000
    1824 Pixel (60, 60) is 362.547821, should be 360.000000
    1825 Pixel (60, 61) is 363.240356, should be 361.000000
    1826 Pixel (60, 62) is 363.721771, should be 362.000000
    1827 Pixel (61, 0) is 306.740479, should be 305.000000
    1828 Pixel (61, 57) is 363.020996, should be 362.000000
    1829 Pixel (61, 58) is 364.128998, should be 363.000000
    1830 Pixel (61, 59) is 365.139496, should be 364.000000
    1831 Pixel (61, 60) is 366.010529, should be 365.000000
    1832 Pixel (62, 1) is 309.394470, should be 311.000000
    1833 Pixel (62, 2) is 309.875885, should be 312.000000
    1834 Pixel (62, 3) is 310.568420, should be 313.000000
    1835 Pixel (62, 4) is 311.439453, should be 314.000000
    1836 Pixel (62, 5) is 312.449951, should be 315.000000
    1837 Pixel (62, 6) is 313.557922, should be 316.000000
    1838 Pixel (62, 7) is 314.721710, should be 317.000000
    1839 Pixel (62, 8) is 315.903259, should be 318.000000
    1840 Pixel (62, 9) is 317.070801, should be 319.000000
    1841 Pixel (62, 10) is 318.200928, should be 320.000000
    1842 Pixel (62, 11) is 319.279572, should be 321.000000
    1843 Pixel (62, 12) is 320.302032, should be 322.000000
    1844 Pixel (62, 13) is 321.272064, should be 323.000000
    1845 Pixel (62, 14) is 322.200531, should be 324.000000
    1846 Pixel (62, 15) is 323.102631, should be 325.000000
    1847 Pixel (62, 16) is 323.995819, should be 326.000000
    1848 Pixel (62, 17) is 324.897095, should be 327.000000
    1849 Pixel (62, 18) is 325.820709, should be 328.000000
    1850 Pixel (62, 19) is 326.776611, should be 329.000000
    1851 Pixel (62, 20) is 327.769287, should be 330.000000
    1852 Pixel (62, 21) is 328.797546, should be 331.000000
    1853 Pixel (62, 22) is 329.855164, should be 332.000000
    1854 Pixel (62, 23) is 330.931915, should be 333.000000
    1855 Pixel (62, 24) is 332.015289, should be 334.000000
    1856 Pixel (62, 25) is 333.092316, should be 335.000000
    1857 Pixel (62, 26) is 334.151428, should be 336.000000
    1858 Pixel (62, 27) is 335.184143, should be 337.000000
    1859 Pixel (62, 28) is 336.186035, should be 338.000000
    1860 Pixel (62, 29) is 337.157440, should be 339.000000
    1861 Pixel (62, 30) is 338.103119, should be 340.000000
    1862 Pixel (62, 31) is 339.031708, should be 341.000000
    1863 Pixel (62, 32) is 339.954315, should be 342.000000
    1864 Pixel (62, 33) is 340.882965, should be 343.000000
    1865 Pixel (62, 34) is 341.828644, should be 344.000000
    1866 Pixel (62, 35) is 342.800018, should be 345.000000
    1867 Pixel (62, 36) is 343.801941, should be 346.000000
    1868 Pixel (62, 37) is 344.834656, should be 347.000000
    1869 Pixel (62, 38) is 345.893799, should be 348.000000
    1870 Pixel (62, 39) is 346.970856, should be 349.000000
    1871 Pixel (62, 40) is 348.054230, should be 350.000000
    1872 Pixel (62, 41) is 349.131012, should be 351.000000
    1873 Pixel (62, 42) is 350.188629, should be 352.000000
    1874 Pixel (62, 43) is 351.216919, should be 353.000000
    1875 Pixel (62, 44) is 352.209534, should be 354.000000
    1876 Pixel (62, 45) is 353.165436, should be 355.000000
    1877 Pixel (62, 46) is 354.089020, should be 356.000000
    1878 Pixel (62, 47) is 354.990265, should be 357.000000
    1879 Pixel (62, 48) is 355.883453, should be 358.000000
    1880 Pixel (62, 49) is 356.785553, should be 359.000000
    1881 Pixel (62, 50) is 357.713989, should be 360.000000
    1882 Pixel (62, 51) is 358.684052, should be 361.000000
    1883 Pixel (62, 52) is 359.706451, should be 362.000000
    1884 Pixel (62, 53) is 360.785065, should be 363.000000
    1885 Pixel (62, 54) is 361.915222, should be 364.000000
    1886 Pixel (62, 55) is 363.082794, should be 365.000000
    1887 Pixel (62, 56) is 364.264374, should be 366.000000
    1888 Pixel (62, 57) is 365.428162, should be 367.000000
    1889 Pixel (62, 58) is 366.536163, should be 368.000000
    1890 Pixel (62, 59) is 367.546661, should be 369.000000
    1891 Pixel (62, 60) is 368.417694, should be 370.000000
    1892 Pixel (62, 61) is 369.110229, should be 371.000000
    1893 Pixel (62, 62) is 369.591644, should be 372.000000
    1894 Pixel (62, 63) is 369.838562, should be 373.000000
    1895 Pixel (63, 0) is 310.381958, should be 315.000000
    1896 Pixel (63, 1) is 310.628784, should be 316.000000
    1897 Pixel (63, 2) is 311.110199, should be 317.000000
    1898 Pixel (63, 3) is 311.802734, should be 318.000000
    1899 Pixel (63, 4) is 312.673767, should be 319.000000
    1900 Pixel (63, 5) is 313.684265, should be 320.000000
    1901 Pixel (63, 6) is 314.792236, should be 321.000000
    1902 Pixel (63, 7) is 315.956024, should be 322.000000
    1903 Pixel (63, 8) is 317.137573, should be 323.000000
    1904 Pixel (63, 9) is 318.305115, should be 324.000000
    1905 Pixel (63, 10) is 319.435242, should be 325.000000
    1906 Pixel (63, 11) is 320.513885, should be 326.000000
    1907 Pixel (63, 12) is 321.536346, should be 327.000000
    1908 Pixel (63, 13) is 322.506378, should be 328.000000
    1909 Pixel (63, 14) is 323.434845, should be 329.000000
    1910 Pixel (63, 15) is 324.336945, should be 330.000000
    1911 Pixel (63, 16) is 325.230133, should be 331.000000
    1912 Pixel (63, 17) is 326.131409, should be 332.000000
    1913 Pixel (63, 18) is 327.055023, should be 333.000000
    1914 Pixel (63, 19) is 328.010925, should be 334.000000
    1915 Pixel (63, 20) is 329.003601, should be 335.000000
    1916 Pixel (63, 21) is 330.031860, should be 336.000000
    1917 Pixel (63, 22) is 331.089478, should be 337.000000
    1918 Pixel (63, 23) is 332.166229, should be 338.000000
    1919 Pixel (63, 24) is 333.249603, should be 339.000000
    1920 Pixel (63, 25) is 334.326630, should be 340.000000
    1921 Pixel (63, 26) is 335.385742, should be 341.000000
    1922 Pixel (63, 27) is 336.418457, should be 342.000000
    1923 Pixel (63, 28) is 337.420349, should be 343.000000
    1924 Pixel (63, 29) is 338.391754, should be 344.000000
    1925 Pixel (63, 30) is 339.337433, should be 345.000000
    1926 Pixel (63, 31) is 340.266022, should be 346.000000
    1927 Pixel (63, 32) is 341.188629, should be 347.000000
    1928 Pixel (63, 33) is 342.117279, should be 348.000000
    1929 Pixel (63, 34) is 343.062958, should be 349.000000
    1930 Pixel (63, 35) is 344.034332, should be 350.000000
    1931 Pixel (63, 36) is 345.036255, should be 351.000000
    1932 Pixel (63, 37) is 346.068970, should be 352.000000
    1933 Pixel (63, 38) is 347.128113, should be 353.000000
    1934 Pixel (63, 39) is 348.205170, should be 354.000000
    1935 Pixel (63, 40) is 349.288544, should be 355.000000
    1936 Pixel (63, 41) is 350.365326, should be 356.000000
    1937 Pixel (63, 42) is 351.422943, should be 357.000000
    1938 Pixel (63, 43) is 352.451233, should be 358.000000
    1939 Pixel (63, 44) is 353.443848, should be 359.000000
    1940 Pixel (63, 45) is 354.399750, should be 360.000000
    1941 Pixel (63, 46) is 355.323334, should be 361.000000
    1942 Pixel (63, 47) is 356.224579, should be 362.000000
    1943 Pixel (63, 48) is 357.117767, should be 363.000000
    1944 Pixel (63, 49) is 358.019867, should be 364.000000
    1945 Pixel (63, 50) is 358.948303, should be 365.000000
    1946 Pixel (63, 51) is 359.918365, should be 366.000000
    1947 Pixel (63, 52) is 360.940765, should be 367.000000
    1948 Pixel (63, 53) is 362.019379, should be 368.000000
    1949 Pixel (63, 54) is 363.149536, should be 369.000000
    1950 Pixel (63, 55) is 364.317108, should be 370.000000
    1951 Pixel (63, 56) is 365.498688, should be 371.000000
    1952 Pixel (63, 57) is 366.662476, should be 372.000000
    1953 Pixel (63, 58) is 367.770477, should be 373.000000
    1954 Pixel (63, 59) is 368.780975, should be 374.000000
    1955 Pixel (63, 60) is 369.652008, should be 375.000000
    1956 Pixel (63, 61) is 370.344543, should be 376.000000
    1957 Pixel (63, 62) is 370.825958, should be 377.000000
    1958 Pixel (63, 63) is 371.072876, should be 378.000000
    195980
    196081---> TESTPOINT PASSED (psImageStats functions{Calculate Chebyshev Polynomials, no mask} | tst_psImageStats02.c)
  • trunk/psLib/test/sysUtils/tst_psMemory.c

    r1242 r1365  
    11/** @file  tst_psMemory.c
    2  *
    3  *  @brief Contains the tests for psMemory.[ch]
    4  *
    5  *
    6  *  @author Robert DeSonia, MHPCC
    7  *
    8  *  @version $Revision: 1.20 $ $Name: not supported by cvs2svn $
    9  *  @date $Date: 2004-07-19 22:38:36 $
    10  *
    11  *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
    12  */
     2*
     3*  @brief Contains the tests for psMemory.[ch]
     4*
     5*
     6*  @author Robert DeSonia, MHPCC
     7*
     8*  @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
     9*  @date $Date: 2004-08-02 19:43:23 $
     10*
     11*  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
     12*/
    1313
    1414// need to allow malloc for callback use
     
    2626#include "pslib.h"
    2727
    28 static int TPFreeReferencedMemory(void);
    29 static int TPOutOfMemory(void);
    30 static int TPReallocOutOfMemory(void);
    31 static void* TPOutOfMemoryExhaustedCallback(size_t size);
    32 static int TPCheckBufferPositive(void);
    33 static int TPrealloc(void);
    34 static int TPallocCallback(void);
    35 static psMemoryId memAllocateCallback(const psMemBlock *ptr);
    36 static psMemoryId memFreeCallback(const psMemBlock *ptr);
    37 static int TPcheckLeaks(void);
    38 static int TPmemCorruption(void);
    39 static int TPmultipleFree(void);
    40 void memProblemCallback(const psMemBlock *ptr, const char *file, int lineno);
     28static int TPFreeReferencedMemory( void );
     29static int TPOutOfMemory( void );
     30static int TPReallocOutOfMemory( void );
     31static void* TPOutOfMemoryExhaustedCallback( size_t size );
     32static int TPCheckBufferPositive( void );
     33static int TPrealloc( void );
     34static int TPallocCallback( void );
     35static psMemoryId memAllocateCallback( const psMemBlock *ptr );
     36static psMemoryId memFreeCallback( const psMemBlock *ptr );
     37static int TPcheckLeaks( void );
     38static int TPmemCorruption( void );
     39static int TPmultipleFree( void );
     40void memProblemCallback( const psMemBlock *ptr, const char *file, int lineno );
    4141
    4242static int problemCallbackCalled = 0;
     
    4646
    4747testDescription tests[] = {
    48                               {TPCheckBufferPositive,449,"checkBufferPositive",0,false},
    49                               {TPOutOfMemory,450,"outOfMemory",-6,false},
    50                               {TPReallocOutOfMemory,562,"reallocOutOfMemory",-6,false},
    51                               {TPrealloc,451,"psRealloc",0,false},
    52                               {TPallocCallback,452,"allocCallback",0,false},
    53                               {TPallocCallback,453,"allocCallback2",0,true},
    54                               {TPcheckLeaks,454,"checkLeaks",0,false},
    55                               {TPmemCorruption,455,"psMemCorruption",0,false},
    56                               {TPFreeReferencedMemory,456,"freeReferencedMemory",0,false},
    57                               {TPmultipleFree,699,"multipleFree",-6,false},
    58                               {NULL}
     48                              {
     49                                  TPCheckBufferPositive, 449, "checkBufferPositive", 0, false
     50                              },
     51                              {
     52                                  TPOutOfMemory, 450, "outOfMemory", -6, false
     53                              },
     54                              {
     55                                  TPReallocOutOfMemory, 562, "reallocOutOfMemory", -6, false
     56                              },
     57                              {
     58                                  TPrealloc, 451, "psRealloc", 0, false
     59                              },
     60                              {
     61                                  TPallocCallback, 452, "allocCallback", 0, false
     62                              },
     63                              {
     64                                  TPallocCallback, 453, "allocCallback2", 0, true
     65                              },
     66                              {
     67                                  TPcheckLeaks, 454, "checkLeaks", 0, false
     68                              },
     69                              {
     70                                  TPmemCorruption, 455, "psMemCorruption", 0, false
     71                              },
     72                              {
     73                                  TPFreeReferencedMemory, 456, "freeReferencedMemory", 0, false
     74                              },
     75                              {
     76                                  TPmultipleFree, 699, "multipleFree", -6, false
     77                              },
     78                              {
     79                                  NULL
     80                              }
    5981                          };
    60 
    61 int main(int argc, char* argv[])
    62 {
    63     psLogSetLevel(PS_LOG_INFO);
    64 
    65     if (! runTestSuite(stderr,"psMemory",tests,argc,argv) ) {
    66         psError(__FILE__,"One or more tests failed");
    67         return 1;
    68     }
    69     return 0;
     82                         
     83int main( int argc, char* argv[] )
     84{
     85    psLogSetLevel( PS_LOG_INFO );
     86   
     87    return ( ! runTestSuite( stderr, "psMemory", tests, argc, argv ) );
    7088}
    7189
    7290// Testpoint #449, psAlloc shall allocate memory blocks writeable by caller.
    73 int TPCheckBufferPositive(void)
    74 {
    75     int* mem;
     91int TPCheckBufferPositive( void )
     92{
     93    int * mem;
    7694    const int size = 100;
    7795    int failed = 0;
    78 
    79     psLogMsg(__func__,PS_LOG_INFO,"psAlloc shall allocate memory blocks writeable by caller.\n");
    80 
    81     mem = (int*) psAlloc(size*sizeof(int));
    82     if (mem == NULL) {
    83         psError(__FILE__,"psAlloc returned a NULL value in %s!",__func__);
    84         return 1;
    85     }
    86 
    87     for (int index=0;index<size;index++) {
    88         mem[index]=index;
    89     }
    90 
    91     for (int index=0;index<size;index++) {
    92         if (mem[index] != index) {
    93             failed++;
    94         }
    95     }
    96 
    97     psFree(mem);
    98 
     96   
     97    psLogMsg( __func__, PS_LOG_INFO, "psAlloc shall allocate memory blocks writeable by caller.\n" );
     98   
     99    mem = ( int* ) psAlloc( size * sizeof( int ) );
     100    if ( mem == NULL ) {
     101            psError( __FILE__, "psAlloc returned a NULL value in %s!", __func__ );
     102            return 1;
     103        }
     104       
     105    for ( int index = 0;index < size;index++ ) {
     106            mem[ index ] = index;
     107        }
     108       
     109    for ( int index = 0;index < size;index++ ) {
     110            if ( mem[ index ] != index ) {
     111                    failed++;
     112                }
     113        }
     114       
     115    psFree( mem );
     116   
    99117    return failed;
    100118}
    101119
    102 int TPFreeReferencedMemory(void)
     120int TPFreeReferencedMemory( void )
    103121{
    104122    // create memory
    105     int* mem;
     123    int * mem;
    106124    int ref = 0;
    107 
    108     psLogMsg(__func__,PS_LOG_INFO,"memory reference count shall be incrementable/decrementable");
    109 
    110     mem = (int*) psAlloc(100*sizeof(int));
    111 
    112     ref = psMemGetRefCounter(mem);
    113     if (ref != 1) {
    114         psError(__func__,"Expected to buffer reference count to be initially 1, but it was %d.",ref);
    115         return 1;
    116     }
    117 
    118     psMemIncrRefCounter(mem);
    119     psMemIncrRefCounter(mem);
    120     psMemIncrRefCounter(mem);
    121 
    122     ref = psMemGetRefCounter(mem);
    123     if (ref != 4) {
    124         psError(__func__,"Expected to find buffer reference count to be 4, but it was %d.",ref);
    125         return 1;
    126     }
    127 
    128     psMemDecrRefCounter(mem);
    129     psMemDecrRefCounter(mem);
    130 
    131     ref = psMemGetRefCounter(mem);
    132     if (ref != 2) {
    133         psError(__func__,"Expected to find buffer reference count to be 2, but it was %d.",ref);
    134         return 1;
    135     }
    136 
    137     psLogMsg(__func__,PS_LOG_INFO,"psFree shall be just decrement a multiple refererenced pointer.");
    138 
    139     psFree(mem);
    140 
    141     ref = psMemGetRefCounter(mem);
    142     if (ref != 1) {
    143         psError(__func__,"Expected to find buffer reference count to be 1, but it was %d.",ref);
    144         return 1;
    145     }
    146 
    147     psFree(mem);
    148 
     125   
     126    psLogMsg( __func__, PS_LOG_INFO, "memory reference count shall be incrementable/decrementable" );
     127   
     128    mem = ( int* ) psAlloc( 100 * sizeof( int ) );
     129   
     130    ref = psMemGetRefCounter( mem );
     131    if ( ref != 1 ) {
     132            psError( __func__, "Expected to buffer reference count to be initially 1, but it was %d.", ref );
     133            return 1;
     134        }
     135       
     136    psMemIncrRefCounter( mem );
     137    psMemIncrRefCounter( mem );
     138    psMemIncrRefCounter( mem );
     139   
     140    ref = psMemGetRefCounter( mem );
     141    if ( ref != 4 ) {
     142            psError( __func__, "Expected to find buffer reference count to be 4, but it was %d.", ref );
     143            return 1;
     144        }
     145       
     146    psMemDecrRefCounter( mem );
     147    psMemDecrRefCounter( mem );
     148   
     149    ref = psMemGetRefCounter( mem );
     150    if ( ref != 2 ) {
     151            psError( __func__, "Expected to find buffer reference count to be 2, but it was %d.", ref );
     152            return 1;
     153        }
     154       
     155    psLogMsg( __func__, PS_LOG_INFO, "psFree shall be just decrement a multiple refererenced pointer." );
     156   
     157    psFree( mem );
     158   
     159    ref = psMemGetRefCounter( mem );
     160    if ( ref != 1 ) {
     161            psError( __func__, "Expected to find buffer reference count to be 1, but it was %d.", ref );
     162            return 1;
     163        }
     164       
     165    psFree( mem );
     166   
    149167    return 0;
    150168}
     
    152170// Bug/Task #562 regression test.  Upon requesting more memory than is available, psRealloc shall call
    153171// the psMemExhaustedCallback.
    154 int TPReallocOutOfMemory(void)
    155 {
    156     int* mem[100];
     172int TPReallocOutOfMemory( void )
     173{
     174    int * mem[ 100 ];
    157175    psMemExhaustedCallback cb;
    158 
    159     for (int lcv = 0; lcv<100; lcv++) {
    160         mem[lcv] = NULL;
    161     }
    162 
    163     psLogMsg(__func__,PS_LOG_INFO,"Upon requesting more memory than is available, psRealloc shall call "
    164              "the psMemExhaustedCallback.\n");
    165 
     176   
     177    for ( int lcv = 0; lcv < 100; lcv++ ) {
     178            mem[ lcv ] = NULL;
     179        }
     180       
     181    psLogMsg( __func__, PS_LOG_INFO, "Upon requesting more memory than is available, psRealloc shall call "
     182              "the psMemExhaustedCallback.\n" );
     183             
    166184    exhaustedCallbackCalled = 0;
    167 
    168     cb = psMemExhaustedCallbackSet(TPOutOfMemoryExhaustedCallback);
    169 
    170     for (int lcv = 0; lcv<100; lcv++) {
    171         mem[lcv] = (int*) psAlloc(10);
    172     }
    173 
    174     for (int lcv = 0; lcv<100; lcv++) {
    175         mem[lcv] = (int*) psRealloc(mem[lcv],SIZE_MAX-1000);
    176     }
    177 
    178     psMemExhaustedCallbackSet(cb);
    179 
    180     if (exhaustedCallbackCalled == 0) {
    181         psError(__FILE__,"Called psRealloc with HUGE memory requirement and survived in %s!",__func__);
    182         return 1;
    183     }
    184 
    185     for (int lcv = 0; lcv<100; lcv++) {
    186         psFree(mem[lcv]);
    187     }
    188 
     185   
     186    cb = psMemExhaustedCallbackSet( TPOutOfMemoryExhaustedCallback );
     187   
     188    for ( int lcv = 0; lcv < 100; lcv++ ) {
     189            mem[ lcv ] = ( int* ) psAlloc( 10 );
     190        }
     191       
     192    for ( int lcv = 0; lcv < 100; lcv++ ) {
     193            mem[ lcv ] = ( int* ) psRealloc( mem[ lcv ], SIZE_MAX - 1000 );
     194        }
     195       
     196    psMemExhaustedCallbackSet( cb );
     197   
     198    if ( exhaustedCallbackCalled == 0 ) {
     199            psError( __FILE__, "Called psRealloc with HUGE memory requirement and survived in %s!", __func__ );
     200            return 1;
     201        }
     202       
     203    for ( int lcv = 0; lcv < 100; lcv++ ) {
     204            psFree( mem[ lcv ] );
     205        }
     206       
    189207    return 0;
    190208}
    191209// Testpoint #450,  Upon requesting more memory than is available, psalloc shall call
    192210// the psMemExhaustedCallback.
    193 int TPOutOfMemory(void)
    194 {
    195     int* mem[100];
     211int TPOutOfMemory( void )
     212{
     213    int * mem[ 100 ];
    196214    psMemExhaustedCallback cb;
    197 
    198     for (int lcv = 0; lcv<100; lcv++) {
    199         mem[lcv] = NULL;
    200     }
    201 
    202     psLogMsg(__func__,PS_LOG_INFO,"Upon requesting more memory than is available, psalloc shall call "
    203              "the psMemExhaustedCallback.\n");
    204 
     215   
     216    for ( int lcv = 0; lcv < 100; lcv++ ) {
     217            mem[ lcv ] = NULL;
     218        }
     219       
     220    psLogMsg( __func__, PS_LOG_INFO, "Upon requesting more memory than is available, psalloc shall call "
     221              "the psMemExhaustedCallback.\n" );
     222             
    205223    exhaustedCallbackCalled = 0;
    206 
    207     cb = psMemExhaustedCallbackSet(TPOutOfMemoryExhaustedCallback);
    208 
    209     for (int lcv = 0; lcv<100; lcv++) {
    210         mem[lcv] = (int*) psAlloc(SIZE_MAX-1000);
    211     }
    212 
    213     psMemExhaustedCallbackSet(cb);
    214 
    215     if (exhaustedCallbackCalled == 0) {
    216         psError(__FILE__,"Called psAlloc with HUGE memory requirement and survived in %s!",__func__);
    217         return 1;
    218     }
    219 
    220     for (int lcv = 0; lcv<100; lcv++) {
    221         psFree(mem[lcv]);
    222     }
    223 
     224   
     225    cb = psMemExhaustedCallbackSet( TPOutOfMemoryExhaustedCallback );
     226   
     227    for ( int lcv = 0; lcv < 100; lcv++ ) {
     228            mem[ lcv ] = ( int* ) psAlloc( SIZE_MAX - 1000 );
     229        }
     230       
     231    psMemExhaustedCallbackSet( cb );
     232   
     233    if ( exhaustedCallbackCalled == 0 ) {
     234            psError( __FILE__, "Called psAlloc with HUGE memory requirement and survived in %s!", __func__ );
     235            return 1;
     236        }
     237       
     238    for ( int lcv = 0; lcv < 100; lcv++ ) {
     239            psFree( mem[ lcv ] );
     240        }
     241       
    224242    return 0;
    225243}
    226244
    227245// Testpoint #451,  psRealloc shall increase/decrease memory buffer while preserving contents
    228 int TPrealloc(void)
    229 {
    230     int* mem1;
     246int TPrealloc( void )
     247{
     248    int * mem1;
    231249    int* mem2;
    232250    int* mem3;
    233251    const int initialSize = 100;
    234 
    235     psLogMsg(__func__,PS_LOG_INFO,"psRealloc shall increase/decrease memory buffer while "
    236              "preserving contents");
    237 
     252   
     253    psLogMsg( __func__, PS_LOG_INFO, "psRealloc shall increase/decrease memory buffer while "
     254              "preserving contents" );
     255             
    238256    // allocate buffer with known values.
    239     mem1 = (int*) psAlloc(initialSize*sizeof(int));
    240     mem2 = (int*) psAlloc(initialSize*sizeof(int));
    241     mem3 = (int*) psAlloc(initialSize*sizeof(int));
    242     for (int lcv=0;lcv<initialSize;lcv++) {
    243         mem1[lcv] = mem2[lcv] = mem3[lcv] = lcv;
    244     }
    245 
    246     psMemCheckCorruption(1);
    247     psLogMsg(__func__,PS_LOG_INFO,"Expanding memory buffer.");
    248 
     257    mem1 = ( int* ) psAlloc( initialSize * sizeof( int ) );
     258    mem2 = ( int* ) psAlloc( initialSize * sizeof( int ) );
     259    mem3 = ( int* ) psAlloc( initialSize * sizeof( int ) );
     260    for ( int lcv = 0;lcv < initialSize;lcv++ ) {
     261            mem1[ lcv ] = mem2[ lcv ] = mem3[ lcv ] = lcv;
     262        }
     263       
     264    psMemCheckCorruption( 1 );
     265    psLogMsg( __func__, PS_LOG_INFO, "Expanding memory buffer." );
     266   
    249267    // realloc to 2x
    250     mem1 = (int*) psRealloc(mem1, 2*initialSize*sizeof(int));
    251     mem2 = (int*) psRealloc(mem2, 2*initialSize*sizeof(int));
    252     mem3 = (int*) psRealloc(mem3, 2*initialSize*sizeof(int));
    253 
     268    mem1 = ( int* ) psRealloc( mem1, 2 * initialSize * sizeof( int ) );
     269    mem2 = ( int* ) psRealloc( mem2, 2 * initialSize * sizeof( int ) );
     270    mem3 = ( int* ) psRealloc( mem3, 2 * initialSize * sizeof( int ) );
     271   
    254272    // check values of initial block
    255     for (int i=0;i<initialSize;i++) {
    256         if (mem1[i] != i || mem2[i] != i || mem3[i] != i) {
    257             psError(__FILE__,"Realloc didn't preserve the contents with expanding buffer in %s.",
    258                     __func__);
    259             break;
    260         }
    261     }
    262 
    263     psMemCheckCorruption(1);
    264     psLogMsg(__func__,PS_LOG_INFO,"Shrinking memory buffer.");
    265 
     273    for ( int i = 0;i < initialSize;i++ ) {
     274            if ( mem1[ i ] != i || mem2[ i ] != i || mem3[ i ] != i ) {
     275                    psError( __FILE__, "Realloc didn't preserve the contents with expanding buffer in %s.",
     276                             __func__ );
     277                    break;
     278                }
     279        }
     280       
     281    psMemCheckCorruption( 1 );
     282    psLogMsg( __func__, PS_LOG_INFO, "Shrinking memory buffer." );
     283   
    266284    // realloc to 1/2 initial value.
    267     mem1 = (int*) psRealloc(mem1, (initialSize/2)*sizeof(int));
    268     mem2 = (int*) psRealloc(mem2, (initialSize/2)*sizeof(int));
    269     mem3 = (int*) psRealloc(mem3, (initialSize/2)*sizeof(int));
    270 
     285    mem1 = ( int* ) psRealloc( mem1, ( initialSize / 2 ) * sizeof( int ) );
     286    mem2 = ( int* ) psRealloc( mem2, ( initialSize / 2 ) * sizeof( int ) );
     287    mem3 = ( int* ) psRealloc( mem3, ( initialSize / 2 ) * sizeof( int ) );
     288   
    271289    // check values of initial block
    272     for (int i=0;i<initialSize/2;i++) {
    273         if (mem1[i] != i || mem2[i] != i || mem3[i] != i) {
    274             psError(__FILE__,"Realloc didn't preserve the contents with shrinking buffer in %s.",
    275                     __func__);
    276             break;
    277         }
    278     }
    279 
    280     psFree(mem1);
    281     psFree(mem2);
    282     psFree(mem3);
    283 
    284     return 0;
    285 }
    286 
    287 int TPallocCallback(void)
    288 {
    289     int* mem1;
     290    for ( int i = 0;i < initialSize / 2;i++ ) {
     291            if ( mem1[ i ] != i || mem2[ i ] != i || mem3[ i ] != i ) {
     292                    psError( __FILE__, "Realloc didn't preserve the contents with shrinking buffer in %s.",
     293                             __func__ );
     294                    break;
     295                }
     296        }
     297       
     298    psFree( mem1 );
     299    psFree( mem2 );
     300    psFree( mem3 );
     301   
     302    return 0;
     303}
     304
     305int TPallocCallback( void )
     306{
     307    int * mem1;
    290308    int* mem2;
    291309    int* mem3;
     
    293311    const int initialSize = 100;
    294312    int mark;
    295 
     313   
    296314    allocCallbackCalled = 0;
    297315    freeCallbackCalled = 0;
    298     psMemAllocateCallbackSet(memAllocateCallback);
    299     psMemFreeCallbackSet(memFreeCallback);
    300 
    301     psMemAllocateCallbackSetID(currentId+1);
    302     psMemFreeCallbackSetID(currentId+1);
    303 
    304     psLogMsg(__func__,PS_LOG_INFO,"call to psAlloc/psRealloc shall generate a callback if specified "
    305              "memory ID is allocated.");
    306 
     316    psMemAllocateCallbackSet( memAllocateCallback );
     317    psMemFreeCallbackSet( memFreeCallback );
     318   
     319    psMemAllocateCallbackSetID( currentId + 1 );
     320    psMemFreeCallbackSetID( currentId + 1 );
     321   
     322    psLogMsg( __func__, PS_LOG_INFO, "call to psAlloc/psRealloc shall generate a callback if specified "
     323              "memory ID is allocated." );
     324             
    307325    // allocate buffer with known values.
    308     mem1 = (int*) psAlloc(initialSize*sizeof(int));
    309     mem2 = (int*) psAlloc(initialSize*sizeof(int));
    310     mem3 = (int*) psAlloc(initialSize*sizeof(int));
    311 
    312     psFree(mem1);
    313     psFree(mem2);
    314     psFree(mem3);
    315 
    316     if (allocCallbackCalled != 2 || freeCallbackCalled != 2) {
    317         psError(__FILE__,"alloc/free callbacks were not called the proper number of times in %s",
    318                 __func__);
    319         return 1;
    320     }
    321 
     326    mem1 = ( int* ) psAlloc( initialSize * sizeof( int ) );
     327    mem2 = ( int* ) psAlloc( initialSize * sizeof( int ) );
     328    mem3 = ( int* ) psAlloc( initialSize * sizeof( int ) );
     329   
     330    psFree( mem1 );
     331    psFree( mem2 );
     332    psFree( mem3 );
     333   
     334    if ( allocCallbackCalled != 2 || freeCallbackCalled != 2 ) {
     335            psError( __FILE__, "alloc/free callbacks were not called the proper number of times in %s",
     336                     __func__ );
     337            return 1;
     338        }
     339       
    322340    allocCallbackCalled = 0;
    323341    freeCallbackCalled = 0;
    324 
     342   
    325343    mark = psMemGetId();
    326 
    327     mem1 = (int*) psAlloc(initialSize*sizeof(int));
    328 
    329     psMemAllocateCallbackSetID(mark);
    330 
    331     mem1 = (int*) psRealloc(mem1,initialSize*2*sizeof(int));
    332 
    333     psFree(mem1);
    334 
    335     if (allocCallbackCalled != 2) {
    336         psError(__FILE__,"realloc callbacks were not called the proper number of times in %s",
    337                 __func__);
    338         return 1;
    339     }
    340 
    341     return 0;
    342 
    343 }
    344 
    345 int TPcheckLeaks(void)
     344   
     345    mem1 = ( int* ) psAlloc( initialSize * sizeof( int ) );
     346   
     347    psMemAllocateCallbackSetID( mark );
     348   
     349    mem1 = ( int* ) psRealloc( mem1, initialSize * 2 * sizeof( int ) );
     350   
     351    psFree( mem1 );
     352   
     353    if ( allocCallbackCalled != 2 ) {
     354            psError( __FILE__, "realloc callbacks were not called the proper number of times in %s",
     355                     __func__ );
     356            return 1;
     357        }
     358       
     359    return 0;
     360   
     361}
     362
     363int TPcheckLeaks( void )
    346364{
    347365    const int numBuffers = 5;
    348     int* buffers[5];
     366    int* buffers[ 5 ];
    349367    int lcv;
    350368    int currentId = psMemGetId();
     
    352370    int nLeaks = 0;
    353371    int lineMark = 0;
    354 
    355     psLogMsg(__func__,PS_LOG_INFO,"psMemCheckLeaks shall return the number of blocks above an ID "
    356              "that are still allocated");
    357 
    358     for (lcv=0;lcv<numBuffers;lcv++) {
    359         lineMark = __LINE__+1;
    360         buffers[lcv] = psAlloc(sizeof(int));
    361     }
    362 
    363     for (lcv=1;lcv<numBuffers;lcv++) {
    364         psFree(buffers[lcv]);
    365     }
    366 
    367     psLogMsg(__func__,PS_LOG_INFO,"following psMemCheckLeaks call should produce one instance.");
    368 
    369     nLeaks = psMemCheckLeaks(currentId, &blks, stderr);
    370 
    371     if (nLeaks != 1) {
    372         psError(__FILE__,"psMemCheckLeaks should have found 1 leak, but found %d in %s.",nLeaks,__func__);
    373         return 1;
    374     }
    375 
    376     if (blks[0]->lineno != lineMark) {
    377         psError(__FILE__,"psMemCheckLeaks found a leak other than the expected one (line %d vs %d) in %s.",
    378                 lineMark, blks[0]->lineno, __func__);
    379         return 1;
    380     }
    381 
    382     psFree(buffers[0]);
    383     psFree(blks);
    384 
    385     psLogMsg(__func__,PS_LOG_INFO,"Testing psMemCheckLeaks again with a different leak location");
    386     psMemCheckLeaks(currentId,NULL,stderr);
    387 
    388     for (lcv=0;lcv<numBuffers;lcv++) {
    389         lineMark = __LINE__+1;
    390         buffers[lcv] = psAlloc(sizeof(int));
    391     }
    392 
    393     for (lcv=0;lcv<numBuffers-1;lcv++) {
    394         psFree(buffers[lcv]);
    395     }
    396 
    397     psLogMsg(__func__,PS_LOG_INFO,"following psMemCheckLeaks call should produce one error.");
    398 
    399     nLeaks = psMemCheckLeaks(currentId, &blks, stderr);
    400 
    401     if (nLeaks != 1) {
    402         psError(__FILE__,"psMemCheckLeaks should have found 1 leak, but found %d in %s.",nLeaks,__func__);
    403         return 1;
    404     }
    405 
    406     if (blks[0]->lineno != lineMark) {
    407         psError(__FILE__,"psMemCheckLeaks found a leak other than the expected one in %s.",__func__);
    408         return 1;
    409     }
    410 
    411     psFree(buffers[4]);
    412     psFree(blks);
    413 
    414     psLogMsg(__func__,PS_LOG_INFO,"Testing psMemCheckLeaks again with multiple leak locations.");
    415 
    416     for (lcv=0;lcv<numBuffers;lcv++) {
    417         lineMark = __LINE__+1;
    418         buffers[lcv] = psAlloc(sizeof(int));
    419     }
    420 
    421     for (lcv=0;lcv<numBuffers;lcv++) {
    422         if (lcv%2 == 0) {
    423             psFree(buffers[lcv]);
    424         }
    425     }
    426 
    427     psLogMsg(__func__,PS_LOG_INFO,"following psMemCheckLeaks call should produce two errors.");
    428 
    429     nLeaks = psMemCheckLeaks(currentId, &blks, stderr);
    430 
    431     if (nLeaks != 2) {
    432         psError(__FILE__,"psMemCheckLeaks should have found 1 leak, but found %d in %s.",nLeaks,__func__);
    433         return 1;
    434     }
    435 
    436     if (blks[0]->lineno != lineMark) {
    437         psError(__FILE__,"psMemCheckLeaks found a leak other than the expected one in %s.",__func__);
    438         return 1;
    439     }
    440 
    441     psFree(blks);
    442     psFree(buffers[1]);
    443     psFree(buffers[3]);
    444 
    445     return 0;
    446 }
    447 
    448 int TPmemCorruption(void)
    449 {
    450     int* buffer = NULL;
     372   
     373    psLogMsg( __func__, PS_LOG_INFO, "psMemCheckLeaks shall return the number of blocks above an ID "
     374              "that are still allocated" );
     375             
     376    for ( lcv = 0;lcv < numBuffers;lcv++ ) {
     377            lineMark = __LINE__ + 1;
     378            buffers[ lcv ] = psAlloc( sizeof( int ) );
     379        }
     380       
     381    for ( lcv = 1;lcv < numBuffers;lcv++ ) {
     382            psFree( buffers[ lcv ] );
     383        }
     384       
     385    psLogMsg( __func__, PS_LOG_INFO, "following psMemCheckLeaks call should produce one instance." );
     386   
     387    nLeaks = psMemCheckLeaks( currentId, &blks, stderr );
     388   
     389    if ( nLeaks != 1 ) {
     390            psError( __FILE__, "psMemCheckLeaks should have found 1 leak, but found %d in %s.", nLeaks, __func__ );
     391            return 1;
     392        }
     393       
     394    if ( blks[ 0 ] ->lineno != lineMark ) {
     395            psError( __FILE__, "psMemCheckLeaks found a leak other than the expected one (line %d vs %d) in %s.",
     396                     lineMark, blks[ 0 ] ->lineno, __func__ );
     397            return 1;
     398        }
     399       
     400    psFree( buffers[ 0 ] );
     401    psFree( blks );
     402   
     403    psLogMsg( __func__, PS_LOG_INFO, "Testing psMemCheckLeaks again with a different leak location" );
     404    psMemCheckLeaks( currentId, NULL, stderr );
     405   
     406    for ( lcv = 0;lcv < numBuffers;lcv++ ) {
     407            lineMark = __LINE__ + 1;
     408            buffers[ lcv ] = psAlloc( sizeof( int ) );
     409        }
     410       
     411    for ( lcv = 0;lcv < numBuffers - 1;lcv++ ) {
     412            psFree( buffers[ lcv ] );
     413        }
     414       
     415    psLogMsg( __func__, PS_LOG_INFO, "following psMemCheckLeaks call should produce one error." );
     416   
     417    nLeaks = psMemCheckLeaks( currentId, &blks, stderr );
     418   
     419    if ( nLeaks != 1 ) {
     420            psError( __FILE__, "psMemCheckLeaks should have found 1 leak, but found %d in %s.", nLeaks, __func__ );
     421            return 1;
     422        }
     423       
     424    if ( blks[ 0 ] ->lineno != lineMark ) {
     425            psError( __FILE__, "psMemCheckLeaks found a leak other than the expected one in %s.", __func__ );
     426            return 1;
     427        }
     428       
     429    psFree( buffers[ 4 ] );
     430    psFree( blks );
     431   
     432    psLogMsg( __func__, PS_LOG_INFO, "Testing psMemCheckLeaks again with multiple leak locations." );
     433   
     434    for ( lcv = 0;lcv < numBuffers;lcv++ ) {
     435            lineMark = __LINE__ + 1;
     436            buffers[ lcv ] = psAlloc( sizeof( int ) );
     437        }
     438       
     439    for ( lcv = 0;lcv < numBuffers;lcv++ ) {
     440            if ( lcv % 2 == 0 ) {
     441                    psFree( buffers[ lcv ] );
     442                }
     443        }
     444       
     445    psLogMsg( __func__, PS_LOG_INFO, "following psMemCheckLeaks call should produce two errors." );
     446   
     447    nLeaks = psMemCheckLeaks( currentId, &blks, stderr );
     448   
     449    if ( nLeaks != 2 ) {
     450            psError( __FILE__, "psMemCheckLeaks should have found 1 leak, but found %d in %s.", nLeaks, __func__ );
     451            return 1;
     452        }
     453       
     454    if ( blks[ 0 ] ->lineno != lineMark ) {
     455            psError( __FILE__, "psMemCheckLeaks found a leak other than the expected one in %s.", __func__ );
     456            return 1;
     457        }
     458       
     459    psFree( blks );
     460    psFree( buffers[ 1 ] );
     461    psFree( buffers[ 3 ] );
     462   
     463    return 0;
     464}
     465
     466int TPmemCorruption( void )
     467{
     468    int * buffer = NULL;
    451469    int oldValue = 0;
    452470    int corruptions = 0;
    453471    psMemProblemCallback cb;
    454 
    455     psLogMsg(__func__,PS_LOG_INFO,"psMemCheckCorruption shall detect memory corruptions");
    456 
    457     buffer = psAlloc(sizeof(int));
    458 
     472   
     473    psLogMsg( __func__, PS_LOG_INFO, "psMemCheckCorruption shall detect memory corruptions" );
     474   
     475    buffer = psAlloc( sizeof( int ) );
     476   
    459477    // cause memory corruption via buffer underflow
    460478    *buffer = 1;
     
    462480    oldValue = *buffer;
    463481    *buffer = 2;
    464 
     482   
    465483    problemCallbackCalled = 0;
    466     cb = psMemProblemCallbackSet(memProblemCallback);
    467 
    468     psLogMsg(__func__,PS_LOG_INFO,"psMemCheckCorruption should output an error message and "
    469              "memProblemCallback callback should be called.");
    470 
    471     corruptions = psMemCheckCorruption(0);
    472 
     484    cb = psMemProblemCallbackSet( memProblemCallback );
     485   
     486    psLogMsg( __func__, PS_LOG_INFO, "psMemCheckCorruption should output an error message and "
     487              "memProblemCallback callback should be called." );
     488             
     489    corruptions = psMemCheckCorruption( 0 );
     490   
    473491    // restore the memory problem callback
    474     psMemProblemCallbackSet(cb);
    475 
     492    psMemProblemCallbackSet( cb );
     493   
    476494    // restore the value, 'uncorrupting' the buffer
    477495    *buffer = oldValue;
    478496    buffer++;
    479 
    480     psFree(buffer);
    481 
    482     if (corruptions != 1) {
    483         psError(__FILE__,"Expected one memory corruption but found %d in %s.",
    484                 corruptions, __func__);
    485         return 1;
    486     }
    487 
    488     if (problemCallbackCalled != 1) {
    489         psError(__FILE__,"The memProblemCallback was not invoked but should have been in %s",
    490                 __func__);
    491         return 1;
    492     }
    493 
    494     return 0;
    495 
    496 }
    497 
    498 void memProblemCallback(const psMemBlock *ptr, const char *file, int lineno)
    499 {
    500     psLogMsg(__func__,PS_LOG_INFO,"memory callback called for id %d (%s:%d).",
    501              ptr->id, file, lineno);
     497   
     498    psFree( buffer );
     499   
     500    if ( corruptions != 1 ) {
     501            psError( __FILE__, "Expected one memory corruption but found %d in %s.",
     502                     corruptions, __func__ );
     503            return 1;
     504        }
     505       
     506    if ( problemCallbackCalled != 1 ) {
     507            psError( __FILE__, "The memProblemCallback was not invoked but should have been in %s",
     508                     __func__ );
     509            return 1;
     510        }
     511       
     512    return 0;
     513   
     514}
     515
     516void memProblemCallback( const psMemBlock *ptr, const char *file, int lineno )
     517{
     518    psLogMsg( __func__, PS_LOG_INFO, "memory callback called for id %d (%s:%d).",
     519              ptr->id, file, lineno );
    502520    problemCallbackCalled++;
    503     return;
    504 }
    505 
    506 psMemoryId memAllocateCallback(const psMemBlock *ptr)
    507 {
    508     psLogMsg(__func__,PS_LOG_INFO,"block %d was (re)allocated",ptr->id);
     521    return ;
     522}
     523
     524psMemoryId memAllocateCallback( const psMemBlock *ptr )
     525{
     526    psLogMsg( __func__, PS_LOG_INFO, "block %d was (re)allocated", ptr->id );
    509527    allocCallbackCalled++;
    510528    return 1;
    511529}
    512530
    513 psMemoryId memFreeCallback(const psMemBlock *ptr)
    514 {
    515     psLogMsg(__func__,PS_LOG_INFO,"block %d was freed",ptr->id);
     531psMemoryId memFreeCallback( const psMemBlock *ptr )
     532{
     533    psLogMsg( __func__, PS_LOG_INFO, "block %d was freed", ptr->id );
    516534    freeCallbackCalled++;
    517535    return 1;
    518536}
    519537
    520 void* TPOutOfMemoryExhaustedCallback(size_t size)
    521 {
    522     psLogMsg(__func__,PS_LOG_INFO,"Custom MemExhaustedCallback was invoked.");
     538void* TPOutOfMemoryExhaustedCallback( size_t size )
     539{
     540    psLogMsg( __func__, PS_LOG_INFO, "Custom MemExhaustedCallback was invoked." );
    523541    exhaustedCallbackCalled++;
    524542    return NULL;
    525543}
    526544
    527 int TPmultipleFree(void)
    528 {
    529 
    530     void* buffer = psAlloc(1024);
    531 
    532     psFree(buffer);
    533 
    534     psLogMsg(__func__,PS_LOG_INFO,"Next should be an error about multiple freeing.");
    535     psFree(buffer);
    536 
    537     return 0;
    538 }
     545int TPmultipleFree( void )
     546{
     547
     548    void * buffer = psAlloc( 1024 );
     549   
     550    psFree( buffer );
     551   
     552    psLogMsg( __func__, PS_LOG_INFO, "Next should be an error about multiple freeing." );
     553    psFree( buffer );
     554   
     555    return 0;
     556}
  • trunk/psLib/test/sysUtils/verified/tst_psMemory.stderr

    r1255 r1365  
    1717 <DATE> <TIME> |<HOST>|I|  TPOutOfMemory|Upon requesting more memory than is available, psalloc shall call the psMemExhaustedCallback.
    1818 <DATE> <TIME> |<HOST>|I|TPOutOfMemoryEx|Custom MemExhaustedCallback was invoked.
    19  <DATE> <TIME> |<HOST>|A|      p_psAlloc|Failed to allocate 4294966295 bytes at tst_psMemory.c:210
     19 <DATE> <TIME> |<HOST>|A|      p_psAlloc|Failed to allocate 4294966295 bytes at tst_psMemory.c:206
    2020
    2121---> TESTPOINT PASSED (psMemory{outOfMemory} | tst_psMemory.c)
     
    2828
    2929 <DATE> <TIME> |<HOST>|I|TPReallocOutOfM|Upon requesting more memory than is available, psRealloc shall call the psMemExhaustedCallback.
    30  <DATE> <TIME> |<HOST>|A|    p_psRealloc|Failed to reallocate -1001 bytes at tst_psMemory.c:175
     30 <DATE> <TIME> |<HOST>|A|    p_psRealloc|Failed to reallocate -1001 bytes at tst_psMemory.c:171
    3131
    3232---> TESTPOINT PASSED (psMemory{reallocOutOfMemory} | tst_psMemory.c)
     
    7070 <DATE> <TIME> |<HOST>|I|   TPcheckLeaks|following psMemCheckLeaks call should produce one instance.
    7171                   file:line ID
    72          tst_psMemory.c:360  1
     72         tst_psMemory.c:356  1
    7373 <DATE> <TIME> |<HOST>|I|   TPcheckLeaks|Testing psMemCheckLeaks again with a different leak location
    7474 <DATE> <TIME> |<HOST>|I|   TPcheckLeaks|following psMemCheckLeaks call should produce one error.
    7575                   file:line ID
    76          tst_psMemory.c:390  11
     76         tst_psMemory.c:386  11
    7777 <DATE> <TIME> |<HOST>|I|   TPcheckLeaks|Testing psMemCheckLeaks again with multiple leak locations.
    7878 <DATE> <TIME> |<HOST>|I|   TPcheckLeaks|following psMemCheckLeaks call should produce two errors.
    7979                   file:line ID
    80          tst_psMemory.c:418  16
    81          tst_psMemory.c:418  14
     80         tst_psMemory.c:414  16
     81         tst_psMemory.c:414  14
    8282
    8383---> TESTPOINT PASSED (psMemory{checkLeaks} | tst_psMemory.c)
     
    9292 <DATE> <TIME> |<HOST>|I|TPmemCorruption|psMemCheckCorruption should output an error message and memProblemCallback callback should be called.
    9393 <DATE> <TIME> |<HOST>|E|psMemCheckCorru|Memory Corruption: memory block 1 is corrupted (buffer underflow)
    94  <DATE> <TIME> |<HOST>|I|memProblemCallb|memory callback called for id 1 (psMemCheckCorruption:254).
     94 <DATE> <TIME> |<HOST>|I|memProblemCallb|memory callback called for id 1 (psMemCheckCorruption:260).
    9595
    9696---> TESTPOINT PASSED (psMemory{psMemCorruption} | tst_psMemory.c)
     
    115115 <DATE> <TIME> |<HOST>|I| TPmultipleFree|Next should be an error about multiple freeing.
    116116 <DATE> <TIME> |<HOST>|E|  checkMemBlock|Memory Corruption: memory block 1 was freed but still used.
    117  <DATE> <TIME> |<HOST>|E|memProblemCallb|Block 1 allocated at tst_psMemory.c:530 freed more than once at tst_psMemory.c:535
    118  <DATE> <TIME> |<HOST>|A|memProblemCallb|Detected a problem in the memory system at tst_psMemory.c:535
     117 <DATE> <TIME> |<HOST>|E|memProblemCallb|Block 1 allocated at tst_psMemory.c:526 freed more than once at tst_psMemory.c:531
     118 <DATE> <TIME> |<HOST>|A|memProblemCallb|Detected a problem in the memory system at tst_psMemory.c:531
    119119
    120120---> TESTPOINT PASSED (psMemory{multipleFree} | tst_psMemory.c)
Note: See TracChangeset for help on using the changeset viewer.