[Wavelet-commit] Wavelet/test transform.cc,1.3,1.4
Status: Beta
Brought to you by:
herbert
From: Herbert M. D. <he...@us...> - 2007-05-25 08:08:19
|
Update of /cvsroot/wavelet/Wavelet/test In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv18996/test Modified Files: transform.cc Log Message: Added WaveletTransform::highMax() method. Index: transform.cc =================================================================== RCS file: /cvsroot/wavelet/Wavelet/test/transform.cc,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** transform.cc 10 Aug 2005 09:35:23 -0000 1.3 --- transform.cc 25 May 2007 08:08:11 -0000 1.4 *************** *** 3,7 **** * * This is a rather poor test, since only misc functions are tested. The ! * main decomposition and reconstruction algorithms are stolen and thus * supposed to work. * --- 3,7 ---- * * This is a rather poor test, since only misc functions are tested. The ! * main decomposition and reconstruction algorithms are stolen and thus * supposed to work. * *************** *** 18,24 **** #include "Wave/PyramidTransform.hh" #include "Wave/StandardTransform.hh" ! #include <assert.h> #include <iostream> ! #include <math.h> #if !(defined __WATCOMC__ && __WATCOMC__ < 1230) --- 18,26 ---- #include "Wave/PyramidTransform.hh" #include "Wave/StandardTransform.hh" ! #include "testing.h" ! #include <cassert> #include <iostream> ! #include <iomanip> ! #include <cmath> #if !(defined __WATCOMC__ && __WATCOMC__ < 1230) *************** *** 27,30 **** --- 29,67 ---- static void + wavelet (void) + { + cout << "Testing class WaveletTransform...\n"; + int steps = 1; + Image *image = NEW(StillImage ()); + TEST_NO_EXCEPTION (image->read ("harin5.pgm")); + WaveletTransform * transform = NEW (PyramidTransform (*image, Haar)); + TEST_NO_EXCEPTION (transform->analysis (steps)); + + Image *himax = transform->highMax(); + + int yoffs = 0, xoffs = 0, ysize = 0, xsize = 0; + area what; + + for (int a = (int)HL; a < (int)areaINVALID; a++) + { + what = (area)a; + transform->where (what, steps, yoffs, xoffs, ysize, xsize); + for (int y = 0; y < himax->rows (); y++) + { + for (int x = 0; x < himax->cols (); x++) + { + TEST_ASSERT (fabs (himax->at(y, x)) + FLT_EPSILON + >= fabs (image->at (y + yoffs, x + xoffs))); + } + } + } + + DELETE(image); + DELETE(transform); + DELETE(himax); + cout << "Test of class WaveletTransform completed successfully.\n"; + } + + static void pyramid (void) { *************** *** 43,47 **** image->anasteps (1); ! for (int row = 0; row < 8; row++) { --- 80,84 ---- image->anasteps (1); ! for (int row = 0; row < 8; row++) { *************** *** 51,57 **** } } ! image->anasteps (2); ! for (int row = 4; row < 8; row++) { --- 88,94 ---- } } ! image->anasteps (2); ! for (int row = 4; row < 8; row++) { *************** *** 61,65 **** } } ! for (int row = 0; row < 4; row++) { --- 98,102 ---- } } ! for (int row = 0; row < 4; row++) { *************** *** 69,73 **** } } ! for (int row = 4; row < 8; row++) { --- 106,110 ---- } } ! for (int row = 4; row < 8; row++) { *************** *** 77,81 **** } } ! for (int row = 2; row < 4; row++) { --- 114,118 ---- } } ! for (int row = 2; row < 4; row++) { *************** *** 85,89 **** } } ! for (int row = 0; row < 2; row++) { --- 122,126 ---- } } ! for (int row = 0; row < 2; row++) { *************** *** 93,97 **** } } ! DELETE (image); DELETE (transform); --- 130,134 ---- } } ! DELETE (image); DELETE (transform); *************** *** 127,131 **** assert (ysize == 64); assert (xsize == 64); ! transform->where (LL, 2, yoffs, xoffs, ysize, xsize); assert (yoffs == 0); --- 164,168 ---- assert (ysize == 64); assert (xsize == 64); ! transform->where (LL, 2, yoffs, xoffs, ysize, xsize); assert (yoffs == 0); *************** *** 133,137 **** assert (ysize == 32); assert (xsize == 32); ! transform->where (LH, 1, yoffs, xoffs, ysize, xsize); assert (yoffs == 64); --- 170,174 ---- assert (ysize == 32); assert (xsize == 32); ! transform->where (LH, 1, yoffs, xoffs, ysize, xsize); assert (yoffs == 64); *************** *** 164,168 **** assert (fabs (transform->ratio (1, 3) - 16) < COEFF_EPSILON); assert (fabs (transform->ratio (3, 1) - 1.0/16.0) < COEFF_EPSILON); ! //cout << yoffs << "/" << xoffs << " to: " // << yoffs+ysize << "/" << xoffs+xsize << endl; --- 201,205 ---- assert (fabs (transform->ratio (1, 3) - 16) < COEFF_EPSILON); assert (fabs (transform->ratio (3, 1) - 1.0/16.0) < COEFF_EPSILON); ! //cout << yoffs << "/" << xoffs << " to: " // << yoffs+ysize << "/" << xoffs+xsize << endl; *************** *** 176,180 **** assert (subband == 3); assert (channel == LL); ! yoffs = xoffs = 31; transform->where (yoffs, xoffs, subband, channel, 2); --- 213,217 ---- assert (subband == 3); assert (channel == LL); ! yoffs = xoffs = 31; transform->where (yoffs, xoffs, subband, channel, 2); *************** *** 194,198 **** assert (subband == 1); assert (channel == HH); ! yoffs = xoffs = 127; transform->where (yoffs, xoffs, subband, channel, 2); --- 231,235 ---- assert (subband == 1); assert (channel == HH); ! yoffs = xoffs = 127; transform->where (yoffs, xoffs, subband, channel, 2); *************** *** 211,215 **** assert (subband == 2); assert (channel == HL); ! //cout << yoffs << "/" << xoffs // << "-> subband: " << subband << ", channel: " << (int)channel << endl; --- 248,252 ---- assert (subband == 2); assert (channel == HL); ! //cout << yoffs << "/" << xoffs // << "-> subband: " << subband << ", channel: " << (int)channel << endl; *************** *** 228,232 **** assert (ysize == 49); assert (xsize == 64); ! transform->where (HH, 1, yoffs, xoffs, ysize, xsize); assert (yoffs == 49); --- 265,269 ---- assert (ysize == 49); assert (xsize == 64); ! transform->where (HH, 1, yoffs, xoffs, ysize, xsize); assert (yoffs == 49); *************** *** 270,274 **** image->anasteps (1); ! for (int row = 0; row < 8; row++) { --- 307,311 ---- image->anasteps (1); ! for (int row = 0; row < 8; row++) { *************** *** 278,284 **** } } ! image->anasteps (2); ! for (int row = 4; row < 8; row++) { --- 315,321 ---- } } ! image->anasteps (2); ! for (int row = 4; row < 8; row++) { *************** *** 288,292 **** } } ! for (int row = 0; row < 4; row++) { --- 325,329 ---- } } ! for (int row = 0; row < 4; row++) { *************** *** 296,300 **** } } ! for (int row = 4; row < 8; row++) { --- 333,337 ---- } } ! for (int row = 4; row < 8; row++) { *************** *** 304,308 **** } } ! for (int row = 2; row < 4; row++) { --- 341,345 ---- } } ! for (int row = 2; row < 4; row++) { *************** *** 312,316 **** } } ! for (int row = 0; row < 2; row++) { --- 349,353 ---- } } ! for (int row = 0; row < 2; row++) { *************** *** 320,324 **** } } ! DELETE (image); --- 357,361 ---- } } ! DELETE (image); *************** *** 329,332 **** --- 366,370 ---- main (void) { + wavelet (); pyramid (); standard (); |