@@ -36,29 +36,45 @@ def setup(self, *args, **kwargs):
36
36
randn_long , dims = "x" , coords = {"x" : np .arange (long_nx ) * 0.1 }
37
37
)
38
38
39
- @parameterized (["func" , "center" ], (["mean" , "count" ], [True , False ]))
40
- def time_rolling (self , func , center ):
41
- getattr (self .ds .rolling (x = window , center = center ), func )().load ()
42
-
43
- @parameterized (["func" , "pandas" ], (["mean" , "count" ], [True , False ]))
44
- def time_rolling_long (self , func , pandas ):
39
+ @parameterized (
40
+ ["func" , "center" , "use_bottleneck" ],
41
+ (["mean" , "count" ], [True , False ], [True , False ]),
42
+ )
43
+ def time_rolling (self , func , center , use_bottleneck ):
44
+ with xr .set_options (use_bottleneck = use_bottleneck ):
45
+ getattr (self .ds .rolling (x = window , center = center ), func )().load ()
46
+
47
+ @parameterized (
48
+ ["func" , "pandas" , "use_bottleneck" ],
49
+ (["mean" , "count" ], [True , False ], [True , False ]),
50
+ )
51
+ def time_rolling_long (self , func , pandas , use_bottleneck ):
45
52
if pandas :
46
53
se = self .da_long .to_series ()
47
54
getattr (se .rolling (window = window , min_periods = window ), func )()
48
55
else :
49
- getattr (self .da_long .rolling (x = window , min_periods = window ), func )().load ()
50
-
51
- @parameterized (["window_" , "min_periods" ], ([20 , 40 ], [5 , 5 ]))
52
- def time_rolling_np (self , window_ , min_periods ):
53
- self .ds .rolling (x = window_ , center = False , min_periods = min_periods ).reduce (
54
- getattr (np , "nansum" )
55
- ).load ()
56
-
57
- @parameterized (["center" , "stride" ], ([True , False ], [1 , 1 ]))
58
- def time_rolling_construct (self , center , stride ):
59
- self .ds .rolling (x = window , center = center ).construct (
60
- "window_dim" , stride = stride
61
- ).sum (dim = "window_dim" ).load ()
56
+ with xr .set_options (use_bottleneck = use_bottleneck ):
57
+ getattr (
58
+ self .da_long .rolling (x = window , min_periods = window ), func
59
+ )().load ()
60
+
61
+ @parameterized (
62
+ ["window_" , "min_periods" , "use_bottleneck" ], ([20 , 40 ], [5 , 5 ], [True , False ])
63
+ )
64
+ def time_rolling_np (self , window_ , min_periods , use_bottleneck ):
65
+ with xr .set_options (use_bottleneck = use_bottleneck ):
66
+ self .ds .rolling (x = window_ , center = False , min_periods = min_periods ).reduce (
67
+ getattr (np , "nansum" )
68
+ ).load ()
69
+
70
+ @parameterized (
71
+ ["center" , "stride" , "use_bottleneck" ], ([True , False ], [1 , 1 ], [True , False ])
72
+ )
73
+ def time_rolling_construct (self , center , stride , use_bottleneck ):
74
+ with xr .set_options (use_bottleneck = use_bottleneck ):
75
+ self .ds .rolling (x = window , center = center ).construct (
76
+ "window_dim" , stride = stride
77
+ ).sum (dim = "window_dim" ).load ()
62
78
63
79
64
80
class RollingDask (Rolling ):
@@ -87,24 +103,28 @@ def setup(self, *args, **kwargs):
87
103
88
104
89
105
class DataArrayRollingMemory (RollingMemory ):
90
- @parameterized ("func" , ["sum" , "max" , "mean" ])
91
- def peakmem_ndrolling_reduce (self , func ):
92
- roll = self .ds .var1 .rolling (x = 10 , y = 4 )
93
- getattr (roll , func )()
106
+ @parameterized (["func" , "use_bottleneck" ], (["sum" , "max" , "mean" ], [True , False ]))
107
+ def peakmem_ndrolling_reduce (self , func , use_bottleneck ):
108
+ with xr .set_options (use_bottleneck = use_bottleneck ):
109
+ roll = self .ds .var1 .rolling (x = 10 , y = 4 )
110
+ getattr (roll , func )()
94
111
95
- @parameterized ("func" , ["sum" , "max" , "mean" ])
96
- def peakmem_1drolling_reduce (self , func ):
97
- roll = self .ds .var3 .rolling (t = 100 )
98
- getattr (roll , func )()
112
+ @parameterized (["func" , "use_bottleneck" ], (["sum" , "max" , "mean" ], [True , False ]))
113
+ def peakmem_1drolling_reduce (self , func , use_bottleneck ):
114
+ with xr .set_options (use_bottleneck = use_bottleneck ):
115
+ roll = self .ds .var3 .rolling (t = 100 )
116
+ getattr (roll , func )()
99
117
100
118
101
119
class DatasetRollingMemory (RollingMemory ):
102
- @parameterized ("func" , ["sum" , "max" , "mean" ])
103
- def peakmem_ndrolling_reduce (self , func ):
104
- roll = self .ds .rolling (x = 10 , y = 4 )
105
- getattr (roll , func )()
106
-
107
- @parameterized ("func" , ["sum" , "max" , "mean" ])
108
- def peakmem_1drolling_reduce (self , func ):
109
- roll = self .ds .rolling (t = 100 )
110
- getattr (roll , func )()
120
+ @parameterized (["func" , "use_bottleneck" ], (["sum" , "max" , "mean" ], [True , False ]))
121
+ def peakmem_ndrolling_reduce (self , func , use_bottleneck ):
122
+ with xr .set_options (use_bottleneck = use_bottleneck ):
123
+ roll = self .ds .rolling (x = 10 , y = 4 )
124
+ getattr (roll , func )()
125
+
126
+ @parameterized (["func" , "use_bottleneck" ], (["sum" , "max" , "mean" ], [True , False ]))
127
+ def peakmem_1drolling_reduce (self , func , use_bottleneck ):
128
+ with xr .set_options (use_bottleneck = use_bottleneck ):
129
+ roll = self .ds .rolling (t = 100 )
130
+ getattr (roll , func )()
0 commit comments