@@ -36,29 +36,45 @@ def setup(self, *args, **kwargs):
3636 randn_long , dims = "x" , coords = {"x" : np .arange (long_nx ) * 0.1 }
3737 )
3838
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 ):
4552 if pandas :
4653 se = self .da_long .to_series ()
4754 getattr (se .rolling (window = window , min_periods = window ), func )()
4855 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 ()
6278
6379
6480class RollingDask (Rolling ):
@@ -87,24 +103,28 @@ def setup(self, *args, **kwargs):
87103
88104
89105class 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 )()
94111
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 )()
99117
100118
101119class 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