|
40 | 40 | QgsUnitTypes,
|
41 | 41 | QgsMapUnitScale,
|
42 | 42 | QgsMarkerSymbol,
|
| 43 | + QgsCategorizedSymbolRenderer, |
| 44 | + QgsRendererCategory, |
43 | 45 | QgsSingleSymbolRenderer,
|
44 | 46 | QgsPointClusterRenderer,
|
45 | 47 | QgsMapSettings,
|
@@ -123,6 +125,16 @@ def _checkProperties(self, r):
|
123 | 125 | self.assertEqual(r.embeddedRenderer().symbol().color().name(), '#fdbf6f')
|
124 | 126 | self.assertEqual(r.labelDistanceFactor(), 0.25)
|
125 | 127 |
|
| 128 | + def _set_categorized_renderer(self): |
| 129 | + renderer = QgsCategorizedSymbolRenderer(attrName='Class') |
| 130 | + sym1 = QgsMarkerSymbol.createSimple({'color': '#ff00ff', 'size': '6', 'outline_style': 'no'}) |
| 131 | + cat1 = QgsRendererCategory('Biplane', sym1, 'Big') |
| 132 | + renderer.addCategory(cat1) |
| 133 | + sym2 = QgsMarkerSymbol.createSimple({'color': '#ff00ff', 'size': '3', 'outline_style': 'no'}) |
| 134 | + cat2 = QgsRendererCategory(['B52', 'Jet'], sym2, 'Smaller') |
| 135 | + renderer.addCategory(cat2) |
| 136 | + self.renderer.setEmbeddedRenderer(renderer) |
| 137 | + |
126 | 138 | def testGettersSetters(self):
|
127 | 139 | """ test getters and setters """
|
128 | 140 | r = QgsPointDisplacementRenderer()
|
@@ -228,6 +240,74 @@ def testRenderGridAdjust(self):
|
228 | 240 | renderchecker.setControlName('expected_displacement_adjust_grid')
|
229 | 241 | self.assertTrue(renderchecker.runTest('expected_displacement_adjust_grid'))
|
230 | 242 |
|
| 243 | + def testClusterRingLabels(self): |
| 244 | + self.layer.renderer().setTolerance(10) |
| 245 | + self.layer.renderer().setLabelAttributeName('Class') |
| 246 | + self.layer.renderer().setLabelDistanceFactor(0.35) |
| 247 | + renderchecker = QgsMultiRenderChecker() |
| 248 | + renderchecker.setMapSettings(self.mapsettings) |
| 249 | + renderchecker.setControlPathPrefix('displacement_renderer') |
| 250 | + renderchecker.setControlName('expected_displacement_cluster_ring_labels') |
| 251 | + self.assertTrue(renderchecker.runTest('expected_displacement_cluster_ring_labels')) |
| 252 | + |
| 253 | + def testClusterGridLabels(self): |
| 254 | + self.layer.renderer().setTolerance(10) |
| 255 | + self.layer.renderer().setLabelAttributeName('Class') |
| 256 | + self.layer.renderer().setLabelDistanceFactor(0.35) |
| 257 | + self.layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid) |
| 258 | + renderchecker = QgsMultiRenderChecker() |
| 259 | + renderchecker.setMapSettings(self.mapsettings) |
| 260 | + renderchecker.setControlPathPrefix('displacement_renderer') |
| 261 | + renderchecker.setControlName('expected_displacement_cluster_grid_labels') |
| 262 | + self.assertTrue(renderchecker.runTest('expected_displacement_cluster_grid_labels')) |
| 263 | + |
| 264 | + def testClusterConcentricLabels(self): |
| 265 | + self.layer.renderer().setTolerance(10) |
| 266 | + self.layer.renderer().setLabelAttributeName('Class') |
| 267 | + self.layer.renderer().setLabelDistanceFactor(0.35) |
| 268 | + self.layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings) |
| 269 | + renderchecker = QgsMultiRenderChecker() |
| 270 | + renderchecker.setMapSettings(self.mapsettings) |
| 271 | + renderchecker.setControlPathPrefix('displacement_renderer') |
| 272 | + renderchecker.setControlName('expected_displacement_cluster_concentric_labels') |
| 273 | + self.assertTrue(renderchecker.runTest('expected_displacement_cluster_concentric_labels')) |
| 274 | + |
| 275 | + def testClusterRingLabelsDifferetSizes(self): |
| 276 | + self._set_categorized_renderer() |
| 277 | + self.layer.renderer().setTolerance(10) |
| 278 | + self.layer.renderer().setLabelAttributeName('Class') |
| 279 | + self.layer.renderer().setLabelDistanceFactor(0.35) |
| 280 | + renderchecker = QgsMultiRenderChecker() |
| 281 | + renderchecker.setMapSettings(self.mapsettings) |
| 282 | + renderchecker.setControlPathPrefix('displacement_renderer') |
| 283 | + renderchecker.setControlName('expected_displacement_cluster_ring_labels_diff_size') |
| 284 | + self.assertTrue(renderchecker.runTest('expected_displacement_cluster_ring_labels_diff_size')) |
| 285 | + |
| 286 | + def testClusterGridLabelsDifferetSizes(self): |
| 287 | + self._set_categorized_renderer() |
| 288 | + self.layer.renderer().setTolerance(10) |
| 289 | + self.layer.renderer().setLabelAttributeName('Class') |
| 290 | + self.layer.renderer().setLabelDistanceFactor(0.35) |
| 291 | + self.layer.renderer().setPlacement(QgsPointDisplacementRenderer.Grid) |
| 292 | + renderchecker = QgsMultiRenderChecker() |
| 293 | + renderchecker.setMapSettings(self.mapsettings) |
| 294 | + renderchecker.setControlPathPrefix('displacement_renderer') |
| 295 | + renderchecker.setControlName('expected_displacement_cluster_grid_labels_diff_size') |
| 296 | + self.assertTrue(renderchecker.runTest('expected_displacement_cluster_grid_labels_diff_size')) |
| 297 | + |
| 298 | + def testClusterConcentricLabelsDifferetSizes(self): |
| 299 | + self._set_categorized_renderer() |
| 300 | + self.layer.renderer().setTolerance(10) |
| 301 | + self.layer.renderer().setLabelAttributeName('Class') |
| 302 | + self.layer.renderer().setLabelDistanceFactor(0.35) |
| 303 | + self.layer.renderer().setPlacement(QgsPointDisplacementRenderer.ConcentricRings) |
| 304 | + renderchecker = QgsMultiRenderChecker() |
| 305 | + renderchecker.setMapSettings(self.mapsettings) |
| 306 | + renderchecker.setControlPathPrefix('displacement_renderer') |
| 307 | + renderchecker.setControlName('expected_displacement_cluster_concentric_labels_diff_size') |
| 308 | + self.assertTrue(renderchecker.runTest('expected_displacement_cluster_concentric_labels_diff_size')) |
| 309 | + |
| 310 | + |
231 | 311 |
|
232 | 312 | if __name__ == '__main__':
|
233 | 313 | unittest.main()
|
0 commit comments