-Updated Contrast Enhancement test

git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@9238 c8812cc2-4d05-0410-92ff-de0c093fc19c
This commit is contained in:
ersts 2008-09-01 17:47:46 +00:00
parent 89d03ebb75
commit 0c64e3264c

View File

@ -23,6 +23,7 @@
#include <qgscliptominmaxenhancement.h>
#include <qgscontrastenhancement.h>
#include <qgslinearminmaxenhancement.h>
#include <qgslinearminmaxenhancementwithclip.h>
/** \ingroup UnitTests
* This is a unit test for the ContrastEnhancements contrast enhancement classes.
@ -36,7 +37,8 @@ class TestContrastEnhancements: public QObject
void init() {};// will be called before each testfunction is executed.
void cleanup() {};// will be called after every testfunction.
void minMaxEnhancementTest();
void clipMinMaxEnhancementTest();
void linearMinMaxEnhancementWithClipTest();
void linearMinMaxEnhancementTest();
private:
QString mReport;
@ -63,20 +65,42 @@ void TestContrastEnhancements::cleanupTestCase()
}
void TestContrastEnhancements::minMaxEnhancementTest()
void TestContrastEnhancements::clipMinMaxEnhancementTest()
{
//Clips 0 < x < 10, 240 < X < 256
//Stretch no stretch is applied
QgsClipToMinMaxEnhancement myEnhancement(QgsContrastEnhancement::QGS_Byte, 10.0, 240.0);
// Original pixel value 0.0 Should be out of range thus clipped
QVERIFY(!myEnhancement.isValueInDisplayableRange(0.0));
QVERIFY(10.0 == myEnhancement.enhanceValue(0.0)) ;
QVERIFY(250.0 == myEnhancement.enhanceValue(240.0)) ;
//Original pixel value of 10.0 should be scaled to 10.0
QVERIFY(10.0 == myEnhancement.enhanceValue(10.0)) ;
//Original pixel value of 240 should be scaled to 240
QVERIFY(240.0 == myEnhancement.enhanceValue(240.0)) ;
}
void TestContrastEnhancements::linearMinMaxEnhancementWithClipTest()
{
//First clips 0 < x < 10, 240 < X < 256
//Then stretch 10 = 0, 240 = 255 linearly distribute values 10 -> 240 between 0 -> 255
QgsLinearMinMaxEnhancementWithClip myEnhancement(QgsContrastEnhancement::QGS_Byte, 10.0, 240.0);
// Original pixel value 0.0 Should be out of range thus clipped
QVERIFY(!myEnhancement.isValueInDisplayableRange(0.0));
//Original pixel value of 10.0 should be scaled to 0.0
QVERIFY(0.0 == myEnhancement.enhanceValue(10.0)) ;
//Original pixel value of 240 should be scaled to 255
QVERIFY(255.0 == myEnhancement.enhanceValue(240.0)) ;
}
void TestContrastEnhancements::linearMinMaxEnhancementTest()
{
//Stretch 10 = 0, 240 = 255 linearly distribute values 10 -> 240 between 0 -> 255
QgsLinearMinMaxEnhancement myEnhancement(QgsContrastEnhancement::QGS_Byte, 10.0, 240.0);
//0 should be scaled to 10 and not clipped
QVERIFY(myEnhancement.isValueInDisplayableRange(0.0));
QVERIFY(10.0 == myEnhancement.enhanceValue(0.0)) ;
QVERIFY(250.0 == myEnhancement.enhanceValue(240.0)) ;
//Original pixel value of 10.0 should be scaled to 0.0
QVERIFY(0.0 == myEnhancement.enhanceValue(10.0)) ;
//Original pixel value of 240 should be scaled to 255
QVERIFY(255.0 == myEnhancement.enhanceValue(240.0)) ;
}
QTEST_MAIN( TestContrastEnhancements )
#include "moc_testcontrastenhancements.cxx"