Masks set which pixels in the control image should be tested and
an optional tolerance for each pixel. This is done via the colors
in the mask image - white pixels are ignored, black must be an
exact match, and gray levels represent the maximum color component
deviation for that pixel.
This should replace the fragile anomaly images, in that a single
control image with a suitable mask will not be susceptible to
antialiasing differences, etc.
A new script (scripts/generate_test_mask_image.py) is included which
either creates a new mask or modifies an existing mask to handle
an acceptable rendered image.
Ultimately, masking along with multi render checks for specific
platform differences should be flexible enough to meet our needs.
Make sure image dpi respects mapsettings dpi in
QgsMapRendererSequentialJob.
Also apply a workaround to avoid segfault on end of test. This
workaround probably should be moved to QgsApplication::exitQgis()
but I'll do that after release in case of regressions.
These failing tests are actually revealing an issue with the atlas
map API, which can't be fixed without a break.
This API will be replaced for QGIS3.0 or the layout refactor work.
This test checks that the coverage of the API docs does not drop
below a preset threshold (initially set at the current doc coverage)
If new members are added without documentation, then the coverage
will drop and this test will fail. Hopefully over time we can slowly
increase this threshold until documentation coverage reaches an
acceptable level.
Centralizes code to return a possible rotated map area boundaries.
Makes use of the new method from the grid decoration.
Adds new testcase for QgsMapSettings, including test for visibleExtent,
mapUnitsPerPixel and the new visiblePolygon method.
... by explicitly passing QString arguments. Otherwise the string
literals are implictly converted to bool and the wrong constructor
is called.
This is not an ideal solution as the API is still misleading, but I
can't see an alternative solution without breaking API and making
one of the constructors explicit or changing their signature.