mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-27 00:33:48 -05:00
Some features are still disabled - will be fixed later Conflicts: python/core/composer/qgscomposition.sip python/core/diagram/qgsdiagram.sip python/core/diagram/qgshistogramdiagram.sip python/core/diagram/qgspiediagram.sip python/core/diagram/qgstextdiagram.sip python/core/qgsdiagramrendererv2.sip python/core/qgsfield.sip python/core/qgslabelsearchtree.sip python/core/qgsmaprenderer.sip python/core/qgsrenderchecker.sip python/core/symbology-ng/qgssymbollayerv2.sip python/gui/qgsmapcanvas.sip src/app/composer/qgscomposerlegendwidget.cpp src/app/qgisapp.cpp src/core/composer/qgsatlascomposition.cpp src/core/composer/qgscomposerattributetable.cpp src/core/composer/qgscomposermap.cpp src/core/composer/qgscomposition.cpp src/core/composer/qgscomposition.h src/core/diagram/qgsdiagram.h src/core/diagram/qgshistogramdiagram.cpp src/core/diagram/qgshistogramdiagram.h src/core/diagram/qgspiediagram.cpp src/core/diagram/qgspiediagram.h src/core/diagram/qgstextdiagram.cpp src/core/diagram/qgstextdiagram.h src/core/qgsdiagramrendererv2.cpp src/core/qgsdiagramrendererv2.h src/core/qgsmaprenderer.cpp src/core/qgsmaprenderer.h src/core/qgsnetworkaccessmanager.h src/core/qgspallabeling.cpp src/core/qgsrenderchecker.h src/core/qgsvectorlayer.cpp src/core/qgsvectorlayer.h src/core/qgsvectorlayerfeatureiterator.cpp src/core/qgsvectorlayerfeatureiterator.h src/core/raster/qgsrasterlayer.cpp src/core/symbology-ng/qgscategorizedsymbolrendererv2.cpp src/core/symbology-ng/qgsgraduatedsymbolrendererv2.cpp src/core/symbology-ng/qgsmarkersymbollayerv2.cpp src/core/symbology-ng/qgssinglesymbolrendererv2.cpp src/core/symbology-ng/qgssymbollayerv2.cpp src/core/symbology-ng/qgssymbollayerv2.h src/core/symbology-ng/qgssymbolv2.cpp src/gui/qgshighlight.cpp src/gui/qgsmapcanvas.cpp src/gui/qgsmapcanvas.h src/gui/qgsmapcanvasitem.cpp src/gui/qgsmaptoolidentify.cpp src/plugins/georeferencer/qgsgeorefplugingui.cpp src/providers/memory/qgsmemoryfeatureiterator.cpp src/providers/ogr/qgsogrfeatureiterator.cpp src/providers/ogr/qgsogrfeatureiterator.h src/providers/ogr/qgsogrprovider.cpp src/providers/oracle/qgsoraclefeatureiterator.cpp src/providers/oracle/qgsoracleprovider.cpp src/providers/postgres/qgspostgresconn.cpp src/providers/postgres/qgspostgresfeatureiterator.cpp src/providers/postgres/qgspostgresfeatureiterator.h src/providers/wfs/qgswfsfeatureiterator.cpp src/providers/wms/qgswmsprovider.cpp src/providers/wms/qgswmsprovider.h src/ui/qgsoptionsbase.ui tests/src/core/CMakeLists.txt tests/src/core/testqgscomposereffects.cpp tests/src/core/testqgscomposerhtml.cpp tests/src/core/testqgscomposerscalebar.cpp tests/src/core/testqgscomposershapes.cpp
76 lines
3.0 KiB
Plaintext
76 lines
3.0 KiB
Plaintext
|
|
/** 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();
|
|
//only records time for actual render part
|
|
int elapsedTime();
|
|
void setElapsedTimeTarget( int theTarget );
|
|
/** 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 );
|
|
/** Prefix where the control images are kept.
|
|
* This will be appended to controlImagePath
|
|
*/
|
|
void setControlPathPrefix( const QString theName );
|
|
/** Get an md5 hash that uniquely identifies an image */
|
|
QString imageToHash( QString theImageFile );
|
|
|
|
void setRenderedImage( QString theImageFileName );
|
|
void setMapRenderer( QgsMapRenderer * thepMapRenderer ) /Deprecated/;
|
|
void setMapSettings( const QgsMapSettings& mapSettings );
|
|
/**
|
|
* 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 );
|
|
|
|
/**
|
|
* 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 = "" );
|
|
/** 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 );
|
|
|
|
QString expectedImageFile();
|
|
|
|
};
|