def testQgsRendererRange_1(self): """Test QgsRendererRange getter/setter functions""" range = QgsRendererRange() self.assertTrue(range) lower = 123.45 upper = 234.56 label = "Test label" symbol = createMarkerSymbol() range.setLowerValue(lower) self.assertEqual(range.lowerValue(), lower, "Lower value getter/setter failed") range.setUpperValue(upper) self.assertEqual(range.upperValue(), upper, "Upper value getter/setter failed") range.setLabel(label) self.assertEqual(range.label(), label, "Label getter/setter failed") range.setRenderState(True) self.assertTrue(range.renderState(), "Render state getter/setter failed") range.setRenderState(False) self.assertFalse(range.renderState(), "Render state getter/setter failed") range.setSymbol(symbol.clone()) self.assertEqual(symbol.dump(), range.symbol().dump(), "Symbol getter/setter failed") range2 = QgsRendererRange(lower, upper, symbol.clone(), label, False) self.assertEqual(range2.lowerValue(), lower, "Lower value from constructor failed") self.assertEqual(range2.upperValue(), upper, "Upper value from constructor failed") self.assertEqual(range2.label(), label, "Label from constructor failed") self.assertEqual(range2.symbol().dump(), symbol.dump(), "Symbol from constructor failed") self.assertFalse(range2.renderState(), "Render state getter/setter failed")
def testQgsRendererRangeLabelFormat_2(self): """Test QgsRendererRangeLabelFormat number format""" format = QgsRendererRangeLabelFormat() # Tests have precision, trim, value, expected # (Note: Not sure what impact of locale is on these tests) tests = ( (2, False, 1.0, '1.00'), (2, True, 1.0, '1'), (2, False, 1.234, '1.23'), (2, True, 1.234, '1.23'), (2, False, 1.236, '1.24'), (2, False, -1.236, '-1.24'), (2, False, -0.004, '0.00'), (2, True, 1.002, '1'), (2, True, 1.006, '1.01'), (2, True, 1.096, '1.1'), (3, True, 1.096, '1.096'), (-2, True, 1496.45, '1500'), (-2, True, 149.45, '100'), (-2, True, 79.45, '100'), (-2, True, 49.45, '0'), (-2, True, -49.45, '0'), (-2, True, -149.45, '-100'), ) for f in tests: precision, trim, value, expected = f format.setPrecision(precision) format.setTrimTrailingZeroes(trim) result = format.formatNumber(value) self.assertEqual( result, expected, "Number format error {0}:{1}:{2} => {3}".format( precision, trim, value, result)) # Label tests - label format, expected result. # Labels will be evaluated with lower=1.23 upper=2.34, precision=2 ltests = ( ("%1 - %2", "1.23 - 2.34"), ("%1", "1.23"), ("%2", "2.34"), ("%2%", "2.34%"), ("%1%1", "1.231.23"), ("from %1 to %2 meters", "from 1.23 to 2.34 meters"), ("from %2 to %1 meters", "from 2.34 to 1.23 meters"), ) format.setPrecision(2) format.setTrimTrailingZeroes(False) lower = 1.232 upper = 2.339 for t in ltests: label, expected = t format.setFormat(label) result = format.labelForLowerUpper(lower, upper) self.assertEqual( result, expected, "Label format error {0} => {1}".format(label, result)) range = QgsRendererRange() range.setLowerValue(lower) range.setUpperValue(upper) label = ltests[0][0] format.setFormat(label) result = format.labelForRange(range) self.assertEqual( result, ltests[0][1], "Label for range error {0} => {1}".format(label, result))
def testQgsRendererRangeLabelFormat_2(self): """Test QgsRendererRangeLabelFormat number format""" format = QgsRendererRangeLabelFormat() # Tests have precision, trim, value, expected # (Note: Not sure what impact of locale is on these tests) tests = ( (2, False, 1.0, '1.00'), (2, True, 1.0, '1'), (2, False, 1.234, '1.23'), (2, True, 1.234, '1.23'), (2, False, 1.236, '1.24'), (2, False, -1.236, '-1.24'), (2, False, -0.004, '0.00'), (2, True, 1.002, '1'), (2, True, 1.006, '1.01'), (2, True, 1.096, '1.1'), (3, True, 1.096, '1.096'), (-2, True, 1496.45, '1500'), (-2, True, 149.45, '100'), (-2, True, 79.45, '100'), (-2, True, 49.45, '0'), (-2, True, -49.45, '0'), (-2, True, -149.45, '-100'), ) for f in tests: precision, trim, value, expected = f format.setPrecision(precision) format.setTrimTrailingZeroes(trim) result = format.formatNumber(value) self.assertEqual(result, expected, "Number format error {0}:{1}:{2} => {3}".format( precision, trim, value, result)) # Label tests - label format, expected result. # Labels will be evaluated with lower=1.23 upper=2.34, precision=2 ltests = ( ("%1 - %2", "1.23 - 2.34"), ("%1", "1.23"), ("%2", "2.34"), ("%2%", "2.34%"), ("%1%1", "1.231.23"), ("from %1 to %2 meters", "from 1.23 to 2.34 meters"), ("from %2 to %1 meters", "from 2.34 to 1.23 meters"), ) format.setPrecision(2) format.setTrimTrailingZeroes(False) lower = 1.232 upper = 2.339 for t in ltests: label, expected = t format.setFormat(label) result = format.labelForLowerUpper(lower, upper) self.assertEqual(result, expected, "Label format error {0} => {1}".format( label, result)) range = QgsRendererRange() range.setLowerValue(lower) range.setUpperValue(upper) label = ltests[0][0] format.setFormat(label) result = format.labelForRange(range) self.assertEqual(result, ltests[0][1], "Label for range error {0} => {1}".format( label, result))