QGIS/python/core/qgsrenderchecker.sip

86 lines
3.4 KiB
Plaintext
Raw Normal View History

/** Render checker for tests in python */
class QgsRenderChecker
{
%TypeHeaderCode
#include <qgsrenderchecker.h>
%End
public:
QgsRenderChecker();
//! Destructor
~QgsRenderChecker();
QString controlImagePath() const;
QString report();
float matchPercent();
unsigned int mismatchCount();
unsigned int matchTarget();
2014-01-26 18:35:21 +01:00
//only records time for actual render part
int elapsedTime();
2014-01-26 18:35:21 +01:00
void setElapsedTimeTarget( int theTarget );
2014-01-27 09:22:24 +01:00
/** Base directory name for the control image (with control image path
* suffixed) the path to the image will be constructed like this:
* controlImagePath + '/' + mControlName + '/' + mControlName + '.png'
*/
void setControlName( const QString theName );
2014-01-27 09:22:24 +01:00
/** Prefix where the control images are kept.
* This will be appended to controlImagePath
*/
void setControlPathPrefix( const QString theName );
2014-01-27 09:22:24 +01:00
/** Get an md5 hash that uniquely identifies an image */
QString imageToHash( QString theImageFile );
void setRenderedImage( QString theImageFileName );
2014-05-27 23:22:50 +02:00
//! @deprecated since 2.4 - use setMapSettings()
void setMapRenderer( QgsMapRenderer * thepMapRenderer ) /Deprecated/;
2014-05-27 23:22:50 +02:00
//! @note added in 2.4
void setMapSettings( const QgsMapSettings& mapSettings );
/** Set tolerance for color components used by runTest() and compareImages().
* Default value is 0.
* @param theColorTolerance is maximum difference for each color component
* including alpha to be considered correct.
* @note added in 2.1
*/
void setColorTolerance( unsigned int theColorTolerance );
2014-01-26 18:35:21 +01:00
/**
* Test using renderer to generate the image to be compared.
* @param theTestName - to be used as the basis for writing a file to
* e.g. /tmp/theTestName.png
* @param theMismatchCount - defaults to 0 - the number of pixels that
* are allowed to be different from the control image. In some cases
* rendering may be non-deterministic. This parameter allows you to account
* for that by providing a tolerance.
* @note make sure to call setExpectedImage and setMapRenderer first
*/
bool runTest( QString theTestName, unsigned int theMismatchCount = 0 );
2014-01-26 18:35:21 +01:00
/**
* Test using two arbitary images (map renderer will not be used)
* @param theTestName - to be used as the basis for writing a file to
* e.g. /tmp/theTestName.png
* @param theMismatchCount - defaults to 0 - the number of pixels that
* are allowed to be different from the control image. In some cases
* rendering may be non-deterministic. This parameter allows you to account
* for that by providing a tolerance.
* @param theRenderedImageFile to optionally override the output filename
* @note: make sure to call setExpectedImage and setRenderedImage first.
*/
bool compareImages( QString theTestName, unsigned int theMismatchCount = 0, QString theRenderedImageFile = "" );
2014-01-26 18:35:21 +01:00
/** Get a list of all the anomalies. An anomaly is a rendered difference
* file where there is some red pixel content (indicating a render check
* mismatch), but where the output was still acceptible. If the render
* diff matches one of these anomalies we will still consider it to be
* acceptible.
* @return a bool indicating if the diff matched one of the anomaly files
*/
bool isKnownAnomaly( QString theDiffImageFile );
2014-01-26 18:35:21 +01:00
QString expectedImageFile();
};