mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-04 00:04:03 -04:00
Symbol renderer: special case for fixed interval single class
Fix #63277
This commit is contained in:
parent
0b1ba631b3
commit
25444cca9f
@ -62,7 +62,15 @@ QList<double> QgsClassificationFixedInterval::calculateBreaks( double &minimum,
|
||||
return breaks;
|
||||
}
|
||||
|
||||
// Single class
|
||||
if ( minimum == maximum )
|
||||
{
|
||||
breaks << maximum + interval;
|
||||
return breaks;
|
||||
}
|
||||
|
||||
double value = minimum;
|
||||
|
||||
while ( value < maximum )
|
||||
{
|
||||
value += interval;
|
||||
|
@ -770,6 +770,35 @@ class TestQgsGraduatedSymbolRenderer(QgisTestCase):
|
||||
|
||||
self.assertEqual(dom.toString(), expected)
|
||||
|
||||
def testFixedIntervalSingleClass(self):
|
||||
"""Test single class with fixed interval, issue GH #63277"""
|
||||
|
||||
# Create a renderer
|
||||
renderer = QgsGraduatedSymbolRenderer()
|
||||
renderer.setClassificationMethod(QgsClassificationFixedInterval())
|
||||
symbol = createMarkerSymbol()
|
||||
renderer.setSourceSymbol(symbol.clone())
|
||||
|
||||
# Test retrieving data values from a layer
|
||||
ml = createMemoryLayer((0, 0))
|
||||
|
||||
renderer.setClassAttribute("value")
|
||||
# Equal interval calculations
|
||||
renderer.updateClasses(ml, 5)
|
||||
self.assertEqual(
|
||||
dumpRangeBreaks(renderer.ranges()),
|
||||
"(0.0000-1.0000,)",
|
||||
"Equal interval classification not correct",
|
||||
)
|
||||
|
||||
ml = createMemoryLayer((1, 1))
|
||||
renderer.updateClasses(ml, 5)
|
||||
self.assertEqual(
|
||||
dumpRangeBreaks(renderer.ranges()),
|
||||
"(1.0000-2.0000,)",
|
||||
"Equal interval classification not correct",
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
Loading…
x
Reference in New Issue
Block a user