File: qgsmultirenderchecker.sip.in

package info (click to toggle)
qgis 3.40.11%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,183,800 kB
  • sloc: cpp: 1,595,841; python: 372,637; xml: 23,474; sh: 3,761; perl: 3,664; ansic: 2,257; sql: 2,137; yacc: 1,068; lex: 577; javascript: 540; lisp: 411; makefile: 154
file content (224 lines) | stat: -rw-r--r-- 6,989 bytes parent folder | download | duplicates (14)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/core/qgsmultirenderchecker.h                                     *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/





class QgsMultiRenderChecker
{
%Docstring(signature="appended")
This class allows checking rendered images against comparison images.

Its main purpose is for the unit testing framework.

It will either:

- take an externally rendered image (:py:func:`~setRenderedImage`)
- render the image based on provided mapSettings (:py:func:`~setMapSettings`)

This image will then be compared against one or several images in a
folder inside the control directory
(tests/testdata/control_images/{controlName}).

There are modes for single and for multiple reference images.

- If there are no subfolders in the control directory, it will assume an
  image with the name {controlImage}.png in the control directory
  itself.
- If there are subfolders inside the control directory, it will search
  for images with the name {controlImage}.png in every subfolder.

For every control image there may be one or several randomly named
anomaly images defining allowed anomalies. For every control image, the
allowed mismatch and color tolerance values will be calculated
individually.
%End

%TypeHeaderCode
#include "qgsmultirenderchecker.h"
%End
  public:

    QgsMultiRenderChecker();
%Docstring
Constructor for QgsMultiRenderChecker.
%End

    virtual ~QgsMultiRenderChecker();

    void setControlName( const QString &name );
%Docstring
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'
%End

    void setFileFunctionLine( const QString &file, const QString &function, int line );
%Docstring
Sets the source ``file``, ``function`` and ``line`` from where the test
originates.

.. versionadded:: 3.36
%End

    void setControlPathPrefix( const QString &prefix );
%Docstring
Sets the path ``prefix`` where the control images are kept.
%End

    void setRenderedImage( const QString &renderedImagePath );
%Docstring
Set the path to the rendered image. If this is not set or set to null
QString, an image will be rendered based on the provided mapsettings

:param renderedImagePath: A path to the rendered image with which
                          control images will be compared
%End

    void setExpectFail( bool expectFail );
%Docstring
Sets whether the comparison is expected to fail.

.. versionadded:: 3.28
%End

    void setMapSettings( const QgsMapSettings &mapSettings );
%Docstring
Set the map settings to use to render the image

:param mapSettings: The map settings
%End

    void setColorTolerance( unsigned int colorTolerance );
%Docstring
Set tolerance for color components used by
:py:func:`~QgsMultiRenderChecker.runTest` Default value is 0.

:param colorTolerance: The maximum difference for each color component
                       including alpha to be considered correct.
%End

    void setSizeTolerance( int xTolerance, int yTolerance );
%Docstring
Sets the largest allowable difference in size between the rendered and
the expected image.

:param xTolerance: x tolerance in pixels
:param yTolerance: y tolerance in pixels
%End

    bool runTest( const QString &testName, unsigned int mismatchCount = 0 );
%Docstring
Test using renderer to generate the image to be compared.

:param testName: to be used as the basis for writing a file to e.g.
                 /tmp/theTestName.png

:param 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.

.. note::

   make sure to call setExpectedImage and setMapSettings first
%End

    QString report() const;
%Docstring
Returns a HTML report for this test.

The report will be empty if the test was successfully run.

.. seealso:: :py:func:`markdownReport`
%End

    QString markdownReport() const;
%Docstring
Returns a markdown report for this test.

The report will be empty if the test was successfully run.

.. seealso:: :py:func:`report`

.. versionadded:: 3.34
%End

    QString controlImagePath() const;
%Docstring
Returns the path to the control images.
%End

    static void drawBackground( QImage *image );
%Docstring
Draws a checkboard pattern for image backgrounds, so that opacity is
visible without requiring a transparent background for the image
%End

};


class QgsLayoutChecker : QgsMultiRenderChecker
{
%Docstring(signature="appended")
Renders a layout to an image and compares with an expected output
%End

%TypeHeaderCode
#include "qgsmultirenderchecker.h"
%End
  public:

    QgsLayoutChecker( const QString &testName, QgsLayout *layout );
%Docstring
Constructor for QgsLayoutChecker.
%End

    void setSize( QSize size );
%Docstring
Sets the output (reference) image ``size``.
%End

    bool testLayout( QString &report /Out/, int page = 0, int pixelDiff = 0, bool createReferenceImage = false );
%Docstring
Runs a render check on the layout, adding results to the specified
``report``.

The maximum number of allowable pixels differing from the reference
image is specified via the ``pixelDiff`` argument.

A reference image can be created by setting ``createReferenceImage`` to
``True`` in this case the test will always return ``True``.

The page number is specified via ``page``, where 0 corresponds to the
first page in the layout.

:param page: page number from layout to render and check
:param pixelDiff: number of pixels which are permitted to differ from
                  reference image.
:param createReferenceImage: if ``True``, the rendered reference image
                             will be regenerated instead of performing a
                             comparison test with the existing image

:return: - ``True`` if the rendered layout matches the expected
           reference image.
         - report: generated test report
%End

};


/************************************************************************
 * This file has been generated automatically from                      *
 *                                                                      *
 * src/core/qgsmultirenderchecker.h                                     *
 *                                                                      *
 * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 ************************************************************************/