1
1
import numpy as np
2
2
import numpy_groupies as npg
3
+ import pandas as pd
3
4
4
5
import flox
5
6
6
7
from . import parameterized
7
8
8
9
N = 1000
9
- funcs = ["sum" , "nansum" , "mean" , "nanmean" , "max" , "var" , "nanvar" ]
10
+ funcs = ["sum" , "nansum" , "mean" , "nanmean" , "max" , "var" , "nanvar" , "count" ]
10
11
engines = ["flox" , "numpy" ]
12
+ expected_groups = [None , pd .IntervalIndex .from_breaks ([1 , 2 , 4 ])]
11
13
12
14
13
15
class ChunkReduce :
@@ -22,24 +24,26 @@ def setup(self, *args, **kwargs):
22
24
)
23
25
raise NotImplementedError
24
26
25
- @parameterized ("func, engine" , [funcs , engines ])
26
- def time_reduce (self , func , engine ):
27
+ @parameterized ("func, engine, expected_groups " , [funcs , engines , expected_groups ])
28
+ def time_reduce (self , func , engine , expected_groups ):
27
29
flox .groupby_reduce (
28
30
self .array ,
29
31
self .labels ,
30
32
func = func ,
31
33
engine = engine ,
32
34
axis = self .axis ,
35
+ expected_groups = expected_groups ,
33
36
)
34
37
35
- @parameterized ("func, engine" , [funcs , engines ])
36
- def peakmem_reduce (self , func , engine ):
38
+ @parameterized ("func, engine, expected_groups " , [funcs , engines , expected_groups ])
39
+ def peakmem_reduce (self , func , engine , expected_groups ):
37
40
flox .groupby_reduce (
38
41
self .array ,
39
42
self .labels ,
40
43
func = func ,
41
44
engine = engine ,
42
45
axis = self .axis ,
46
+ expected_groups = expected_groups ,
43
47
)
44
48
45
49
0 commit comments