def testFilter(self): """ test calculating aggregate with filter """ layer = QgsVectorLayer("Point?field=fldint:integer", "layer", "memory") pr = layer.dataProvider() int_values = [4, 2, 3, 2, 5, None, 8] features = [] for v in int_values: f = QgsFeature() f.setFields(layer.fields()) f.setAttributes([v]) features.append(f) assert pr.addFeatures(features) agg = QgsAggregateCalculator(layer) filter_string = "fldint > 2" agg.setFilter(filter_string) self.assertEqual(agg.filter(), filter_string) val, ok = agg.calculate(QgsAggregateCalculator.Sum, 'fldint') self.assertTrue(ok) self.assertEqual(val, 20) # remove filter and retest agg.setFilter(None) val, ok = agg.calculate(QgsAggregateCalculator.Sum, 'fldint') self.assertTrue(ok) self.assertEqual(val, 24)
def testFilter(self): """ test calculating aggregate with filter """ layer = QgsVectorLayer("Point?field=fldint:integer", "layer", "memory") pr = layer.dataProvider() int_values = [4, 2, 3, 2, 5, None, 8] features = [] for v in int_values: f = QgsFeature() f.setFields(layer.fields()) f.setAttributes([v]) features.append(f) assert pr.addFeatures(features) agg = QgsAggregateCalculator(layer) filter_string = "fldint > 2" agg.setFilter(filter_string) self.assertEqual(agg.filter(), filter_string) val, ok = agg.calculate(QgsAggregateCalculator.Sum, 'fldint') self.assertTrue(ok) self.assertEqual(val, 20) # remove filter and retest agg.setFilter(None) val, ok = agg.calculate(QgsAggregateCalculator.Sum, 'fldint') self.assertTrue(ok) self.assertEqual(val, 24)
def testParameters(self): """ Test setting parameters""" a = QgsAggregateCalculator(None) params = QgsAggregateCalculator.AggregateParameters() params.filter = 'string filter' params.delimiter = 'delim' a.setParameters(params) self.assertEqual(a.filter(), 'string filter') self.assertEqual(a.delimiter(), 'delim')
def testParameters(self): """ Test setting parameters""" a = QgsAggregateCalculator(None) params = QgsAggregateCalculator.AggregateParameters() params.filter = 'string filter' params.delimiter = 'delim' a.setParameters(params) self.assertEqual(a.filter(), 'string filter') self.assertEqual(a.delimiter(), 'delim')
def testParameters(self): """ Test setting parameters""" a = QgsAggregateCalculator(None) params = QgsAggregateCalculator.AggregateParameters() params.filter = "string filter" params.delimiter = "delim" a.setParameters(params) self.assertEqual(a.filter(), "string filter") self.assertEqual(a.delimiter(), "delim")