QGIS API Documentation 3.41.0-Master (3440c17df1d)
|
This is a helper class for unit tests that need to write an image and compare it to an expected result or render time. More...
#include <qgsrenderchecker.h>
Public Types | |
enum class | Flag : int { AvoidExportingRenderedImage = 1 << 0 , Silent = 1 << 1 } |
Render checker flags. More... | |
typedef QFlags< Flag > | Flags |
Render checker flags. | |
Public Member Functions | |
QgsRenderChecker () | |
Constructor for QgsRenderChecker. | |
bool | compareImages (const QString &testName, const QString &referenceImageFile, const QString &renderedImageFile, unsigned int mismatchCount=0, QgsRenderChecker::Flags flags=QgsRenderChecker::Flags()) |
Test using two arbitrary images at the specified paths for equality. | |
bool | compareImages (const QString &testName, unsigned int mismatchCount=0, const QString &renderedImageFile=QString(), QgsRenderChecker::Flags flags=QgsRenderChecker::Flags()) |
Test using two arbitrary images (map renderer will not be used) | |
QString | controlImagePath () const |
Returns the base path containing the reference images. | |
QVector< QgsDartMeasurement > | dartMeasurements () const |
Gets access to buffered dash messages. | |
int | elapsedTime () const |
Returns the total elapsed time for the rendering test. | |
void | enableDashBuffering (bool enable) |
Call this to enable internal buffering of dash messages. | |
QString | expectedImageFile () const |
Returns the path to the expected image file. | |
QString | imageToHash (const QString &imageFile) |
Gets an md5 hash that uniquely identifies an image. | |
Q_DECL_DEPRECATED bool | isKnownAnomaly (const QString &diffImageFile) |
Gets a list of all the anomalies. | |
QString | markdownReport (bool ignoreSuccess=true) const |
Returns the markdown report describing the results of the test run. | |
float | matchPercent () const |
Returns the percent of pixels which matched the control image. | |
unsigned int | matchTarget () const |
Returns the total number of pixels in the control image. | |
unsigned int | mismatchCount () const |
Returns the number of pixels which did not match the control image. | |
QString | renderedImage () const |
Returns the path of the rendered image generated by the test. | |
QString | report (bool ignoreSuccess=true) const |
Returns the HTML report describing the results of the test run. | |
bool | runTest (const QString &testName, unsigned int mismatchCount=0, QgsRenderChecker::Flags flags=QgsRenderChecker::Flags()) |
Test using renderer to generate the image to be compared. | |
void | setColorTolerance (unsigned int colorTolerance) |
Set tolerance for color components used by runTest() and compareImages(). | |
void | setControlExtension (const QString &extension) |
Sets file extension for the control image. | |
void | setControlImagePath (const QString &path) |
Sets the base path containing the reference images. | |
void | setControlName (const QString &name) |
Sets the base directory name for the control image (with control image path suffixed). | |
void | setControlPathPrefix (const QString &name) |
Sets the path prefix where the control images are kept. | |
void | setControlPathSuffix (const QString &name) |
void | setElapsedTimeTarget (int target) |
void | setExpectFail (bool expectFail) |
Sets whether the comparison is expected to fail. | |
void | setMapSettings (const QgsMapSettings &mapSettings) |
void | setRenderedImage (const QString &imageFileName) |
Sets the file name of the rendered image generated by the test. | |
void | setSizeTolerance (int xTolerance, int yTolerance) |
Sets the largest allowable difference in size between the rendered and the expected image. | |
Static Public Member Functions | |
static void | drawBackground (QImage *image) |
Draws a checkboard pattern for image backgrounds, so that opacity is visible without requiring a transparent background for the image. | |
static bool | shouldGenerateReport () |
Returns true if a test report should be generated given the current environment. | |
static QString | sourcePath () |
Returns the path to the QGIS source code. | |
static QDir | testReportDir () |
Returns the directory to use for generating a test report. | |
Protected Attributes | |
int | mElapsedTime = 0 |
QString | mExpectedImageFile |
QString | mMarkdownReport |
Markdown report. | |
unsigned int | mMatchTarget = 0 |
QImage | mRenderedImage |
QString | mRenderedImageFile |
QString | mReport |
HTML format report. | |
Friends | |
class | QgsMultiRenderChecker |
This is a helper class for unit tests that need to write an image and compare it to an expected result or render time.
Definition at line 41 of file qgsrenderchecker.h.
typedef QFlags< Flag > QgsRenderChecker::Flags |
|
strong |
Render checker flags.
Enumerator | |
---|---|
AvoidExportingRenderedImage | Avoids exporting rendered images to reports. |
Silent | Don't output non-critical messages to console.
|
Definition at line 199 of file qgsrenderchecker.h.
QgsRenderChecker::QgsRenderChecker | ( | ) |
Constructor for QgsRenderChecker.
Definition at line 49 of file qgsrenderchecker.cpp.
bool QgsRenderChecker::compareImages | ( | const QString & | testName, |
const QString & | referenceImageFile, | ||
const QString & | renderedImageFile, | ||
unsigned int | mismatchCount = 0 , |
||
QgsRenderChecker::Flags | flags = QgsRenderChecker::Flags() |
||
) |
Test using two arbitrary images at the specified paths for equality.
Definition at line 384 of file qgsrenderchecker.cpp.
bool QgsRenderChecker::compareImages | ( | const QString & | testName, |
unsigned int | mismatchCount = 0 , |
||
const QString & | renderedImageFile = QString() , |
||
QgsRenderChecker::Flags | flags = QgsRenderChecker::Flags() |
||
) |
Test using two arbitrary images (map renderer will not be used)
testName | to be used as the basis for writing a file to e.g. /tmp/theTestName.png |
mismatchCount | 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. |
renderedImageFile | to optionally override the output filename |
flags | render checker flags |
Definition at line 362 of file qgsrenderchecker.cpp.
QString QgsRenderChecker::controlImagePath | ( | ) | const |
Returns the base path containing the reference images.
This defaults to an internal QGIS test data path, but can be changed via setControlImagePath().
Definition at line 71 of file qgsrenderchecker.cpp.
|
inline |
Gets access to buffered dash messages.
Only will return something if you call enableDashBuffering( true
); before.
Definition at line 290 of file qgsrenderchecker.h.
|
static |
Draws a checkboard pattern for image backgrounds, so that opacity is visible without requiring a transparent background for the image.
Definition at line 123 of file qgsrenderchecker.cpp.
|
inline |
Returns the total elapsed time for the rendering test.
Definition at line 129 of file qgsrenderchecker.h.
|
inline |
Call this to enable internal buffering of dash messages.
You may later call dashMessages() to get access to the buffered messages. If disabled (default) dash messages will be sent immediately.
enable | Enable or disable buffering |
Definition at line 282 of file qgsrenderchecker.h.
|
inline |
Returns the path to the expected image file.
Definition at line 273 of file qgsrenderchecker.h.
QString QgsRenderChecker::imageToHash | ( | const QString & | imageFile | ) |
Gets an md5 hash that uniquely identifies an image.
Definition at line 105 of file qgsrenderchecker.cpp.
bool QgsRenderChecker::isKnownAnomaly | ( | const QString & | diffImageFile | ) |
Gets 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 acceptable. If the render diff matches one of these anomalies we will still consider it to be acceptable.
Definition at line 145 of file qgsrenderchecker.cpp.
QString QgsRenderChecker::markdownReport | ( | bool | ignoreSuccess = true | ) | const |
Returns the markdown report describing the results of the test run.
If ignoreSuccess is true
then the report will always be empty if the test was successful.
Definition at line 86 of file qgsrenderchecker.cpp.
|
inline |
Returns the percent of pixels which matched the control image.
Definition at line 108 of file qgsrenderchecker.h.
|
inline |
Returns the total number of pixels in the control image.
Definition at line 122 of file qgsrenderchecker.h.
|
inline |
Returns the number of pixels which did not match the control image.
Definition at line 117 of file qgsrenderchecker.h.
|
inline |
Returns the path of the rendered image generated by the test.
This method will return either the path set with setRenderedImage() or generated in runTest().
Definition at line 175 of file qgsrenderchecker.h.
QString QgsRenderChecker::report | ( | bool | ignoreSuccess = true | ) | const |
Returns the HTML report describing the results of the test run.
If ignoreSuccess is true
then the report will always be empty if the test was successful.
Definition at line 81 of file qgsrenderchecker.cpp.
bool QgsRenderChecker::runTest | ( | const QString & | testName, |
unsigned int | mismatchCount = 0 , |
||
QgsRenderChecker::Flags | flags = QgsRenderChecker::Flags() |
||
) |
Test using renderer to generate the image to be compared.
testName | to be used as the basis for writing a file to e.g. /tmp/theTestName.png |
mismatchCount | 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. |
flags | render checker flags |
Definition at line 270 of file qgsrenderchecker.cpp.
|
inline |
Set tolerance for color components used by runTest() and compareImages().
Default value is 0.
colorTolerance | is maximum difference for each color component including alpha to be considered correct. |
Definition at line 185 of file qgsrenderchecker.h.
|
inline |
Sets file extension for the control image.
By default it is "png"
Definition at line 145 of file qgsrenderchecker.h.
void QgsRenderChecker::setControlImagePath | ( | const QString & | path | ) |
Sets the base path containing the reference images.
Definition at line 76 of file qgsrenderchecker.cpp.
void QgsRenderChecker::setControlName | ( | const QString & | name | ) |
Sets the base directory name for the control image (with control image path suffixed).
The path to the image will be constructed like this: controlImagePath() + '/' + control name + '/' + control name + '.' + extension ('png' by default)
Definition at line 91 of file qgsrenderchecker.cpp.
|
inline |
Sets the path prefix where the control images are kept.
This will be appended to controlImagePath().
Definition at line 151 of file qgsrenderchecker.h.
void QgsRenderChecker::setControlPathSuffix | ( | const QString & | name | ) |
Definition at line 97 of file qgsrenderchecker.cpp.
|
inline |
Definition at line 130 of file qgsrenderchecker.h.
|
inline |
Sets whether the comparison is expected to fail.
Definition at line 168 of file qgsrenderchecker.h.
void QgsRenderChecker::setMapSettings | ( | const QgsMapSettings & | mapSettings | ) |
Definition at line 118 of file qgsrenderchecker.cpp.
|
inline |
Sets the file name of the rendered image generated by the test.
Definition at line 161 of file qgsrenderchecker.h.
|
inline |
Sets the largest allowable difference in size between the rendered and the expected image.
xTolerance | x tolerance in pixels |
yTolerance | y tolerance in pixels |
Definition at line 192 of file qgsrenderchecker.h.
|
static |
Returns true
if a test report should be generated given the current environment.
Definition at line 66 of file qgsrenderchecker.cpp.
|
static |
Returns the path to the QGIS source code.
Definition at line 36 of file qgsrenderchecker.cpp.
|
static |
Returns the directory to use for generating a test report.
Definition at line 56 of file qgsrenderchecker.cpp.
|
friend |
Definition at line 340 of file qgsrenderchecker.h.
|
protected |
Definition at line 305 of file qgsrenderchecker.h.
|
protected |
Definition at line 308 of file qgsrenderchecker.h.
|
protected |
Markdown report.
Definition at line 303 of file qgsrenderchecker.h.
|
protected |
Definition at line 304 of file qgsrenderchecker.h.
|
protected |
Definition at line 306 of file qgsrenderchecker.h.
|
protected |
Definition at line 307 of file qgsrenderchecker.h.
|
protected |
HTML format report.
Definition at line 301 of file qgsrenderchecker.h.