@@ -130,13 +130,15 @@ def testNumeric(self):
130130 [QgsAggregateCalculator .ThirdQuartile , 'flddbl' , 7.5 ],
131131 [QgsAggregateCalculator .InterQuartileRange , 'fldint' , 3.0 ],
132132 [QgsAggregateCalculator .InterQuartileRange , 'flddbl' , 2.5 ],
133+ [QgsAggregateCalculator .ArrayAggregate , 'fldint' , int_values ],
134+ [QgsAggregateCalculator .ArrayAggregate , 'flddbl' , dbl_values ],
133135 ]
134136
135137 agg = QgsAggregateCalculator (layer )
136138 for t in tests :
137139 val , ok = agg .calculate (t [0 ], t [1 ])
138140 self .assertTrue (ok )
139- if isinstance (t [2 ], int ):
141+ if isinstance (t [2 ], ( int , list ) ):
140142 self .assertEqual (val , t [2 ])
141143 else :
142144 self .assertAlmostEqual (val , t [2 ], 3 )
@@ -171,6 +173,7 @@ def testString(self):
171173 [QgsAggregateCalculator .Max , 'fldstring' , 'eeee' ],
172174 [QgsAggregateCalculator .StringMinimumLength , 'fldstring' , 0 ],
173175 [QgsAggregateCalculator .StringMaximumLength , 'fldstring' , 8 ],
176+ [QgsAggregateCalculator .ArrayAggregate , 'fldstring' , values ],
174177 ]
175178
176179 agg = QgsAggregateCalculator (layer )
@@ -251,6 +254,8 @@ def testDateTime(self):
251254 [QgsAggregateCalculator .Range , 'flddatetime' , QgsInterval (693871147 )],
252255 [QgsAggregateCalculator .Range , 'flddate' , QgsInterval (693792000 )],
253256
257+ [QgsAggregateCalculator .ArrayAggregate , 'flddatetime' , [None if v .isNull () else v for v in datetime_values ]],
258+ [QgsAggregateCalculator .ArrayAggregate , 'flddate' , [None if v .isNull () else v for v in date_values ]],
254259 ]
255260
256261 agg = QgsAggregateCalculator (layer )
@@ -425,6 +430,12 @@ def testExpressionNoMatch(self):
425430 self .assertTrue (ok )
426431 self .assertEqual (val , None )
427432
433+ # array_agg
434+ agg = QgsAggregateCalculator (layer )
435+ val , ok = agg .calculate (QgsAggregateCalculator .ArrayAggregate , 'fldint * 2' )
436+ self .assertTrue (ok )
437+ self .assertEqual (val , [])
438+
428439 def testStringToAggregate (self ):
429440 """ test converting strings to aggregate types """
430441
0 commit comments