Changeset 1365
- Timestamp:
- Aug 2, 2004, 9:43:23 AM (22 years ago)
- Location:
- trunk/psLib/test
- Files:
-
- 3 added
- 15 edited
-
dataManip/tst_psHist02.c (modified) (3 diffs)
-
dataManip/tst_psMatrixVectorArithmetic02.c (modified) (8 diffs)
-
dataManip/tst_psStats07.c (modified) (3 diffs)
-
dataManip/tst_psVectorFFT.c (modified) (8 diffs)
-
dataManip/verified/tst_psHist02.stdout (modified) (4 diffs)
-
dataManip/verified/tst_psMatrixVectorArithmetic02.stdout (modified) (106 diffs)
-
dataManip/verified/tst_psStats07.stdout (modified) (8 diffs)
-
image/tst_psImageStats00.c (modified) (2 diffs)
-
image/tst_psImageStats01.c (modified) (2 diffs)
-
image/tst_psImageStats02.c (modified) (2 diffs)
-
image/verified/tst_psImageExtraction.stderr (added)
-
image/verified/tst_psImageStats00.stderr (added)
-
image/verified/tst_psImageStats00.stdout (modified) (6 diffs)
-
image/verified/tst_psImageStats01.stderr (added)
-
image/verified/tst_psImageStats01.stdout (modified) (6 diffs)
-
image/verified/tst_psImageStats02.stdout (modified) (2 diffs)
-
sysUtils/tst_psMemory.c (modified) (7 diffs)
-
sysUtils/verified/tst_psMemory.stderr (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/test/dataManip/tst_psHist02.c
r1327 r1365 1 1 /***************************************************************************** 2 This routine must ensure that the psHistogram structure is correctly3 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 *****************************************************************************/ 6 6 #include <stdio.h> 7 7 #include "pslib.h" … … 16 16 int main() 17 17 { 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 31 31 /*********************************************************************/ 32 32 /* Allocate and initialize data structures */ 33 33 /*********************************************************************/ 34 myData = psVectorAlloc( NUM_DATA, PS_TYPE_F32);34 myData = psVectorAlloc( NUM_DATA, PS_TYPE_F32 ); 35 35 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 ); 41 41 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 } 47 48 } 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 ); 75 109 } 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 116 116 // Verify the return value is null and program execution doesn't stop, 117 117 // 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 127 127 // Verify the retrun value is the same as the input parameter myHist and 128 128 // program execution doesn't stop, if the input parameter myArray is 129 129 // 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 140 140 // Verify the return value is the same as the input parameter myHist and 141 141 // program execution doesn't stop, if the input parameter myArray has no … … 155 155 psFree(myData); 156 156 */ 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 162 162 /*************************************************************************/ 163 163 /* Deallocate data structures */ 164 164 /*************************************************************************/ 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 ); 182 182 } -
trunk/psLib/test/dataManip/tst_psMatrixVectorArithmetic02.c
r1134 r1365 10 10 * @author Ross Harman, MHPCC 11 11 * 12 * @version $Revision: 1. 1$ $Name: not supported by cvs2svn $13 * @date $Date: 2004-0 6-30 00:18:49$12 * @version $Revision: 1.2 $ $Name: not supported by cvs2svn $ 13 * @date $Date: 2004-08-02 19:43:23 $ 14 14 * 15 15 * Copyright 2004 Maui High Performance Computing Center, University of Hawaii … … 25 25 #define PRINT_SCALAR(SCALAR,TYPE) \ 26 26 if(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 } \ 33 33 printf("\n\n"); 34 34 … … 36 36 #define PRINT_VECTOR(VECTOR,TYPE) \ 37 37 for(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 } \ 46 46 printf("\n"); 47 47 … … 49 49 #define PRINT_MATRIX(IMAGE,TYPE) \ 50 50 for(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 } \ 62 62 printf("\n"); 63 63 … … 66 66 psVector *NAME = (psVector*)psVectorAlloc(SIZE, PS_TYPE_##TYPE); \ 67 67 for(int i=0; i<SIZE; i++) { \ 68 NAME->data.TYPE[i] = VALUE; \69 } \68 NAME->data.TYPE[i] = VALUE; \ 69 } \ 70 70 NAME->n = SIZE; 71 71 … … 74 74 psImage *NAME = (psImage*)psImageAlloc(NCOLS,NROWS,PS_TYPE_##TYPE); \ 75 75 for(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 82 82 #define CHECK_MEMORY \ 83 83 psMemCheckLeaks(0, NULL, stdout); \ 84 84 int nBad = psMemCheckCorruption(0); \ 85 85 if(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 90 int main( int argc, char* argv[] ) 91 91 { 92 92 … … 109 109 printFooter(stdout, "psMatrixVectorArithmetic", "Test matrix psUnaryOp", true); \ 110 110 } 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 182 182 // Test vector unary operations 183 183 #define testBinaryOpV(OP,TYPE,VALUE1,VALUE2,SIZE) \ … … 198 198 printFooter(stdout, "psMatrixVectorArithmetic", "Test vector psUnaryOp", true); \ 199 199 } 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 270 270 return 0; 271 271 } -
trunk/psLib/test/dataManip/tst_psStats07.c
r1281 r1365 1 1 /***************************************************************************** 2 This routine must ensure that PS_STAT_ROBUST_QUARTILE is correctly computed3 by the procedure psArrayStats().4 *****************************************************************************/2 This routine must ensure that PS_STAT_ROBUST_QUARTILE is correctly computed 3 by the procedure psArrayStats(). 4 *****************************************************************************/ 5 5 #include <stdio.h> 6 6 #include "pslib.h" … … 17 17 int main() 18 18 { 19 psStats * myStats= NULL;20 int testStatus = true;19 psStats * myStats = NULL; 20 int testStatus = true; 21 21 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; 25 25 // NOTE: These values were calculated by running the function on the data. 26 26 // A: They must be changed if we adjust the number of data points. 27 27 // 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; 31 31 float realMeanNoMask = MEAN; 32 32 float realMedianNoMask = MEAN; 33 33 float realModeNoMask = MEAN; 34 34 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; 39 39 float realMeanWithMask = MEAN; 40 40 float realMedianWithMask = MEAN; … … 43 43 float realLQWithMask = MEAN; 44 44 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 49 49 /*************************************************************************/ 50 50 /* Allocate and initialize data structures */ 51 51 /*************************************************************************/ 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 ); 59 59 maskVector->n = N; 60 myVector = psGaussianDev( MEAN, STDEV, N);60 myVector = psGaussianDev( MEAN, STDEV, N ); 61 61 // 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 } 70 70 /*************************************************************************/ 71 71 /* Call psVectorStats() with no vector mask. */ 72 72 /*************************************************************************/ 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 193 193 // XXX: 194 194 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 215 215 // XXX: 216 216 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 234 234 /*************************************************************************/ 235 235 /* Call psVectorStats() with vector mask. */ 236 236 /*************************************************************************/ 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 392 392 /*************************************************************************/ 393 393 /* Deallocate data structures */ 394 394 /*************************************************************************/ 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 ); 415 415 } -
trunk/psLib/test/dataManip/tst_psVectorFFT.c
r1193 r1365 1 1 /** @file tst_psVectorFFT.c 2 *3 * @brief Contains the tests for psFFT.[ch]4 *5 *6 * @author Robert DeSonia, MHPCC7 *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 Hawaii12 */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 */ 13 13 14 14 #include <math.h> … … 21 21 img = psImageAlloc(c,r,PS_TYPE_##TYP); \ 22 22 for (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 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 ); 34 34 35 35 testDescription 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 } 42 54 }; 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 56 int main( int argc, char* argv[] ) 57 { 58 psLogSetLevel( PS_LOG_INFO ); 59 60 return ( ! runTestSuite( stderr, "psFFT", tests, argc, argv ) ); 61 } 62 63 int testVectorFFT( void ) 64 { 65 psVector * vec = NULL; 57 66 psVector* vec2 = NULL; 58 67 psVector* vec3 = NULL; 59 68 60 69 /* 61 70 1. assign a vector to a sinisoid … … 65 74 5. compare to original (should be equal to within a reasonable error) 66 75 */ 67 76 68 77 // 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 75 84 // 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 83 92 // 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 98 107 // 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 130 int testVectorRealImaginary( void ) 131 { 132 psVector * vec = NULL; 124 133 psVector* vec2 = NULL; 125 134 psVector* vec3 = NULL; 126 135 127 136 /* 128 137 1. create a C32 complex vector with distinctly different real and imaginary parts. … … 130 139 3. compare results to the real/imaginary components of input 131 140 */ 132 141 133 142 // 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 140 149 // 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 163 172 // 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 195 int testVectorComplex( void ) 196 { 197 psVector * vec = NULL; 189 198 psVector* vec2 = NULL; 190 199 psVector* vec3 = NULL; 191 200 192 201 /* 193 202 1. create two unique psF32 vectors of the same size … … 196 205 4. call psVectorReal and psVectorImaginary on step 2 results 197 206 5. compare step 4 results to input. 198 207 199 208 6. create a psF32 and a psF64 vector of the same size 200 209 7. call psVectorComplex 201 210 8. verify that an appropriate error occurred. 202 211 203 212 9. create two psf32 vectors of different sizes 204 213 10. call psVectorComplex 205 214 11. verify thet an appropriate error occurred. 206 215 */ 207 216 208 217 // 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 ); 211 220 vec->n = vec->nalloc; 212 221 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 218 227 // 2. call psVectorComplex 219 vec3 = psVectorComplex( vec3,vec,vec2);220 228 vec3 = psVectorComplex( vec3, vec, vec2 ); 229 221 230 // 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 228 237 // 4. call psVectorReal and psVectorImaginary on step 2 results (not needed, just use crealf/cimagf) 229 238 // 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 240 249 // 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 243 252 // 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 ); 246 255 // 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 252 261 // 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 255 264 // 10. call psVectorComplex 256 vec3 = psVectorComplex( vec3,vec,vec2);257 265 vec3 = psVectorComplex( vec3, vec, vec2 ); 266 258 267 // 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 280 int testVectorConjugate( void ) 281 { 282 psVector * vec = NULL; 283 psVector* vec2 = NULL; 284 276 285 /* 277 286 1. create a psC32 with unique real and imaginary values. … … 280 289 4. verify each value is conjugate of input (a+bi -> a-bi) 281 290 */ 282 291 283 292 // 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 290 299 // 2. call psVectorConjugate 291 vec2 = psVectorConjugate( vec2,vec);292 300 vec2 = psVectorConjugate( vec2, vec ); 301 293 302 // 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 299 308 // 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 324 int testVectorPowerSpectrum( void ) 325 { 326 psVector * vec = NULL; 318 327 psVector* vec2 = NULL; 319 328 psF32 val; 320 329 321 330 /* 322 331 1. create a psC32 vector with unique real and imaginary components … … 325 334 4. verify the values are the square of the absolute values of the original 326 335 */ 327 336 328 337 // 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 335 344 // 2. call psVectorPowerSpectrum 336 vec2 = psVectorPowerSpectrum( vec2,vec);337 345 vec2 = psVectorPowerSpectrum( vec2, vec ); 346 338 347 // 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 344 353 // 4. verify the values are the square of the absolute values of the original 345 354 // (ADD specifies something else) … … 348 357 // P_N/2 = |C_N/2|^2/N^2 349 358 // 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 ); 365 364 return 2; 366 365 }; 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 5 5 \**********************************************************************************/ 6 6 7 Bin number 0 bounds: (20.00 0000 - 30.000000) data (10000)7 Bin number 0 bounds: (20.00 - 30.00) data (10000) 8 8 9 9 ---> TESTPOINT PASSED (psStats functions{Allocate and Perform Histogram, no mask} | tst_psHist02.c) … … 25 25 \**********************************************************************************/ 26 26 27 Bin number 0 bounds: (20.00 0000 - 25.000000) data (5000)28 Bin number 1 bounds: (25.00 0000 - 30.000000) data (5000)27 Bin number 0 bounds: (20.00 - 25.00) data (5000) 28 Bin number 1 bounds: (25.00 - 30.00) data (5000) 29 29 30 30 ---> TESTPOINT PASSED (psStats functions{Allocate and Perform Histogram, no mask} | tst_psHist02.c) … … 47 47 \**********************************************************************************/ 48 48 49 Bin number 0 bounds: (20.00 0000 - 21.000000) data (1000)50 Bin number 1 bounds: (21.00 0000 - 22.000000) data (1000)51 Bin number 2 bounds: (22.00 0000 - 23.000000) data (1000)52 Bin number 3 bounds: (23.00 0000 - 24.000000) data (1000)53 Bin number 4 bounds: (24.00 0000 - 25.000000) data (1000)54 Bin number 5 bounds: (25.00 0000 - 26.000000) data (1000)55 Bin number 6 bounds: (26.00 0000 - 27.000000) data (1000)56 Bin number 7 bounds: (27.00 0000 - 28.000000) data (1000)57 Bin number 8 bounds: (28.00 0000 - 29.000002) data (1000)58 Bin number 9 bounds: (29.00 0002 - 30.000002) data (1000)49 Bin number 0 bounds: (20.00 - 21.00) data (1000) 50 Bin number 1 bounds: (21.00 - 22.00) data (1000) 51 Bin number 2 bounds: (22.00 - 23.00) data (1000) 52 Bin number 3 bounds: (23.00 - 24.00) data (1000) 53 Bin number 4 bounds: (24.00 - 25.00) data (1000) 54 Bin number 5 bounds: (25.00 - 26.00) data (1000) 55 Bin number 6 bounds: (26.00 - 27.00) data (1000) 56 Bin number 7 bounds: (27.00 - 28.00) data (1000) 57 Bin number 8 bounds: (28.00 - 29.00) data (1000) 58 Bin number 9 bounds: (29.00 - 30.00) data (1000) 59 59 60 60 ---> TESTPOINT PASSED (psStats functions{Allocate and Perform Histogram, no mask} | tst_psHist02.c) … … 85 85 \**********************************************************************************/ 86 86 87 Bin number 0 bounds: (20.00 0000 - 20.500000) data (500)88 Bin number 1 bounds: (20.50 0000 - 21.000000) data (500)89 Bin number 2 bounds: (21.00 0000 - 21.500000) data (500)90 Bin number 3 bounds: (21.50 0000 - 22.000000) data (500)91 Bin number 4 bounds: (22.00 0000 - 22.500000) data (500)92 Bin number 5 bounds: (22.50 0000 - 23.000000) data (500)93 Bin number 6 bounds: (23.00 0000 - 23.500000) data (500)94 Bin number 7 bounds: (23.50 0000 - 24.000000) data (500)95 Bin number 8 bounds: (24.00 0000 - 24.500002) data (500)96 Bin number 9 bounds: (24.50 0002 - 25.000002) data (500)97 Bin number 10 bounds: (25.00 0002 - 25.500002) data (500)98 Bin number 11 bounds: (25.50 0002 - 26.000002) data (500)99 Bin number 12 bounds: (26.00 0002 - 26.500002) data (500)100 Bin number 13 bounds: (26.50 0002 - 27.000002) data (500)101 Bin number 14 bounds: (27.00 0002 - 27.500002) data (500)102 Bin number 15 bounds: (27.50 0002 - 28.000002) data (500)103 Bin number 16 bounds: (28.00 0002 - 28.500002) data (500)104 Bin number 17 bounds: (28.50 0002 - 29.000002) data (500)105 Bin number 18 bounds: (29.00 0002 - 29.500002) data (500)106 Bin number 19 bounds: (29.50 0002 - 30.000002) data (500)87 Bin number 0 bounds: (20.00 - 20.50) data (500) 88 Bin number 1 bounds: (20.50 - 21.00) data (500) 89 Bin number 2 bounds: (21.00 - 21.50) data (500) 90 Bin number 3 bounds: (21.50 - 22.00) data (500) 91 Bin number 4 bounds: (22.00 - 22.50) data (500) 92 Bin number 5 bounds: (22.50 - 23.00) data (500) 93 Bin number 6 bounds: (23.00 - 23.50) data (500) 94 Bin number 7 bounds: (23.50 - 24.00) data (500) 95 Bin number 8 bounds: (24.00 - 24.50) data (500) 96 Bin number 9 bounds: (24.50 - 25.00) data (500) 97 Bin number 10 bounds: (25.00 - 25.50) data (500) 98 Bin number 11 bounds: (25.50 - 26.00) data (500) 99 Bin number 12 bounds: (26.00 - 26.50) data (500) 100 Bin number 13 bounds: (26.50 - 27.00) data (500) 101 Bin number 14 bounds: (27.00 - 27.50) data (500) 102 Bin number 15 bounds: (27.50 - 28.00) data (500) 103 Bin number 16 bounds: (28.00 - 28.50) data (500) 104 Bin number 17 bounds: (28.50 - 29.00) data (500) 105 Bin number 18 bounds: (29.00 - 29.50) data (500) 106 Bin number 19 bounds: (29.50 - 30.00) data (500) 107 107 108 108 ---> TESTPOINT PASSED (psStats functions{Allocate and Perform Histogram, no mask} | tst_psHist02.c) -
trunk/psLib/test/dataManip/verified/tst_psMatrixVectorArithmetic02.stdout
r1246 r1365 31 31 Operation: abs 32 32 Input: 33 -10.00 0000 -10.00000034 -10.00 0000 -10.00000035 -10.00 0000 -10.00000036 37 0.00 0000 0.00000038 0.00 0000 0.00000039 0.00 0000 0.00000040 41 Output: 42 10.00 0000 10.00000043 10.00 0000 10.00000044 10.00 0000 10.00000033 -10.00 -10.00 34 -10.00 -10.00 35 -10.00 -10.00 36 37 0.00 0.00 38 0.00 0.00 39 0.00 0.00 40 41 Output: 42 10.00 10.00 43 10.00 10.00 44 10.00 10.00 45 45 46 46 … … 55 55 Operation: abs 56 56 Input: 57 -10.00 0000 -10.00000058 -10.00 0000 -10.00000059 -10.00 0000 -10.00000060 61 0.00 0000 0.00000062 0.00 0000 0.00000063 0.00 0000 0.00000064 65 Output: 66 10.00 0000 10.00000067 10.00 0000 10.00000068 10.00 0000 10.00000057 -10.00 -10.00 58 -10.00 -10.00 59 -10.00 -10.00 60 61 0.00 0.00 62 0.00 0.00 63 0.00 0.00 64 65 Output: 66 10.00 10.00 67 10.00 10.00 68 10.00 10.00 69 69 70 70 … … 79 79 Operation: abs 80 80 Input: 81 -10.00 0000+-10.000000i -10.000000+-10.000000i82 -10.00 0000+-10.000000i -10.000000+-10.000000i83 -10.00 0000+-10.000000i -10.000000+-10.000000i84 85 0.00 0000+0.000000i 0.000000+0.000000i86 0.00 0000+0.000000i 0.000000+0.000000i87 0.00 0000+0.000000i 0.000000+0.000000i88 89 Output: 90 14.14 2136+0.000000i 14.142136+0.000000i91 14.14 2136+0.000000i 14.142136+0.000000i92 14.14 2136+0.000000i 14.142136+0.000000i81 -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 85 0.00+0.00i 0.00+0.00i 86 0.00+0.00i 0.00+0.00i 87 0.00+0.00i 0.00+0.00i 88 89 Output: 90 14.14+0.00i 14.14+0.00i 91 14.14+0.00i 14.14+0.00i 92 14.14+0.00i 14.14+0.00i 93 93 94 94 … … 127 127 Operation: exp 128 128 Input: 129 10.00 0000 10.000000130 10.00 0000 10.000000131 10.00 0000 10.000000132 133 0.00 0000 0.000000134 0.00 0000 0.000000135 0.00 0000 0.000000136 137 Output: 138 22026.46 4844 22026.464844139 22026.46 4844 22026.464844140 22026.46 4844 22026.464844129 10.00 10.00 130 10.00 10.00 131 10.00 10.00 132 133 0.00 0.00 134 0.00 0.00 135 0.00 0.00 136 137 Output: 138 22026.46 22026.46 139 22026.46 22026.46 140 22026.46 22026.46 141 141 142 142 … … 151 151 Operation: exp 152 152 Input: 153 10.00 0000 10.000000154 10.00 0000 10.000000155 10.00 0000 10.000000156 157 0.00 0000 0.000000158 0.00 0000 0.000000159 0.00 0000 0.000000160 161 Output: 162 22026.4 65795 22026.465795163 22026.4 65795 22026.465795164 22026.4 65795 22026.465795153 10.00 10.00 154 10.00 10.00 155 10.00 10.00 156 157 0.00 0.00 158 0.00 0.00 159 0.00 0.00 160 161 Output: 162 22026.47 22026.47 163 22026.47 22026.47 164 22026.47 22026.47 165 165 166 166 … … 175 175 Operation: exp 176 176 Input: 177 10.00 0000+10.000000i 10.000000+10.000000i178 10.00 0000+10.000000i 10.000000+10.000000i179 10.00 0000+10.000000i 10.000000+10.000000i180 181 0.00 0000+0.000000i 0.000000+0.000000i182 0.00 0000+0.000000i 0.000000+0.000000i183 0.00 0000+0.000000i 0.000000+0.000000i184 185 Output: 186 -18481.78 1250+-11982.862305i -18481.781250+-11982.862305i187 -18481.78 1250+-11982.862305i -18481.781250+-11982.862305i188 -18481.78 1250+-11982.862305i -18481.781250+-11982.862305i177 10.00+10.00i 10.00+10.00i 178 10.00+10.00i 10.00+10.00i 179 10.00+10.00i 10.00+10.00i 180 181 0.00+0.00i 0.00+0.00i 182 0.00+0.00i 0.00+0.00i 183 0.00+0.00i 0.00+0.00i 184 185 Output: 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 189 189 190 190 … … 223 223 Operation: ln 224 224 Input: 225 10.00 0000 10.000000226 10.00 0000 10.000000227 10.00 0000 10.000000228 229 0.00 0000 0.000000230 0.00 0000 0.000000231 0.00 0000 0.000000232 233 Output: 234 2.30 2585 2.302585235 2.30 2585 2.302585236 2.30 2585 2.302585225 10.00 10.00 226 10.00 10.00 227 10.00 10.00 228 229 0.00 0.00 230 0.00 0.00 231 0.00 0.00 232 233 Output: 234 2.30 2.30 235 2.30 2.30 236 2.30 2.30 237 237 238 238 … … 247 247 Operation: ln 248 248 Input: 249 10.00 0000 10.000000250 10.00 0000 10.000000251 10.00 0000 10.000000252 253 0.00 0000 0.000000254 0.00 0000 0.000000255 0.00 0000 0.000000256 257 Output: 258 2.30 2585 2.302585259 2.30 2585 2.302585260 2.30 2585 2.302585249 10.00 10.00 250 10.00 10.00 251 10.00 10.00 252 253 0.00 0.00 254 0.00 0.00 255 0.00 0.00 256 257 Output: 258 2.30 2.30 259 2.30 2.30 260 2.30 2.30 261 261 262 262 … … 271 271 Operation: ln 272 272 Input: 273 10.00 0000+10.000000i 10.000000+10.000000i274 10.00 0000+10.000000i 10.000000+10.000000i275 10.00 0000+10.000000i 10.000000+10.000000i276 277 0.00 0000+0.000000i 0.000000+0.000000i278 0.00 0000+0.000000i 0.000000+0.000000i279 0.00 0000+0.000000i 0.000000+0.000000i280 281 Output: 282 2.6 49159+0.785398i 2.649159+0.785398i283 2.6 49159+0.785398i 2.649159+0.785398i284 2.6 49159+0.785398i 2.649159+0.785398i273 10.00+10.00i 10.00+10.00i 274 10.00+10.00i 10.00+10.00i 275 10.00+10.00i 10.00+10.00i 276 277 0.00+0.00i 0.00+0.00i 278 0.00+0.00i 0.00+0.00i 279 0.00+0.00i 0.00+0.00i 280 281 Output: 282 2.65+0.79i 2.65+0.79i 283 2.65+0.79i 2.65+0.79i 284 2.65+0.79i 2.65+0.79i 285 285 286 286 … … 319 319 Operation: ten 320 320 Input: 321 3.00 0000 3.000000322 3.00 0000 3.000000323 3.00 0000 3.000000324 325 0.00 0000 0.000000326 0.00 0000 0.000000327 0.00 0000 0.000000328 329 Output: 330 1000.00 0000 1000.000000331 1000.00 0000 1000.000000332 1000.00 0000 1000.000000321 3.00 3.00 322 3.00 3.00 323 3.00 3.00 324 325 0.00 0.00 326 0.00 0.00 327 0.00 0.00 328 329 Output: 330 1000.00 1000.00 331 1000.00 1000.00 332 1000.00 1000.00 333 333 334 334 … … 343 343 Operation: ten 344 344 Input: 345 3.00 0000 3.000000346 3.00 0000 3.000000347 3.00 0000 3.000000348 349 0.00 0000 0.000000350 0.00 0000 0.000000351 0.00 0000 0.000000352 353 Output: 354 1000.00 0000 1000.000000355 1000.00 0000 1000.000000356 1000.00 0000 1000.000000345 3.00 3.00 346 3.00 3.00 347 3.00 3.00 348 349 0.00 0.00 350 0.00 0.00 351 0.00 0.00 352 353 Output: 354 1000.00 1000.00 355 1000.00 1000.00 356 1000.00 1000.00 357 357 358 358 … … 367 367 Operation: ten 368 368 Input: 369 3.00 0000+3.000000i 3.000000+3.000000i370 3.00 0000+3.000000i 3.000000+3.000000i371 3.00 0000+3.000000i 3.000000+3.000000i372 373 0.00 0000+0.000000i 0.000000+0.000000i374 0.00 0000+0.000000i 0.000000+0.000000i375 0.00 0000+0.000000i 0.000000+0.000000i376 377 Output: 378 811.21 4661+584.748474i 811.214661+584.748474i379 811.21 4661+584.748474i 811.214661+584.748474i380 811.21 4661+584.748474i 811.214661+584.748474i369 3.00+3.00i 3.00+3.00i 370 3.00+3.00i 3.00+3.00i 371 3.00+3.00i 3.00+3.00i 372 373 0.00+0.00i 0.00+0.00i 374 0.00+0.00i 0.00+0.00i 375 0.00+0.00i 0.00+0.00i 376 377 Output: 378 811.21+584.75i 811.21+584.75i 379 811.21+584.75i 811.21+584.75i 380 811.21+584.75i 811.21+584.75i 381 381 382 382 … … 415 415 Operation: log 416 416 Input: 417 1000.00 0000 1000.000000418 1000.00 0000 1000.000000419 1000.00 0000 1000.000000420 421 0.00 0000 0.000000422 0.00 0000 0.000000423 0.00 0000 0.000000424 425 Output: 426 3.00 0000 3.000000427 3.00 0000 3.000000428 3.00 0000 3.000000417 1000.00 1000.00 418 1000.00 1000.00 419 1000.00 1000.00 420 421 0.00 0.00 422 0.00 0.00 423 0.00 0.00 424 425 Output: 426 3.00 3.00 427 3.00 3.00 428 3.00 3.00 429 429 430 430 … … 439 439 Operation: log 440 440 Input: 441 1000.00 0000 1000.000000442 1000.00 0000 1000.000000443 1000.00 0000 1000.000000444 445 0.00 0000 0.000000446 0.00 0000 0.000000447 0.00 0000 0.000000448 449 Output: 450 3.00 0000 3.000000451 3.00 0000 3.000000452 3.00 0000 3.000000441 1000.00 1000.00 442 1000.00 1000.00 443 1000.00 1000.00 444 445 0.00 0.00 446 0.00 0.00 447 0.00 0.00 448 449 Output: 450 3.00 3.00 451 3.00 3.00 452 3.00 3.00 453 453 454 454 … … 463 463 Operation: log 464 464 Input: 465 1000.00 0000+1000.000000i 1000.000000+1000.000000i466 1000.00 0000+1000.000000i 1000.000000+1000.000000i467 1000.00 0000+1000.000000i 1000.000000+1000.000000i468 469 0.00 0000+0.000000i 0.000000+0.000000i470 0.00 0000+0.000000i 0.000000+0.000000i471 0.00 0000+0.000000i 0.000000+0.000000i472 473 Output: 474 3.15 0515+0.341094i 3.150515+0.341094i475 3.15 0515+0.341094i 3.150515+0.341094i476 3.15 0515+0.341094i 3.150515+0.341094i465 1000.00+1000.00i 1000.00+1000.00i 466 1000.00+1000.00i 1000.00+1000.00i 467 1000.00+1000.00i 1000.00+1000.00i 468 469 0.00+0.00i 0.00+0.00i 470 0.00+0.00i 0.00+0.00i 471 0.00+0.00i 0.00+0.00i 472 473 Output: 474 3.15+0.34i 3.15+0.34i 475 3.15+0.34i 3.15+0.34i 476 3.15+0.34i 3.15+0.34i 477 477 478 478 … … 511 511 Operation: sin 512 512 Input: 513 1.57 0796 1.570796514 1.57 0796 1.570796515 1.57 0796 1.570796516 517 0.00 0000 0.000000518 0.00 0000 0.000000519 0.00 0000 0.000000520 521 Output: 522 1.00 0000 1.000000523 1.00 0000 1.000000524 1.00 0000 1.000000513 1.57 1.57 514 1.57 1.57 515 1.57 1.57 516 517 0.00 0.00 518 0.00 0.00 519 0.00 0.00 520 521 Output: 522 1.00 1.00 523 1.00 1.00 524 1.00 1.00 525 525 526 526 … … 535 535 Operation: sin 536 536 Input: 537 1.57 0796 1.570796538 1.57 0796 1.570796539 1.57 0796 1.570796540 541 0.00 0000 0.000000542 0.00 0000 0.000000543 0.00 0000 0.000000544 545 Output: 546 1.00 0000 1.000000547 1.00 0000 1.000000548 1.00 0000 1.000000537 1.57 1.57 538 1.57 1.57 539 1.57 1.57 540 541 0.00 0.00 542 0.00 0.00 543 0.00 0.00 544 545 Output: 546 1.00 1.00 547 1.00 1.00 548 1.00 1.00 549 549 550 550 … … 559 559 Operation: sin 560 560 Input: 561 1.57 0796+1.570796i 1.570796+1.570796i562 1.57 0796+1.570796i 1.570796+1.570796i563 1.57 0796+1.570796i 1.570796+1.570796i564 565 0.00 0000+0.000000i 0.000000+0.000000i566 0.00 0000+0.000000i 0.000000+0.000000i567 0.00 0000+0.000000i 0.000000+0.000000i568 569 Output: 570 2.5 09179+-0.000000i 2.509179+-0.000000i571 2.5 09179+-0.000000i 2.509179+-0.000000i572 2.5 09179+-0.000000i 2.509179+-0.000000i561 1.57+1.57i 1.57+1.57i 562 1.57+1.57i 1.57+1.57i 563 1.57+1.57i 1.57+1.57i 564 565 0.00+0.00i 0.00+0.00i 566 0.00+0.00i 0.00+0.00i 567 0.00+0.00i 0.00+0.00i 568 569 Output: 570 2.51-0.00i 2.51-0.00i 571 2.51-0.00i 2.51-0.00i 572 2.51-0.00i 2.51-0.00i 573 573 574 574 … … 607 607 Operation: dsin 608 608 Input: 609 90.00 0000 90.000000610 90.00 0000 90.000000611 90.00 0000 90.000000612 613 0.00 0000 0.000000614 0.00 0000 0.000000615 0.00 0000 0.000000616 617 Output: 618 1.00 0000 1.000000619 1.00 0000 1.000000620 1.00 0000 1.000000609 90.00 90.00 610 90.00 90.00 611 90.00 90.00 612 613 0.00 0.00 614 0.00 0.00 615 0.00 0.00 616 617 Output: 618 1.00 1.00 619 1.00 1.00 620 1.00 1.00 621 621 622 622 … … 631 631 Operation: dsin 632 632 Input: 633 90.00 0000 90.000000634 90.00 0000 90.000000635 90.00 0000 90.000000636 637 0.00 0000 0.000000638 0.00 0000 0.000000639 0.00 0000 0.000000640 641 Output: 642 1.00 0000 1.000000643 1.00 0000 1.000000644 1.00 0000 1.000000633 90.00 90.00 634 90.00 90.00 635 90.00 90.00 636 637 0.00 0.00 638 0.00 0.00 639 0.00 0.00 640 641 Output: 642 1.00 1.00 643 1.00 1.00 644 1.00 1.00 645 645 646 646 … … 655 655 Operation: dsin 656 656 Input: 657 90.00 0000+90.000000i 90.000000+90.000000i658 90.00 0000+90.000000i 90.000000+90.000000i659 90.00 0000+90.000000i 90.000000+90.000000i660 661 0.00 0000+0.000000i 0.000000+0.000000i662 0.00 0000+0.000000i 0.000000+0.000000i663 0.00 0000+0.000000i 0.000000+0.000000i664 665 Output: 666 2.5 09178+0.000000i 2.509178+0.000000i667 2.5 09178+0.000000i 2.509178+0.000000i668 2.5 09178+0.000000i 2.509178+0.000000i657 90.00+90.00i 90.00+90.00i 658 90.00+90.00i 90.00+90.00i 659 90.00+90.00i 90.00+90.00i 660 661 0.00+0.00i 0.00+0.00i 662 0.00+0.00i 0.00+0.00i 663 0.00+0.00i 0.00+0.00i 664 665 Output: 666 2.51-0.00i 2.51-0.00i 667 2.51-0.00i 2.51-0.00i 668 2.51-0.00i 2.51-0.00i 669 669 670 670 … … 703 703 Operation: cos 704 704 Input: 705 0.00 0000 0.000000706 0.00 0000 0.000000707 0.00 0000 0.000000708 709 0.00 0000 0.000000710 0.00 0000 0.000000711 0.00 0000 0.000000712 713 Output: 714 1.00 0000 1.000000715 1.00 0000 1.000000716 1.00 0000 1.000000705 0.00 0.00 706 0.00 0.00 707 0.00 0.00 708 709 0.00 0.00 710 0.00 0.00 711 0.00 0.00 712 713 Output: 714 1.00 1.00 715 1.00 1.00 716 1.00 1.00 717 717 718 718 … … 727 727 Operation: cos 728 728 Input: 729 0.00 0000 0.000000730 0.00 0000 0.000000731 0.00 0000 0.000000732 733 0.00 0000 0.000000734 0.00 0000 0.000000735 0.00 0000 0.000000736 737 Output: 738 1.00 0000 1.000000739 1.00 0000 1.000000740 1.00 0000 1.000000729 0.00 0.00 730 0.00 0.00 731 0.00 0.00 732 733 0.00 0.00 734 0.00 0.00 735 0.00 0.00 736 737 Output: 738 1.00 1.00 739 1.00 1.00 740 1.00 1.00 741 741 742 742 … … 751 751 Operation: cos 752 752 Input: 753 0.00 0000+0.000000i 0.000000+0.000000i754 0.00 0000+0.000000i 0.000000+0.000000i755 0.00 0000+0.000000i 0.000000+0.000000i756 757 0.00 0000+0.000000i 0.000000+0.000000i758 0.00 0000+0.000000i 0.000000+0.000000i759 0.00 0000+0.000000i 0.000000+0.000000i760 761 Output: 762 1.00 0000+-0.000000i 1.000000+-0.000000i763 1.00 0000+-0.000000i 1.000000+-0.000000i764 1.00 0000+-0.000000i 1.000000+-0.000000i753 0.00+0.00i 0.00+0.00i 754 0.00+0.00i 0.00+0.00i 755 0.00+0.00i 0.00+0.00i 756 757 0.00+0.00i 0.00+0.00i 758 0.00+0.00i 0.00+0.00i 759 0.00+0.00i 0.00+0.00i 760 761 Output: 762 1.00-0.00i 1.00-0.00i 763 1.00-0.00i 1.00-0.00i 764 1.00-0.00i 1.00-0.00i 765 765 766 766 … … 799 799 Operation: dcos 800 800 Input: 801 0.00 0000 0.000000802 0.00 0000 0.000000803 0.00 0000 0.000000804 805 0.00 0000 0.000000806 0.00 0000 0.000000807 0.00 0000 0.000000808 809 Output: 810 1.00 0000 1.000000811 1.00 0000 1.000000812 1.00 0000 1.000000801 0.00 0.00 802 0.00 0.00 803 0.00 0.00 804 805 0.00 0.00 806 0.00 0.00 807 0.00 0.00 808 809 Output: 810 1.00 1.00 811 1.00 1.00 812 1.00 1.00 813 813 814 814 … … 823 823 Operation: dcos 824 824 Input: 825 0.00 0000 0.000000826 0.00 0000 0.000000827 0.00 0000 0.000000828 829 0.00 0000 0.000000830 0.00 0000 0.000000831 0.00 0000 0.000000832 833 Output: 834 1.00 0000 1.000000835 1.00 0000 1.000000836 1.00 0000 1.000000825 0.00 0.00 826 0.00 0.00 827 0.00 0.00 828 829 0.00 0.00 830 0.00 0.00 831 0.00 0.00 832 833 Output: 834 1.00 1.00 835 1.00 1.00 836 1.00 1.00 837 837 838 838 … … 847 847 Operation: dcos 848 848 Input: 849 0.00 0000+0.000000i 0.000000+0.000000i850 0.00 0000+0.000000i 0.000000+0.000000i851 0.00 0000+0.000000i 0.000000+0.000000i852 853 0.00 0000+0.000000i 0.000000+0.000000i854 0.00 0000+0.000000i 0.000000+0.000000i855 0.00 0000+0.000000i 0.000000+0.000000i856 857 Output: 858 1.00 0000+-0.000000i 1.000000+-0.000000i859 1.00 0000+-0.000000i 1.000000+-0.000000i860 1.00 0000+-0.000000i 1.000000+-0.000000i849 0.00+0.00i 0.00+0.00i 850 0.00+0.00i 0.00+0.00i 851 0.00+0.00i 0.00+0.00i 852 853 0.00+0.00i 0.00+0.00i 854 0.00+0.00i 0.00+0.00i 855 0.00+0.00i 0.00+0.00i 856 857 Output: 858 1.00-0.00i 1.00-0.00i 859 1.00-0.00i 1.00-0.00i 860 1.00-0.00i 1.00-0.00i 861 861 862 862 … … 895 895 Operation: tan 896 896 Input: 897 0.7 85398 0.785398898 0.7 85398 0.785398899 0.7 85398 0.785398900 901 0.00 0000 0.000000902 0.00 0000 0.000000903 0.00 0000 0.000000904 905 Output: 906 1.00 0000 1.000000907 1.00 0000 1.000000908 1.00 0000 1.000000897 0.79 0.79 898 0.79 0.79 899 0.79 0.79 900 901 0.00 0.00 902 0.00 0.00 903 0.00 0.00 904 905 Output: 906 1.00 1.00 907 1.00 1.00 908 1.00 1.00 909 909 910 910 … … 919 919 Operation: tan 920 920 Input: 921 0.7 85398 0.785398922 0.7 85398 0.785398923 0.7 85398 0.785398924 925 0.00 0000 0.000000926 0.00 0000 0.000000927 0.00 0000 0.000000928 929 Output: 930 1.00 0000 1.000000931 1.00 0000 1.000000932 1.00 0000 1.000000921 0.79 0.79 922 0.79 0.79 923 0.79 0.79 924 925 0.00 0.00 926 0.00 0.00 927 0.00 0.00 928 929 Output: 930 1.00 1.00 931 1.00 1.00 932 1.00 1.00 933 933 934 934 … … 943 943 Operation: tan 944 944 Input: 945 0.7 85398+0.785398i 0.785398+0.785398i946 0.7 85398+0.785398i 0.785398+0.785398i947 0.7 85398+0.785398i 0.785398+0.785398i948 949 0.00 0000+0.000000i 0.000000+0.000000i950 0.00 0000+0.000000i 0.000000+0.000000i951 0.00 0000+0.000000i 0.000000+0.000000i952 953 Output: 954 0. 398537+0.917152i 0.398537+0.917152i955 0. 398537+0.917152i 0.398537+0.917152i956 0. 398537+0.917152i 0.398537+0.917152i945 0.79+0.79i 0.79+0.79i 946 0.79+0.79i 0.79+0.79i 947 0.79+0.79i 0.79+0.79i 948 949 0.00+0.00i 0.00+0.00i 950 0.00+0.00i 0.00+0.00i 951 0.00+0.00i 0.00+0.00i 952 953 Output: 954 0.40+0.92i 0.40+0.92i 955 0.40+0.92i 0.40+0.92i 956 0.40+0.92i 0.40+0.92i 957 957 958 958 … … 991 991 Operation: dtan 992 992 Input: 993 45.00 0000 45.000000994 45.00 0000 45.000000995 45.00 0000 45.000000996 997 0.00 0000 0.000000998 0.00 0000 0.000000999 0.00 0000 0.0000001000 1001 Output: 1002 1.00 0000 1.0000001003 1.00 0000 1.0000001004 1.00 0000 1.000000993 45.00 45.00 994 45.00 45.00 995 45.00 45.00 996 997 0.00 0.00 998 0.00 0.00 999 0.00 0.00 1000 1001 Output: 1002 1.00 1.00 1003 1.00 1.00 1004 1.00 1.00 1005 1005 1006 1006 … … 1015 1015 Operation: dtan 1016 1016 Input: 1017 45.00 0000 45.0000001018 45.00 0000 45.0000001019 45.00 0000 45.0000001020 1021 0.00 0000 0.0000001022 0.00 0000 0.0000001023 0.00 0000 0.0000001024 1025 Output: 1026 1.00 0000 1.0000001027 1.00 0000 1.0000001028 1.00 0000 1.0000001017 45.00 45.00 1018 45.00 45.00 1019 45.00 45.00 1020 1021 0.00 0.00 1022 0.00 0.00 1023 0.00 0.00 1024 1025 Output: 1026 1.00 1.00 1027 1.00 1.00 1028 1.00 1.00 1029 1029 1030 1030 … … 1039 1039 Operation: dtan 1040 1040 Input: 1041 45.00 0000+45.000000i 45.000000+45.000000i1042 45.00 0000+45.000000i 45.000000+45.000000i1043 45.00 0000+45.000000i 45.000000+45.000000i1044 1045 0.00 0000+0.000000i 0.000000+0.000000i1046 0.00 0000+0.000000i 0.000000+0.000000i1047 0.00 0000+0.000000i 0.000000+0.000000i1048 1049 Output: 1050 0. 398537+0.917152i 0.398537+0.917152i1051 0. 398537+0.917152i 0.398537+0.917152i1052 0. 398537+0.917152i 0.398537+0.917152i1041 45.00+45.00i 45.00+45.00i 1042 45.00+45.00i 45.00+45.00i 1043 45.00+45.00i 45.00+45.00i 1044 1045 0.00+0.00i 0.00+0.00i 1046 0.00+0.00i 0.00+0.00i 1047 0.00+0.00i 0.00+0.00i 1048 1049 Output: 1050 0.40+0.92i 0.40+0.92i 1051 0.40+0.92i 0.40+0.92i 1052 0.40+0.92i 0.40+0.92i 1053 1053 1054 1054 … … 1087 1087 Operation: asin 1088 1088 Input: 1089 1.00 0000 1.0000001090 1.00 0000 1.0000001091 1.00 0000 1.0000001092 1093 0.00 0000 0.0000001094 0.00 0000 0.0000001095 0.00 0000 0.0000001096 1097 Output: 1098 1.57 0796 1.5707961099 1.57 0796 1.5707961100 1.57 0796 1.5707961089 1.00 1.00 1090 1.00 1.00 1091 1.00 1.00 1092 1093 0.00 0.00 1094 0.00 0.00 1095 0.00 0.00 1096 1097 Output: 1098 1.57 1.57 1099 1.57 1.57 1100 1.57 1.57 1101 1101 1102 1102 … … 1111 1111 Operation: asin 1112 1112 Input: 1113 1.00 0000 1.0000001114 1.00 0000 1.0000001115 1.00 0000 1.0000001116 1117 0.00 0000 0.0000001118 0.00 0000 0.0000001119 0.00 0000 0.0000001120 1121 Output: 1122 1.57 0796 1.5707961123 1.57 0796 1.5707961124 1.57 0796 1.5707961113 1.00 1.00 1114 1.00 1.00 1115 1.00 1.00 1116 1117 0.00 0.00 1118 0.00 0.00 1119 0.00 0.00 1120 1121 Output: 1122 1.57 1.57 1123 1.57 1.57 1124 1.57 1.57 1125 1125 1126 1126 … … 1135 1135 Operation: asin 1136 1136 Input: 1137 1.00 0000+1.000000i 1.000000+1.000000i1138 1.00 0000+1.000000i 1.000000+1.000000i1139 1.00 0000+1.000000i 1.000000+1.000000i1140 1141 0.00 0000+0.000000i 0.000000+0.000000i1142 0.00 0000+0.000000i 0.000000+0.000000i1143 0.00 0000+0.000000i 0.000000+0.000000i1144 1145 Output: 1146 0.6 66239+1.061275i 0.666239+1.061275i1147 0.6 66239+1.061275i 0.666239+1.061275i1148 0.6 66239+1.061275i 0.666239+1.061275i1137 1.00+1.00i 1.00+1.00i 1138 1.00+1.00i 1.00+1.00i 1139 1.00+1.00i 1.00+1.00i 1140 1141 0.00+0.00i 0.00+0.00i 1142 0.00+0.00i 0.00+0.00i 1143 0.00+0.00i 0.00+0.00i 1144 1145 Output: 1146 0.67+1.06i 0.67+1.06i 1147 0.67+1.06i 0.67+1.06i 1148 0.67+1.06i 0.67+1.06i 1149 1149 1150 1150 … … 1168 1168 1169 1169 Output: 1170 89 891171 89 891172 89 891170 90 90 1171 90 90 1172 90 90 1173 1173 1174 1174 … … 1183 1183 Operation: dasin 1184 1184 Input: 1185 1.00 0000 1.0000001186 1.00 0000 1.0000001187 1.00 0000 1.0000001188 1189 0.00 0000 0.0000001190 0.00 0000 0.0000001191 0.00 0000 0.0000001192 1193 Output: 1194 90.00 0000 90.0000001195 90.00 0000 90.0000001196 90.00 0000 90.0000001185 1.00 1.00 1186 1.00 1.00 1187 1.00 1.00 1188 1189 0.00 0.00 1190 0.00 0.00 1191 0.00 0.00 1192 1193 Output: 1194 90.00 90.00 1195 90.00 90.00 1196 90.00 90.00 1197 1197 1198 1198 … … 1207 1207 Operation: dasin 1208 1208 Input: 1209 1.00 0000 1.0000001210 1.00 0000 1.0000001211 1.00 0000 1.0000001212 1213 0.00 0000 0.0000001214 0.00 0000 0.0000001215 0.00 0000 0.0000001216 1217 Output: 1218 90.00 0000 90.0000001219 90.00 0000 90.0000001220 90.00 0000 90.0000001209 1.00 1.00 1210 1.00 1.00 1211 1.00 1.00 1212 1213 0.00 0.00 1214 0.00 0.00 1215 0.00 0.00 1216 1217 Output: 1218 90.00 90.00 1219 90.00 90.00 1220 90.00 90.00 1221 1221 1222 1222 … … 1231 1231 Operation: dasin 1232 1232 Input: 1233 1.00 0000+1.000000i 1.000000+1.000000i1234 1.00 0000+1.000000i 1.000000+1.000000i1235 1.00 0000+1.000000i 1.000000+1.000000i1236 1237 0.00 0000+0.000000i 0.000000+0.000000i1238 0.00 0000+0.000000i 0.000000+0.000000i1239 0.00 0000+0.000000i 0.000000+0.000000i1240 1241 Output: 1242 38.17 2707+60.806583i 38.172707+60.806583i1243 38.17 2707+60.806583i 38.172707+60.806583i1244 38.17 2707+60.806583i 38.172707+60.806583i1233 1.00+1.00i 1.00+1.00i 1234 1.00+1.00i 1.00+1.00i 1235 1.00+1.00i 1.00+1.00i 1236 1237 0.00+0.00i 0.00+0.00i 1238 0.00+0.00i 0.00+0.00i 1239 0.00+0.00i 0.00+0.00i 1240 1241 Output: 1242 38.17+60.81i 38.17+60.81i 1243 38.17+60.81i 38.17+60.81i 1244 38.17+60.81i 38.17+60.81i 1245 1245 1246 1246 … … 1279 1279 Operation: acos 1280 1280 Input: 1281 0.00 0000 0.0000001282 0.00 0000 0.0000001283 0.00 0000 0.0000001284 1285 0.00 0000 0.0000001286 0.00 0000 0.0000001287 0.00 0000 0.0000001288 1289 Output: 1290 1.57 0796 1.5707961291 1.57 0796 1.5707961292 1.57 0796 1.5707961281 0.00 0.00 1282 0.00 0.00 1283 0.00 0.00 1284 1285 0.00 0.00 1286 0.00 0.00 1287 0.00 0.00 1288 1289 Output: 1290 1.57 1.57 1291 1.57 1.57 1292 1.57 1.57 1293 1293 1294 1294 … … 1303 1303 Operation: acos 1304 1304 Input: 1305 0.00 0000 0.0000001306 0.00 0000 0.0000001307 0.00 0000 0.0000001308 1309 0.00 0000 0.0000001310 0.00 0000 0.0000001311 0.00 0000 0.0000001312 1313 Output: 1314 1.57 0796 1.5707961315 1.57 0796 1.5707961316 1.57 0796 1.5707961305 0.00 0.00 1306 0.00 0.00 1307 0.00 0.00 1308 1309 0.00 0.00 1310 0.00 0.00 1311 0.00 0.00 1312 1313 Output: 1314 1.57 1.57 1315 1.57 1.57 1316 1.57 1.57 1317 1317 1318 1318 … … 1327 1327 Operation: acos 1328 1328 Input: 1329 0.00 0000+0.000000i 0.000000+0.000000i1330 0.00 0000+0.000000i 0.000000+0.000000i1331 0.00 0000+0.000000i 0.000000+0.000000i1332 1333 0.00 0000+0.000000i 0.000000+0.000000i1334 0.00 0000+0.000000i 0.000000+0.000000i1335 0.00 0000+0.000000i 0.000000+0.000000i1336 1337 Output: 1338 1.57 0796+-0.000000i 1.570796+-0.000000i1339 1.57 0796+-0.000000i 1.570796+-0.000000i1340 1.57 0796+-0.000000i 1.570796+-0.000000i1329 0.00+0.00i 0.00+0.00i 1330 0.00+0.00i 0.00+0.00i 1331 0.00+0.00i 0.00+0.00i 1332 1333 0.00+0.00i 0.00+0.00i 1334 0.00+0.00i 0.00+0.00i 1335 0.00+0.00i 0.00+0.00i 1336 1337 Output: 1338 1.57-0.00i 1.57-0.00i 1339 1.57-0.00i 1.57-0.00i 1340 1.57-0.00i 1.57-0.00i 1341 1341 1342 1342 … … 1360 1360 1361 1361 Output: 1362 89 891363 89 891364 89 891362 90 90 1363 90 90 1364 90 90 1365 1365 1366 1366 … … 1375 1375 Operation: dacos 1376 1376 Input: 1377 0.00 0000 0.0000001378 0.00 0000 0.0000001379 0.00 0000 0.0000001380 1381 0.00 0000 0.0000001382 0.00 0000 0.0000001383 0.00 0000 0.0000001384 1385 Output: 1386 90.00 0000 90.0000001387 90.00 0000 90.0000001388 90.00 0000 90.0000001377 0.00 0.00 1378 0.00 0.00 1379 0.00 0.00 1380 1381 0.00 0.00 1382 0.00 0.00 1383 0.00 0.00 1384 1385 Output: 1386 90.00 90.00 1387 90.00 90.00 1388 90.00 90.00 1389 1389 1390 1390 … … 1399 1399 Operation: dacos 1400 1400 Input: 1401 0.00 0000 0.0000001402 0.00 0000 0.0000001403 0.00 0000 0.0000001404 1405 0.00 0000 0.0000001406 0.00 0000 0.0000001407 0.00 0000 0.0000001408 1409 Output: 1410 90.00 0000 90.0000001411 90.00 0000 90.0000001412 90.00 0000 90.0000001401 0.00 0.00 1402 0.00 0.00 1403 0.00 0.00 1404 1405 0.00 0.00 1406 0.00 0.00 1407 0.00 0.00 1408 1409 Output: 1410 90.00 90.00 1411 90.00 90.00 1412 90.00 90.00 1413 1413 1414 1414 … … 1423 1423 Operation: dacos 1424 1424 Input: 1425 0.00 0000+0.000000i 0.000000+0.000000i1426 0.00 0000+0.000000i 0.000000+0.000000i1427 0.00 0000+0.000000i 0.000000+0.000000i1428 1429 0.00 0000+0.000000i 0.000000+0.000000i1430 0.00 0000+0.000000i 0.000000+0.000000i1431 0.00 0000+0.000000i 0.000000+0.000000i1432 1433 Output: 1434 90.00 0000+0.000000i 90.000000+0.000000i1435 90.00 0000+0.000000i 90.000000+0.000000i1436 90.00 0000+0.000000i 90.000000+0.000000i1425 0.00+0.00i 0.00+0.00i 1426 0.00+0.00i 0.00+0.00i 1427 0.00+0.00i 0.00+0.00i 1428 1429 0.00+0.00i 0.00+0.00i 1430 0.00+0.00i 0.00+0.00i 1431 0.00+0.00i 0.00+0.00i 1432 1433 Output: 1434 90.00+0.00i 90.00+0.00i 1435 90.00+0.00i 90.00+0.00i 1436 90.00+0.00i 90.00+0.00i 1437 1437 1438 1438 … … 1471 1471 Operation: atan 1472 1472 Input: 1473 1.00 0000 1.0000001474 1.00 0000 1.0000001475 1.00 0000 1.0000001476 1477 0.00 0000 0.0000001478 0.00 0000 0.0000001479 0.00 0000 0.0000001480 1481 Output: 1482 0.7 85398 0.7853981483 0.7 85398 0.7853981484 0.7 85398 0.7853981473 1.00 1.00 1474 1.00 1.00 1475 1.00 1.00 1476 1477 0.00 0.00 1478 0.00 0.00 1479 0.00 0.00 1480 1481 Output: 1482 0.79 0.79 1483 0.79 0.79 1484 0.79 0.79 1485 1485 1486 1486 … … 1495 1495 Operation: atan 1496 1496 Input: 1497 1.00 0000 1.0000001498 1.00 0000 1.0000001499 1.00 0000 1.0000001500 1501 0.00 0000 0.0000001502 0.00 0000 0.0000001503 0.00 0000 0.0000001504 1505 Output: 1506 0.7 85398 0.7853981507 0.7 85398 0.7853981508 0.7 85398 0.7853981497 1.00 1.00 1498 1.00 1.00 1499 1.00 1.00 1500 1501 0.00 0.00 1502 0.00 0.00 1503 0.00 0.00 1504 1505 Output: 1506 0.79 0.79 1507 0.79 0.79 1508 0.79 0.79 1509 1509 1510 1510 … … 1519 1519 Operation: atan 1520 1520 Input: 1521 1.00 0000+1.000000i 1.000000+1.000000i1522 1.00 0000+1.000000i 1.000000+1.000000i1523 1.00 0000+1.000000i 1.000000+1.000000i1524 1525 0.00 0000+0.000000i 0.000000+0.000000i1526 0.00 0000+0.000000i 0.000000+0.000000i1527 0.00 0000+0.000000i 0.000000+0.000000i1528 1529 Output: 1530 1.0 17222+0.402359i 1.017222+0.402359i1531 1.0 17222+0.402359i 1.017222+0.402359i1532 1.0 17222+0.402359i 1.017222+0.402359i1521 1.00+1.00i 1.00+1.00i 1522 1.00+1.00i 1.00+1.00i 1523 1.00+1.00i 1.00+1.00i 1524 1525 0.00+0.00i 0.00+0.00i 1526 0.00+0.00i 0.00+0.00i 1527 0.00+0.00i 0.00+0.00i 1528 1529 Output: 1530 1.02+0.40i 1.02+0.40i 1531 1.02+0.40i 1.02+0.40i 1532 1.02+0.40i 1.02+0.40i 1533 1533 1534 1534 … … 1567 1567 Operation: datan 1568 1568 Input: 1569 1.00 0000 1.0000001570 1.00 0000 1.0000001571 1.00 0000 1.0000001572 1573 0.00 0000 0.0000001574 0.00 0000 0.0000001575 0.00 0000 0.0000001576 1577 Output: 1578 45.00 0000 45.0000001579 45.00 0000 45.0000001580 45.00 0000 45.0000001569 1.00 1.00 1570 1.00 1.00 1571 1.00 1.00 1572 1573 0.00 0.00 1574 0.00 0.00 1575 0.00 0.00 1576 1577 Output: 1578 45.00 45.00 1579 45.00 45.00 1580 45.00 45.00 1581 1581 1582 1582 … … 1591 1591 Operation: datan 1592 1592 Input: 1593 1.00 0000 1.0000001594 1.00 0000 1.0000001595 1.00 0000 1.0000001596 1597 0.00 0000 0.0000001598 0.00 0000 0.0000001599 0.00 0000 0.0000001600 1601 Output: 1602 45.00 0000 45.0000001603 45.00 0000 45.0000001604 45.00 0000 45.0000001593 1.00 1.00 1594 1.00 1.00 1595 1.00 1.00 1596 1597 0.00 0.00 1598 0.00 0.00 1599 0.00 0.00 1600 1601 Output: 1602 45.00 45.00 1603 45.00 45.00 1604 45.00 45.00 1605 1605 1606 1606 … … 1615 1615 Operation: datan 1616 1616 Input: 1617 1.00 0000+1.000000i 1.000000+1.000000i1618 1.00 0000+1.000000i 1.000000+1.000000i1619 1.00 0000+1.000000i 1.000000+1.000000i1620 1621 0.00 0000+0.000000i 0.000000+0.000000i1622 0.00 0000+0.000000i 0.000000+0.000000i1623 0.00 0000+0.000000i 0.000000+0.000000i1624 1625 Output: 1626 58.28 2524+23.053499i 58.282524+23.053499i1627 58.28 2524+23.053499i 58.282524+23.053499i1628 58.28 2524+23.053499i 58.282524+23.053499i1617 1.00+1.00i 1.00+1.00i 1618 1.00+1.00i 1.00+1.00i 1619 1.00+1.00i 1.00+1.00i 1620 1621 0.00+0.00i 0.00+0.00i 1622 0.00+0.00i 0.00+0.00i 1623 0.00+0.00i 0.00+0.00i 1624 1625 Output: 1626 58.28+23.05i 58.28+23.05i 1627 58.28+23.05i 58.28+23.05i 1628 58.28+23.05i 58.28+23.05i 1629 1629 1630 1630 … … 1663 1663 Operation: abs 1664 1664 Input: 1665 -10.00 00001666 -10.00 00001667 -10.00 00001668 1669 0.00 00001670 0.00 00001671 0.00 00001672 1673 Output: 1674 10.00 00001675 10.00 00001676 10.00 00001665 -10.00 1666 -10.00 1667 -10.00 1668 1669 0.00 1670 0.00 1671 0.00 1672 1673 Output: 1674 10.00 1675 10.00 1676 10.00 1677 1677 1678 1678 … … 1687 1687 Operation: abs 1688 1688 Input: 1689 -10.00 00001690 -10.00 00001691 -10.00 00001692 1693 0.00 00001694 0.00 00001695 0.00 00001696 1697 Output: 1698 10.00 00001699 10.00 00001700 10.00 00001689 -10.00 1690 -10.00 1691 -10.00 1692 1693 0.00 1694 0.00 1695 0.00 1696 1697 Output: 1698 10.00 1699 10.00 1700 10.00 1701 1701 1702 1702 … … 1711 1711 Operation: abs 1712 1712 Input: 1713 -10.00 0000+-10.000000i1714 -10.00 0000+-10.000000i1715 -10.00 0000+-10.000000i1716 1717 0.00 0000+0.000000i1718 0.00 0000+0.000000i1719 0.00 0000+0.000000i1720 1721 Output: 1722 14.14 2136+0.000000i1723 14.14 2136+0.000000i1724 14.14 2136+0.000000i1713 -10.00-10.00i 1714 -10.00-10.00i 1715 -10.00-10.00i 1716 1717 0.00+0.00i 1718 0.00+0.00i 1719 0.00+0.00i 1720 1721 Output: 1722 14.14+0.00i 1723 14.14+0.00i 1724 14.14+0.00i 1725 1725 1726 1726 … … 1759 1759 Operation: exp 1760 1760 Input: 1761 10.00 00001762 10.00 00001763 10.00 00001764 1765 0.00 00001766 0.00 00001767 0.00 00001768 1769 Output: 1770 22026.46 48441771 22026.46 48441772 22026.46 48441761 10.00 1762 10.00 1763 10.00 1764 1765 0.00 1766 0.00 1767 0.00 1768 1769 Output: 1770 22026.46 1771 22026.46 1772 22026.46 1773 1773 1774 1774 … … 1783 1783 Operation: exp 1784 1784 Input: 1785 10.00 00001786 10.00 00001787 10.00 00001788 1789 0.00 00001790 0.00 00001791 0.00 00001792 1793 Output: 1794 22026.4 657951795 22026.4 657951796 22026.4 657951785 10.00 1786 10.00 1787 10.00 1788 1789 0.00 1790 0.00 1791 0.00 1792 1793 Output: 1794 22026.47 1795 22026.47 1796 22026.47 1797 1797 1798 1798 … … 1807 1807 Operation: exp 1808 1808 Input: 1809 10.00 0000+10.000000i1810 10.00 0000+10.000000i1811 10.00 0000+10.000000i1812 1813 0.00 0000+0.000000i1814 0.00 0000+0.000000i1815 0.00 0000+0.000000i1816 1817 Output: 1818 -18481.78 1250+-11982.862305i1819 -18481.78 1250+-11982.862305i1820 -18481.78 1250+-11982.862305i1809 10.00+10.00i 1810 10.00+10.00i 1811 10.00+10.00i 1812 1813 0.00+0.00i 1814 0.00+0.00i 1815 0.00+0.00i 1816 1817 Output: 1818 -18481.78-11982.86i 1819 -18481.78-11982.86i 1820 -18481.78-11982.86i 1821 1821 1822 1822 … … 1855 1855 Operation: ln 1856 1856 Input: 1857 10.00 00001858 10.00 00001859 10.00 00001860 1861 0.00 00001862 0.00 00001863 0.00 00001864 1865 Output: 1866 2.30 25851867 2.30 25851868 2.30 25851857 10.00 1858 10.00 1859 10.00 1860 1861 0.00 1862 0.00 1863 0.00 1864 1865 Output: 1866 2.30 1867 2.30 1868 2.30 1869 1869 1870 1870 … … 1879 1879 Operation: ln 1880 1880 Input: 1881 10.00 00001882 10.00 00001883 10.00 00001884 1885 0.00 00001886 0.00 00001887 0.00 00001888 1889 Output: 1890 2.30 25851891 2.30 25851892 2.30 25851881 10.00 1882 10.00 1883 10.00 1884 1885 0.00 1886 0.00 1887 0.00 1888 1889 Output: 1890 2.30 1891 2.30 1892 2.30 1893 1893 1894 1894 … … 1903 1903 Operation: ln 1904 1904 Input: 1905 10.00 0000+10.000000i1906 10.00 0000+10.000000i1907 10.00 0000+10.000000i1908 1909 0.00 0000+0.000000i1910 0.00 0000+0.000000i1911 0.00 0000+0.000000i1912 1913 Output: 1914 2.6 49159+0.785398i1915 2.6 49159+0.785398i1916 2.6 49159+0.785398i1905 10.00+10.00i 1906 10.00+10.00i 1907 10.00+10.00i 1908 1909 0.00+0.00i 1910 0.00+0.00i 1911 0.00+0.00i 1912 1913 Output: 1914 2.65+0.79i 1915 2.65+0.79i 1916 2.65+0.79i 1917 1917 1918 1918 … … 1951 1951 Operation: ten 1952 1952 Input: 1953 3.00 00001954 3.00 00001955 3.00 00001956 1957 0.00 00001958 0.00 00001959 0.00 00001960 1961 Output: 1962 1000.00 00001963 1000.00 00001964 1000.00 00001953 3.00 1954 3.00 1955 3.00 1956 1957 0.00 1958 0.00 1959 0.00 1960 1961 Output: 1962 1000.00 1963 1000.00 1964 1000.00 1965 1965 1966 1966 … … 1975 1975 Operation: ten 1976 1976 Input: 1977 3.00 00001978 3.00 00001979 3.00 00001980 1981 0.00 00001982 0.00 00001983 0.00 00001984 1985 Output: 1986 1000.00 00001987 1000.00 00001988 1000.00 00001977 3.00 1978 3.00 1979 3.00 1980 1981 0.00 1982 0.00 1983 0.00 1984 1985 Output: 1986 1000.00 1987 1000.00 1988 1000.00 1989 1989 1990 1990 … … 1999 1999 Operation: ten 2000 2000 Input: 2001 3.00 0000+3.000000i2002 3.00 0000+3.000000i2003 3.00 0000+3.000000i2004 2005 0.00 0000+0.000000i2006 0.00 0000+0.000000i2007 0.00 0000+0.000000i2008 2009 Output: 2010 811.21 4661+584.748474i2011 811.21 4661+584.748474i2012 811.21 4661+584.748474i2001 3.00+3.00i 2002 3.00+3.00i 2003 3.00+3.00i 2004 2005 0.00+0.00i 2006 0.00+0.00i 2007 0.00+0.00i 2008 2009 Output: 2010 811.21+584.75i 2011 811.21+584.75i 2012 811.21+584.75i 2013 2013 2014 2014 … … 2047 2047 Operation: log 2048 2048 Input: 2049 1000.00 00002050 1000.00 00002051 1000.00 00002052 2053 0.00 00002054 0.00 00002055 0.00 00002056 2057 Output: 2058 3.00 00002059 3.00 00002060 3.00 00002049 1000.00 2050 1000.00 2051 1000.00 2052 2053 0.00 2054 0.00 2055 0.00 2056 2057 Output: 2058 3.00 2059 3.00 2060 3.00 2061 2061 2062 2062 … … 2071 2071 Operation: log 2072 2072 Input: 2073 1000.00 00002074 1000.00 00002075 1000.00 00002076 2077 0.00 00002078 0.00 00002079 0.00 00002080 2081 Output: 2082 3.00 00002083 3.00 00002084 3.00 00002073 1000.00 2074 1000.00 2075 1000.00 2076 2077 0.00 2078 0.00 2079 0.00 2080 2081 Output: 2082 3.00 2083 3.00 2084 3.00 2085 2085 2086 2086 … … 2095 2095 Operation: log 2096 2096 Input: 2097 1000.00 0000+1000.000000i2098 1000.00 0000+1000.000000i2099 1000.00 0000+1000.000000i2100 2101 0.00 0000+0.000000i2102 0.00 0000+0.000000i2103 0.00 0000+0.000000i2104 2105 Output: 2106 3.15 0515+0.341094i2107 3.15 0515+0.341094i2108 3.15 0515+0.341094i2097 1000.00+1000.00i 2098 1000.00+1000.00i 2099 1000.00+1000.00i 2100 2101 0.00+0.00i 2102 0.00+0.00i 2103 0.00+0.00i 2104 2105 Output: 2106 3.15+0.34i 2107 3.15+0.34i 2108 3.15+0.34i 2109 2109 2110 2110 … … 2143 2143 Operation: sin 2144 2144 Input: 2145 1.57 07962146 1.57 07962147 1.57 07962148 2149 0.00 00002150 0.00 00002151 0.00 00002152 2153 Output: 2154 1.00 00002155 1.00 00002156 1.00 00002145 1.57 2146 1.57 2147 1.57 2148 2149 0.00 2150 0.00 2151 0.00 2152 2153 Output: 2154 1.00 2155 1.00 2156 1.00 2157 2157 2158 2158 … … 2167 2167 Operation: sin 2168 2168 Input: 2169 1.57 07962170 1.57 07962171 1.57 07962172 2173 0.00 00002174 0.00 00002175 0.00 00002176 2177 Output: 2178 1.00 00002179 1.00 00002180 1.00 00002169 1.57 2170 1.57 2171 1.57 2172 2173 0.00 2174 0.00 2175 0.00 2176 2177 Output: 2178 1.00 2179 1.00 2180 1.00 2181 2181 2182 2182 … … 2191 2191 Operation: sin 2192 2192 Input: 2193 1.57 0796+1.570796i2194 1.57 0796+1.570796i2195 1.57 0796+1.570796i2196 2197 0.00 0000+0.000000i2198 0.00 0000+0.000000i2199 0.00 0000+0.000000i2200 2201 Output: 2202 2.5 09179+-0.000000i2203 2.5 09179+-0.000000i2204 2.5 09179+-0.000000i2193 1.57+1.57i 2194 1.57+1.57i 2195 1.57+1.57i 2196 2197 0.00+0.00i 2198 0.00+0.00i 2199 0.00+0.00i 2200 2201 Output: 2202 2.51-0.00i 2203 2.51-0.00i 2204 2.51-0.00i 2205 2205 2206 2206 … … 2239 2239 Operation: dsin 2240 2240 Input: 2241 90.00 00002242 90.00 00002243 90.00 00002244 2245 0.00 00002246 0.00 00002247 0.00 00002248 2249 Output: 2250 1.00 00002251 1.00 00002252 1.00 00002241 90.00 2242 90.00 2243 90.00 2244 2245 0.00 2246 0.00 2247 0.00 2248 2249 Output: 2250 1.00 2251 1.00 2252 1.00 2253 2253 2254 2254 … … 2263 2263 Operation: dsin 2264 2264 Input: 2265 90.00 00002266 90.00 00002267 90.00 00002268 2269 0.00 00002270 0.00 00002271 0.00 00002272 2273 Output: 2274 1.00 00002275 1.00 00002276 1.00 00002265 90.00 2266 90.00 2267 90.00 2268 2269 0.00 2270 0.00 2271 0.00 2272 2273 Output: 2274 1.00 2275 1.00 2276 1.00 2277 2277 2278 2278 … … 2287 2287 Operation: dsin 2288 2288 Input: 2289 90.00 0000+90.000000i2290 90.00 0000+90.000000i2291 90.00 0000+90.000000i2292 2293 0.00 0000+0.000000i2294 0.00 0000+0.000000i2295 0.00 0000+0.000000i2296 2297 Output: 2298 2.5 09178+0.000000i2299 2.5 09178+0.000000i2300 2.5 09178+0.000000i2289 90.00+90.00i 2290 90.00+90.00i 2291 90.00+90.00i 2292 2293 0.00+0.00i 2294 0.00+0.00i 2295 0.00+0.00i 2296 2297 Output: 2298 2.51-0.00i 2299 2.51-0.00i 2300 2.51-0.00i 2301 2301 2302 2302 … … 2335 2335 Operation: cos 2336 2336 Input: 2337 0.00 00002338 0.00 00002339 0.00 00002340 2341 0.00 00002342 0.00 00002343 0.00 00002344 2345 Output: 2346 1.00 00002347 1.00 00002348 1.00 00002337 0.00 2338 0.00 2339 0.00 2340 2341 0.00 2342 0.00 2343 0.00 2344 2345 Output: 2346 1.00 2347 1.00 2348 1.00 2349 2349 2350 2350 … … 2359 2359 Operation: cos 2360 2360 Input: 2361 0.00 00002362 0.00 00002363 0.00 00002364 2365 0.00 00002366 0.00 00002367 0.00 00002368 2369 Output: 2370 1.00 00002371 1.00 00002372 1.00 00002361 0.00 2362 0.00 2363 0.00 2364 2365 0.00 2366 0.00 2367 0.00 2368 2369 Output: 2370 1.00 2371 1.00 2372 1.00 2373 2373 2374 2374 … … 2383 2383 Operation: cos 2384 2384 Input: 2385 0.00 0000+0.000000i2386 0.00 0000+0.000000i2387 0.00 0000+0.000000i2388 2389 0.00 0000+0.000000i2390 0.00 0000+0.000000i2391 0.00 0000+0.000000i2392 2393 Output: 2394 1.00 0000+-0.000000i2395 1.00 0000+-0.000000i2396 1.00 0000+-0.000000i2385 0.00+0.00i 2386 0.00+0.00i 2387 0.00+0.00i 2388 2389 0.00+0.00i 2390 0.00+0.00i 2391 0.00+0.00i 2392 2393 Output: 2394 1.00-0.00i 2395 1.00-0.00i 2396 1.00-0.00i 2397 2397 2398 2398 … … 2431 2431 Operation: dcos 2432 2432 Input: 2433 0.00 00002434 0.00 00002435 0.00 00002436 2437 0.00 00002438 0.00 00002439 0.00 00002440 2441 Output: 2442 1.00 00002443 1.00 00002444 1.00 00002433 0.00 2434 0.00 2435 0.00 2436 2437 0.00 2438 0.00 2439 0.00 2440 2441 Output: 2442 1.00 2443 1.00 2444 1.00 2445 2445 2446 2446 … … 2455 2455 Operation: dcos 2456 2456 Input: 2457 0.00 00002458 0.00 00002459 0.00 00002460 2461 0.00 00002462 0.00 00002463 0.00 00002464 2465 Output: 2466 1.00 00002467 1.00 00002468 1.00 00002457 0.00 2458 0.00 2459 0.00 2460 2461 0.00 2462 0.00 2463 0.00 2464 2465 Output: 2466 1.00 2467 1.00 2468 1.00 2469 2469 2470 2470 … … 2479 2479 Operation: dcos 2480 2480 Input: 2481 0.00 0000+0.000000i2482 0.00 0000+0.000000i2483 0.00 0000+0.000000i2484 2485 0.00 0000+0.000000i2486 0.00 0000+0.000000i2487 0.00 0000+0.000000i2488 2489 Output: 2490 1.00 0000+-0.000000i2491 1.00 0000+-0.000000i2492 1.00 0000+-0.000000i2481 0.00+0.00i 2482 0.00+0.00i 2483 0.00+0.00i 2484 2485 0.00+0.00i 2486 0.00+0.00i 2487 0.00+0.00i 2488 2489 Output: 2490 1.00-0.00i 2491 1.00-0.00i 2492 1.00-0.00i 2493 2493 2494 2494 … … 2527 2527 Operation: tan 2528 2528 Input: 2529 0.7 853982530 0.7 853982531 0.7 853982532 2533 0.00 00002534 0.00 00002535 0.00 00002536 2537 Output: 2538 1.00 00002539 1.00 00002540 1.00 00002529 0.79 2530 0.79 2531 0.79 2532 2533 0.00 2534 0.00 2535 0.00 2536 2537 Output: 2538 1.00 2539 1.00 2540 1.00 2541 2541 2542 2542 … … 2551 2551 Operation: tan 2552 2552 Input: 2553 0.7 853982554 0.7 853982555 0.7 853982556 2557 0.00 00002558 0.00 00002559 0.00 00002560 2561 Output: 2562 1.00 00002563 1.00 00002564 1.00 00002553 0.79 2554 0.79 2555 0.79 2556 2557 0.00 2558 0.00 2559 0.00 2560 2561 Output: 2562 1.00 2563 1.00 2564 1.00 2565 2565 2566 2566 … … 2575 2575 Operation: tan 2576 2576 Input: 2577 0.7 85398+0.785398i2578 0.7 85398+0.785398i2579 0.7 85398+0.785398i2580 2581 0.00 0000+0.000000i2582 0.00 0000+0.000000i2583 0.00 0000+0.000000i2584 2585 Output: 2586 0. 398537+0.917152i2587 0. 398537+0.917152i2588 0. 398537+0.917152i2577 0.79+0.79i 2578 0.79+0.79i 2579 0.79+0.79i 2580 2581 0.00+0.00i 2582 0.00+0.00i 2583 0.00+0.00i 2584 2585 Output: 2586 0.40+0.92i 2587 0.40+0.92i 2588 0.40+0.92i 2589 2589 2590 2590 … … 2623 2623 Operation: dtan 2624 2624 Input: 2625 45.00 00002626 45.00 00002627 45.00 00002628 2629 0.00 00002630 0.00 00002631 0.00 00002632 2633 Output: 2634 1.00 00002635 1.00 00002636 1.00 00002625 45.00 2626 45.00 2627 45.00 2628 2629 0.00 2630 0.00 2631 0.00 2632 2633 Output: 2634 1.00 2635 1.00 2636 1.00 2637 2637 2638 2638 … … 2647 2647 Operation: dtan 2648 2648 Input: 2649 45.00 00002650 45.00 00002651 45.00 00002652 2653 0.00 00002654 0.00 00002655 0.00 00002656 2657 Output: 2658 1.00 00002659 1.00 00002660 1.00 00002649 45.00 2650 45.00 2651 45.00 2652 2653 0.00 2654 0.00 2655 0.00 2656 2657 Output: 2658 1.00 2659 1.00 2660 1.00 2661 2661 2662 2662 … … 2671 2671 Operation: dtan 2672 2672 Input: 2673 45.00 0000+45.000000i2674 45.00 0000+45.000000i2675 45.00 0000+45.000000i2676 2677 0.00 0000+0.000000i2678 0.00 0000+0.000000i2679 0.00 0000+0.000000i2680 2681 Output: 2682 0. 398537+0.917152i2683 0. 398537+0.917152i2684 0. 398537+0.917152i2673 45.00+45.00i 2674 45.00+45.00i 2675 45.00+45.00i 2676 2677 0.00+0.00i 2678 0.00+0.00i 2679 0.00+0.00i 2680 2681 Output: 2682 0.40+0.92i 2683 0.40+0.92i 2684 0.40+0.92i 2685 2685 2686 2686 … … 2719 2719 Operation: asin 2720 2720 Input: 2721 1.00 00002722 1.00 00002723 1.00 00002724 2725 0.00 00002726 0.00 00002727 0.00 00002728 2729 Output: 2730 1.57 07962731 1.57 07962732 1.57 07962721 1.00 2722 1.00 2723 1.00 2724 2725 0.00 2726 0.00 2727 0.00 2728 2729 Output: 2730 1.57 2731 1.57 2732 1.57 2733 2733 2734 2734 … … 2743 2743 Operation: asin 2744 2744 Input: 2745 1.00 00002746 1.00 00002747 1.00 00002748 2749 0.00 00002750 0.00 00002751 0.00 00002752 2753 Output: 2754 1.57 07962755 1.57 07962756 1.57 07962745 1.00 2746 1.00 2747 1.00 2748 2749 0.00 2750 0.00 2751 0.00 2752 2753 Output: 2754 1.57 2755 1.57 2756 1.57 2757 2757 2758 2758 … … 2767 2767 Operation: asin 2768 2768 Input: 2769 1.00 0000+1.000000i2770 1.00 0000+1.000000i2771 1.00 0000+1.000000i2772 2773 0.00 0000+0.000000i2774 0.00 0000+0.000000i2775 0.00 0000+0.000000i2776 2777 Output: 2778 0.6 66239+1.061275i2779 0.6 66239+1.061275i2780 0.6 66239+1.061275i2769 1.00+1.00i 2770 1.00+1.00i 2771 1.00+1.00i 2772 2773 0.00+0.00i 2774 0.00+0.00i 2775 0.00+0.00i 2776 2777 Output: 2778 0.67+1.06i 2779 0.67+1.06i 2780 0.67+1.06i 2781 2781 2782 2782 … … 2800 2800 2801 2801 Output: 2802 89 2803 89 2804 89 2802 90 2803 90 2804 90 2805 2805 2806 2806 … … 2815 2815 Operation: dasin 2816 2816 Input: 2817 1.00 00002818 1.00 00002819 1.00 00002820 2821 0.00 00002822 0.00 00002823 0.00 00002824 2825 Output: 2826 90.00 00002827 90.00 00002828 90.00 00002817 1.00 2818 1.00 2819 1.00 2820 2821 0.00 2822 0.00 2823 0.00 2824 2825 Output: 2826 90.00 2827 90.00 2828 90.00 2829 2829 2830 2830 … … 2839 2839 Operation: dasin 2840 2840 Input: 2841 1.00 00002842 1.00 00002843 1.00 00002844 2845 0.00 00002846 0.00 00002847 0.00 00002848 2849 Output: 2850 90.00 00002851 90.00 00002852 90.00 00002841 1.00 2842 1.00 2843 1.00 2844 2845 0.00 2846 0.00 2847 0.00 2848 2849 Output: 2850 90.00 2851 90.00 2852 90.00 2853 2853 2854 2854 … … 2863 2863 Operation: dasin 2864 2864 Input: 2865 1.00 0000+1.000000i2866 1.00 0000+1.000000i2867 1.00 0000+1.000000i2868 2869 0.00 0000+0.000000i2870 0.00 0000+0.000000i2871 0.00 0000+0.000000i2872 2873 Output: 2874 38.17 2707+60.806583i2875 38.17 2707+60.806583i2876 38.17 2707+60.806583i2865 1.00+1.00i 2866 1.00+1.00i 2867 1.00+1.00i 2868 2869 0.00+0.00i 2870 0.00+0.00i 2871 0.00+0.00i 2872 2873 Output: 2874 38.17+60.81i 2875 38.17+60.81i 2876 38.17+60.81i 2877 2877 2878 2878 … … 2911 2911 Operation: acos 2912 2912 Input: 2913 0.00 00002914 0.00 00002915 0.00 00002916 2917 0.00 00002918 0.00 00002919 0.00 00002920 2921 Output: 2922 1.57 07962923 1.57 07962924 1.57 07962913 0.00 2914 0.00 2915 0.00 2916 2917 0.00 2918 0.00 2919 0.00 2920 2921 Output: 2922 1.57 2923 1.57 2924 1.57 2925 2925 2926 2926 … … 2935 2935 Operation: acos 2936 2936 Input: 2937 0.00 00002938 0.00 00002939 0.00 00002940 2941 0.00 00002942 0.00 00002943 0.00 00002944 2945 Output: 2946 1.57 07962947 1.57 07962948 1.57 07962937 0.00 2938 0.00 2939 0.00 2940 2941 0.00 2942 0.00 2943 0.00 2944 2945 Output: 2946 1.57 2947 1.57 2948 1.57 2949 2949 2950 2950 … … 2959 2959 Operation: acos 2960 2960 Input: 2961 0.00 0000+0.000000i2962 0.00 0000+0.000000i2963 0.00 0000+0.000000i2964 2965 0.00 0000+0.000000i2966 0.00 0000+0.000000i2967 0.00 0000+0.000000i2968 2969 Output: 2970 1.57 0796+-0.000000i2971 1.57 0796+-0.000000i2972 1.57 0796+-0.000000i2961 0.00+0.00i 2962 0.00+0.00i 2963 0.00+0.00i 2964 2965 0.00+0.00i 2966 0.00+0.00i 2967 0.00+0.00i 2968 2969 Output: 2970 1.57-0.00i 2971 1.57-0.00i 2972 1.57-0.00i 2973 2973 2974 2974 … … 2992 2992 2993 2993 Output: 2994 89 2995 89 2996 89 2994 90 2995 90 2996 90 2997 2997 2998 2998 … … 3007 3007 Operation: dacos 3008 3008 Input: 3009 0.00 00003010 0.00 00003011 0.00 00003012 3013 0.00 00003014 0.00 00003015 0.00 00003016 3017 Output: 3018 90.00 00003019 90.00 00003020 90.00 00003009 0.00 3010 0.00 3011 0.00 3012 3013 0.00 3014 0.00 3015 0.00 3016 3017 Output: 3018 90.00 3019 90.00 3020 90.00 3021 3021 3022 3022 … … 3031 3031 Operation: dacos 3032 3032 Input: 3033 0.00 00003034 0.00 00003035 0.00 00003036 3037 0.00 00003038 0.00 00003039 0.00 00003040 3041 Output: 3042 90.00 00003043 90.00 00003044 90.00 00003033 0.00 3034 0.00 3035 0.00 3036 3037 0.00 3038 0.00 3039 0.00 3040 3041 Output: 3042 90.00 3043 90.00 3044 90.00 3045 3045 3046 3046 … … 3055 3055 Operation: dacos 3056 3056 Input: 3057 0.00 0000+0.000000i3058 0.00 0000+0.000000i3059 0.00 0000+0.000000i3060 3061 0.00 0000+0.000000i3062 0.00 0000+0.000000i3063 0.00 0000+0.000000i3064 3065 Output: 3066 90.00 0000+0.000000i3067 90.00 0000+0.000000i3068 90.00 0000+0.000000i3057 0.00+0.00i 3058 0.00+0.00i 3059 0.00+0.00i 3060 3061 0.00+0.00i 3062 0.00+0.00i 3063 0.00+0.00i 3064 3065 Output: 3066 90.00+0.00i 3067 90.00+0.00i 3068 90.00+0.00i 3069 3069 3070 3070 … … 3103 3103 Operation: atan 3104 3104 Input: 3105 1.00 00003106 1.00 00003107 1.00 00003108 3109 0.00 00003110 0.00 00003111 0.00 00003112 3113 Output: 3114 0.7 853983115 0.7 853983116 0.7 853983105 1.00 3106 1.00 3107 1.00 3108 3109 0.00 3110 0.00 3111 0.00 3112 3113 Output: 3114 0.79 3115 0.79 3116 0.79 3117 3117 3118 3118 … … 3127 3127 Operation: atan 3128 3128 Input: 3129 1.00 00003130 1.00 00003131 1.00 00003132 3133 0.00 00003134 0.00 00003135 0.00 00003136 3137 Output: 3138 0.7 853983139 0.7 853983140 0.7 853983129 1.00 3130 1.00 3131 1.00 3132 3133 0.00 3134 0.00 3135 0.00 3136 3137 Output: 3138 0.79 3139 0.79 3140 0.79 3141 3141 3142 3142 … … 3151 3151 Operation: atan 3152 3152 Input: 3153 1.00 0000+1.000000i3154 1.00 0000+1.000000i3155 1.00 0000+1.000000i3156 3157 0.00 0000+0.000000i3158 0.00 0000+0.000000i3159 0.00 0000+0.000000i3160 3161 Output: 3162 1.0 17222+0.402359i3163 1.0 17222+0.402359i3164 1.0 17222+0.402359i3153 1.00+1.00i 3154 1.00+1.00i 3155 1.00+1.00i 3156 3157 0.00+0.00i 3158 0.00+0.00i 3159 0.00+0.00i 3160 3161 Output: 3162 1.02+0.40i 3163 1.02+0.40i 3164 1.02+0.40i 3165 3165 3166 3166 … … 3199 3199 Operation: datan 3200 3200 Input: 3201 1.00 00003202 1.00 00003203 1.00 00003204 3205 0.00 00003206 0.00 00003207 0.00 00003208 3209 Output: 3210 45.00 00003211 45.00 00003212 45.00 00003201 1.00 3202 1.00 3203 1.00 3204 3205 0.00 3206 0.00 3207 0.00 3208 3209 Output: 3210 45.00 3211 45.00 3212 45.00 3213 3213 3214 3214 … … 3223 3223 Operation: datan 3224 3224 Input: 3225 1.00 00003226 1.00 00003227 1.00 00003228 3229 0.00 00003230 0.00 00003231 0.00 00003232 3233 Output: 3234 45.00 00003235 45.00 00003236 45.00 00003225 1.00 3226 1.00 3227 1.00 3228 3229 0.00 3230 0.00 3231 0.00 3232 3233 Output: 3234 45.00 3235 45.00 3236 45.00 3237 3237 3238 3238 … … 3247 3247 Operation: datan 3248 3248 Input: 3249 1.00 0000+1.000000i3250 1.00 0000+1.000000i3251 1.00 0000+1.000000i3252 3253 0.00 0000+0.000000i3254 0.00 0000+0.000000i3255 0.00 0000+0.000000i3256 3257 Output: 3258 58.28 2524+23.053499i3259 58.28 2524+23.053499i3260 58.28 2524+23.053499i3261 3262 3263 ---> TESTPOINT PASSED (psMatrixVectorArithmetic{Test vector psUnaryOp} | tst_psMatrixVectorArithmetic02.c) 3264 3249 1.00+1.00i 3250 1.00+1.00i 3251 1.00+1.00i 3252 3253 0.00+0.00i 3254 0.00+0.00i 3255 0.00+0.00i 3256 3257 Output: 3258 58.28+23.05i 3259 58.28+23.05i 3260 58.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 6 6 7 7 (LQBinNum, UQBinNum, maxBinNum) is (15, 35, 27) 8 The expected Mean was 32.00 0000; the calculated Mean was 32.5881618 The expected Mean was 32.00; the calculated Mean was 32.59 9 9 10 10 ---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust mean: no vector mask} | tst_psStats07.c) … … 16 16 \**********************************************************************************/ 17 17 18 The expected Median was 32.00 0000; the calculated Median was 32.48546618 The expected Median was 32.00; the calculated Median was 32.49 19 19 20 20 ---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust Median: no vector mask} | tst_psStats07.c) … … 26 26 \**********************************************************************************/ 27 27 28 The expected Mode was 32.00 0000; the calculated Mode was 32.58865528 The expected Mode was 32.00; the calculated Mode was 32.59 29 29 30 30 ---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust Mode: no vector mask} | tst_psStats07.c) … … 36 36 \**********************************************************************************/ 37 37 38 The expected Stdev was 0.66 0000; the calculated Stdev was 0.65557238 The expected Stdev was 0.66; the calculated Stdev was 0.66 39 39 40 40 ---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust Stdev: no vector mask} | tst_psStats07.c) … … 46 46 \**********************************************************************************/ 47 47 48 The expected LQ was 30. 799999; the calculated LQ was 30.01807048 The expected LQ was 30.80; the calculated LQ was 30.02 49 49 50 50 ---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: lower quartile: no vector mask} | tst_psStats07.c) … … 56 56 \**********************************************************************************/ 57 57 58 The expected UQ was 33.20 0001; the calculated UQ was 34.32588658 The expected UQ was 33.20; the calculated UQ was 34.33 59 59 60 60 ---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: lower quartile: no vector mask} | tst_psStats07.c) … … 66 66 \**********************************************************************************/ 67 67 68 The expected N50 was 143.00 0000; the calculated N50 was 143.00000068 The expected N50 was 143.00; the calculated N50 was 143.00 69 69 70 70 ---> TESTPOINT PASSED (psVector functions{PS_STAT_ROBUST_STATS: robust N50: no vector mask} | tst_psStats07.c) … … 76 76 \**********************************************************************************/ 77 77 78 The expected Nfit was 80.00 0000; the calculated Nfit was 80.00000078 The expected Nfit was 80.00; the calculated Nfit was 80.00 79 79 80 80 ---> 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 1 1 /***************************************************************************** 2 This routine must ensure that the psHistogram structure is correctly3 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 *****************************************************************************/ 5 5 #include <stdio.h> 6 6 #include "pslib.h" … … 16 16 int main() 17 17 { 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 ); 36 149 } 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" ); 40 160 } 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" ); 44 166 } 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 ); 48 175 } 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 ); 183 183 } -
trunk/psLib/test/image/tst_psImageStats01.c
r1234 r1365 1 1 /***************************************************************************** 2 This routine must ensure that the psImageStats() routine can correctly3 call the psVectorStats() routine. Since the psVectorStats() will be4 thouroughly tested elsewhere, we will only test psImageStats() with5 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 *****************************************************************************/ 7 7 #include <stdio.h> 8 8 #include "pslib.h" … … 17 17 int main() 18 18 { 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 ); 37 139 } 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 141 141 /*************************************************************************/ 142 142 /* Test With Various Null Inputs */ 143 143 /*************************************************************************/ 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 ); 179 179 } -
trunk/psLib/test/image/tst_psImageStats02.c
r1078 r1365 1 1 /***************************************************************************** 2 This routine must ensure that the psImageStats() routine can correctly3 call the psVectorStats() routine. Since the psVectorStats() will be4 thouroughly tested elsewhere, we will only test psImageStats() with5 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 *****************************************************************************/ 10 10 #include <stdio.h> 11 11 #include "pslib.h" … … 19 19 #define CHEBY_X_DIM 8 20 20 #define CHEBY_Y_DIM 8 21 #define THRESHOLD 1 .021 #define THRESHOLD 10 22 22 int main() 23 23 { 24 psStats * myStats= NULL;25 psImage *tmpImage = NULL;26 psImage *outImage = NULL;24 psStats * myStats = NULL; 25 psImage *tmpImage = NULL; 26 psImage *outImage = NULL; 27 27 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(); 36 36 /*************************************************************************/ 37 37 /* Allocate and initialize data structures */ 38 38 /*************************************************************************/ 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 } 47 48 } 48 } 49 my2DPoly = psPolynomial2DAlloc(CHEBY_X_DIM, CHEBY_Y_DIM); 49 my2DPoly = psPolynomial2DAlloc( CHEBY_X_DIM, CHEBY_Y_DIM ); 50 50 /*************************************************************************/ 51 51 /* Calculate Chebyshev Polynomials, no mask */ 52 52 /*************************************************************************/ 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 } 61 62 } 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 ); 69 69 /*************************************************************************/ 70 70 /* Evaluate Chebyshev Polynomials, no mask */ 71 71 /*************************************************************************/ 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 } 89 90 } 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 98 98 /*************************************************************************/ 99 99 /* Deallocate data structures */ 100 100 /*************************************************************************/ 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 ); 121 121 } -
trunk/psLib/test/image/verified/tst_psImageStats00.stdout
r1042 r1365 8 8 \**********************************************************************************/ 9 9 10 Bin number 0 bounds: (0.0 00000 - 0.100000) data (0)11 Bin number 1 bounds: (0.1 00000 - 0.200000) data (1)12 Bin number 2 bounds: (0.2 00000 - 0.300000) data (0)13 Bin number 3 bounds: (0.3 00000 - 0.400000) data (0)14 Bin number 4 bounds: (0.4 00000 - 0.500000) data (0)15 Bin number 5 bounds: (0.5 00000 - 0.600000) data (0)16 Bin number 6 bounds: (0.6 00000 - 0.700000) data (0)17 Bin number 7 bounds: (0.7 00000 - 0.800000) data (0)18 Bin number 8 bounds: (0.8 00000 - 0.900000) data (0)19 Bin number 9 bounds: (0.9 00000 - 1.000000) data (0)20 Bin number 10 bounds: (1.0 00000 - 1.100000) data (0)21 Bin number 11 bounds: (1.1 00000 - 1.200000) data (0)22 Bin number 12 bounds: (1.2 00000 - 1.300000) data (0)23 Bin number 13 bounds: (1.3 00000 - 1.400000) data (0)24 Bin number 14 bounds: (1.4 00000 - 1.500000) data (0)25 Bin number 15 bounds: (1.5 00000 - 1.600000) data (0)26 Bin number 16 bounds: (1.6 00000 - 1.700000) data (0)27 Bin number 17 bounds: (1.7 00000 - 1.800000) data (0)28 Bin number 18 bounds: (1.8 00000 - 1.900000) data (0)29 Bin number 19 bounds: (1.9 00000 - 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.00 0000 - 0.100000) data (0)40 Bin number 1 bounds: (0.10 0000 - 0.200000) data (1)41 Bin number 2 bounds: (0.20 0000 - 0.300000) data (0)42 Bin number 3 bounds: (0.30 0000 - 0.400000) data (0)43 Bin number 4 bounds: (0.40 0000 - 0.500000) data (0)44 Bin number 5 bounds: (0.50 0000 - 0.600000) data (0)45 Bin number 6 bounds: (0.60 0000 - 0.700000) data (0)46 Bin number 7 bounds: (0.70 0000 - 0.800000) data (0)47 Bin number 8 bounds: (0.80 0000 - 0.900000) data (0)48 Bin number 9 bounds: (0.90 0000 - 1.000000) data (0)49 Bin number 10 bounds: (1.00 0000 - 1.100000) data (0)50 Bin number 11 bounds: (1.10 0000 - 1.200000) data (0)51 Bin number 12 bounds: (1.20 0000 - 1.300000) data (0)52 Bin number 13 bounds: (1.30 0000 - 1.400000) data (0)53 Bin number 14 bounds: (1.40 0000 - 1.500000) data (0)54 Bin number 15 bounds: (1.50 0000 - 1.600000) data (0)55 Bin number 16 bounds: (1.60 0000 - 1.700000) data (0)56 Bin number 17 bounds: (1.70 0000 - 1.800000) data (0)57 Bin number 18 bounds: (1.80 0000 - 1.900000) data (0)58 Bin number 19 bounds: (1.90 0000 - 2.000000) data (0)10 Bin number 0 bounds: (0.0 - 0.1) data (1) 11 Bin number 1 bounds: (0.1 - 0.2) data (0) 12 Bin number 2 bounds: (0.2 - 0.3) data (0) 13 Bin number 3 bounds: (0.3 - 0.4) data (0) 14 Bin number 4 bounds: (0.4 - 0.5) data (0) 15 Bin number 5 bounds: (0.5 - 0.6) data (0) 16 Bin number 6 bounds: (0.6 - 0.7) data (0) 17 Bin number 7 bounds: (0.7 - 0.8) data (0) 18 Bin number 8 bounds: (0.8 - 0.9) data (0) 19 Bin number 9 bounds: (0.9 - 1.0) data (0) 20 Bin number 10 bounds: (1.0 - 1.1) data (0) 21 Bin number 11 bounds: (1.1 - 1.2) data (0) 22 Bin number 12 bounds: (1.2 - 1.3) data (0) 23 Bin number 13 bounds: (1.3 - 1.4) data (0) 24 Bin number 14 bounds: (1.4 - 1.5) data (0) 25 Bin number 15 bounds: (1.5 - 1.6) data (0) 26 Bin number 16 bounds: (1.6 - 1.7) data (0) 27 Bin number 17 bounds: (1.7 - 1.8) data (0) 28 Bin number 18 bounds: (1.8 - 1.9) data (0) 29 Bin 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 39 Bin number 0 bounds: (0.00 - 0.10) data (1) 40 Bin number 1 bounds: (0.10 - 0.20) data (0) 41 Bin number 2 bounds: (0.20 - 0.30) data (0) 42 Bin number 3 bounds: (0.30 - 0.40) data (0) 43 Bin number 4 bounds: (0.40 - 0.50) data (0) 44 Bin number 5 bounds: (0.50 - 0.60) data (0) 45 Bin number 6 bounds: (0.60 - 0.70) data (0) 46 Bin number 7 bounds: (0.70 - 0.80) data (0) 47 Bin number 8 bounds: (0.80 - 0.90) data (0) 48 Bin number 9 bounds: (0.90 - 1.00) data (0) 49 Bin number 10 bounds: (1.00 - 1.10) data (0) 50 Bin number 11 bounds: (1.10 - 1.20) data (0) 51 Bin number 12 bounds: (1.20 - 1.30) data (0) 52 Bin number 13 bounds: (1.30 - 1.40) data (0) 53 Bin number 14 bounds: (1.40 - 1.50) data (0) 54 Bin number 15 bounds: (1.50 - 1.60) data (0) 55 Bin number 16 bounds: (1.60 - 1.70) data (0) 56 Bin number 17 bounds: (1.70 - 1.80) data (0) 57 Bin number 18 bounds: (1.80 - 1.90) data (0) 58 Bin number 19 bounds: (1.90 - 2.00) data (0) 59 59 60 60 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c) … … 78 78 \**********************************************************************************/ 79 79 80 Bin number 0 bounds: (0.0 00000 - 1.650000) data (2)81 Bin number 1 bounds: (1. 650000 - 3.300000) data (2)82 Bin number 2 bounds: (3.3 00000 - 4.950000) data (1)83 Bin number 3 bounds: ( 4.950000 - 6.600000) data (2)84 Bin number 4 bounds: (6.6 00000 - 8.250000) data (2)85 Bin number 5 bounds: (8.2 50000 - 9.900000) data (1)86 Bin number 6 bounds: (9.9 00000 - 11.550000) data (2)87 Bin number 7 bounds: (11. 550000 - 13.200000) data (2)88 Bin number 8 bounds: (13.2 00000 - 14.849999) data (1)89 Bin number 9 bounds: (14. 849999 - 16.500000) data (2)90 Bin number 10 bounds: (16.5 00000 - 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.1 00000 - 24.750000) data (2)95 Bin number 15 bounds: (24. 750000 - 26.400000) data (2)96 Bin number 16 bounds: (26.4 00000 - 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.00 0000 - 1.650000) data (2)110 Bin number 1 bounds: (1.65 0000 - 3.300000) data (2)111 Bin number 2 bounds: (3.30 0000 - 4.950000) data (1)112 Bin number 3 bounds: (4.95 0000 - 6.600000) data (2)113 Bin number 4 bounds: (6.60 0000 - 8.250000) data (2)114 Bin number 5 bounds: (8.25 0000 - 9.900000) data (1)115 Bin number 6 bounds: (9.90 0000 - 11.550000) data (2)116 Bin number 7 bounds: (11.55 0000 - 13.200000) data (2)117 Bin number 8 bounds: (13.20 0000 - 14.849999) data (1)118 Bin number 9 bounds: (14.8 49999 - 16.500000) data (2)119 Bin number 10 bounds: (16.50 0000 - 18.150000) data (2)120 Bin number 11 bounds: (18.15 0000 - 19.799999) data (1)121 Bin number 12 bounds: (19. 799999 - 21.449999) data (2)122 Bin number 13 bounds: (21.4 49999 - 23.100000) data (1)123 Bin number 14 bounds: (23.10 0000 - 24.750000) data (2)124 Bin number 15 bounds: (24.75 0000 - 26.400000) data (2)125 Bin number 16 bounds: (26.40 0000 - 28.049999) data (1)126 Bin number 17 bounds: (28.0 49999 - 29.699999) data (2)127 Bin number 18 bounds: (29. 699999 - 31.350000) data (2)128 Bin number 19 bounds: (31.35 0000 - 33.000000) data (0)80 Bin number 0 bounds: (0.0 - 1.7) data (2) 81 Bin number 1 bounds: (1.7 - 3.3) data (2) 82 Bin number 2 bounds: (3.3 - 5.0) data (1) 83 Bin number 3 bounds: (5.0 - 6.6) data (2) 84 Bin number 4 bounds: (6.6 - 8.2) data (2) 85 Bin number 5 bounds: (8.2 - 9.9) data (1) 86 Bin number 6 bounds: (9.9 - 11.6) data (2) 87 Bin number 7 bounds: (11.6 - 13.2) data (2) 88 Bin number 8 bounds: (13.2 - 14.9) data (1) 89 Bin number 9 bounds: (14.9 - 16.5) data (2) 90 Bin number 10 bounds: (16.5 - 18.2) data (2) 91 Bin number 11 bounds: (18.2 - 19.8) data (1) 92 Bin number 12 bounds: (19.8 - 21.5) data (2) 93 Bin number 13 bounds: (21.5 - 23.1) data (2) 94 Bin number 14 bounds: (23.1 - 24.8) data (1) 95 Bin number 15 bounds: (24.8 - 26.4) data (2) 96 Bin number 16 bounds: (26.4 - 28.1) data (1) 97 Bin number 17 bounds: (28.1 - 29.7) data (2) 98 Bin number 18 bounds: (29.7 - 31.4) data (2) 99 Bin 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 109 Bin number 0 bounds: (0.00 - 1.65) data (2) 110 Bin number 1 bounds: (1.65 - 3.30) data (2) 111 Bin number 2 bounds: (3.30 - 4.95) data (1) 112 Bin number 3 bounds: (4.95 - 6.60) data (2) 113 Bin number 4 bounds: (6.60 - 8.25) data (2) 114 Bin number 5 bounds: (8.25 - 9.90) data (1) 115 Bin number 6 bounds: (9.90 - 11.55) data (2) 116 Bin number 7 bounds: (11.55 - 13.20) data (2) 117 Bin number 8 bounds: (13.20 - 14.85) data (1) 118 Bin number 9 bounds: (14.85 - 16.50) data (2) 119 Bin number 10 bounds: (16.50 - 18.15) data (2) 120 Bin number 11 bounds: (18.15 - 19.80) data (1) 121 Bin number 12 bounds: (19.80 - 21.45) data (2) 122 Bin number 13 bounds: (21.45 - 23.10) data (2) 123 Bin number 14 bounds: (23.10 - 24.75) data (1) 124 Bin number 15 bounds: (24.75 - 26.40) data (2) 125 Bin number 16 bounds: (26.40 - 28.05) data (1) 126 Bin number 17 bounds: (28.05 - 29.70) data (2) 127 Bin number 18 bounds: (29.70 - 31.35) data (2) 128 Bin number 19 bounds: (31.35 - 33.00) data (0) 129 129 130 130 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c) … … 148 148 \**********************************************************************************/ 149 149 150 Bin number 0 bounds: (0.0 00000 - 1.650000) data (2)151 Bin number 1 bounds: (1. 650000 - 3.300000) data (2)152 Bin number 2 bounds: (3.3 00000 - 4.950000) data (1)153 Bin number 3 bounds: ( 4.950000 - 6.600000) data (2)154 Bin number 4 bounds: (6.6 00000 - 8.250000) data (2)155 Bin number 5 bounds: (8.2 50000 - 9.900000) data (1)156 Bin number 6 bounds: (9.9 00000 - 11.550000) data (2)157 Bin number 7 bounds: (11. 550000 - 13.200000) data (2)158 Bin number 8 bounds: (13.2 00000 - 14.849999) data (1)159 Bin number 9 bounds: (14. 849999 - 16.500000) data (2)160 Bin number 10 bounds: (16.5 00000 - 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.1 00000 - 24.750000) data (2)165 Bin number 15 bounds: (24. 750000 - 26.400000) data (2)166 Bin number 16 bounds: (26.4 00000 - 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.00 0000 - 1.650000) data (2)180 Bin number 1 bounds: (1.65 0000 - 3.300000) data (2)181 Bin number 2 bounds: (3.30 0000 - 4.950000) data (1)182 Bin number 3 bounds: (4.95 0000 - 6.600000) data (2)183 Bin number 4 bounds: (6.60 0000 - 8.250000) data (2)184 Bin number 5 bounds: (8.25 0000 - 9.900000) data (1)185 Bin number 6 bounds: (9.90 0000 - 11.550000) data (2)186 Bin number 7 bounds: (11.55 0000 - 13.200000) data (2)187 Bin number 8 bounds: (13.20 0000 - 14.849999) data (1)188 Bin number 9 bounds: (14.8 49999 - 16.500000) data (2)189 Bin number 10 bounds: (16.50 0000 - 18.150000) data (2)190 Bin number 11 bounds: (18.15 0000 - 19.799999) data (1)191 Bin number 12 bounds: (19. 799999 - 21.449999) data (2)192 Bin number 13 bounds: (21.4 49999 - 23.100000) data (1)193 Bin number 14 bounds: (23.10 0000 - 24.750000) data (2)194 Bin number 15 bounds: (24.75 0000 - 26.400000) data (2)195 Bin number 16 bounds: (26.40 0000 - 28.049999) data (1)196 Bin number 17 bounds: (28.0 49999 - 29.699999) data (2)197 Bin number 18 bounds: (29. 699999 - 31.350000) data (2)198 Bin number 19 bounds: (31.35 0000 - 33.000000) data (0)150 Bin number 0 bounds: (0.0 - 1.7) data (2) 151 Bin number 1 bounds: (1.7 - 3.3) data (2) 152 Bin number 2 bounds: (3.3 - 5.0) data (1) 153 Bin number 3 bounds: (5.0 - 6.6) data (2) 154 Bin number 4 bounds: (6.6 - 8.2) data (2) 155 Bin number 5 bounds: (8.2 - 9.9) data (1) 156 Bin number 6 bounds: (9.9 - 11.6) data (2) 157 Bin number 7 bounds: (11.6 - 13.2) data (2) 158 Bin number 8 bounds: (13.2 - 14.9) data (1) 159 Bin number 9 bounds: (14.9 - 16.5) data (2) 160 Bin number 10 bounds: (16.5 - 18.2) data (2) 161 Bin number 11 bounds: (18.2 - 19.8) data (1) 162 Bin number 12 bounds: (19.8 - 21.5) data (2) 163 Bin number 13 bounds: (21.5 - 23.1) data (2) 164 Bin number 14 bounds: (23.1 - 24.8) data (1) 165 Bin number 15 bounds: (24.8 - 26.4) data (2) 166 Bin number 16 bounds: (26.4 - 28.1) data (1) 167 Bin number 17 bounds: (28.1 - 29.7) data (2) 168 Bin number 18 bounds: (29.7 - 31.4) data (2) 169 Bin 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 179 Bin number 0 bounds: (0.00 - 1.65) data (2) 180 Bin number 1 bounds: (1.65 - 3.30) data (2) 181 Bin number 2 bounds: (3.30 - 4.95) data (1) 182 Bin number 3 bounds: (4.95 - 6.60) data (2) 183 Bin number 4 bounds: (6.60 - 8.25) data (2) 184 Bin number 5 bounds: (8.25 - 9.90) data (1) 185 Bin number 6 bounds: (9.90 - 11.55) data (2) 186 Bin number 7 bounds: (11.55 - 13.20) data (2) 187 Bin number 8 bounds: (13.20 - 14.85) data (1) 188 Bin number 9 bounds: (14.85 - 16.50) data (2) 189 Bin number 10 bounds: (16.50 - 18.15) data (2) 190 Bin number 11 bounds: (18.15 - 19.80) data (1) 191 Bin number 12 bounds: (19.80 - 21.45) data (2) 192 Bin number 13 bounds: (21.45 - 23.10) data (2) 193 Bin number 14 bounds: (23.10 - 24.75) data (1) 194 Bin number 15 bounds: (24.75 - 26.40) data (2) 195 Bin number 16 bounds: (26.40 - 28.05) data (1) 196 Bin number 17 bounds: (28.05 - 29.70) data (2) 197 Bin number 18 bounds: (29.70 - 31.35) data (2) 198 Bin number 19 bounds: (31.35 - 33.00) data (0) 199 199 200 200 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c) … … 218 218 \**********************************************************************************/ 219 219 220 Bin number 0 bounds: (0.0 00000 - 3.200000) data (10)221 Bin number 1 bounds: (3.2 00000 - 6.400000) data (18)222 Bin number 2 bounds: (6.4 00000 - 9.600000) data (27)223 Bin number 3 bounds: (9.6 00000 - 12.800000) data (36)224 Bin number 4 bounds: (12.8 00000 - 16.000000) data (45)225 Bin number 5 bounds: (16.0 00000 - 19.200001) data (74)226 Bin number 6 bounds: (19.2 00001 - 22.400000) data (66)227 Bin number 7 bounds: (22.4 00000 - 25.600000) data (75)228 Bin number 8 bounds: (25.6 00000 - 28.800001) data (84)229 Bin number 9 bounds: (28.8 00001 - 32.000000) data (93)230 Bin number 10 bounds: (32.0 00000 - 35.200001) data (118)231 Bin number 11 bounds: (35.2 00001 - 38.400002) data (78)232 Bin number 12 bounds: (38.4 00002 - 41.600002) data (69)233 Bin number 13 bounds: (41.6 00002 - 44.799999) data (60)234 Bin number 14 bounds: (44. 799999 - 48.000000) data (51)235 Bin number 15 bounds: (48.0 00000 - 51.200001) data (54)236 Bin number 16 bounds: (51.2 00001 - 54.400002) data (30)237 Bin number 17 bounds: (54.4 00002 - 57.600002) data (21)238 Bin number 18 bounds: (57.6 00002 - 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.00 0000 - 3.200000) data (10)250 Bin number 1 bounds: (3.20 0000 - 6.400000) data (18)251 Bin number 2 bounds: (6.40 0000 - 9.600000) data (27)252 Bin number 3 bounds: (9.60 0000 - 12.800000) data (36)253 Bin number 4 bounds: (12.80 0000 - 16.000000) data (45)254 Bin number 5 bounds: (16.00 0000 - 19.200001) data (74)255 Bin number 6 bounds: (19.20 0001 - 22.400000) data (66)256 Bin number 7 bounds: (22.40 0000 - 25.600000) data (75)257 Bin number 8 bounds: (25.60 0000 - 28.800001) data (84)258 Bin number 9 bounds: (28.80 0001 - 32.000000) data (93)259 Bin number 10 bounds: (32.00 0000 - 35.200001) data (115)260 Bin number 11 bounds: (35.20 0001 - 38.400002) data (66)261 Bin number 12 bounds: (38.40 0002 - 41.600002) data (48)262 Bin number 13 bounds: (41.60 0002 - 44.799999) data (30)263 Bin number 14 bounds: (44. 799999 - 48.000000) data (12)264 Bin number 15 bounds: (48.00 0000 - 51.200001) data (0)265 Bin number 16 bounds: (51.20 0001 - 54.400002) data (0)266 Bin number 17 bounds: (54.40 0002 - 57.600002) data (0)267 Bin number 18 bounds: (57.60 0002 - 60.799999) data (0)268 Bin number 19 bounds: (60. 799999 - 64.000000) data (0)220 Bin number 0 bounds: (0.0 - 3.2) data (10) 221 Bin number 1 bounds: (3.2 - 6.4) data (18) 222 Bin number 2 bounds: (6.4 - 9.6) data (27) 223 Bin number 3 bounds: (9.6 - 12.8) data (36) 224 Bin number 4 bounds: (12.8 - 16.0) data (45) 225 Bin number 5 bounds: (16.0 - 19.2) data (74) 226 Bin number 6 bounds: (19.2 - 22.4) data (66) 227 Bin number 7 bounds: (22.4 - 25.6) data (75) 228 Bin number 8 bounds: (25.6 - 28.8) data (84) 229 Bin number 9 bounds: (28.8 - 32.0) data (93) 230 Bin number 10 bounds: (32.0 - 35.2) data (118) 231 Bin number 11 bounds: (35.2 - 38.4) data (78) 232 Bin number 12 bounds: (38.4 - 41.6) data (69) 233 Bin number 13 bounds: (41.6 - 44.8) data (60) 234 Bin number 14 bounds: (44.8 - 48.0) data (51) 235 Bin number 15 bounds: (48.0 - 51.2) data (54) 236 Bin number 16 bounds: (51.2 - 54.4) data (30) 237 Bin number 17 bounds: (54.4 - 57.6) data (21) 238 Bin number 18 bounds: (57.6 - 60.8) data (12) 239 Bin 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 249 Bin number 0 bounds: (0.00 - 3.20) data (10) 250 Bin number 1 bounds: (3.20 - 6.40) data (18) 251 Bin number 2 bounds: (6.40 - 9.60) data (27) 252 Bin number 3 bounds: (9.60 - 12.80) data (36) 253 Bin number 4 bounds: (12.80 - 16.00) data (45) 254 Bin number 5 bounds: (16.00 - 19.20) data (74) 255 Bin number 6 bounds: (19.20 - 22.40) data (66) 256 Bin number 7 bounds: (22.40 - 25.60) data (75) 257 Bin number 8 bounds: (25.60 - 28.80) data (84) 258 Bin number 9 bounds: (28.80 - 32.00) data (93) 259 Bin number 10 bounds: (32.00 - 35.20) data (115) 260 Bin number 11 bounds: (35.20 - 38.40) data (66) 261 Bin number 12 bounds: (38.40 - 41.60) data (48) 262 Bin number 13 bounds: (41.60 - 44.80) data (30) 263 Bin number 14 bounds: (44.80 - 48.00) data (12) 264 Bin number 15 bounds: (48.00 - 51.20) data (0) 265 Bin number 16 bounds: (51.20 - 54.40) data (0) 266 Bin number 17 bounds: (54.40 - 57.60) data (0) 267 Bin number 18 bounds: (57.60 - 60.80) data (0) 268 Bin number 19 bounds: (60.80 - 64.00) data (0) 269 269 270 270 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c) … … 288 288 \**********************************************************************************/ 289 289 290 Bin number 0 bounds: (0.0 00000 - 4.800000) data (15)291 Bin number 1 bounds: (4.8 00000 - 9.600000) data (40)292 Bin number 2 bounds: (9.6 00000 - 14.400001) data (65)293 Bin number 3 bounds: (14.4 00001 - 19.200001) data (90)294 Bin number 4 bounds: (19.2 00001 - 24.000000) data (90)295 Bin number 5 bounds: (24.0 00000 - 28.800001) data (135)296 Bin number 6 bounds: (28.8 00001 - 33.600002) data (157)297 Bin number 7 bounds: (33.6 00002 - 38.400002) data (160)298 Bin number 8 bounds: (38.4 00002 - 43.200001) data (160)299 Bin number 9 bounds: (43.2 00001 - 48.000000) data (128)300 Bin number 10 bounds: (48.0 00000 - 52.800003) data (160)301 Bin number 11 bounds: (52.8 00003 - 57.600002) data (160)302 Bin number 12 bounds: (57.6 00002 - 62.400002) data (160)303 Bin number 13 bounds: (62.4 00002 - 67.200005) data (150)304 Bin number 14 bounds: (67.2 00005 - 72.000000) data (102)305 Bin number 15 bounds: (72.0 00000 - 76.800003) data (105)306 Bin number 16 bounds: (76.8 00003 - 81.600006) data (80)307 Bin number 17 bounds: (81.6 00006 - 86.400002) data (55)308 Bin number 18 bounds: (86.4 00002 - 91.200005) data (30)309 Bin number 19 bounds: (91.2 00005 - 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.00 0000 - 4.800000) data (15)320 Bin number 1 bounds: (4.80 0000 - 9.600000) data (40)321 Bin number 2 bounds: (9.60 0000 - 14.400001) data (65)322 Bin number 3 bounds: (14.40 0001 - 19.200001) data (90)323 Bin number 4 bounds: (19.20 0001 - 24.000000) data (90)324 Bin number 5 bounds: (24.00 0000 - 28.800001) data (135)325 Bin number 6 bounds: (28.80 0001 - 33.600002) data (157)326 Bin number 7 bounds: (33.60 0002 - 38.400002) data (160)327 Bin number 8 bounds: (38.40 0002 - 43.200001) data (160)328 Bin number 9 bounds: (43.20 0001 - 48.000000) data (128)329 Bin number 10 bounds: (48.00 0000 - 52.800003) data (154)330 Bin number 11 bounds: (52.80 0003 - 57.600002) data (130)331 Bin number 12 bounds: (57.60 0002 - 62.400002) data (105)332 Bin number 13 bounds: (62.40 0002 - 67.200005) data (76)333 Bin number 14 bounds: (67.20 0005 - 72.000000) data (42)334 Bin number 15 bounds: (72.00 0000 - 76.800003) data (30)335 Bin number 16 bounds: (76.80 0003 - 81.600006) data (6)336 Bin number 17 bounds: (81.60 0006 - 86.400002) data (0)337 Bin number 18 bounds: (86.40 0002 - 91.200005) data (0)338 Bin number 19 bounds: (91.20 0005 - 96.000000) data (0)290 Bin number 0 bounds: (0.0 - 4.8) data (15) 291 Bin number 1 bounds: (4.8 - 9.6) data (40) 292 Bin number 2 bounds: (9.6 - 14.4) data (65) 293 Bin number 3 bounds: (14.4 - 19.2) data (90) 294 Bin number 4 bounds: (19.2 - 24.0) data (90) 295 Bin number 5 bounds: (24.0 - 28.8) data (135) 296 Bin number 6 bounds: (28.8 - 33.6) data (157) 297 Bin number 7 bounds: (33.6 - 38.4) data (160) 298 Bin number 8 bounds: (38.4 - 43.2) data (160) 299 Bin number 9 bounds: (43.2 - 48.0) data (128) 300 Bin number 10 bounds: (48.0 - 52.8) data (160) 301 Bin number 11 bounds: (52.8 - 57.6) data (160) 302 Bin number 12 bounds: (57.6 - 62.4) data (160) 303 Bin number 13 bounds: (62.4 - 67.2) data (150) 304 Bin number 14 bounds: (67.2 - 72.0) data (102) 305 Bin number 15 bounds: (72.0 - 76.8) data (105) 306 Bin number 16 bounds: (76.8 - 81.6) data (80) 307 Bin number 17 bounds: (81.6 - 86.4) data (55) 308 Bin number 18 bounds: (86.4 - 91.2) data (30) 309 Bin 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 319 Bin number 0 bounds: (0.00 - 4.80) data (15) 320 Bin number 1 bounds: (4.80 - 9.60) data (40) 321 Bin number 2 bounds: (9.60 - 14.40) data (65) 322 Bin number 3 bounds: (14.40 - 19.20) data (90) 323 Bin number 4 bounds: (19.20 - 24.00) data (90) 324 Bin number 5 bounds: (24.00 - 28.80) data (135) 325 Bin number 6 bounds: (28.80 - 33.60) data (157) 326 Bin number 7 bounds: (33.60 - 38.40) data (160) 327 Bin number 8 bounds: (38.40 - 43.20) data (160) 328 Bin number 9 bounds: (43.20 - 48.00) data (128) 329 Bin number 10 bounds: (48.00 - 52.80) data (154) 330 Bin number 11 bounds: (52.80 - 57.60) data (130) 331 Bin number 12 bounds: (57.60 - 62.40) data (105) 332 Bin number 13 bounds: (62.40 - 67.20) data (76) 333 Bin number 14 bounds: (67.20 - 72.00) data (42) 334 Bin number 15 bounds: (72.00 - 76.80) data (30) 335 Bin number 16 bounds: (76.80 - 81.60) data (6) 336 Bin number 17 bounds: (81.60 - 86.40) data (0) 337 Bin number 18 bounds: (86.40 - 91.20) data (0) 338 Bin number 19 bounds: (91.20 - 96.00) data (0) 339 339 340 340 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c) … … 358 358 \**********************************************************************************/ 359 359 360 Bin number 0 bounds: (0.0 00000 - 4.800000) data (15)361 Bin number 1 bounds: (4.8 00000 - 9.600000) data (40)362 Bin number 2 bounds: (9.6 00000 - 14.400001) data (65)363 Bin number 3 bounds: (14.4 00001 - 19.200001) data (90)364 Bin number 4 bounds: (19.2 00001 - 24.000000) data (90)365 Bin number 5 bounds: (24.0 00000 - 28.800001) data (135)366 Bin number 6 bounds: (28.8 00001 - 33.600002) data (157)367 Bin number 7 bounds: (33.6 00002 - 38.400002) data (160)368 Bin number 8 bounds: (38.4 00002 - 43.200001) data (160)369 Bin number 9 bounds: (43.2 00001 - 48.000000) data (128)370 Bin number 10 bounds: (48.0 00000 - 52.800003) data (160)371 Bin number 11 bounds: (52.8 00003 - 57.600002) data (160)372 Bin number 12 bounds: (57.6 00002 - 62.400002) data (160)373 Bin number 13 bounds: (62.4 00002 - 67.200005) data (150)374 Bin number 14 bounds: (67.2 00005 - 72.000000) data (102)375 Bin number 15 bounds: (72.0 00000 - 76.800003) data (105)376 Bin number 16 bounds: (76.8 00003 - 81.600006) data (80)377 Bin number 17 bounds: (81.6 00006 - 86.400002) data (55)378 Bin number 18 bounds: (86.4 00002 - 91.200005) data (30)379 Bin number 19 bounds: (91.2 00005 - 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.00 0000 - 4.800000) data (15)390 Bin number 1 bounds: (4.80 0000 - 9.600000) data (40)391 Bin number 2 bounds: (9.60 0000 - 14.400001) data (65)392 Bin number 3 bounds: (14.40 0001 - 19.200001) data (90)393 Bin number 4 bounds: (19.20 0001 - 24.000000) data (90)394 Bin number 5 bounds: (24.00 0000 - 28.800001) data (135)395 Bin number 6 bounds: (28.80 0001 - 33.600002) data (157)396 Bin number 7 bounds: (33.60 0002 - 38.400002) data (160)397 Bin number 8 bounds: (38.40 0002 - 43.200001) data (160)398 Bin number 9 bounds: (43.20 0001 - 48.000000) data (128)399 Bin number 10 bounds: (48.00 0000 - 52.800003) data (154)400 Bin number 11 bounds: (52.80 0003 - 57.600002) data (130)401 Bin number 12 bounds: (57.60 0002 - 62.400002) data (105)402 Bin number 13 bounds: (62.40 0002 - 67.200005) data (76)403 Bin number 14 bounds: (67.20 0005 - 72.000000) data (42)404 Bin number 15 bounds: (72.00 0000 - 76.800003) data (30)405 Bin number 16 bounds: (76.80 0003 - 81.600006) data (6)406 Bin number 17 bounds: (81.60 0006 - 86.400002) data (0)407 Bin number 18 bounds: (86.40 0002 - 91.200005) data (0)408 Bin number 19 bounds: (91.20 0005 - 96.000000) data (0)360 Bin number 0 bounds: (0.0 - 4.8) data (15) 361 Bin number 1 bounds: (4.8 - 9.6) data (40) 362 Bin number 2 bounds: (9.6 - 14.4) data (65) 363 Bin number 3 bounds: (14.4 - 19.2) data (90) 364 Bin number 4 bounds: (19.2 - 24.0) data (90) 365 Bin number 5 bounds: (24.0 - 28.8) data (135) 366 Bin number 6 bounds: (28.8 - 33.6) data (157) 367 Bin number 7 bounds: (33.6 - 38.4) data (160) 368 Bin number 8 bounds: (38.4 - 43.2) data (160) 369 Bin number 9 bounds: (43.2 - 48.0) data (128) 370 Bin number 10 bounds: (48.0 - 52.8) data (160) 371 Bin number 11 bounds: (52.8 - 57.6) data (160) 372 Bin number 12 bounds: (57.6 - 62.4) data (160) 373 Bin number 13 bounds: (62.4 - 67.2) data (150) 374 Bin number 14 bounds: (67.2 - 72.0) data (102) 375 Bin number 15 bounds: (72.0 - 76.8) data (105) 376 Bin number 16 bounds: (76.8 - 81.6) data (80) 377 Bin number 17 bounds: (81.6 - 86.4) data (55) 378 Bin number 18 bounds: (86.4 - 91.2) data (30) 379 Bin 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 389 Bin number 0 bounds: (0.00 - 4.80) data (15) 390 Bin number 1 bounds: (4.80 - 9.60) data (40) 391 Bin number 2 bounds: (9.60 - 14.40) data (65) 392 Bin number 3 bounds: (14.40 - 19.20) data (90) 393 Bin number 4 bounds: (19.20 - 24.00) data (90) 394 Bin number 5 bounds: (24.00 - 28.80) data (135) 395 Bin number 6 bounds: (28.80 - 33.60) data (157) 396 Bin number 7 bounds: (33.60 - 38.40) data (160) 397 Bin number 8 bounds: (38.40 - 43.20) data (160) 398 Bin number 9 bounds: (43.20 - 48.00) data (128) 399 Bin number 10 bounds: (48.00 - 52.80) data (154) 400 Bin number 11 bounds: (52.80 - 57.60) data (130) 401 Bin number 12 bounds: (57.60 - 62.40) data (105) 402 Bin number 13 bounds: (62.40 - 67.20) data (76) 403 Bin number 14 bounds: (67.20 - 72.00) data (42) 404 Bin number 15 bounds: (72.00 - 76.80) data (30) 405 Bin number 16 bounds: (76.80 - 81.60) data (6) 406 Bin number 17 bounds: (81.60 - 86.40) data (0) 407 Bin number 18 bounds: (86.40 - 91.20) data (0) 408 Bin number 19 bounds: (91.20 - 96.00) data (0) 409 409 410 410 ---> TESTPOINT PASSED (psImageStats functions{Calculate Histogram with mask} | tst_psImageStats00.c) -
trunk/psLib/test/image/verified/tst_psImageStats01.stdout
r1034 r1365 8 8 \**********************************************************************************/ 9 9 10 The sample mean was 0.00 000011 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.00 000010 The 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 20 The sample mean was 0.00 21 21 22 22 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c) … … 40 40 \**********************************************************************************/ 41 41 42 The sample mean was 15.50 000043 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.50 000042 The 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 52 The sample mean was 15.50 53 53 54 54 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c) … … 72 72 \**********************************************************************************/ 73 73 74 The sample mean was 15.50 000075 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.50 000074 The 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 84 The sample mean was 15.50 85 85 86 86 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c) … … 104 104 \**********************************************************************************/ 105 105 106 The sample mean was 31.00 0000107 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.21 2767106 The 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 116 The sample mean was 26.21 117 117 118 118 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c) … … 136 136 \**********************************************************************************/ 137 137 138 The sample mean was 47.00 0000139 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.6 56349138 The 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 148 The sample mean was 39.66 149 149 150 150 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c) … … 168 168 \**********************************************************************************/ 169 169 170 The sample mean was 47.00 0000171 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.6 56349170 The 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 180 The sample mean was 39.66 181 181 182 182 ---> TESTPOINT PASSED (psImageStats functions{Calculate Sample Mean with mask} | tst_psImageStats01.c) -
trunk/psLib/test/image/verified/tst_psImageStats02.stdout
r1198 r1365 5 5 \**********************************************************************************/ 6 6 7 Cheby Polynomial (0, 0) coefficient is 189.00 00008 Cheby Polynomial (0, 1) coefficient is 25.9 356169 Cheby Polynomial (0, 2) coefficient is 0.00 000510 Cheby Polynomial (0, 3) coefficient is 2.8 7941511 Cheby Polynomial (0, 4) coefficient is 0.00 000412 Cheby Polynomial (0, 5) coefficient is 1.03 491113 Cheby Polynomial (0, 6) coefficient is 0.00 001914 Cheby Polynomial (0, 7) coefficient is 0.5 2669015 Cheby Polynomial (1, 0) coefficient is 129.6 7797916 Cheby Polynomial (1, 1) coefficient is -0.00 002417 Cheby Polynomial (1, 2) coefficient is 0.00 000218 Cheby Polynomial (1, 3) coefficient is 0.00 000319 Cheby Polynomial (1, 4) coefficient is 0.00 000320 Cheby Polynomial (1, 5) coefficient is -0.00000421 Cheby Polynomial (1, 6) coefficient is 0.00 001622 Cheby Polynomial (1, 7) coefficient is -0.00001523 Cheby Polynomial (2, 0) coefficient is -0.00 003424 Cheby Polynomial (2, 1) coefficient is 0.00 001025 Cheby Polynomial (2, 2) coefficient is -0.00 000226 Cheby Polynomial (2, 3) coefficient is 0.00 000127 Cheby Polynomial (2, 4) coefficient is 0.00 000228 Cheby Polynomial (2, 5) coefficient is 0.00 000029 Cheby Polynomial (2, 6) coefficient is -0.00 000030 Cheby Polynomial (2, 7) coefficient is -0.00 000131 Cheby Polynomial (3, 0) coefficient is 14. 39704632 Cheby Polynomial (3, 1) coefficient is 0.00 000733 Cheby Polynomial (3, 2) coefficient is -0.00000034 Cheby Polynomial (3, 3) coefficient is -0.00000135 Cheby Polynomial (3, 4) coefficient is 0.00 000136 Cheby Polynomial (3, 5) coefficient is -0.00 000137 Cheby Polynomial (3, 6) coefficient is 0.00 000238 Cheby Polynomial (3, 7) coefficient is -0.00000239 Cheby Polynomial (4, 0) coefficient is 0.00 002340 Cheby Polynomial (4, 1) coefficient is 0.00 000341 Cheby Polynomial (4, 2) coefficient is -0.00 000342 Cheby Polynomial (4, 3) coefficient is -0.00 000243 Cheby Polynomial (4, 4) coefficient is 0.00 000044 Cheby Polynomial (4, 5) coefficient is 0.00 000145 Cheby Polynomial (4, 6) coefficient is -0.00 000046 Cheby Polynomial (4, 7) coefficient is 0.00 000047 Cheby Polynomial (5, 0) coefficient is 5.17 456848 Cheby Polynomial (5, 1) coefficient is -0.00000049 Cheby Polynomial (5, 2) coefficient is 0.00000050 Cheby Polynomial (5, 3) coefficient is -0.00000151 Cheby Polynomial (5, 4) coefficient is -0.00 000152 Cheby Polynomial (5, 5) coefficient is 0.00 000053 Cheby Polynomial (5, 6) coefficient is 0.00 000154 Cheby Polynomial (5, 7) coefficient is 0.00 000055 Cheby Polynomial (6, 0) coefficient is 0.00 001456 Cheby Polynomial (6, 1) coefficient is -0.00 000157 Cheby Polynomial (6, 2) coefficient is 0.00000158 Cheby Polynomial (6, 3) coefficient is 0.00 000159 Cheby Polynomial (6, 4) coefficient is -0.00 000160 Cheby Polynomial (6, 5) coefficient is 0.00000161 Cheby Polynomial (6, 6) coefficient is 0.00000062 Cheby Polynomial (6, 7) coefficient is -0.00 000063 Cheby Polynomial (7, 0) coefficient is 2.63 351764 Cheby Polynomial (7, 1) coefficient is -0.00 000565 Cheby Polynomial (7, 2) coefficient is -0.00 000166 Cheby Polynomial (7, 3) coefficient is -0.00000067 Cheby Polynomial (7, 4) coefficient is 0.00 000168 Cheby Polynomial (7, 5) coefficient is -0.00000169 Cheby Polynomial (7, 6) coefficient is 0.00000170 Cheby Polynomial (7, 7) coefficient is -0.0000017 Cheby Polynomial (0, 0) coefficient is 189.00 8 Cheby Polynomial (0, 1) coefficient is 25.94 9 Cheby Polynomial (0, 2) coefficient is 0.00 10 Cheby Polynomial (0, 3) coefficient is 2.88 11 Cheby Polynomial (0, 4) coefficient is 0.00 12 Cheby Polynomial (0, 5) coefficient is 1.03 13 Cheby Polynomial (0, 6) coefficient is 0.00 14 Cheby Polynomial (0, 7) coefficient is 0.53 15 Cheby Polynomial (1, 0) coefficient is 129.68 16 Cheby Polynomial (1, 1) coefficient is -0.00 17 Cheby Polynomial (1, 2) coefficient is 0.00 18 Cheby Polynomial (1, 3) coefficient is 0.00 19 Cheby Polynomial (1, 4) coefficient is 0.00 20 Cheby Polynomial (1, 5) coefficient is 0.00 21 Cheby Polynomial (1, 6) coefficient is 0.00 22 Cheby Polynomial (1, 7) coefficient is 0.00 23 Cheby Polynomial (2, 0) coefficient is -0.00 24 Cheby Polynomial (2, 1) coefficient is 0.00 25 Cheby Polynomial (2, 2) coefficient is -0.00 26 Cheby Polynomial (2, 3) coefficient is 0.00 27 Cheby Polynomial (2, 4) coefficient is 0.00 28 Cheby Polynomial (2, 5) coefficient is 0.00 29 Cheby Polynomial (2, 6) coefficient is -0.00 30 Cheby Polynomial (2, 7) coefficient is -0.00 31 Cheby Polynomial (3, 0) coefficient is 14.40 32 Cheby Polynomial (3, 1) coefficient is 0.00 33 Cheby Polynomial (3, 2) coefficient is 0.00 34 Cheby Polynomial (3, 3) coefficient is 0.00 35 Cheby Polynomial (3, 4) coefficient is 0.00 36 Cheby Polynomial (3, 5) coefficient is -0.00 37 Cheby Polynomial (3, 6) coefficient is 0.00 38 Cheby Polynomial (3, 7) coefficient is 0.00 39 Cheby Polynomial (4, 0) coefficient is 0.00 40 Cheby Polynomial (4, 1) coefficient is 0.00 41 Cheby Polynomial (4, 2) coefficient is -0.00 42 Cheby Polynomial (4, 3) coefficient is -0.00 43 Cheby Polynomial (4, 4) coefficient is 0.00 44 Cheby Polynomial (4, 5) coefficient is 0.00 45 Cheby Polynomial (4, 6) coefficient is -0.00 46 Cheby Polynomial (4, 7) coefficient is 0.00 47 Cheby Polynomial (5, 0) coefficient is 5.17 48 Cheby Polynomial (5, 1) coefficient is 0.00 49 Cheby Polynomial (5, 2) coefficient is -0.00 50 Cheby Polynomial (5, 3) coefficient is 0.00 51 Cheby Polynomial (5, 4) coefficient is -0.00 52 Cheby Polynomial (5, 5) coefficient is 0.00 53 Cheby Polynomial (5, 6) coefficient is 0.00 54 Cheby Polynomial (5, 7) coefficient is 0.00 55 Cheby Polynomial (6, 0) coefficient is 0.00 56 Cheby Polynomial (6, 1) coefficient is -0.00 57 Cheby Polynomial (6, 2) coefficient is -0.00 58 Cheby Polynomial (6, 3) coefficient is 0.00 59 Cheby Polynomial (6, 4) coefficient is -0.00 60 Cheby Polynomial (6, 5) coefficient is -0.00 61 Cheby Polynomial (6, 6) coefficient is -0.00 62 Cheby Polynomial (6, 7) coefficient is -0.00 63 Cheby Polynomial (7, 0) coefficient is 2.63 64 Cheby Polynomial (7, 1) coefficient is -0.00 65 Cheby Polynomial (7, 2) coefficient is -0.00 66 Cheby Polynomial (7, 3) coefficient is 0.00 67 Cheby Polynomial (7, 4) coefficient is 0.00 68 Cheby Polynomial (7, 5) coefficient is 0.00 69 Cheby Polynomial (7, 6) coefficient is -0.00 70 Cheby Polynomial (7, 7) coefficient is 0.00 71 71 72 72 ---> TESTPOINT PASSED (psImageStats functions{Calculate Chebyshev Polynomials, no mask} | tst_psImageStats02.c) … … 78 78 \**********************************************************************************/ 79 79 80 Pixel (0, 0) is 6.927072, should be 0.00000081 Pixel (0, 1) is 7.173949, should be 1.00000082 Pixel (0, 2) is 7.655376, should be 2.00000083 Pixel (0, 3) is 8.347930, should be 3.00000084 Pixel (0, 4) is 9.218961, should be 4.00000085 Pixel (0, 5) is 10.229467, should be 5.00000086 Pixel (0, 6) is 11.337466, should be 6.00000087 Pixel (0, 7) is 12.501254, should be 7.00000088 Pixel (0, 8) is 13.682820, should be 8.00000089 Pixel (0, 9) is 14.850384, should be 9.00000090 Pixel (0, 10) is 15.980532, should be 10.00000091 Pixel (0, 11) is 17.059172, should be 11.00000092 Pixel (0, 12) is 18.081587, should be 12.00000093 Pixel (0, 13) is 19.051620, should be 13.00000094 Pixel (0, 14) is 19.980064, should be 14.00000095 Pixel (0, 15) is 20.882164, should be 15.00000096 Pixel (0, 16) is 21.775343, should be 16.00000097 Pixel (0, 17) is 22.676605, should be 17.00000098 Pixel (0, 18) is 23.600229, should be 18.00000099 Pixel (0, 19) is 24.556124, should be 19.000000100 Pixel (0, 20) is 25.548784, should be 20.000000101 Pixel (0, 21) is 26.577057, should be 21.000000102 Pixel (0, 22) is 27.634684, should be 22.000000103 Pixel (0, 23) is 28.711458, should be 23.000000104 Pixel (0, 24) is 29.794844, should be 24.000000105 Pixel (0, 25) is 30.871885, should be 25.000000106 Pixel (0, 26) is 31.931026, should be 26.000000107 Pixel (0, 27) is 32.963749, should be 27.000000108 Pixel (0, 28) is 33.965645, should be 28.000000109 Pixel (0, 29) is 34.937035, should be 29.000000110 Pixel (0, 30) is 35.882740, should be 30.000000111 Pixel (0, 31) is 36.811340, should be 31.000000112 Pixel (0, 32) is 37.733940, should be 32.000000113 Pixel (0, 33) is 38.662556, should be 33.000000114 Pixel (0, 34) is 39.608231, should be 34.000000115 Pixel (0, 35) is 40.579613, should be 35.000000116 Pixel (0, 36) is 41.581539, should be 36.000000117 Pixel (0, 37) is 42.614243, should be 37.000000118 Pixel (0, 38) is 43.673363, should be 38.000000119 Pixel (0, 39) is 44.750423, should be 39.000000120 Pixel (0, 40) is 45.833805, should be 40.000000121 Pixel (0, 41) is 46.910572, should be 41.000000122 Pixel (0, 42) is 47.968204, should be 42.000000123 Pixel (0, 43) is 48.996479, should be 43.000000124 Pixel (0, 44) is 49.989136, should be 44.000000125 Pixel (0, 45) is 50.945053, should be 45.000000126 Pixel (0, 46) is 51.868679, should be 46.000000127 Pixel (0, 47) is 52.769932, should be 47.000000128 Pixel (0, 48) is 53.663113, should be 48.000000129 Pixel (0, 49) is 54.565205, should be 49.000000130 Pixel (0, 50) is 55.493645, should be 50.000000131 Pixel (0, 51) is 56.463696, should be 51.000000132 Pixel (0, 52) is 57.486126, should be 52.000000133 Pixel (0, 53) is 58.564747, should be 53.000000134 Pixel (0, 54) is 59.694889, should be 54.000000135 Pixel (0, 55) is 60.862446, should be 55.000000136 Pixel (0, 56) is 62.044003, should be 56.000000137 Pixel (0, 57) is 63.207813, should be 57.000000138 Pixel (0, 58) is 64.315796, should be 58.000000139 Pixel (0, 59) is 65.326294, should be 59.000000140 Pixel (0, 60) is 66.197350, should be 60.000000141 Pixel (0, 61) is 66.889877, should be 61.000000142 Pixel (0, 62) is 67.371300, should be 62.000000143 Pixel (0, 63) is 67.618172, should be 63.000000144 Pixel (1, 0) is 8.161349, should be 5.000000145 Pixel (1, 1) is 8.408226, should be 6.000000146 Pixel (1, 2) is 8.889652, should be 7.000000147 Pixel (1, 3) is 9.582205, should be 8.000000148 Pixel (1, 4) is 10.453232, should be 9.000000149 Pixel (1, 5) is 11.463740, should be 10.000000150 Pixel (1, 6) is 12.571740, should be 11.000000151 Pixel (1, 7) is 13.735526, should be 12.000000152 Pixel (1, 8) is 14.917092, should be 13.000000153 Pixel (1, 9) is 16.084658, should be 14.000000154 Pixel (1, 10) is 17.214804, should be 15.000000155 Pixel (1, 11) is 18.293444, should be 16.000000156 Pixel (1, 12) is 19.315859, should be 17.000000157 Pixel (1, 13) is 20.285892, should be 18.000000158 Pixel (1, 14) is 21.214336, should be 19.000000159 Pixel (1, 15) is 22.116434, should be 20.000000160 Pixel (1, 16) is 23.009617, should be 21.000000161 Pixel (1, 17) is 23.910875, should be 22.000000162 Pixel (1, 18) is 24.834503, should be 23.000000163 Pixel (1, 19) is 25.790409, should be 24.000000164 Pixel (1, 20) is 26.783060, should be 25.000000165 Pixel (1, 21) is 27.811335, should be 26.000000166 Pixel (1, 22) is 28.868959, should be 27.000000167 Pixel (1, 23) is 29.945730, should be 28.000000168 Pixel (1, 24) is 31.029118, should be 29.000000169 Pixel (1, 25) is 32.106163, should be 30.000000170 Pixel (1, 26) is 33.165302, should be 31.000000171 Pixel (1, 27) is 34.198025, should be 32.000000172 Pixel (1, 28) is 35.199921, should be 33.000000173 Pixel (1, 29) is 36.171310, should be 34.000000174 Pixel (1, 30) is 37.117016, should be 35.000000175 Pixel (1, 31) is 38.045616, should be 36.000000176 Pixel (1, 32) is 38.968216, should be 37.000000177 Pixel (1, 33) is 39.896832, should be 38.000000178 Pixel (1, 34) is 40.842506, should be 39.000000179 Pixel (1, 35) is 41.813889, should be 40.000000180 Pixel (1, 36) is 42.815815, should be 41.000000181 Pixel (1, 37) is 43.848518, should be 42.000000182 Pixel (1, 38) is 44.907639, should be 43.000000183 Pixel (1, 39) is 45.984699, should be 44.000000184 Pixel (1, 40) is 47.068077, should be 45.000000185 Pixel (1, 41) is 48.144848, should be 46.000000186 Pixel (1, 42) is 49.202480, should be 47.000000187 Pixel (1, 43) is 50.230755, should be 48.000000188 Pixel (1, 44) is 51.223408, should be 49.000000189 Pixel (1, 45) is 52.179325, should be 50.000000190 Pixel (1, 46) is 53.102955, should be 51.000000191 Pixel (1, 47) is 54.004208, should be 52.000000192 Pixel (1, 48) is 54.897388, should be 53.000000193 Pixel (1, 49) is 55.799480, should be 54.000000194 Pixel (1, 50) is 56.727924, should be 55.000000195 Pixel (1, 51) is 57.697971, should be 56.000000196 Pixel (1, 52) is 58.720402, should be 57.000000197 Pixel (1, 53) is 59.799023, should be 58.000000198 Pixel (1, 54) is 60.929165, should be 59.000000199 Pixel (1, 55) is 62.096729, should be 60.000000200 Pixel (1, 56) is 63.278286, should be 61.000000201 Pixel (1, 57) is 64.442101, should be 62.000000202 Pixel (1, 58) is 65.550079, should be 63.000000203 Pixel (1, 59) is 66.560577, should be 64.000000204 Pixel (1, 60) is 67.431633, should be 65.000000205 Pixel (1, 61) is 68.124161, should be 66.000000206 Pixel (1, 62) is 68.605583, should be 67.000000207 Pixel (2, 3) is 11.989437, should be 13.000000208 Pixel (2, 4) is 12.860472, should be 14.000000209 Pixel (2, 5) is 13.870976, should be 15.000000210 Pixel (2, 6) is 14.978971, should be 16.000000211 Pixel (2, 63) is 71.259666, should be 73.000000212 Pixel (3, 1) is 14.278136, should be 16.000000213 Pixel (3, 2) is 14.759560, should be 17.000000214 Pixel (3, 3) is 15.452109, should be 18.000000215 Pixel (3, 4) is 16.323143, should be 19.000000216 Pixel (3, 5) is 17.333652, should be 20.000000217 Pixel (3, 6) is 18.441645, should be 21.000000218 Pixel (3, 7) is 19.605431, should be 22.000000219 Pixel (3, 8) is 20.786999, should be 23.000000220 Pixel (3, 9) is 21.954563, should be 24.000000221 Pixel (3, 10) is 23.084709, should be 25.000000222 Pixel (3, 11) is 24.163351, should be 26.000000223 Pixel (3, 12) is 25.185764, should be 27.000000224 Pixel (3, 13) is 26.155800, should be 28.000000225 Pixel (3, 14) is 27.084242, should be 29.000000226 Pixel (3, 15) is 27.986349, should be 30.000000227 Pixel (3, 16) is 28.879530, should be 31.000000228 Pixel (3, 17) is 29.780794, should be 32.000000229 Pixel (3, 18) is 30.704420, should be 33.000000230 Pixel (3, 19) is 31.660322, should be 34.000000231 Pixel (3, 20) is 32.652969, should be 35.000000232 Pixel (3, 21) is 33.681244, should be 36.000000233 Pixel (3, 22) is 34.738869, should be 37.000000234 Pixel (3, 23) is 35.815647, should be 38.000000235 Pixel (3, 24) is 36.899029, should be 39.000000236 Pixel (3, 25) is 37.976067, should be 40.000000237 Pixel (3, 26) is 39.035198, should be 41.000000238 Pixel (3, 27) is 40.067924, should be 42.000000239 Pixel (3, 28) is 41.069824, should be 43.000000240 Pixel (3, 29) is 42.041218, should be 44.000000241 Pixel (3, 30) is 42.986923, should be 45.000000242 Pixel (3, 31) is 43.915524, should be 46.000000243 Pixel (3, 32) is 44.838123, should be 47.000000244 Pixel (3, 33) is 45.766739, should be 48.000000245 Pixel (3, 34) is 46.712414, should be 49.000000246 Pixel (3, 35) is 47.683792, should be 50.000000247 Pixel (3, 36) is 48.685715, should be 51.000000248 Pixel (3, 37) is 49.718422, should be 52.000000249 Pixel (3, 38) is 50.777538, should be 53.000000250 Pixel (3, 39) is 51.854603, should be 54.000000251 Pixel (3, 40) is 52.937984, should be 55.000000252 Pixel (3, 41) is 54.014748, should be 56.000000253 Pixel (3, 42) is 55.072380, should be 57.000000254 Pixel (3, 43) is 56.100655, should be 58.000000255 Pixel (3, 44) is 57.093311, should be 59.000000256 Pixel (3, 45) is 58.049221, should be 60.000000257 Pixel (3, 46) is 58.972851, should be 61.000000258 Pixel (3, 47) is 59.874096, should be 62.000000259 Pixel (3, 48) is 60.767277, should be 63.000000260 Pixel (3, 49) is 61.669369, should be 64.000000261 Pixel (3, 50) is 62.597813, should be 65.000000262 Pixel (3, 51) is 63.567867, should be 66.000000263 Pixel (3, 52) is 64.590294, should be 67.000000264 Pixel (3, 53) is 65.668915, should be 68.000000265 Pixel (3, 54) is 66.799057, should be 69.000000266 Pixel (3, 55) is 67.966614, should be 70.000000267 Pixel (3, 56) is 69.148170, should be 71.000000268 Pixel (3, 57) is 70.311981, should be 72.000000269 Pixel (3, 58) is 71.419960, should be 73.000000270 Pixel (3, 59) is 72.430458, should be 74.000000271 Pixel (3, 60) is 73.301514, should be 75.000000272 Pixel (3, 61) is 73.994041, should be 76.000000273 Pixel (3, 62) is 74.475464, should be 77.000000274 Pixel (3, 63) is 74.722336, should be 78.000000275 Pixel (4, 0) is 18.386347, should be 20.000000276 Pixel (4, 1) is 18.633223, should be 21.000000277 Pixel (4, 2) is 19.114639, should be 22.000000278 Pixel (4, 3) is 19.807188, should be 23.000000279 Pixel (4, 4) is 20.678223, should be 24.000000280 Pixel (4, 5) is 21.688732, should be 25.000000281 Pixel (4, 6) is 22.796722, should be 26.000000282 Pixel (4, 7) is 23.960510, should be 27.000000283 Pixel (4, 8) is 25.142078, should be 28.000000284 Pixel (4, 9) is 26.309643, should be 29.000000285 Pixel (4, 10) is 27.439787, should be 30.000000286 Pixel (4, 11) is 28.518431, should be 31.000000287 Pixel (4, 12) is 29.540842, should be 32.000000288 Pixel (4, 13) is 30.510878, should be 33.000000289 Pixel (4, 14) is 31.439322, should be 34.000000290 Pixel (4, 15) is 32.341431, should be 35.000000291 Pixel (4, 16) is 33.234608, should be 36.000000292 Pixel (4, 17) is 34.135872, should be 37.000000293 Pixel (4, 18) is 35.059502, should be 38.000000294 Pixel (4, 19) is 36.015400, should be 39.000000295 Pixel (4, 20) is 37.008049, should be 40.000000296 Pixel (4, 21) is 38.036324, should be 41.000000297 Pixel (4, 22) is 39.093948, should be 42.000000298 Pixel (4, 23) is 40.170727, should be 43.000000299 Pixel (4, 24) is 41.254105, should be 44.000000300 Pixel (4, 25) is 42.331139, should be 45.000000301 Pixel (4, 26) is 43.390274, should be 46.000000302 Pixel (4, 27) is 44.423000, should be 47.000000303 Pixel (4, 28) is 45.424900, should be 48.000000304 Pixel (4, 29) is 46.396290, should be 49.000000305 Pixel (4, 30) is 47.341991, should be 50.000000306 Pixel (4, 31) is 48.270596, should be 51.000000307 Pixel (4, 32) is 49.193195, should be 52.000000308 Pixel (4, 33) is 50.121807, should be 53.000000309 Pixel (4, 34) is 51.067486, should be 54.000000310 Pixel (4, 35) is 52.038868, should be 55.000000311 Pixel (4, 36) is 53.040791, should be 56.000000312 Pixel (4, 37) is 54.073498, should be 57.000000313 Pixel (4, 38) is 55.132618, should be 58.000000314 Pixel (4, 39) is 56.209679, should be 59.000000315 Pixel (4, 40) is 57.293053, should be 60.000000316 Pixel (4, 41) is 58.369827, should be 61.000000317 Pixel (4, 42) is 59.427456, should be 62.000000318 Pixel (4, 43) is 60.455734, should be 63.000000319 Pixel (4, 44) is 61.448387, should be 64.000000320 Pixel (4, 45) is 62.404301, should be 65.000000321 Pixel (4, 46) is 63.327930, should be 66.000000322 Pixel (4, 47) is 64.229172, should be 67.000000323 Pixel (4, 48) is 65.122353, should be 68.000000324 Pixel (4, 49) is 66.024445, should be 69.000000325 Pixel (4, 50) is 66.952888, should be 70.000000326 Pixel (4, 51) is 67.922943, should be 71.000000327 Pixel (4, 52) is 68.945374, should be 72.000000328 Pixel (4, 53) is 70.023994, should be 73.000000329 Pixel (4, 54) is 71.154137, should be 74.000000330 Pixel (4, 55) is 72.321693, should be 75.000000331 Pixel (4, 56) is 73.503250, should be 76.000000332 Pixel (4, 57) is 74.667061, should be 77.000000333 Pixel (4, 58) is 75.775040, should be 78.000000334 Pixel (4, 59) is 76.785538, should be 79.000000335 Pixel (4, 60) is 77.656593, should be 80.000000336 Pixel (4, 61) is 78.349121, should be 81.000000337 Pixel (4, 62) is 78.830544, should be 82.000000338 Pixel (4, 63) is 79.077415, should be 83.000000339 Pixel (5, 0) is 23.438900, should be 25.000000340 Pixel (5, 1) is 23.685776, should be 26.000000341 Pixel (5, 2) is 24.167196, should be 27.000000342 Pixel (5, 3) is 24.859745, should be 28.000000343 Pixel (5, 4) is 25.730778, should be 29.000000344 Pixel (5, 5) is 26.741287, should be 30.000000345 Pixel (5, 6) is 27.849277, should be 31.000000346 Pixel (5, 7) is 29.013062, should be 32.000000347 Pixel (5, 8) is 30.194633, should be 33.000000348 Pixel (5, 9) is 31.362202, should be 34.000000349 Pixel (5, 10) is 32.492336, should be 35.000000350 Pixel (5, 11) is 33.570980, should be 36.000000351 Pixel (5, 12) is 34.593395, should be 37.000000352 Pixel (5, 13) is 35.563431, should be 38.000000353 Pixel (5, 14) is 36.491875, should be 39.000000354 Pixel (5, 15) is 37.393982, should be 40.000000355 Pixel (5, 16) is 38.287159, should be 41.000000356 Pixel (5, 17) is 39.188427, should be 42.000000357 Pixel (5, 18) is 40.112053, should be 43.000000358 Pixel (5, 19) is 41.067951, should be 44.000000359 Pixel (5, 20) is 42.060600, should be 45.000000360 Pixel (5, 21) is 43.088879, should be 46.000000361 Pixel (5, 22) is 44.146500, should be 47.000000362 Pixel (5, 23) is 45.223278, should be 48.000000363 Pixel (5, 24) is 46.306656, should be 49.000000364 Pixel (5, 25) is 47.383690, should be 50.000000365 Pixel (5, 26) is 48.442825, should be 51.000000366 Pixel (5, 27) is 49.475555, should be 52.000000367 Pixel (5, 28) is 50.477451, should be 53.000000368 Pixel (5, 29) is 51.448841, should be 54.000000369 Pixel (5, 30) is 52.394543, should be 55.000000370 Pixel (5, 31) is 53.323143, should be 56.000000371 Pixel (5, 32) is 54.245747, should be 57.000000372 Pixel (5, 33) is 55.174358, should be 58.000000373 Pixel (5, 34) is 56.120037, should be 59.000000374 Pixel (5, 35) is 57.091419, should be 60.000000375 Pixel (5, 36) is 58.093342, should be 61.000000376 Pixel (5, 37) is 59.126049, should be 62.000000377 Pixel (5, 38) is 60.185169, should be 63.000000378 Pixel (5, 39) is 61.262234, should be 64.000000379 Pixel (5, 40) is 62.345604, should be 65.000000380 Pixel (5, 41) is 63.422379, should be 66.000000381 Pixel (5, 42) is 64.480019, should be 67.000000382 Pixel (5, 43) is 65.508286, should be 68.000000383 Pixel (5, 44) is 66.500938, should be 69.000000384 Pixel (5, 45) is 67.456848, should be 70.000000385 Pixel (5, 46) is 68.380478, should be 71.000000386 Pixel (5, 47) is 69.281731, should be 72.000000387 Pixel (5, 48) is 70.174911, should be 73.000000388 Pixel (5, 49) is 71.076996, should be 74.000000389 Pixel (5, 50) is 72.005440, should be 75.000000390 Pixel (5, 51) is 72.975487, should be 76.000000391 Pixel (5, 52) is 73.997925, should be 77.000000392 Pixel (5, 53) is 75.076546, should be 78.000000393 Pixel (5, 54) is 76.206688, should be 79.000000394 Pixel (5, 55) is 77.374245, should be 80.000000395 Pixel (5, 56) is 78.555801, should be 81.000000396 Pixel (5, 57) is 79.719612, should be 82.000000397 Pixel (5, 58) is 80.827591, should be 83.000000398 Pixel (5, 59) is 81.838089, should be 84.000000399 Pixel (5, 60) is 82.709145, should be 85.000000400 Pixel (5, 61) is 83.401672, should be 86.000000401 Pixel (5, 62) is 83.883095, should be 87.000000402 Pixel (5, 63) is 84.129967, should be 88.000000403 Pixel (6, 0) is 28.978821, should be 30.000000404 Pixel (6, 1) is 29.225697, should be 31.000000405 Pixel (6, 2) is 29.707121, should be 32.000000406 Pixel (6, 3) is 30.399666, should be 33.000000407 Pixel (6, 4) is 31.270700, should be 34.000000408 Pixel (6, 5) is 32.281208, should be 35.000000409 Pixel (6, 6) is 33.389198, should be 36.000000410 Pixel (6, 7) is 34.552982, should be 37.000000411 Pixel (6, 8) is 35.734558, should be 38.000000412 Pixel (6, 9) is 36.902122, should be 39.000000413 Pixel (6, 10) is 38.032261, should be 40.000000414 Pixel (6, 11) is 39.110905, should be 41.000000415 Pixel (6, 12) is 40.133320, should be 42.000000416 Pixel (6, 13) is 41.103355, should be 43.000000417 Pixel (6, 14) is 42.031799, should be 44.000000418 Pixel (6, 15) is 42.933907, should be 45.000000419 Pixel (6, 16) is 43.827087, should be 46.000000420 Pixel (6, 17) is 44.728352, should be 47.000000421 Pixel (6, 18) is 45.651978, should be 48.000000422 Pixel (6, 19) is 46.607880, should be 49.000000423 Pixel (6, 20) is 47.600521, should be 50.000000424 Pixel (6, 21) is 48.628799, should be 51.000000425 Pixel (6, 22) is 49.686420, should be 52.000000426 Pixel (6, 23) is 50.763195, should be 53.000000427 Pixel (6, 24) is 51.846577, should be 54.000000428 Pixel (6, 25) is 52.923611, should be 55.000000429 Pixel (6, 26) is 53.982746, should be 56.000000430 Pixel (6, 27) is 55.015476, should be 57.000000431 Pixel (6, 28) is 56.017372, should be 58.000000432 Pixel (6, 29) is 56.988762, should be 59.000000433 Pixel (6, 30) is 57.934464, should be 60.000000434 Pixel (6, 31) is 58.863060, should be 61.000000435 Pixel (6, 32) is 59.785667, should be 62.000000436 Pixel (6, 33) is 60.714279, should be 63.000000437 Pixel (6, 34) is 61.659958, should be 64.000000438 Pixel (6, 35) is 62.631340, should be 65.000000439 Pixel (6, 36) is 63.633255, should be 66.000000440 Pixel (6, 37) is 64.665970, should be 67.000000441 Pixel (6, 38) is 65.725090, should be 68.000000442 Pixel (6, 39) is 66.802147, should be 69.000000443 Pixel (6, 40) is 67.885521, should be 70.000000444 Pixel (6, 41) is 68.962288, should be 71.000000445 Pixel (6, 42) is 70.019920, should be 72.000000446 Pixel (6, 43) is 71.048203, should be 73.000000447 Pixel (6, 44) is 72.040855, should be 74.000000448 Pixel (6, 45) is 72.996765, should be 75.000000449 Pixel (6, 46) is 73.920395, should be 76.000000450 Pixel (6, 47) is 74.821648, should be 77.000000451 Pixel (6, 48) is 75.714828, should be 78.000000452 Pixel (6, 49) is 76.616920, should be 79.000000453 Pixel (6, 50) is 77.545364, should be 80.000000454 Pixel (6, 51) is 78.515411, should be 81.000000455 Pixel (6, 52) is 79.537849, should be 82.000000456 Pixel (6, 53) is 80.616470, should be 83.000000457 Pixel (6, 54) is 81.746613, should be 84.000000458 Pixel (6, 55) is 82.914162, should be 85.000000459 Pixel (6, 56) is 84.095718, should be 86.000000460 Pixel (6, 57) is 85.259529, should be 87.000000461 Pixel (6, 58) is 86.367508, should be 88.000000462 Pixel (6, 59) is 87.378014, should be 89.000000463 Pixel (6, 60) is 88.249062, should be 90.000000464 Pixel (6, 61) is 88.941589, should be 91.000000465 Pixel (6, 62) is 89.423012, should be 92.000000466 Pixel (6, 63) is 89.669884, should be 93.000000467 Pixel (7, 2) is 35.526096, should be 37.000000468 Pixel (7, 3) is 36.218639, should be 38.000000469 Pixel (7, 4) is 37.089676, should be 39.000000470 Pixel (7, 5) is 38.100182, should be 40.000000471 Pixel (7, 6) is 39.208172, should be 41.000000472 Pixel (7, 7) is 40.371956, should be 42.000000473 Pixel (7, 8) is 41.553528, should be 43.000000474 Pixel (7, 9) is 42.721092, should be 44.000000475 Pixel (7, 10) is 43.851231, should be 45.000000476 Pixel (7, 11) is 44.929874, should be 46.000000477 Pixel (7, 12) is 45.952286, should be 47.000000478 Pixel (7, 13) is 46.922325, should be 48.000000479 Pixel (7, 14) is 47.850777, should be 49.000000480 Pixel (7, 15) is 48.752880, should be 50.000000481 Pixel (7, 16) is 49.646057, should be 51.000000482 Pixel (7, 17) is 50.547321, should be 52.000000483 Pixel (7, 18) is 51.470947, should be 53.000000484 Pixel (7, 19) is 52.426857, should be 54.000000485 Pixel (7, 20) is 53.419491, should be 55.000000486 Pixel (7, 21) is 54.447769, should be 56.000000487 Pixel (7, 22) is 55.505390, should be 57.000000488 Pixel (7, 23) is 56.582165, should be 58.000000489 Pixel (7, 24) is 57.665546, should be 59.000000490 Pixel (7, 25) is 58.742580, should be 60.000000491 Pixel (7, 26) is 59.801716, should be 61.000000492 Pixel (7, 27) is 60.834446, should be 62.000000493 Pixel (7, 28) is 61.836342, should be 63.000000494 Pixel (7, 29) is 62.807732, should be 64.000000495 Pixel (7, 30) is 63.753433, should be 65.000000496 Pixel (7, 31) is 64.682030, should be 66.000000497 Pixel (7, 32) is 65.604637, should be 67.000000498 Pixel (7, 33) is 66.533249, should be 68.000000499 Pixel (7, 34) is 67.478920, should be 69.000000500 Pixel (7, 35) is 68.450302, should be 70.000000501 Pixel (7, 36) is 69.452217, should be 71.000000502 Pixel (7, 37) is 70.484932, should be 72.000000503 Pixel (7, 38) is 71.544060, should be 73.000000504 Pixel (7, 39) is 72.621117, should be 74.000000505 Pixel (7, 40) is 73.704491, should be 75.000000506 Pixel (7, 41) is 74.781258, should be 76.000000507 Pixel (7, 42) is 75.838882, should be 77.000000508 Pixel (7, 43) is 76.867172, should be 78.000000509 Pixel (7, 44) is 77.859825, should be 79.000000510 Pixel (7, 45) is 78.815735, should be 80.000000511 Pixel (7, 46) is 79.739365, should be 81.000000512 Pixel (7, 47) is 80.640617, should be 82.000000513 Pixel (7, 48) is 81.533798, should be 83.000000514 Pixel (7, 49) is 82.435883, should be 84.000000515 Pixel (7, 50) is 83.364334, should be 85.000000516 Pixel (7, 51) is 84.334381, should be 86.000000517 Pixel (7, 52) is 85.356812, should be 87.000000518 Pixel (7, 53) is 86.435432, should be 88.000000519 Pixel (7, 54) is 87.565575, should be 89.000000520 Pixel (7, 55) is 88.733131, should be 90.000000521 Pixel (7, 56) is 89.914688, should be 91.000000522 Pixel (7, 61) is 94.760567, should be 96.000000523 Pixel (7, 62) is 95.241982, should be 97.000000524 Pixel (7, 63) is 95.488853, should be 98.000000525 Pixel (8, 4) is 42.997402, should be 44.000000526 Pixel (8, 63) is 101.396591, should be 103.000000527 Pixel (9, 0) is 46.543343, should be 45.000000528 Pixel (10, 0) is 52.194046, should be 50.000000529 Pixel (10, 1) is 52.440922, should be 51.000000530 Pixel (10, 9) is 60.117329, should be 59.000000531 Pixel (10, 10) is 61.247471, should be 60.000000532 Pixel (10, 11) is 62.326111, should be 61.000000533 Pixel (10, 12) is 63.348526, should be 62.000000534 Pixel (10, 13) is 64.318565, should be 63.000000535 Pixel (10, 14) is 65.247009, should be 64.000000536 Pixel (10, 15) is 66.149117, should be 65.000000537 Pixel (10, 16) is 67.042290, should be 66.000000538 Pixel (10, 24) is 75.061806, should be 74.000000539 Pixel (10, 25) is 76.138832, should be 75.000000540 Pixel (10, 26) is 77.197975, should be 76.000000541 Pixel (10, 27) is 78.230690, should be 77.000000542 Pixel (10, 28) is 79.232597, should be 78.000000543 Pixel (10, 29) is 80.203979, should be 79.000000544 Pixel (10, 30) is 81.149681, should be 80.000000545 Pixel (10, 31) is 82.078278, should be 81.000000546 Pixel (10, 32) is 83.000885, should be 82.000000547 Pixel (10, 39) is 90.017372, should be 89.000000548 Pixel (10, 40) is 91.100746, should be 90.000000549 Pixel (10, 41) is 92.177513, should be 91.000000550 Pixel (10, 42) is 93.235138, should be 92.000000551 Pixel (10, 43) is 94.263412, should be 93.000000552 Pixel (10, 44) is 95.256073, should be 94.000000553 Pixel (10, 45) is 96.211983, should be 95.000000554 Pixel (10, 46) is 97.135612, should be 96.000000555 Pixel (10, 47) is 98.036858, should be 97.000000556 Pixel (10, 55) is 106.129387, should be 105.000000557 Pixel (10, 56) is 107.310951, should be 106.000000558 Pixel (10, 57) is 108.474754, should be 107.000000559 Pixel (10, 58) is 109.582733, should be 108.000000560 Pixel (10, 59) is 110.593239, should be 109.000000561 Pixel (10, 60) is 111.464287, should be 110.000000562 Pixel (10, 61) is 112.156822, should be 111.000000563 Pixel (11, 0) is 57.587215, should be 55.000000564 Pixel (11, 1) is 57.834091, should be 56.000000565 Pixel (11, 2) is 58.315510, should be 57.000000566 Pixel (11, 3) is 59.008057, should be 58.000000567 Pixel (11, 7) is 63.161362, should be 62.000000568 Pixel (11, 8) is 64.342926, should be 63.000000569 Pixel (11, 9) is 65.510483, should be 64.000000570 Pixel (11, 10) is 66.640625, should be 65.000000571 Pixel (11, 11) is 67.719269, should be 66.000000572 Pixel (11, 12) is 68.741676, should be 67.000000573 Pixel (11, 13) is 69.711723, should be 68.000000574 Pixel (11, 14) is 70.640167, should be 69.000000575 Pixel (11, 15) is 71.542274, should be 70.000000576 Pixel (11, 16) is 72.435448, should be 71.000000577 Pixel (11, 17) is 73.336716, should be 72.000000578 Pixel (11, 18) is 74.260345, should be 73.000000579 Pixel (11, 19) is 75.216240, should be 74.000000580 Pixel (11, 20) is 76.208900, should be 75.000000581 Pixel (11, 21) is 77.237175, should be 76.000000582 Pixel (11, 22) is 78.294800, should be 77.000000583 Pixel (11, 23) is 79.371574, should be 78.000000584 Pixel (11, 24) is 80.454956, should be 79.000000585 Pixel (11, 25) is 81.531982, should be 80.000000586 Pixel (11, 26) is 82.591125, should be 81.000000587 Pixel (11, 27) is 83.623840, should be 82.000000588 Pixel (11, 28) is 84.625748, should be 83.000000589 Pixel (11, 29) is 85.597130, should be 84.000000590 Pixel (11, 30) is 86.542831, should be 85.000000591 Pixel (11, 31) is 87.471428, should be 86.000000592 Pixel (11, 32) is 88.394035, should be 87.000000593 Pixel (11, 33) is 89.322647, should be 88.000000594 Pixel (11, 34) is 90.268318, should be 89.000000595 Pixel (11, 35) is 91.239700, should be 90.000000596 Pixel (11, 36) is 92.241623, should be 91.000000597 Pixel (11, 37) is 93.274338, should be 92.000000598 Pixel (11, 38) is 94.333466, should be 93.000000599 Pixel (11, 39) is 95.410522, should be 94.000000600 Pixel (11, 40) is 96.493904, should be 95.000000601 Pixel (11, 41) is 97.570663, should be 96.000000602 Pixel (11, 42) is 98.628288, should be 97.000000603 Pixel (11, 43) is 99.656563, should be 98.000000604 Pixel (11, 44) is 100.649223, should be 99.000000605 Pixel (11, 45) is 101.605133, should be 100.000000606 Pixel (11, 46) is 102.528763, should be 101.000000607 Pixel (11, 47) is 103.430008, should be 102.000000608 Pixel (11, 48) is 104.323196, should be 103.000000609 Pixel (11, 49) is 105.225281, should be 104.000000610 Pixel (11, 50) is 106.153732, should be 105.000000611 Pixel (11, 51) is 107.123779, should be 106.000000612 Pixel (11, 52) is 108.146210, should be 107.000000613 Pixel (11, 53) is 109.224831, should be 108.000000614 Pixel (11, 54) is 110.354980, should be 109.000000615 Pixel (11, 55) is 111.522530, should be 110.000000616 Pixel (11, 56) is 112.704102, should be 111.000000617 Pixel (11, 57) is 113.867912, should be 112.000000618 Pixel (11, 58) is 114.975891, should be 113.000000619 Pixel (11, 59) is 115.986397, should be 114.000000620 Pixel (11, 60) is 116.857445, should be 115.000000621 Pixel (11, 61) is 117.549980, should be 116.000000622 Pixel (11, 62) is 118.031387, should be 117.000000623 Pixel (12, 0) is 62.699329, should be 60.000000624 Pixel (12, 1) is 62.946201, should be 61.000000625 Pixel (12, 2) is 63.427620, should be 62.000000626 Pixel (12, 3) is 64.120163, should be 63.000000627 Pixel (12, 5) is 66.001686, should be 65.000000628 Pixel (12, 6) is 67.109680, should be 66.000000629 Pixel (12, 7) is 68.273460, should be 67.000000630 Pixel (12, 8) is 69.455032, should be 68.000000631 Pixel (12, 9) is 70.622589, should be 69.000000632 Pixel (12, 10) is 71.752739, should be 70.000000633 Pixel (12, 11) is 72.831375, should be 71.000000634 Pixel (12, 12) is 73.853783, should be 72.000000635 Pixel (12, 13) is 74.823830, should be 73.000000636 Pixel (12, 14) is 75.752281, should be 74.000000637 Pixel (12, 15) is 76.654381, should be 75.000000638 Pixel (12, 16) is 77.547569, should be 76.000000639 Pixel (12, 17) is 78.448830, should be 77.000000640 Pixel (12, 18) is 79.372459, should be 78.000000641 Pixel (12, 19) is 80.328369, should be 79.000000642 Pixel (12, 20) is 81.321014, should be 80.000000643 Pixel (12, 21) is 82.349289, should be 81.000000644 Pixel (12, 22) is 83.406914, should be 82.000000645 Pixel (12, 23) is 84.483688, should be 83.000000646 Pixel (12, 24) is 85.567070, should be 84.000000647 Pixel (12, 25) is 86.644096, should be 85.000000648 Pixel (12, 26) is 87.703239, should be 86.000000649 Pixel (12, 27) is 88.735954, should be 87.000000650 Pixel (12, 28) is 89.737862, should be 88.000000651 Pixel (12, 29) is 90.709244, should be 89.000000652 Pixel (12, 30) is 91.654945, should be 90.000000653 Pixel (12, 31) is 92.583542, should be 91.000000654 Pixel (12, 32) is 93.506149, should be 92.000000655 Pixel (12, 33) is 94.434761, should be 93.000000656 Pixel (12, 34) is 95.380432, should be 94.000000657 Pixel (12, 35) is 96.351814, should be 95.000000658 Pixel (12, 36) is 97.353737, should be 96.000000659 Pixel (12, 37) is 98.386452, should be 97.000000660 Pixel (12, 38) is 99.445580, should be 98.000000661 Pixel (12, 39) is 100.522636, should be 99.000000662 Pixel (12, 40) is 101.606018, should be 100.000000663 Pixel (12, 41) is 102.682777, should be 101.000000664 Pixel (12, 42) is 103.740402, should be 102.000000665 Pixel (12, 43) is 104.768677, should be 103.000000666 Pixel (12, 44) is 105.761322, should be 104.000000667 Pixel (12, 45) is 106.717247, should be 105.000000668 Pixel (12, 46) is 107.640877, should be 106.000000669 Pixel (12, 47) is 108.542122, should be 107.000000670 Pixel (12, 48) is 109.435310, should be 108.000000671 Pixel (12, 49) is 110.337395, should be 109.000000672 Pixel (12, 50) is 111.265846, should be 110.000000673 Pixel (12, 51) is 112.235893, should be 111.000000674 Pixel (12, 52) is 113.258324, should be 112.000000675 Pixel (12, 53) is 114.336952, should be 113.000000676 Pixel (12, 54) is 115.467087, should be 114.000000677 Pixel (12, 55) is 116.634636, should be 115.000000678 Pixel (12, 56) is 117.816208, should be 116.000000679 Pixel (12, 57) is 118.980011, should be 117.000000680 Pixel (12, 58) is 120.087990, should be 118.000000681 Pixel (12, 59) is 121.098503, should be 119.000000682 Pixel (12, 60) is 121.969551, should be 120.000000683 Pixel (12, 61) is 122.662086, should be 121.000000684 Pixel (12, 62) is 123.143494, should be 122.000000685 Pixel (13, 0) is 67.549660, should be 65.000000686 Pixel (13, 1) is 67.796532, should be 66.000000687 Pixel (13, 2) is 68.277954, should be 67.000000688 Pixel (13, 7) is 73.123795, should be 72.000000689 Pixel (13, 8) is 74.305367, should be 73.000000690 Pixel (13, 9) is 75.472939, should be 74.000000691 Pixel (13, 10) is 76.603073, should be 75.000000692 Pixel (13, 11) is 77.681717, should be 76.000000693 Pixel (13, 12) is 78.704124, should be 77.000000694 Pixel (13, 13) is 79.674164, should be 78.000000695 Pixel (13, 14) is 80.602615, should be 79.000000696 Pixel (13, 15) is 81.504715, should be 80.000000697 Pixel (13, 16) is 82.397903, should be 81.000000698 Pixel (13, 17) is 83.299164, should be 82.000000699 Pixel (13, 18) is 84.222794, should be 83.000000700 Pixel (13, 19) is 85.178711, should be 84.000000701 Pixel (13, 20) is 86.171349, should be 85.000000702 Pixel (13, 21) is 87.199623, should be 86.000000703 Pixel (13, 22) is 88.257248, should be 87.000000704 Pixel (13, 23) is 89.334023, should be 88.000000705 Pixel (13, 24) is 90.417404, should be 89.000000706 Pixel (13, 25) is 91.494431, should be 90.000000707 Pixel (13, 26) is 92.553566, should be 91.000000708 Pixel (13, 27) is 93.586288, should be 92.000000709 Pixel (13, 28) is 94.588188, should be 93.000000710 Pixel (13, 29) is 95.559578, should be 94.000000711 Pixel (13, 30) is 96.505280, should be 95.000000712 Pixel (13, 31) is 97.433876, should be 96.000000713 Pixel (13, 32) is 98.356483, should be 97.000000714 Pixel (13, 33) is 99.285095, should be 98.000000715 Pixel (13, 34) is 100.230766, should be 99.000000716 Pixel (13, 35) is 101.202156, should be 100.000000717 Pixel (13, 36) is 102.204071, should be 101.000000718 Pixel (13, 37) is 103.236794, should be 102.000000719 Pixel (13, 38) is 104.295914, should be 103.000000720 Pixel (13, 39) is 105.372971, should be 104.000000721 Pixel (13, 40) is 106.456352, should be 105.000000722 Pixel (13, 41) is 107.533112, should be 106.000000723 Pixel (13, 42) is 108.590736, should be 107.000000724 Pixel (13, 43) is 109.619011, should be 108.000000725 Pixel (13, 44) is 110.611664, should be 109.000000726 Pixel (13, 45) is 111.567581, should be 110.000000727 Pixel (13, 46) is 112.491211, should be 111.000000728 Pixel (13, 47) is 113.392456, should be 112.000000729 Pixel (13, 48) is 114.285645, should be 113.000000730 Pixel (13, 49) is 115.187729, should be 114.000000731 Pixel (13, 50) is 116.116180, should be 115.000000732 Pixel (13, 51) is 117.086220, should be 116.000000733 Pixel (13, 52) is 118.108658, should be 117.000000734 Pixel (13, 53) is 119.187286, should be 118.000000735 Pixel (13, 54) is 120.317421, should be 119.000000736 Pixel (13, 55) is 121.484970, should be 120.000000737 Pixel (13, 56) is 122.666542, should be 121.000000738 Pixel (13, 57) is 123.830345, should be 122.000000739 Pixel (13, 58) is 124.938332, should be 123.000000740 Pixel (13, 59) is 125.948830, should be 124.000000741 Pixel (13, 60) is 126.819878, should be 125.000000742 Pixel (13, 61) is 127.512413, should be 126.000000743 Pixel (14, 0) is 72.191757, should be 70.000000744 Pixel (14, 1) is 72.438629, should be 71.000000745 Pixel (14, 9) is 80.115044, should be 79.000000746 Pixel (14, 10) is 81.245178, should be 80.000000747 Pixel (14, 11) is 82.323822, should be 81.000000748 Pixel (14, 12) is 83.346230, should be 82.000000749 Pixel (14, 13) is 84.316269, should be 83.000000750 Pixel (14, 14) is 85.244720, should be 84.000000751 Pixel (14, 15) is 86.146820, should be 85.000000752 Pixel (14, 16) is 87.040009, should be 86.000000753 Pixel (14, 24) is 95.059509, should be 94.000000754 Pixel (14, 25) is 96.136536, should be 95.000000755 Pixel (14, 26) is 97.195671, should be 96.000000756 Pixel (14, 27) is 98.228394, should be 97.000000757 Pixel (14, 28) is 99.230293, should be 98.000000758 Pixel (14, 29) is 100.201683, should be 99.000000759 Pixel (14, 30) is 101.147377, should be 100.000000760 Pixel (14, 31) is 102.075981, should be 101.000000761 Pixel (14, 39) is 110.015076, should be 109.000000762 Pixel (14, 40) is 111.098457, should be 110.000000763 Pixel (14, 41) is 112.175217, should be 111.000000764 Pixel (14, 42) is 113.232841, should be 112.000000765 Pixel (14, 43) is 114.261116, should be 113.000000766 Pixel (14, 44) is 115.253769, should be 114.000000767 Pixel (14, 45) is 116.209679, should be 115.000000768 Pixel (14, 46) is 117.133308, should be 116.000000769 Pixel (14, 47) is 118.034561, should be 117.000000770 Pixel (14, 55) is 126.127083, should be 125.000000771 Pixel (14, 56) is 127.308655, should be 126.000000772 Pixel (14, 57) is 128.472458, should be 127.000000773 Pixel (14, 58) is 129.580444, should be 128.000000774 Pixel (14, 59) is 130.590958, should be 129.000000775 Pixel (14, 60) is 131.462006, should be 130.000000776 Pixel (14, 61) is 132.154541, should be 131.000000777 Pixel (15, 0) is 76.702263, should be 75.000000778 Pixel (15, 58) is 134.090927, should be 133.000000779 Pixel (15, 59) is 135.101425, should be 134.000000780 Pixel (16, 0) is 81.168243, should be 80.000000781 Pixel (16, 63) is 141.859314, should be 143.000000782 Pixel (17, 4) is 87.966415, should be 89.000000783 Pixel (17, 5) is 88.976913, should be 90.000000784 Pixel (17, 63) is 146.365601, should be 148.000000785 Pixel (18, 3) is 91.713509, should be 93.000000786 Pixel (18, 4) is 92.584534, should be 94.000000787 Pixel (18, 5) is 93.595032, should be 95.000000788 Pixel (18, 6) is 94.703026, should be 96.000000789 Pixel (18, 7) is 95.866806, should be 97.000000790 Pixel (18, 18) is 106.965820, should be 108.000000791 Pixel (18, 19) is 107.921722, should be 109.000000792 Pixel (18, 20) is 108.914375, should be 110.000000793 Pixel (18, 21) is 109.942650, should be 111.000000794 Pixel (18, 34) is 122.973785, should be 124.000000795 Pixel (18, 35) is 123.945175, should be 125.000000796 Pixel (18, 36) is 124.947090, should be 126.000000797 Pixel (18, 37) is 125.979820, should be 127.000000798 Pixel (18, 49) is 137.930756, should be 139.000000799 Pixel (18, 50) is 138.859222, should be 140.000000800 Pixel (18, 51) is 139.829285, should be 141.000000801 Pixel (18, 52) is 140.851715, should be 142.000000802 Pixel (18, 53) is 141.930328, should be 143.000000803 Pixel (18, 62) is 150.736877, should be 152.000000804 Pixel (18, 63) is 150.983749, should be 153.000000805 Pixel (19, 2) is 95.800407, should be 97.000000806 Pixel (19, 3) is 96.492950, should be 98.000000807 Pixel (19, 4) is 97.363976, should be 99.000000808 Pixel (19, 5) is 98.374474, should be 100.000000809 Pixel (19, 6) is 99.482468, should be 101.000000810 Pixel (19, 7) is 100.646248, should be 102.000000811 Pixel (19, 8) is 101.827812, should be 103.000000812 Pixel (19, 9) is 102.995369, should be 104.000000813 Pixel (19, 16) is 109.920364, should be 111.000000814 Pixel (19, 17) is 110.821632, should be 112.000000815 Pixel (19, 18) is 111.745262, should be 113.000000816 Pixel (19, 19) is 112.701164, should be 114.000000817 Pixel (19, 20) is 113.693817, should be 115.000000818 Pixel (19, 21) is 114.722092, should be 116.000000819 Pixel (19, 22) is 115.779716, should be 117.000000820 Pixel (19, 23) is 116.856483, should be 118.000000821 Pixel (19, 24) is 117.939865, should be 119.000000822 Pixel (19, 31) is 124.956329, should be 126.000000823 Pixel (19, 32) is 125.878944, should be 127.000000824 Pixel (19, 33) is 126.807564, should be 128.000000825 Pixel (19, 34) is 127.753242, should be 129.000000826 Pixel (19, 35) is 128.724625, should be 130.000000827 Pixel (19, 36) is 129.726532, should be 131.000000828 Pixel (19, 37) is 130.759247, should be 132.000000829 Pixel (19, 38) is 131.818390, should be 133.000000830 Pixel (19, 39) is 132.895432, should be 134.000000831 Pixel (19, 40) is 133.978821, should be 135.000000832 Pixel (19, 47) is 140.914932, should be 142.000000833 Pixel (19, 48) is 141.808121, should be 143.000000834 Pixel (19, 49) is 142.710205, should be 144.000000835 Pixel (19, 50) is 143.638657, should be 145.000000836 Pixel (19, 51) is 144.608719, should be 146.000000837 Pixel (19, 52) is 145.631149, should be 147.000000838 Pixel (19, 53) is 146.709763, should be 148.000000839 Pixel (19, 54) is 147.839905, should be 149.000000840 Pixel (19, 62) is 155.516312, should be 157.000000841 Pixel (19, 63) is 155.763184, should be 158.000000842 Pixel (20, 2) is 100.763664, should be 102.000000843 Pixel (20, 3) is 101.456207, should be 103.000000844 Pixel (20, 4) is 102.327232, should be 104.000000845 Pixel (20, 5) is 103.337730, should be 105.000000846 Pixel (20, 6) is 104.445724, should be 106.000000847 Pixel (20, 7) is 105.609505, should be 107.000000848 Pixel (20, 8) is 106.791069, should be 108.000000849 Pixel (20, 9) is 107.958626, should be 109.000000850 Pixel (20, 15) is 113.990417, should be 115.000000851 Pixel (20, 16) is 114.883606, should be 116.000000852 Pixel (20, 17) is 115.784882, should be 117.000000853 Pixel (20, 18) is 116.708504, should be 118.000000854 Pixel (20, 19) is 117.664406, should be 119.000000855 Pixel (20, 20) is 118.657051, should be 120.000000856 Pixel (20, 21) is 119.685341, should be 121.000000857 Pixel (20, 22) is 120.742958, should be 122.000000858 Pixel (20, 23) is 121.819725, should be 123.000000859 Pixel (20, 24) is 122.903107, should be 124.000000860 Pixel (20, 25) is 123.980141, should be 125.000000861 Pixel (20, 30) is 128.990982, should be 130.000000862 Pixel (20, 31) is 129.919571, should be 131.000000863 Pixel (20, 32) is 130.842178, should be 132.000000864 Pixel (20, 33) is 131.770798, should be 133.000000865 Pixel (20, 34) is 132.716476, should be 134.000000866 Pixel (20, 35) is 133.687866, should be 135.000000867 Pixel (20, 36) is 134.689774, should be 136.000000868 Pixel (20, 37) is 135.722488, should be 137.000000869 Pixel (20, 38) is 136.781631, should be 138.000000870 Pixel (20, 39) is 137.858673, should be 139.000000871 Pixel (20, 40) is 138.942047, should be 140.000000872 Pixel (20, 46) is 144.976913, should be 146.000000873 Pixel (20, 47) is 145.878143, should be 147.000000874 Pixel (20, 48) is 146.771332, should be 148.000000875 Pixel (20, 49) is 147.673416, should be 149.000000876 Pixel (20, 50) is 148.601868, should be 150.000000877 Pixel (20, 51) is 149.571915, should be 151.000000878 Pixel (20, 52) is 150.594360, should be 152.000000879 Pixel (20, 53) is 151.672989, should be 153.000000880 Pixel (20, 54) is 152.803116, should be 154.000000881 Pixel (20, 55) is 153.970657, should be 155.000000882 Pixel (20, 61) is 159.998108, should be 161.000000883 Pixel (20, 62) is 160.479507, should be 162.000000884 Pixel (20, 63) is 160.726395, should be 163.000000885 Pixel (21, 2) is 105.905037, should be 107.000000886 Pixel (21, 3) is 106.597580, should be 108.000000887 Pixel (21, 4) is 107.468605, should be 109.000000888 Pixel (21, 5) is 108.479103, should be 110.000000889 Pixel (21, 6) is 109.587105, should be 111.000000890 Pixel (21, 7) is 110.750885, should be 112.000000891 Pixel (21, 8) is 111.932449, should be 113.000000892 Pixel (21, 17) is 120.926254, should be 122.000000893 Pixel (21, 18) is 121.849876, should be 123.000000894 Pixel (21, 19) is 122.805779, should be 124.000000895 Pixel (21, 20) is 123.798424, should be 125.000000896 Pixel (21, 21) is 124.826706, should be 126.000000897 Pixel (21, 22) is 125.884323, should be 127.000000898 Pixel (21, 23) is 126.961082, should be 128.000000899 Pixel (21, 32) is 135.983551, should be 137.000000900 Pixel (21, 33) is 136.912170, should be 138.000000901 Pixel (21, 34) is 137.857834, should be 139.000000902 Pixel (21, 35) is 138.829224, should be 140.000000903 Pixel (21, 36) is 139.831146, should be 141.000000904 Pixel (21, 37) is 140.863861, should be 142.000000905 Pixel (21, 38) is 141.922989, should be 143.000000906 Pixel (21, 48) is 151.912704, should be 153.000000907 Pixel (21, 49) is 152.814789, should be 154.000000908 Pixel (21, 50) is 153.743240, should be 155.000000909 Pixel (21, 51) is 154.713287, should be 156.000000910 Pixel (21, 52) is 155.735733, should be 157.000000911 Pixel (21, 53) is 156.814362, should be 158.000000912 Pixel (21, 54) is 157.944504, should be 159.000000913 Pixel (21, 62) is 165.620895, should be 167.000000914 Pixel (21, 63) is 165.867752, should be 168.000000915 Pixel (22, 3) is 111.885727, should be 113.000000916 Pixel (22, 4) is 112.756744, should be 114.000000917 Pixel (22, 5) is 113.767242, should be 115.000000918 Pixel (22, 6) is 114.875237, should be 116.000000919 Pixel (22, 62) is 170.909042, should be 172.000000920 Pixel (22, 63) is 171.155914, should be 173.000000921 Pixel (23, 63) is 176.539764, should be 178.000000922 Pixel (24, 0) is 121.265671, should be 120.000000923 Pixel (24, 63) is 181.956696, should be 183.000000924 Pixel (25, 0) is 126.650871, should be 125.000000925 Pixel (25, 58) is 184.039474, should be 183.000000926 Pixel (25, 59) is 185.049973, should be 184.000000927 Pixel (26, 0) is 131.946564, should be 130.000000928 Pixel (26, 1) is 132.193436, should be 131.000000929 Pixel (26, 11) is 142.078583, should be 141.000000930 Pixel (26, 12) is 143.100998, should be 142.000000931 Pixel (26, 13) is 144.071045, should be 143.000000932 Pixel (26, 43) is 174.015884, should be 173.000000933 Pixel (26, 44) is 175.008530, should be 174.000000934 Pixel (26, 56) is 187.063385, should be 186.000000935 Pixel (26, 57) is 188.227188, should be 187.000000936 Pixel (26, 58) is 189.335175, should be 188.000000937 Pixel (26, 59) is 190.345673, should be 189.000000938 Pixel (26, 60) is 191.216721, should be 190.000000939 Pixel (27, 0) is 137.110168, should be 135.000000940 Pixel (27, 1) is 137.357040, should be 136.000000941 Pixel (27, 9) is 145.033386, should be 144.000000942 Pixel (27, 10) is 146.163528, should be 145.000000943 Pixel (27, 11) is 147.242172, should be 146.000000944 Pixel (27, 12) is 148.264572, should be 147.000000945 Pixel (27, 13) is 149.234619, should be 148.000000946 Pixel (27, 14) is 150.163071, should be 149.000000947 Pixel (27, 15) is 151.065186, should be 150.000000948 Pixel (27, 25) is 161.054886, should be 160.000000949 Pixel (27, 26) is 162.114014, should be 161.000000950 Pixel (27, 27) is 163.146729, should be 162.000000951 Pixel (27, 28) is 164.148621, should be 163.000000952 Pixel (27, 29) is 165.120010, should be 164.000000953 Pixel (27, 30) is 166.065704, should be 165.000000954 Pixel (27, 40) is 176.016800, should be 175.000000955 Pixel (27, 41) is 177.093567, should be 176.000000956 Pixel (27, 42) is 178.151184, should be 177.000000957 Pixel (27, 43) is 179.179459, should be 178.000000958 Pixel (27, 44) is 180.172104, should be 179.000000959 Pixel (27, 45) is 181.128006, should be 180.000000960 Pixel (27, 46) is 182.051636, should be 181.000000961 Pixel (27, 55) is 191.045395, should be 190.000000962 Pixel (27, 56) is 192.226959, should be 191.000000963 Pixel (27, 57) is 193.390762, should be 192.000000964 Pixel (27, 58) is 194.498749, should be 193.000000965 Pixel (27, 59) is 195.509247, should be 194.000000966 Pixel (27, 60) is 196.380295, should be 195.000000967 Pixel (27, 61) is 197.072830, should be 196.000000968 Pixel (28, 0) is 142.119690, should be 140.000000969 Pixel (28, 1) is 142.366562, should be 141.000000970 Pixel (28, 9) is 150.042908, should be 149.000000971 Pixel (28, 10) is 151.173050, should be 150.000000972 Pixel (28, 11) is 152.251694, should be 151.000000973 Pixel (28, 12) is 153.274109, should be 152.000000974 Pixel (28, 13) is 154.244141, should be 153.000000975 Pixel (28, 14) is 155.172592, should be 154.000000976 Pixel (28, 15) is 156.074707, should be 155.000000977 Pixel (28, 25) is 166.064407, should be 165.000000978 Pixel (28, 26) is 167.123535, should be 166.000000979 Pixel (28, 27) is 168.156250, should be 167.000000980 Pixel (28, 28) is 169.158142, should be 168.000000981 Pixel (28, 29) is 170.129532, should be 169.000000982 Pixel (28, 30) is 171.075226, should be 170.000000983 Pixel (28, 31) is 172.003830, should be 171.000000984 Pixel (28, 40) is 181.026321, should be 180.000000985 Pixel (28, 41) is 182.103088, should be 181.000000986 Pixel (28, 42) is 183.160706, should be 182.000000987 Pixel (28, 43) is 184.188980, should be 183.000000988 Pixel (28, 44) is 185.181625, should be 184.000000989 Pixel (28, 45) is 186.137527, should be 185.000000990 Pixel (28, 46) is 187.061157, should be 186.000000991 Pixel (28, 55) is 196.054916, should be 195.000000992 Pixel (28, 56) is 197.236481, should be 196.000000993 Pixel (28, 57) is 198.400284, should be 197.000000994 Pixel (28, 58) is 199.508270, should be 198.000000995 Pixel (28, 59) is 200.518768, should be 199.000000996 Pixel (28, 60) is 201.389816, should be 200.000000997 Pixel (28, 61) is 202.082352, should be 201.000000998 Pixel (29, 0) is 146.976593, should be 145.000000999 Pixel (29, 1) is 147.223465, should be 146.0000001000 Pixel (29, 10) is 156.029953, should be 155.0000001001 Pixel (29, 11) is 157.108597, should be 156.0000001002 Pixel (29, 12) is 158.131012, should be 157.0000001003 Pixel (29, 13) is 159.101059, should be 158.0000001004 Pixel (29, 14) is 160.029495, should be 159.0000001005 Pixel (29, 27) is 173.013153, should be 172.0000001006 Pixel (29, 28) is 174.015045, should be 173.0000001007 Pixel (29, 42) is 188.017609, should be 187.0000001008 Pixel (29, 43) is 189.045883, should be 188.0000001009 Pixel (29, 44) is 190.038528, should be 189.0000001010 Pixel (29, 56) is 202.093384, should be 201.0000001011 Pixel (29, 57) is 203.257187, should be 202.0000001012 Pixel (29, 58) is 204.365173, should be 203.0000001013 Pixel (29, 59) is 205.375671, should be 204.0000001014 Pixel (29, 60) is 206.246719, should be 205.0000001015 Pixel (30, 0) is 151.705017, should be 150.0000001016 Pixel (30, 58) is 209.093597, should be 208.0000001017 Pixel (30, 59) is 210.104095, should be 209.0000001018 Pixel (31, 0) is 156.348038, should be 155.0000001019 Pixel (32, 63) is 221.652069, should be 223.0000001020 Pixel (33, 4) is 167.895950, should be 169.0000001021 Pixel (33, 5) is 168.906448, should be 170.0000001022 Pixel (33, 63) is 226.295059, should be 228.0000001023 Pixel (34, 3) is 171.753357, should be 173.0000001024 Pixel (34, 4) is 172.624374, should be 174.0000001025 Pixel (34, 5) is 173.634872, should be 175.0000001026 Pixel (34, 6) is 174.742859, should be 176.0000001027 Pixel (34, 7) is 175.906631, should be 177.0000001028 Pixel (34, 19) is 187.961548, should be 189.0000001029 Pixel (34, 20) is 188.954193, should be 190.0000001030 Pixel (34, 21) is 189.982468, should be 191.0000001031 Pixel (34, 35) is 203.984970, should be 205.0000001032 Pixel (34, 36) is 204.986893, should be 206.0000001033 Pixel (34, 49) is 217.970520, should be 219.0000001034 Pixel (34, 50) is 218.898956, should be 220.0000001035 Pixel (34, 51) is 219.869003, should be 221.0000001036 Pixel (34, 52) is 220.891434, should be 222.0000001037 Pixel (34, 53) is 221.970062, should be 223.0000001038 Pixel (34, 62) is 230.776611, should be 232.0000001039 Pixel (34, 63) is 231.023483, should be 233.0000001040 Pixel (35, 2) is 175.917755, should be 177.0000001041 Pixel (35, 3) is 176.610291, should be 178.0000001042 Pixel (35, 4) is 177.481308, should be 179.0000001043 Pixel (35, 5) is 178.491806, should be 180.0000001044 Pixel (35, 6) is 179.599792, should be 181.0000001045 Pixel (35, 7) is 180.763565, should be 182.0000001046 Pixel (35, 8) is 181.945129, should be 183.0000001047 Pixel (35, 17) is 190.938950, should be 192.0000001048 Pixel (35, 18) is 191.862579, should be 193.0000001049 Pixel (35, 19) is 192.818481, should be 194.0000001050 Pixel (35, 20) is 193.811127, should be 195.0000001051 Pixel (35, 21) is 194.839401, should be 196.0000001052 Pixel (35, 22) is 195.897018, should be 197.0000001053 Pixel (35, 23) is 196.973785, should be 198.0000001054 Pixel (35, 32) is 205.996216, should be 207.0000001055 Pixel (35, 33) is 206.924835, should be 208.0000001056 Pixel (35, 34) is 207.870514, should be 209.0000001057 Pixel (35, 35) is 208.841904, should be 210.0000001058 Pixel (35, 36) is 209.843826, should be 211.0000001059 Pixel (35, 37) is 210.876541, should be 212.0000001060 Pixel (35, 38) is 211.935669, should be 213.0000001061 Pixel (35, 48) is 221.925369, should be 223.0000001062 Pixel (35, 49) is 222.827454, should be 224.0000001063 Pixel (35, 50) is 223.755905, should be 225.0000001064 Pixel (35, 51) is 224.725937, should be 226.0000001065 Pixel (35, 52) is 225.748367, should be 227.0000001066 Pixel (35, 53) is 226.826996, should be 228.0000001067 Pixel (35, 54) is 227.957138, should be 229.0000001068 Pixel (35, 62) is 235.633545, should be 237.0000001069 Pixel (35, 63) is 235.880417, should be 238.0000001070 Pixel (36, 2) is 180.927292, should be 182.0000001071 Pixel (36, 3) is 181.619827, should be 183.0000001072 Pixel (36, 4) is 182.490845, should be 184.0000001073 Pixel (36, 5) is 183.501343, should be 185.0000001074 Pixel (36, 6) is 184.609329, should be 186.0000001075 Pixel (36, 7) is 185.773102, should be 187.0000001076 Pixel (36, 8) is 186.954666, should be 188.0000001077 Pixel (36, 17) is 195.948486, should be 197.0000001078 Pixel (36, 18) is 196.872116, should be 198.0000001079 Pixel (36, 19) is 197.828018, should be 199.0000001080 Pixel (36, 20) is 198.820663, should be 200.0000001081 Pixel (36, 21) is 199.848938, should be 201.0000001082 Pixel (36, 22) is 200.906555, should be 202.0000001083 Pixel (36, 23) is 201.983322, should be 203.0000001084 Pixel (36, 33) is 211.934372, should be 213.0000001085 Pixel (36, 34) is 212.880051, should be 214.0000001086 Pixel (36, 35) is 213.851440, should be 215.0000001087 Pixel (36, 36) is 214.853363, should be 216.0000001088 Pixel (36, 37) is 215.886078, should be 217.0000001089 Pixel (36, 38) is 216.945206, should be 218.0000001090 Pixel (36, 48) is 226.934906, should be 228.0000001091 Pixel (36, 49) is 227.836990, should be 229.0000001092 Pixel (36, 50) is 228.765442, should be 230.0000001093 Pixel (36, 51) is 229.735489, should be 231.0000001094 Pixel (36, 52) is 230.757904, should be 232.0000001095 Pixel (36, 53) is 231.836533, should be 233.0000001096 Pixel (36, 54) is 232.966675, should be 234.0000001097 Pixel (36, 62) is 240.643082, should be 242.0000001098 Pixel (36, 63) is 240.889954, should be 243.0000001099 Pixel (37, 3) is 186.783417, should be 188.0000001100 Pixel (37, 4) is 187.654434, should be 189.0000001101 Pixel (37, 5) is 188.664932, should be 190.0000001102 Pixel (37, 6) is 189.772919, should be 191.0000001103 Pixel (37, 7) is 190.936691, should be 192.0000001104 Pixel (37, 19) is 202.991608, should be 204.0000001105 Pixel (37, 20) is 203.984253, should be 205.0000001106 Pixel (37, 50) is 233.929031, should be 235.0000001107 Pixel (37, 51) is 234.899078, should be 236.0000001108 Pixel (37, 52) is 235.921509, should be 237.0000001109 Pixel (37, 62) is 245.806671, should be 247.0000001110 Pixel (37, 63) is 246.053543, should be 248.0000001111 Pixel (38, 4) is 192.950089, should be 194.0000001112 Pixel (38, 5) is 193.960587, should be 195.0000001113 Pixel (38, 63) is 251.349228, should be 253.0000001114 Pixel (39, 0) is 196.043472, should be 195.0000001115 Pixel (39, 63) is 256.734406, should be 258.0000001116 Pixel (40, 0) is 201.460358, should be 200.0000001117 Pixel (41, 0) is 206.844208, should be 205.0000001118 Pixel (41, 1) is 207.091080, should be 206.0000001119 Pixel (41, 57) is 263.124786, should be 262.0000001120 Pixel (41, 58) is 264.232758, should be 263.0000001121 Pixel (41, 59) is 265.243256, should be 264.0000001122 Pixel (41, 60) is 266.114319, should be 265.0000001123 Pixel (42, 0) is 212.132355, should be 210.0000001124 Pixel (42, 1) is 212.379211, should be 211.0000001125 Pixel (42, 9) is 220.055542, should be 219.0000001126 Pixel (42, 10) is 221.185684, should be 220.0000001127 Pixel (42, 11) is 222.264328, should be 221.0000001128 Pixel (42, 12) is 223.286758, should be 222.0000001129 Pixel (42, 13) is 224.256805, should be 223.0000001130 Pixel (42, 14) is 225.185257, should be 224.0000001131 Pixel (42, 15) is 226.087372, should be 225.0000001132 Pixel (42, 24) is 235.000031, should be 234.0000001133 Pixel (42, 25) is 236.077057, should be 235.0000001134 Pixel (42, 26) is 237.136185, should be 236.0000001135 Pixel (42, 27) is 238.168900, should be 237.0000001136 Pixel (42, 28) is 239.170792, should be 238.0000001137 Pixel (42, 29) is 240.142181, should be 239.0000001138 Pixel (42, 30) is 241.087875, should be 240.0000001139 Pixel (42, 31) is 242.016464, should be 241.0000001140 Pixel (42, 40) is 251.038986, should be 250.0000001141 Pixel (42, 41) is 252.115738, should be 251.0000001142 Pixel (42, 42) is 253.173355, should be 252.0000001143 Pixel (42, 43) is 254.201645, should be 253.0000001144 Pixel (42, 44) is 255.194290, should be 254.0000001145 Pixel (42, 45) is 256.150177, should be 255.0000001146 Pixel (42, 46) is 257.073792, should be 256.0000001147 Pixel (42, 55) is 266.067566, should be 265.0000001148 Pixel (42, 56) is 267.249146, should be 266.0000001149 Pixel (42, 57) is 268.412933, should be 267.0000001150 Pixel (42, 58) is 269.520935, should be 268.0000001151 Pixel (42, 59) is 270.531433, should be 269.0000001152 Pixel (42, 60) is 271.402466, should be 270.0000001153 Pixel (42, 61) is 272.095001, should be 271.0000001154 Pixel (43, 0) is 217.273712, should be 215.0000001155 Pixel (43, 1) is 217.520569, should be 216.0000001156 Pixel (43, 2) is 218.001968, should be 217.0000001157 Pixel (43, 8) is 224.029327, should be 223.0000001158 Pixel (43, 9) is 225.196869, should be 224.0000001159 Pixel (43, 10) is 226.327026, should be 225.0000001160 Pixel (43, 11) is 227.405670, should be 226.0000001161 Pixel (43, 12) is 228.428101, should be 227.0000001162 Pixel (43, 13) is 229.398148, should be 228.0000001163 Pixel (43, 14) is 230.326599, should be 229.0000001164 Pixel (43, 15) is 231.228714, should be 230.0000001165 Pixel (43, 16) is 232.121902, should be 231.0000001166 Pixel (43, 17) is 233.023193, should be 232.0000001167 Pixel (43, 23) is 239.057999, should be 238.0000001168 Pixel (43, 24) is 240.141373, should be 239.0000001169 Pixel (43, 25) is 241.218399, should be 240.0000001170 Pixel (43, 26) is 242.277512, should be 241.0000001171 Pixel (43, 27) is 243.310226, should be 242.0000001172 Pixel (43, 28) is 244.312134, should be 243.0000001173 Pixel (43, 29) is 245.283524, should be 244.0000001174 Pixel (43, 30) is 246.229202, should be 245.0000001175 Pixel (43, 31) is 247.157822, should be 246.0000001176 Pixel (43, 32) is 248.080429, should be 247.0000001177 Pixel (43, 33) is 249.009048, should be 248.0000001178 Pixel (43, 38) is 254.019882, should be 253.0000001179 Pixel (43, 39) is 255.096939, should be 254.0000001180 Pixel (43, 40) is 256.180328, should be 255.0000001181 Pixel (43, 41) is 257.257080, should be 256.0000001182 Pixel (43, 42) is 258.314667, should be 257.0000001183 Pixel (43, 43) is 259.342957, should be 258.0000001184 Pixel (43, 44) is 260.335632, should be 259.0000001185 Pixel (43, 45) is 261.291534, should be 260.0000001186 Pixel (43, 46) is 262.215149, should be 261.0000001187 Pixel (43, 47) is 263.116394, should be 262.0000001188 Pixel (43, 48) is 264.009583, should be 263.0000001189 Pixel (43, 54) is 270.041382, should be 269.0000001190 Pixel (43, 55) is 271.208923, should be 270.0000001191 Pixel (43, 56) is 272.390503, should be 271.0000001192 Pixel (43, 57) is 273.554291, should be 272.0000001193 Pixel (43, 58) is 274.662292, should be 273.0000001194 Pixel (43, 59) is 275.672791, should be 274.0000001195 Pixel (43, 60) is 276.543823, should be 275.0000001196 Pixel (43, 61) is 277.236359, should be 276.0000001197 Pixel (44, 0) is 222.236954, should be 220.0000001198 Pixel (44, 1) is 222.483826, should be 221.0000001199 Pixel (44, 9) is 230.160110, should be 229.0000001200 Pixel (44, 10) is 231.290253, should be 230.0000001201 Pixel (44, 11) is 232.368912, should be 231.0000001202 Pixel (44, 12) is 233.391327, should be 232.0000001203 Pixel (44, 13) is 234.361389, should be 233.0000001204 Pixel (44, 14) is 235.289841, should be 234.0000001205 Pixel (44, 15) is 236.191956, should be 235.0000001206 Pixel (44, 16) is 237.085144, should be 236.0000001207 Pixel (44, 23) is 244.021240, should be 243.0000001208 Pixel (44, 24) is 245.104584, should be 244.0000001209 Pixel (44, 25) is 246.181610, should be 245.0000001210 Pixel (44, 26) is 247.240753, should be 246.0000001211 Pixel (44, 27) is 248.273468, should be 247.0000001212 Pixel (44, 28) is 249.275360, should be 248.0000001213 Pixel (44, 29) is 250.246735, should be 249.0000001214 Pixel (44, 30) is 251.192444, should be 250.0000001215 Pixel (44, 31) is 252.121033, should be 251.0000001216 Pixel (44, 32) is 253.043640, should be 252.0000001217 Pixel (44, 39) is 260.060150, should be 259.0000001218 Pixel (44, 40) is 261.143524, should be 260.0000001219 Pixel (44, 41) is 262.220306, should be 261.0000001220 Pixel (44, 42) is 263.277924, should be 262.0000001221 Pixel (44, 43) is 264.306183, should be 263.0000001222 Pixel (44, 44) is 265.298828, should be 264.0000001223 Pixel (44, 45) is 266.254730, should be 265.0000001224 Pixel (44, 46) is 267.178375, should be 266.0000001225 Pixel (44, 47) is 268.079620, should be 267.0000001226 Pixel (44, 54) is 275.004578, should be 274.0000001227 Pixel (44, 55) is 276.172150, should be 275.0000001228 Pixel (44, 56) is 277.353699, should be 276.0000001229 Pixel (44, 57) is 278.517517, should be 277.0000001230 Pixel (44, 58) is 279.625488, should be 278.0000001231 Pixel (44, 59) is 280.635986, should be 279.0000001232 Pixel (44, 60) is 281.507050, should be 280.0000001233 Pixel (44, 61) is 282.199585, should be 281.0000001234 Pixel (45, 0) is 227.016373, should be 225.0000001235 Pixel (45, 1) is 227.263245, should be 226.0000001236 Pixel (45, 10) is 236.069672, should be 235.0000001237 Pixel (45, 11) is 237.148331, should be 236.0000001238 Pixel (45, 12) is 238.170746, should be 237.0000001239 Pixel (45, 13) is 239.140808, should be 238.0000001240 Pixel (45, 14) is 240.069260, should be 239.0000001241 Pixel (45, 26) is 252.020172, should be 251.0000001242 Pixel (45, 27) is 253.052887, should be 252.0000001243 Pixel (45, 28) is 254.054779, should be 253.0000001244 Pixel (45, 29) is 255.026184, should be 254.0000001245 Pixel (45, 42) is 268.057312, should be 267.0000001246 Pixel (45, 43) is 269.085602, should be 268.0000001247 Pixel (45, 44) is 270.078247, should be 269.0000001248 Pixel (45, 45) is 271.034149, should be 270.0000001249 Pixel (45, 56) is 282.133118, should be 281.0000001250 Pixel (45, 57) is 283.296906, should be 282.0000001251 Pixel (45, 58) is 284.404907, should be 283.0000001252 Pixel (45, 59) is 285.415405, should be 284.0000001253 Pixel (45, 60) is 286.286438, should be 285.0000001254 Pixel (46, 0) is 231.634460, should be 230.0000001255 Pixel (46, 58) is 289.023010, should be 288.0000001256 Pixel (46, 59) is 290.033478, should be 289.0000001257 Pixel (47, 0) is 236.140778, should be 235.0000001258 Pixel (47, 63) is 296.831665, should be 298.0000001259 Pixel (48, 4) is 242.898560, should be 244.0000001260 Pixel (48, 5) is 243.909058, should be 245.0000001261 Pixel (48, 63) is 301.297638, should be 303.0000001262 Pixel (49, 2) is 245.845490, should be 247.0000001263 Pixel (49, 3) is 246.538025, should be 248.0000001264 Pixel (49, 4) is 247.409058, should be 249.0000001265 Pixel (49, 5) is 248.419556, should be 250.0000001266 Pixel (49, 6) is 249.527527, should be 251.0000001267 Pixel (49, 7) is 250.691315, should be 252.0000001268 Pixel (49, 8) is 251.872864, should be 253.0000001269 Pixel (49, 16) is 259.965363, should be 261.0000001270 Pixel (49, 17) is 260.866638, should be 262.0000001271 Pixel (49, 18) is 261.790283, should be 263.0000001272 Pixel (49, 19) is 262.746185, should be 264.0000001273 Pixel (49, 20) is 263.738831, should be 265.0000001274 Pixel (49, 21) is 264.767090, should be 266.0000001275 Pixel (49, 22) is 265.824707, should be 267.0000001276 Pixel (49, 23) is 266.901489, should be 268.0000001277 Pixel (49, 24) is 267.984863, should be 269.0000001278 Pixel (49, 32) is 275.923920, should be 277.0000001279 Pixel (49, 33) is 276.852539, should be 278.0000001280 Pixel (49, 34) is 277.798218, should be 279.0000001281 Pixel (49, 35) is 278.769592, should be 280.0000001282 Pixel (49, 36) is 279.771515, should be 281.0000001283 Pixel (49, 37) is 280.804230, should be 282.0000001284 Pixel (49, 38) is 281.863373, should be 283.0000001285 Pixel (49, 39) is 282.940430, should be 284.0000001286 Pixel (49, 47) is 290.959869, should be 292.0000001287 Pixel (49, 48) is 291.853058, should be 293.0000001288 Pixel (49, 49) is 292.755157, should be 294.0000001289 Pixel (49, 50) is 293.683594, should be 295.0000001290 Pixel (49, 51) is 294.653656, should be 296.0000001291 Pixel (49, 52) is 295.676056, should be 297.0000001292 Pixel (49, 53) is 296.754669, should be 298.0000001293 Pixel (49, 54) is 297.884827, should be 299.0000001294 Pixel (49, 62) is 305.561218, should be 307.0000001295 Pixel (49, 63) is 305.808105, should be 308.0000001296 Pixel (50, 2) is 250.487579, should be 252.0000001297 Pixel (50, 3) is 251.180115, should be 253.0000001298 Pixel (50, 4) is 252.051147, should be 254.0000001299 Pixel (50, 5) is 253.061646, should be 255.0000001300 Pixel (50, 6) is 254.169617, should be 256.0000001301 Pixel (50, 7) is 255.333405, should be 257.0000001302 Pixel (50, 8) is 256.514984, should be 258.0000001303 Pixel (50, 9) is 257.682556, should be 259.0000001304 Pixel (50, 10) is 258.812683, should be 260.0000001305 Pixel (50, 11) is 259.891327, should be 261.0000001306 Pixel (50, 12) is 260.913757, should be 262.0000001307 Pixel (50, 13) is 261.883759, should be 263.0000001308 Pixel (50, 14) is 262.812225, should be 264.0000001309 Pixel (50, 15) is 263.714325, should be 265.0000001310 Pixel (50, 16) is 264.607513, should be 266.0000001311 Pixel (50, 17) is 265.508789, should be 267.0000001312 Pixel (50, 18) is 266.432434, should be 268.0000001313 Pixel (50, 19) is 267.388336, should be 269.0000001314 Pixel (50, 20) is 268.380981, should be 270.0000001315 Pixel (50, 21) is 269.409241, should be 271.0000001316 Pixel (50, 22) is 270.466858, should be 272.0000001317 Pixel (50, 23) is 271.543640, should be 273.0000001318 Pixel (50, 24) is 272.627014, should be 274.0000001319 Pixel (50, 25) is 273.704041, should be 275.0000001320 Pixel (50, 26) is 274.763153, should be 276.0000001321 Pixel (50, 27) is 275.795868, should be 277.0000001322 Pixel (50, 28) is 276.797760, should be 278.0000001323 Pixel (50, 29) is 277.769165, should be 279.0000001324 Pixel (50, 30) is 278.714844, should be 280.0000001325 Pixel (50, 31) is 279.643463, should be 281.0000001326 Pixel (50, 32) is 280.566071, should be 282.0000001327 Pixel (50, 33) is 281.494690, should be 283.0000001328 Pixel (50, 34) is 282.440369, should be 284.0000001329 Pixel (50, 35) is 283.411743, should be 285.0000001330 Pixel (50, 36) is 284.413666, should be 286.0000001331 Pixel (50, 37) is 285.446381, should be 287.0000001332 Pixel (50, 38) is 286.505524, should be 288.0000001333 Pixel (50, 39) is 287.582581, should be 289.0000001334 Pixel (50, 40) is 288.665955, should be 290.0000001335 Pixel (50, 41) is 289.742706, should be 291.0000001336 Pixel (50, 42) is 290.800323, should be 292.0000001337 Pixel (50, 43) is 291.828613, should be 293.0000001338 Pixel (50, 44) is 292.821259, should be 294.0000001339 Pixel (50, 45) is 293.777161, should be 295.0000001340 Pixel (50, 46) is 294.700775, should be 296.0000001341 Pixel (50, 47) is 295.602020, should be 297.0000001342 Pixel (50, 48) is 296.495209, should be 298.0000001343 Pixel (50, 49) is 297.397308, should be 299.0000001344 Pixel (50, 50) is 298.325745, should be 300.0000001345 Pixel (50, 51) is 299.295776, should be 301.0000001346 Pixel (50, 52) is 300.318207, should be 302.0000001347 Pixel (50, 53) is 301.396820, should be 303.0000001348 Pixel (50, 54) is 302.526978, should be 304.0000001349 Pixel (50, 55) is 303.694519, should be 305.0000001350 Pixel (50, 56) is 304.876099, should be 306.0000001351 Pixel (50, 61) is 309.721954, should be 311.0000001352 Pixel (50, 62) is 310.203369, should be 312.0000001353 Pixel (50, 63) is 310.450256, should be 313.0000001354 Pixel (51, 1) is 254.856476, should be 256.0000001355 Pixel (51, 2) is 255.337906, should be 257.0000001356 Pixel (51, 3) is 256.030457, should be 258.0000001357 Pixel (51, 4) is 256.901489, should be 259.0000001358 Pixel (51, 5) is 257.911987, should be 260.0000001359 Pixel (51, 6) is 259.019958, should be 261.0000001360 Pixel (51, 7) is 260.183746, should be 262.0000001361 Pixel (51, 8) is 261.365295, should be 263.0000001362 Pixel (51, 9) is 262.532867, should be 264.0000001363 Pixel (51, 10) is 263.662994, should be 265.0000001364 Pixel (51, 11) is 264.741638, should be 266.0000001365 Pixel (51, 12) is 265.764069, should be 267.0000001366 Pixel (51, 13) is 266.734100, should be 268.0000001367 Pixel (51, 14) is 267.662537, should be 269.0000001368 Pixel (51, 15) is 268.564636, should be 270.0000001369 Pixel (51, 16) is 269.457825, should be 271.0000001370 Pixel (51, 17) is 270.359100, should be 272.0000001371 Pixel (51, 18) is 271.282745, should be 273.0000001372 Pixel (51, 19) is 272.238647, should be 274.0000001373 Pixel (51, 20) is 273.231293, should be 275.0000001374 Pixel (51, 21) is 274.259552, should be 276.0000001375 Pixel (51, 22) is 275.317169, should be 277.0000001376 Pixel (51, 23) is 276.393951, should be 278.0000001377 Pixel (51, 24) is 277.477325, should be 279.0000001378 Pixel (51, 25) is 278.554352, should be 280.0000001379 Pixel (51, 26) is 279.613464, should be 281.0000001380 Pixel (51, 27) is 280.646179, should be 282.0000001381 Pixel (51, 28) is 281.648071, should be 283.0000001382 Pixel (51, 29) is 282.619476, should be 284.0000001383 Pixel (51, 30) is 283.565155, should be 285.0000001384 Pixel (51, 31) is 284.493774, should be 286.0000001385 Pixel (51, 32) is 285.416382, should be 287.0000001386 Pixel (51, 33) is 286.345001, should be 288.0000001387 Pixel (51, 34) is 287.290680, should be 289.0000001388 Pixel (51, 35) is 288.262054, should be 290.0000001389 Pixel (51, 36) is 289.263977, should be 291.0000001390 Pixel (51, 37) is 290.296692, should be 292.0000001391 Pixel (51, 38) is 291.355835, should be 293.0000001392 Pixel (51, 39) is 292.432892, should be 294.0000001393 Pixel (51, 40) is 293.516266, should be 295.0000001394 Pixel (51, 41) is 294.593018, should be 296.0000001395 Pixel (51, 42) is 295.650635, should be 297.0000001396 Pixel (51, 43) is 296.678925, should be 298.0000001397 Pixel (51, 44) is 297.671570, should be 299.0000001398 Pixel (51, 45) is 298.627472, should be 300.0000001399 Pixel (51, 46) is 299.551086, should be 301.0000001400 Pixel (51, 47) is 300.452332, should be 302.0000001401 Pixel (51, 48) is 301.345520, should be 303.0000001402 Pixel (51, 49) is 302.247620, should be 304.0000001403 Pixel (51, 50) is 303.176025, should be 305.0000001404 Pixel (51, 51) is 304.146088, should be 306.0000001405 Pixel (51, 52) is 305.168518, should be 307.0000001406 Pixel (51, 53) is 306.247131, should be 308.0000001407 Pixel (51, 54) is 307.377289, should be 309.0000001408 Pixel (51, 55) is 308.544830, should be 310.0000001409 Pixel (51, 56) is 309.726410, should be 311.0000001410 Pixel (51, 57) is 310.890198, should be 312.0000001411 Pixel (51, 58) is 311.998199, should be 313.0000001412 Pixel (51, 60) is 313.879730, should be 315.0000001413 Pixel (51, 61) is 314.572266, should be 316.0000001414 Pixel (51, 62) is 315.053680, should be 317.0000001415 Pixel (51, 63) is 315.300568, should be 318.0000001416 Pixel (52, 1) is 259.968658, should be 261.0000001417 Pixel (52, 2) is 260.450073, should be 262.0000001418 Pixel (52, 3) is 261.142609, should be 263.0000001419 Pixel (52, 4) is 262.013641, should be 264.0000001420 Pixel (52, 5) is 263.024139, should be 265.0000001421 Pixel (52, 6) is 264.132111, should be 266.0000001422 Pixel (52, 7) is 265.295898, should be 267.0000001423 Pixel (52, 8) is 266.477448, should be 268.0000001424 Pixel (52, 9) is 267.645020, should be 269.0000001425 Pixel (52, 10) is 268.775146, should be 270.0000001426 Pixel (52, 11) is 269.853790, should be 271.0000001427 Pixel (52, 12) is 270.876221, should be 272.0000001428 Pixel (52, 13) is 271.846252, should be 273.0000001429 Pixel (52, 14) is 272.774719, should be 274.0000001430 Pixel (52, 15) is 273.676788, should be 275.0000001431 Pixel (52, 16) is 274.569977, should be 276.0000001432 Pixel (52, 17) is 275.471252, should be 277.0000001433 Pixel (52, 18) is 276.394897, should be 278.0000001434 Pixel (52, 19) is 277.350800, should be 279.0000001435 Pixel (52, 20) is 278.343445, should be 280.0000001436 Pixel (52, 21) is 279.371704, should be 281.0000001437 Pixel (52, 22) is 280.429321, should be 282.0000001438 Pixel (52, 23) is 281.506104, should be 283.0000001439 Pixel (52, 24) is 282.589478, should be 284.0000001440 Pixel (52, 25) is 283.666504, should be 285.0000001441 Pixel (52, 26) is 284.725616, should be 286.0000001442 Pixel (52, 27) is 285.758331, should be 287.0000001443 Pixel (52, 28) is 286.760223, should be 288.0000001444 Pixel (52, 29) is 287.731628, should be 289.0000001445 Pixel (52, 30) is 288.677307, should be 290.0000001446 Pixel (52, 31) is 289.605927, should be 291.0000001447 Pixel (52, 32) is 290.528534, should be 292.0000001448 Pixel (52, 33) is 291.457153, should be 293.0000001449 Pixel (52, 34) is 292.402832, should be 294.0000001450 Pixel (52, 35) is 293.374207, should be 295.0000001451 Pixel (52, 36) is 294.376129, should be 296.0000001452 Pixel (52, 37) is 295.408844, should be 297.0000001453 Pixel (52, 38) is 296.467987, should be 298.0000001454 Pixel (52, 39) is 297.545044, should be 299.0000001455 Pixel (52, 40) is 298.628418, should be 300.0000001456 Pixel (52, 41) is 299.705170, should be 301.0000001457 Pixel (52, 42) is 300.762787, should be 302.0000001458 Pixel (52, 43) is 301.791077, should be 303.0000001459 Pixel (52, 44) is 302.783722, should be 304.0000001460 Pixel (52, 45) is 303.739624, should be 305.0000001461 Pixel (52, 46) is 304.663239, should be 306.0000001462 Pixel (52, 47) is 305.564484, should be 307.0000001463 Pixel (52, 48) is 306.457672, should be 308.0000001464 Pixel (52, 49) is 307.359741, should be 309.0000001465 Pixel (52, 50) is 308.288177, should be 310.0000001466 Pixel (52, 51) is 309.258240, should be 311.0000001467 Pixel (52, 52) is 310.280670, should be 312.0000001468 Pixel (52, 53) is 311.359283, should be 313.0000001469 Pixel (52, 54) is 312.489441, should be 314.0000001470 Pixel (52, 55) is 313.656982, should be 315.0000001471 Pixel (52, 56) is 314.838562, should be 316.0000001472 Pixel (52, 60) is 318.991882, should be 320.0000001473 Pixel (52, 61) is 319.684418, should be 321.0000001474 Pixel (52, 62) is 320.165833, should be 322.0000001475 Pixel (52, 63) is 320.412720, should be 323.0000001476 Pixel (53, 2) is 265.843201, should be 267.0000001477 Pixel (53, 3) is 266.535736, should be 268.0000001478 Pixel (53, 4) is 267.406769, should be 269.0000001479 Pixel (53, 5) is 268.417267, should be 270.0000001480 Pixel (53, 6) is 269.525238, should be 271.0000001481 Pixel (53, 7) is 270.689026, should be 272.0000001482 Pixel (53, 8) is 271.870575, should be 273.0000001483 Pixel (53, 16) is 279.963104, should be 281.0000001484 Pixel (53, 17) is 280.864380, should be 282.0000001485 Pixel (53, 18) is 281.788025, should be 283.0000001486 Pixel (53, 19) is 282.743927, should be 284.0000001487 Pixel (53, 20) is 283.736572, should be 285.0000001488 Pixel (53, 21) is 284.764832, should be 286.0000001489 Pixel (53, 22) is 285.822449, should be 287.0000001490 Pixel (53, 23) is 286.899231, should be 288.0000001491 Pixel (53, 24) is 287.982605, should be 289.0000001492 Pixel (53, 31) is 294.999054, should be 296.0000001493 Pixel (53, 32) is 295.921661, should be 297.0000001494 Pixel (53, 33) is 296.850281, should be 298.0000001495 Pixel (53, 34) is 297.795959, should be 299.0000001496 Pixel (53, 35) is 298.767334, should be 300.0000001497 Pixel (53, 36) is 299.769257, should be 301.0000001498 Pixel (53, 37) is 300.801971, should be 302.0000001499 Pixel (53, 38) is 301.861115, should be 303.0000001500 Pixel (53, 39) is 302.938171, should be 304.0000001501 Pixel (53, 47) is 310.957611, should be 312.0000001502 Pixel (53, 48) is 311.850800, should be 313.0000001503 Pixel (53, 49) is 312.752869, should be 314.0000001504 Pixel (53, 50) is 313.681305, should be 315.0000001505 Pixel (53, 51) is 314.651367, should be 316.0000001506 Pixel (53, 52) is 315.673798, should be 317.0000001507 Pixel (53, 53) is 316.752411, should be 318.0000001508 Pixel (53, 54) is 317.882568, should be 319.0000001509 Pixel (53, 62) is 325.558960, should be 327.0000001510 Pixel (53, 63) is 325.805847, should be 328.0000001511 Pixel (54, 63) is 331.456512, should be 333.0000001512 Pixel (55, 0) is 276.603424, should be 275.0000001513 Pixel (55, 59) is 335.002472, should be 334.0000001514 Pixel (56, 0) is 282.511169, should be 280.0000001515 Pixel (56, 1) is 282.758026, should be 281.0000001516 Pixel (56, 2) is 283.239441, should be 282.0000001517 Pixel (56, 7) is 288.085266, should be 287.0000001518 Pixel (56, 8) is 289.266815, should be 288.0000001519 Pixel (56, 9) is 290.434387, should be 289.0000001520 Pixel (56, 10) is 291.564484, should be 290.0000001521 Pixel (56, 11) is 292.643158, should be 291.0000001522 Pixel (56, 12) is 293.665588, should be 292.0000001523 Pixel (56, 13) is 294.635620, should be 293.0000001524 Pixel (56, 14) is 295.564087, should be 294.0000001525 Pixel (56, 15) is 296.466187, should be 295.0000001526 Pixel (56, 16) is 297.359375, should be 296.0000001527 Pixel (56, 17) is 298.260620, should be 297.0000001528 Pixel (56, 18) is 299.184265, should be 298.0000001529 Pixel (56, 19) is 300.140167, should be 299.0000001530 Pixel (56, 20) is 301.132812, should be 300.0000001531 Pixel (56, 21) is 302.161102, should be 301.0000001532 Pixel (56, 22) is 303.218689, should be 302.0000001533 Pixel (56, 23) is 304.295471, should be 303.0000001534 Pixel (56, 24) is 305.378845, should be 304.0000001535 Pixel (56, 25) is 306.455872, should be 305.0000001536 Pixel (56, 26) is 307.514984, should be 306.0000001537 Pixel (56, 27) is 308.547699, should be 307.0000001538 Pixel (56, 28) is 309.549591, should be 308.0000001539 Pixel (56, 29) is 310.520996, should be 309.0000001540 Pixel (56, 30) is 311.466675, should be 310.0000001541 Pixel (56, 31) is 312.395294, should be 311.0000001542 Pixel (56, 32) is 313.317902, should be 312.0000001543 Pixel (56, 33) is 314.246521, should be 313.0000001544 Pixel (56, 34) is 315.192200, should be 314.0000001545 Pixel (56, 35) is 316.163574, should be 315.0000001546 Pixel (56, 36) is 317.165497, should be 316.0000001547 Pixel (56, 37) is 318.198212, should be 317.0000001548 Pixel (56, 38) is 319.257355, should be 318.0000001549 Pixel (56, 39) is 320.334412, should be 319.0000001550 Pixel (56, 40) is 321.417786, should be 320.0000001551 Pixel (56, 41) is 322.494537, should be 321.0000001552 Pixel (56, 42) is 323.552185, should be 322.0000001553 Pixel (56, 43) is 324.580444, should be 323.0000001554 Pixel (56, 44) is 325.573090, should be 324.0000001555 Pixel (56, 45) is 326.528992, should be 325.0000001556 Pixel (56, 46) is 327.452606, should be 326.0000001557 Pixel (56, 47) is 328.353821, should be 327.0000001558 Pixel (56, 48) is 329.247009, should be 328.0000001559 Pixel (56, 49) is 330.149109, should be 329.0000001560 Pixel (56, 50) is 331.077545, should be 330.0000001561 Pixel (56, 51) is 332.047607, should be 331.0000001562 Pixel (56, 52) is 333.070038, should be 332.0000001563 Pixel (56, 53) is 334.148621, should be 333.0000001564 Pixel (56, 54) is 335.278809, should be 334.0000001565 Pixel (56, 55) is 336.446350, should be 335.0000001566 Pixel (56, 56) is 337.627930, should be 336.0000001567 Pixel (56, 57) is 338.791718, should be 337.0000001568 Pixel (56, 58) is 339.899719, should be 338.0000001569 Pixel (56, 59) is 340.910217, should be 339.0000001570 Pixel (56, 60) is 341.781250, should be 340.0000001571 Pixel (56, 61) is 342.473785, should be 341.0000001572 Pixel (57, 0) is 288.330200, should be 285.0000001573 Pixel (57, 1) is 288.577057, should be 286.0000001574 Pixel (57, 2) is 289.058472, should be 287.0000001575 Pixel (57, 3) is 289.751007, should be 288.0000001576 Pixel (57, 4) is 290.622009, should be 289.0000001577 Pixel (57, 5) is 291.632507, should be 290.0000001578 Pixel (57, 6) is 292.740509, should be 291.0000001579 Pixel (57, 7) is 293.904266, should be 292.0000001580 Pixel (57, 8) is 295.085846, should be 293.0000001581 Pixel (57, 9) is 296.253387, should be 294.0000001582 Pixel (57, 10) is 297.383514, should be 295.0000001583 Pixel (57, 11) is 298.462189, should be 296.0000001584 Pixel (57, 12) is 299.484589, should be 297.0000001585 Pixel (57, 13) is 300.454651, should be 298.0000001586 Pixel (57, 14) is 301.383087, should be 299.0000001587 Pixel (57, 15) is 302.285217, should be 300.0000001588 Pixel (57, 16) is 303.178406, should be 301.0000001589 Pixel (57, 17) is 304.079651, should be 302.0000001590 Pixel (57, 18) is 305.003265, should be 303.0000001591 Pixel (57, 19) is 305.959167, should be 304.0000001592 Pixel (57, 20) is 306.951813, should be 305.0000001593 Pixel (57, 21) is 307.980133, should be 306.0000001594 Pixel (57, 22) is 309.037720, should be 307.0000001595 Pixel (57, 23) is 310.114471, should be 308.0000001596 Pixel (57, 24) is 311.197845, should be 309.0000001597 Pixel (57, 25) is 312.274872, should be 310.0000001598 Pixel (57, 26) is 313.334015, should be 311.0000001599 Pixel (57, 27) is 314.366730, should be 312.0000001600 Pixel (57, 28) is 315.368622, should be 313.0000001601 Pixel (57, 29) is 316.339996, should be 314.0000001602 Pixel (57, 30) is 317.285706, should be 315.0000001603 Pixel (57, 31) is 318.214264, should be 316.0000001604 Pixel (57, 32) is 319.136871, should be 317.0000001605 Pixel (57, 33) is 320.065521, should be 318.0000001606 Pixel (57, 34) is 321.011200, should be 319.0000001607 Pixel (57, 35) is 321.982605, should be 320.0000001608 Pixel (57, 36) is 322.984528, should be 321.0000001609 Pixel (57, 37) is 324.017242, should be 322.0000001610 Pixel (57, 38) is 325.076355, should be 323.0000001611 Pixel (57, 39) is 326.153412, should be 324.0000001612 Pixel (57, 40) is 327.236786, should be 325.0000001613 Pixel (57, 41) is 328.313568, should be 326.0000001614 Pixel (57, 42) is 329.371216, should be 327.0000001615 Pixel (57, 43) is 330.399445, should be 328.0000001616 Pixel (57, 44) is 331.392090, should be 329.0000001617 Pixel (57, 45) is 332.347992, should be 330.0000001618 Pixel (57, 46) is 333.271637, should be 331.0000001619 Pixel (57, 47) is 334.172852, should be 332.0000001620 Pixel (57, 48) is 335.066040, should be 333.0000001621 Pixel (57, 49) is 335.968109, should be 334.0000001622 Pixel (57, 50) is 336.896576, should be 335.0000001623 Pixel (57, 51) is 337.866608, should be 336.0000001624 Pixel (57, 52) is 338.889038, should be 337.0000001625 Pixel (57, 53) is 339.967651, should be 338.0000001626 Pixel (57, 54) is 341.097809, should be 339.0000001627 Pixel (57, 55) is 342.265381, should be 340.0000001628 Pixel (57, 56) is 343.446930, should be 341.0000001629 Pixel (57, 57) is 344.610748, should be 342.0000001630 Pixel (57, 58) is 345.718719, should be 343.0000001631 Pixel (57, 59) is 346.729218, should be 344.0000001632 Pixel (57, 60) is 347.600281, should be 345.0000001633 Pixel (57, 61) is 348.292816, should be 346.0000001634 Pixel (57, 62) is 348.774231, should be 347.0000001635 Pixel (57, 63) is 349.021118, should be 348.0000001636 Pixel (58, 0) is 293.870117, should be 290.0000001637 Pixel (58, 1) is 294.116943, should be 291.0000001638 Pixel (58, 2) is 294.598358, should be 292.0000001639 Pixel (58, 3) is 295.290894, should be 293.0000001640 Pixel (58, 4) is 296.161926, should be 294.0000001641 Pixel (58, 5) is 297.172424, should be 295.0000001642 Pixel (58, 6) is 298.280396, should be 296.0000001643 Pixel (58, 7) is 299.444183, should be 297.0000001644 Pixel (58, 8) is 300.625732, should be 298.0000001645 Pixel (58, 9) is 301.793304, should be 299.0000001646 Pixel (58, 10) is 302.923401, should be 300.0000001647 Pixel (58, 11) is 304.002045, should be 301.0000001648 Pixel (58, 12) is 305.024506, should be 302.0000001649 Pixel (58, 13) is 305.994537, should be 303.0000001650 Pixel (58, 14) is 306.923004, should be 304.0000001651 Pixel (58, 15) is 307.825104, should be 305.0000001652 Pixel (58, 16) is 308.718292, should be 306.0000001653 Pixel (58, 17) is 309.619537, should be 307.0000001654 Pixel (58, 18) is 310.543182, should be 308.0000001655 Pixel (58, 19) is 311.499084, should be 309.0000001656 Pixel (58, 20) is 312.491760, should be 310.0000001657 Pixel (58, 21) is 313.520020, should be 311.0000001658 Pixel (58, 22) is 314.577606, should be 312.0000001659 Pixel (58, 23) is 315.654388, should be 313.0000001660 Pixel (58, 24) is 316.737762, should be 314.0000001661 Pixel (58, 25) is 317.814789, should be 315.0000001662 Pixel (58, 26) is 318.873901, should be 316.0000001663 Pixel (58, 27) is 319.906616, should be 317.0000001664 Pixel (58, 28) is 320.908508, should be 318.0000001665 Pixel (58, 29) is 321.879913, should be 319.0000001666 Pixel (58, 30) is 322.825592, should be 320.0000001667 Pixel (58, 31) is 323.754181, should be 321.0000001668 Pixel (58, 32) is 324.676788, should be 322.0000001669 Pixel (58, 33) is 325.605438, should be 323.0000001670 Pixel (58, 34) is 326.551117, should be 324.0000001671 Pixel (58, 35) is 327.522491, should be 325.0000001672 Pixel (58, 36) is 328.524414, should be 326.0000001673 Pixel (58, 37) is 329.557129, should be 327.0000001674 Pixel (58, 38) is 330.616272, should be 328.0000001675 Pixel (58, 39) is 331.693329, should be 329.0000001676 Pixel (58, 40) is 332.776703, should be 330.0000001677 Pixel (58, 41) is 333.853455, should be 331.0000001678 Pixel (58, 42) is 334.911102, should be 332.0000001679 Pixel (58, 43) is 335.939392, should be 333.0000001680 Pixel (58, 44) is 336.932007, should be 334.0000001681 Pixel (58, 45) is 337.887909, should be 335.0000001682 Pixel (58, 46) is 338.811523, should be 336.0000001683 Pixel (58, 47) is 339.712738, should be 337.0000001684 Pixel (58, 48) is 340.605927, should be 338.0000001685 Pixel (58, 49) is 341.508026, should be 339.0000001686 Pixel (58, 50) is 342.436462, should be 340.0000001687 Pixel (58, 51) is 343.406525, should be 341.0000001688 Pixel (58, 52) is 344.428925, should be 342.0000001689 Pixel (58, 53) is 345.507538, should be 343.0000001690 Pixel (58, 54) is 346.637726, should be 344.0000001691 Pixel (58, 55) is 347.805267, should be 345.0000001692 Pixel (58, 56) is 348.986847, should be 346.0000001693 Pixel (58, 57) is 350.150635, should be 347.0000001694 Pixel (58, 58) is 351.258636, should be 348.0000001695 Pixel (58, 59) is 352.269135, should be 349.0000001696 Pixel (58, 60) is 353.140167, should be 350.0000001697 Pixel (58, 61) is 353.832703, should be 351.0000001698 Pixel (58, 62) is 354.314117, should be 352.0000001699 Pixel (58, 63) is 354.561035, should be 353.0000001700 Pixel (59, 0) is 298.922668, should be 295.0000001701 Pixel (59, 1) is 299.169495, should be 296.0000001702 Pixel (59, 2) is 299.650909, should be 297.0000001703 Pixel (59, 3) is 300.343445, should be 298.0000001704 Pixel (59, 4) is 301.214478, should be 299.0000001705 Pixel (59, 5) is 302.224976, should be 300.0000001706 Pixel (59, 6) is 303.332947, should be 301.0000001707 Pixel (59, 7) is 304.496735, should be 302.0000001708 Pixel (59, 8) is 305.678284, should be 303.0000001709 Pixel (59, 9) is 306.845856, should be 304.0000001710 Pixel (59, 10) is 307.975952, should be 305.0000001711 Pixel (59, 11) is 309.054596, should be 306.0000001712 Pixel (59, 12) is 310.077057, should be 307.0000001713 Pixel (59, 13) is 311.047089, should be 308.0000001714 Pixel (59, 14) is 311.975555, should be 309.0000001715 Pixel (59, 15) is 312.877655, should be 310.0000001716 Pixel (59, 16) is 313.770844, should be 311.0000001717 Pixel (59, 17) is 314.672119, should be 312.0000001718 Pixel (59, 18) is 315.595734, should be 313.0000001719 Pixel (59, 19) is 316.551636, should be 314.0000001720 Pixel (59, 20) is 317.544312, should be 315.0000001721 Pixel (59, 21) is 318.572571, should be 316.0000001722 Pixel (59, 22) is 319.630157, should be 317.0000001723 Pixel (59, 23) is 320.706940, should be 318.0000001724 Pixel (59, 24) is 321.790314, should be 319.0000001725 Pixel (59, 25) is 322.867340, should be 320.0000001726 Pixel (59, 26) is 323.926453, should be 321.0000001727 Pixel (59, 27) is 324.959167, should be 322.0000001728 Pixel (59, 28) is 325.961060, should be 323.0000001729 Pixel (59, 29) is 326.932465, should be 324.0000001730 Pixel (59, 30) is 327.878143, should be 325.0000001731 Pixel (59, 31) is 328.806732, should be 326.0000001732 Pixel (59, 32) is 329.729340, should be 327.0000001733 Pixel (59, 33) is 330.657990, should be 328.0000001734 Pixel (59, 34) is 331.603668, should be 329.0000001735 Pixel (59, 35) is 332.575043, should be 330.0000001736 Pixel (59, 36) is 333.576965, should be 331.0000001737 Pixel (59, 37) is 334.609680, should be 332.0000001738 Pixel (59, 38) is 335.668823, should be 333.0000001739 Pixel (59, 39) is 336.745880, should be 334.0000001740 Pixel (59, 40) is 337.829254, should be 335.0000001741 Pixel (59, 41) is 338.906006, should be 336.0000001742 Pixel (59, 42) is 339.963654, should be 337.0000001743 Pixel (59, 43) is 340.991943, should be 338.0000001744 Pixel (59, 44) is 341.984558, should be 339.0000001745 Pixel (59, 45) is 342.940460, should be 340.0000001746 Pixel (59, 46) is 343.864044, should be 341.0000001747 Pixel (59, 47) is 344.765289, should be 342.0000001748 Pixel (59, 48) is 345.658478, should be 343.0000001749 Pixel (59, 49) is 346.560577, should be 344.0000001750 Pixel (59, 50) is 347.489014, should be 345.0000001751 Pixel (59, 51) is 348.459076, should be 346.0000001752 Pixel (59, 52) is 349.481476, should be 347.0000001753 Pixel (59, 53) is 350.560089, should be 348.0000001754 Pixel (59, 54) is 351.690277, should be 349.0000001755 Pixel (59, 55) is 352.857819, should be 350.0000001756 Pixel (59, 56) is 354.039398, should be 351.0000001757 Pixel (59, 57) is 355.203186, should be 352.0000001758 Pixel (59, 58) is 356.311188, should be 353.0000001759 Pixel (59, 59) is 357.321686, should be 354.0000001760 Pixel (59, 60) is 358.192719, should be 355.0000001761 Pixel (59, 61) is 358.885254, should be 356.0000001762 Pixel (59, 62) is 359.366669, should be 357.0000001763 Pixel (59, 63) is 359.613586, should be 358.0000001764 Pixel (60, 0) is 303.277740, should be 300.0000001765 Pixel (60, 1) is 303.524597, should be 301.0000001766 Pixel (60, 2) is 304.006012, should be 302.0000001767 Pixel (60, 3) is 304.698547, should be 303.0000001768 Pixel (60, 4) is 305.569550, should be 304.0000001769 Pixel (60, 5) is 306.580048, should be 305.0000001770 Pixel (60, 6) is 307.688049, should be 306.0000001771 Pixel (60, 7) is 308.851807, should be 307.0000001772 Pixel (60, 8) is 310.033386, should be 308.0000001773 Pixel (60, 9) is 311.200897, should be 309.0000001774 Pixel (60, 10) is 312.331055, should be 310.0000001775 Pixel (60, 11) is 313.409698, should be 311.0000001776 Pixel (60, 12) is 314.432129, should be 312.0000001777 Pixel (60, 13) is 315.402191, should be 313.0000001778 Pixel (60, 14) is 316.330627, should be 314.0000001779 Pixel (60, 15) is 317.232758, should be 315.0000001780 Pixel (60, 16) is 318.125946, should be 316.0000001781 Pixel (60, 17) is 319.027222, should be 317.0000001782 Pixel (60, 18) is 319.950806, should be 318.0000001783 Pixel (60, 19) is 320.906708, should be 319.0000001784 Pixel (60, 20) is 321.899384, should be 320.0000001785 Pixel (60, 21) is 322.927673, should be 321.0000001786 Pixel (60, 22) is 323.985291, should be 322.0000001787 Pixel (60, 23) is 325.062012, should be 323.0000001788 Pixel (60, 24) is 326.145386, should be 324.0000001789 Pixel (60, 25) is 327.222412, should be 325.0000001790 Pixel (60, 26) is 328.281555, should be 326.0000001791 Pixel (60, 27) is 329.314270, should be 327.0000001792 Pixel (60, 28) is 330.316162, should be 328.0000001793 Pixel (60, 29) is 331.287537, should be 329.0000001794 Pixel (60, 30) is 332.233246, should be 330.0000001795 Pixel (60, 31) is 333.161804, should be 331.0000001796 Pixel (60, 32) is 334.084412, should be 332.0000001797 Pixel (60, 33) is 335.013062, should be 333.0000001798 Pixel (60, 34) is 335.958740, should be 334.0000001799 Pixel (60, 35) is 336.930145, should be 335.0000001800 Pixel (60, 36) is 337.932068, should be 336.0000001801 Pixel (60, 37) is 338.964783, should be 337.0000001802 Pixel (60, 38) is 340.023895, should be 338.0000001803 Pixel (60, 39) is 341.100952, should be 339.0000001804 Pixel (60, 40) is 342.184326, should be 340.0000001805 Pixel (60, 41) is 343.261139, should be 341.0000001806 Pixel (60, 42) is 344.318756, should be 342.0000001807 Pixel (60, 43) is 345.347015, should be 343.0000001808 Pixel (60, 44) is 346.339630, should be 344.0000001809 Pixel (60, 45) is 347.295532, should be 345.0000001810 Pixel (60, 46) is 348.219147, should be 346.0000001811 Pixel (60, 47) is 349.120392, should be 347.0000001812 Pixel (60, 48) is 350.013580, should be 348.0000001813 Pixel (60, 49) is 350.915649, should be 349.0000001814 Pixel (60, 50) is 351.844116, should be 350.0000001815 Pixel (60, 51) is 352.814148, should be 351.0000001816 Pixel (60, 52) is 353.836548, should be 352.0000001817 Pixel (60, 53) is 354.915192, should be 353.0000001818 Pixel (60, 54) is 356.045319, should be 354.0000001819 Pixel (60, 55) is 357.212921, should be 355.0000001820 Pixel (60, 56) is 358.394470, should be 356.0000001821 Pixel (60, 57) is 359.558289, should be 357.0000001822 Pixel (60, 58) is 360.666260, should be 358.0000001823 Pixel (60, 59) is 361.676758, should be 359.0000001824 Pixel (60, 60) is 362.547821, should be 360.0000001825 Pixel (60, 61) is 363.240356, should be 361.0000001826 Pixel (60, 62) is 363.721771, should be 362.0000001827 Pixel (61, 0) is 306.740479, should be 305.0000001828 Pixel (61, 57) is 363.020996, should be 362.0000001829 Pixel (61, 58) is 364.128998, should be 363.0000001830 Pixel (61, 59) is 365.139496, should be 364.0000001831 Pixel (61, 60) is 366.010529, should be 365.0000001832 Pixel (62, 1) is 309.394470, should be 311.0000001833 Pixel (62, 2) is 309.875885, should be 312.0000001834 Pixel (62, 3) is 310.568420, should be 313.0000001835 Pixel (62, 4) is 311.439453, should be 314.0000001836 Pixel (62, 5) is 312.449951, should be 315.0000001837 Pixel (62, 6) is 313.557922, should be 316.0000001838 Pixel (62, 7) is 314.721710, should be 317.0000001839 Pixel (62, 8) is 315.903259, should be 318.0000001840 Pixel (62, 9) is 317.070801, should be 319.0000001841 Pixel (62, 10) is 318.200928, should be 320.0000001842 Pixel (62, 11) is 319.279572, should be 321.0000001843 Pixel (62, 12) is 320.302032, should be 322.0000001844 Pixel (62, 13) is 321.272064, should be 323.0000001845 Pixel (62, 14) is 322.200531, should be 324.0000001846 Pixel (62, 15) is 323.102631, should be 325.0000001847 Pixel (62, 16) is 323.995819, should be 326.0000001848 Pixel (62, 17) is 324.897095, should be 327.0000001849 Pixel (62, 18) is 325.820709, should be 328.0000001850 Pixel (62, 19) is 326.776611, should be 329.0000001851 Pixel (62, 20) is 327.769287, should be 330.0000001852 Pixel (62, 21) is 328.797546, should be 331.0000001853 Pixel (62, 22) is 329.855164, should be 332.0000001854 Pixel (62, 23) is 330.931915, should be 333.0000001855 Pixel (62, 24) is 332.015289, should be 334.0000001856 Pixel (62, 25) is 333.092316, should be 335.0000001857 Pixel (62, 26) is 334.151428, should be 336.0000001858 Pixel (62, 27) is 335.184143, should be 337.0000001859 Pixel (62, 28) is 336.186035, should be 338.0000001860 Pixel (62, 29) is 337.157440, should be 339.0000001861 Pixel (62, 30) is 338.103119, should be 340.0000001862 Pixel (62, 31) is 339.031708, should be 341.0000001863 Pixel (62, 32) is 339.954315, should be 342.0000001864 Pixel (62, 33) is 340.882965, should be 343.0000001865 Pixel (62, 34) is 341.828644, should be 344.0000001866 Pixel (62, 35) is 342.800018, should be 345.0000001867 Pixel (62, 36) is 343.801941, should be 346.0000001868 Pixel (62, 37) is 344.834656, should be 347.0000001869 Pixel (62, 38) is 345.893799, should be 348.0000001870 Pixel (62, 39) is 346.970856, should be 349.0000001871 Pixel (62, 40) is 348.054230, should be 350.0000001872 Pixel (62, 41) is 349.131012, should be 351.0000001873 Pixel (62, 42) is 350.188629, should be 352.0000001874 Pixel (62, 43) is 351.216919, should be 353.0000001875 Pixel (62, 44) is 352.209534, should be 354.0000001876 Pixel (62, 45) is 353.165436, should be 355.0000001877 Pixel (62, 46) is 354.089020, should be 356.0000001878 Pixel (62, 47) is 354.990265, should be 357.0000001879 Pixel (62, 48) is 355.883453, should be 358.0000001880 Pixel (62, 49) is 356.785553, should be 359.0000001881 Pixel (62, 50) is 357.713989, should be 360.0000001882 Pixel (62, 51) is 358.684052, should be 361.0000001883 Pixel (62, 52) is 359.706451, should be 362.0000001884 Pixel (62, 53) is 360.785065, should be 363.0000001885 Pixel (62, 54) is 361.915222, should be 364.0000001886 Pixel (62, 55) is 363.082794, should be 365.0000001887 Pixel (62, 56) is 364.264374, should be 366.0000001888 Pixel (62, 57) is 365.428162, should be 367.0000001889 Pixel (62, 58) is 366.536163, should be 368.0000001890 Pixel (62, 59) is 367.546661, should be 369.0000001891 Pixel (62, 60) is 368.417694, should be 370.0000001892 Pixel (62, 61) is 369.110229, should be 371.0000001893 Pixel (62, 62) is 369.591644, should be 372.0000001894 Pixel (62, 63) is 369.838562, should be 373.0000001895 Pixel (63, 0) is 310.381958, should be 315.0000001896 Pixel (63, 1) is 310.628784, should be 316.0000001897 Pixel (63, 2) is 311.110199, should be 317.0000001898 Pixel (63, 3) is 311.802734, should be 318.0000001899 Pixel (63, 4) is 312.673767, should be 319.0000001900 Pixel (63, 5) is 313.684265, should be 320.0000001901 Pixel (63, 6) is 314.792236, should be 321.0000001902 Pixel (63, 7) is 315.956024, should be 322.0000001903 Pixel (63, 8) is 317.137573, should be 323.0000001904 Pixel (63, 9) is 318.305115, should be 324.0000001905 Pixel (63, 10) is 319.435242, should be 325.0000001906 Pixel (63, 11) is 320.513885, should be 326.0000001907 Pixel (63, 12) is 321.536346, should be 327.0000001908 Pixel (63, 13) is 322.506378, should be 328.0000001909 Pixel (63, 14) is 323.434845, should be 329.0000001910 Pixel (63, 15) is 324.336945, should be 330.0000001911 Pixel (63, 16) is 325.230133, should be 331.0000001912 Pixel (63, 17) is 326.131409, should be 332.0000001913 Pixel (63, 18) is 327.055023, should be 333.0000001914 Pixel (63, 19) is 328.010925, should be 334.0000001915 Pixel (63, 20) is 329.003601, should be 335.0000001916 Pixel (63, 21) is 330.031860, should be 336.0000001917 Pixel (63, 22) is 331.089478, should be 337.0000001918 Pixel (63, 23) is 332.166229, should be 338.0000001919 Pixel (63, 24) is 333.249603, should be 339.0000001920 Pixel (63, 25) is 334.326630, should be 340.0000001921 Pixel (63, 26) is 335.385742, should be 341.0000001922 Pixel (63, 27) is 336.418457, should be 342.0000001923 Pixel (63, 28) is 337.420349, should be 343.0000001924 Pixel (63, 29) is 338.391754, should be 344.0000001925 Pixel (63, 30) is 339.337433, should be 345.0000001926 Pixel (63, 31) is 340.266022, should be 346.0000001927 Pixel (63, 32) is 341.188629, should be 347.0000001928 Pixel (63, 33) is 342.117279, should be 348.0000001929 Pixel (63, 34) is 343.062958, should be 349.0000001930 Pixel (63, 35) is 344.034332, should be 350.0000001931 Pixel (63, 36) is 345.036255, should be 351.0000001932 Pixel (63, 37) is 346.068970, should be 352.0000001933 Pixel (63, 38) is 347.128113, should be 353.0000001934 Pixel (63, 39) is 348.205170, should be 354.0000001935 Pixel (63, 40) is 349.288544, should be 355.0000001936 Pixel (63, 41) is 350.365326, should be 356.0000001937 Pixel (63, 42) is 351.422943, should be 357.0000001938 Pixel (63, 43) is 352.451233, should be 358.0000001939 Pixel (63, 44) is 353.443848, should be 359.0000001940 Pixel (63, 45) is 354.399750, should be 360.0000001941 Pixel (63, 46) is 355.323334, should be 361.0000001942 Pixel (63, 47) is 356.224579, should be 362.0000001943 Pixel (63, 48) is 357.117767, should be 363.0000001944 Pixel (63, 49) is 358.019867, should be 364.0000001945 Pixel (63, 50) is 358.948303, should be 365.0000001946 Pixel (63, 51) is 359.918365, should be 366.0000001947 Pixel (63, 52) is 360.940765, should be 367.0000001948 Pixel (63, 53) is 362.019379, should be 368.0000001949 Pixel (63, 54) is 363.149536, should be 369.0000001950 Pixel (63, 55) is 364.317108, should be 370.0000001951 Pixel (63, 56) is 365.498688, should be 371.0000001952 Pixel (63, 57) is 366.662476, should be 372.0000001953 Pixel (63, 58) is 367.770477, should be 373.0000001954 Pixel (63, 59) is 368.780975, should be 374.0000001955 Pixel (63, 60) is 369.652008, should be 375.0000001956 Pixel (63, 61) is 370.344543, should be 376.0000001957 Pixel (63, 62) is 370.825958, should be 377.0000001958 Pixel (63, 63) is 371.072876, should be 378.0000001959 80 1960 81 ---> TESTPOINT PASSED (psImageStats functions{Calculate Chebyshev Polynomials, no mask} | tst_psImageStats02.c) -
trunk/psLib/test/sysUtils/tst_psMemory.c
r1242 r1365 1 1 /** @file tst_psMemory.c 2 *3 * @brief Contains the tests for psMemory.[ch]4 *5 *6 * @author Robert DeSonia, MHPCC7 *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 Hawaii12 */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 */ 13 13 14 14 // need to allow malloc for callback use … … 26 26 #include "pslib.h" 27 27 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);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 ); 41 41 42 42 static int problemCallbackCalled = 0; … … 46 46 47 47 testDescription 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 } 59 81 }; 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 83 int main( int argc, char* argv[] ) 84 { 85 psLogSetLevel( PS_LOG_INFO ); 86 87 return ( ! runTestSuite( stderr, "psMemory", tests, argc, argv ) ); 70 88 } 71 89 72 90 // Testpoint #449, psAlloc shall allocate memory blocks writeable by caller. 73 int TPCheckBufferPositive( void)74 { 75 int * mem;91 int TPCheckBufferPositive( void ) 92 { 93 int * mem; 76 94 const int size = 100; 77 95 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 99 117 return failed; 100 118 } 101 119 102 int TPFreeReferencedMemory( void)120 int TPFreeReferencedMemory( void ) 103 121 { 104 122 // create memory 105 int * mem;123 int * mem; 106 124 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 149 167 return 0; 150 168 } … … 152 170 // Bug/Task #562 regression test. Upon requesting more memory than is available, psRealloc shall call 153 171 // the psMemExhaustedCallback. 154 int TPReallocOutOfMemory( void)155 { 156 int * mem[100];172 int TPReallocOutOfMemory( void ) 173 { 174 int * mem[ 100 ]; 157 175 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 166 184 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 189 207 return 0; 190 208 } 191 209 // Testpoint #450, Upon requesting more memory than is available, psalloc shall call 192 210 // the psMemExhaustedCallback. 193 int TPOutOfMemory( void)194 { 195 int * mem[100];211 int TPOutOfMemory( void ) 212 { 213 int * mem[ 100 ]; 196 214 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 205 223 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 224 242 return 0; 225 243 } 226 244 227 245 // Testpoint #451, psRealloc shall increase/decrease memory buffer while preserving contents 228 int TPrealloc( void)229 { 230 int * mem1;246 int TPrealloc( void ) 247 { 248 int * mem1; 231 249 int* mem2; 232 250 int* mem3; 233 251 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 238 256 // 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 249 267 // 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 254 272 // 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 266 284 // 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 271 289 // 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 305 int TPallocCallback( void ) 306 { 307 int * mem1; 290 308 int* mem2; 291 309 int* mem3; … … 293 311 const int initialSize = 100; 294 312 int mark; 295 313 296 314 allocCallbackCalled = 0; 297 315 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 307 325 // 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 322 340 allocCallbackCalled = 0; 323 341 freeCallbackCalled = 0; 324 342 325 343 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 363 int TPcheckLeaks( void ) 346 364 { 347 365 const int numBuffers = 5; 348 int* buffers[ 5];366 int* buffers[ 5 ]; 349 367 int lcv; 350 368 int currentId = psMemGetId(); … … 352 370 int nLeaks = 0; 353 371 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 466 int TPmemCorruption( void ) 467 { 468 int * buffer = NULL; 451 469 int oldValue = 0; 452 470 int corruptions = 0; 453 471 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 459 477 // cause memory corruption via buffer underflow 460 478 *buffer = 1; … … 462 480 oldValue = *buffer; 463 481 *buffer = 2; 464 482 465 483 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 473 491 // restore the memory problem callback 474 psMemProblemCallbackSet( cb);475 492 psMemProblemCallbackSet( cb ); 493 476 494 // restore the value, 'uncorrupting' the buffer 477 495 *buffer = oldValue; 478 496 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 516 void 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 ); 502 520 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 524 psMemoryId memAllocateCallback( const psMemBlock *ptr ) 525 { 526 psLogMsg( __func__, PS_LOG_INFO, "block %d was (re)allocated", ptr->id ); 509 527 allocCallbackCalled++; 510 528 return 1; 511 529 } 512 530 513 psMemoryId memFreeCallback( const psMemBlock *ptr)514 { 515 psLogMsg( __func__,PS_LOG_INFO,"block %d was freed",ptr->id);531 psMemoryId memFreeCallback( const psMemBlock *ptr ) 532 { 533 psLogMsg( __func__, PS_LOG_INFO, "block %d was freed", ptr->id ); 516 534 freeCallbackCalled++; 517 535 return 1; 518 536 } 519 537 520 void* TPOutOfMemoryExhaustedCallback( size_t size)521 { 522 psLogMsg( __func__,PS_LOG_INFO,"Custom MemExhaustedCallback was invoked.");538 void* TPOutOfMemoryExhaustedCallback( size_t size ) 539 { 540 psLogMsg( __func__, PS_LOG_INFO, "Custom MemExhaustedCallback was invoked." ); 523 541 exhaustedCallbackCalled++; 524 542 return NULL; 525 543 } 526 544 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 } 545 int 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 17 17 <DATE> <TIME> |<HOST>|I| TPOutOfMemory|Upon requesting more memory than is available, psalloc shall call the psMemExhaustedCallback. 18 18 <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:2 1019 <DATE> <TIME> |<HOST>|A| p_psAlloc|Failed to allocate 4294966295 bytes at tst_psMemory.c:206 20 20 21 21 ---> TESTPOINT PASSED (psMemory{outOfMemory} | tst_psMemory.c) … … 28 28 29 29 <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:17 530 <DATE> <TIME> |<HOST>|A| p_psRealloc|Failed to reallocate -1001 bytes at tst_psMemory.c:171 31 31 32 32 ---> TESTPOINT PASSED (psMemory{reallocOutOfMemory} | tst_psMemory.c) … … 70 70 <DATE> <TIME> |<HOST>|I| TPcheckLeaks|following psMemCheckLeaks call should produce one instance. 71 71 file:line ID 72 tst_psMemory.c:3 60172 tst_psMemory.c:356 1 73 73 <DATE> <TIME> |<HOST>|I| TPcheckLeaks|Testing psMemCheckLeaks again with a different leak location 74 74 <DATE> <TIME> |<HOST>|I| TPcheckLeaks|following psMemCheckLeaks call should produce one error. 75 75 file:line ID 76 tst_psMemory.c:3 901176 tst_psMemory.c:386 11 77 77 <DATE> <TIME> |<HOST>|I| TPcheckLeaks|Testing psMemCheckLeaks again with multiple leak locations. 78 78 <DATE> <TIME> |<HOST>|I| TPcheckLeaks|following psMemCheckLeaks call should produce two errors. 79 79 file:line ID 80 tst_psMemory.c:41 81681 tst_psMemory.c:41 81480 tst_psMemory.c:414 16 81 tst_psMemory.c:414 14 82 82 83 83 ---> TESTPOINT PASSED (psMemory{checkLeaks} | tst_psMemory.c) … … 92 92 <DATE> <TIME> |<HOST>|I|TPmemCorruption|psMemCheckCorruption should output an error message and memProblemCallback callback should be called. 93 93 <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:2 54).94 <DATE> <TIME> |<HOST>|I|memProblemCallb|memory callback called for id 1 (psMemCheckCorruption:260). 95 95 96 96 ---> TESTPOINT PASSED (psMemory{psMemCorruption} | tst_psMemory.c) … … 115 115 <DATE> <TIME> |<HOST>|I| TPmultipleFree|Next should be an error about multiple freeing. 116 116 <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:5 30 freed more than once at tst_psMemory.c:535118 <DATE> <TIME> |<HOST>|A|memProblemCallb|Detected a problem in the memory system at tst_psMemory.c:53 5117 <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 119 119 120 120 ---> TESTPOINT PASSED (psMemory{multipleFree} | tst_psMemory.c)
Note:
See TracChangeset
for help on using the changeset viewer.
