6
6
import pandas as pd
7
7
import xarray as xr
8
8
9
- from . import randn , randint , requires_dask
9
+ from . import parameterized , randn , randint , requires_dask
10
10
11
11
12
12
nx = 3000
61
61
62
62
63
63
class Base (object ):
64
- def setup (self , key ):
64
+ def setup (self , * args , ** kwargs ):
65
65
self .ds = xr .Dataset (
66
66
{'var1' : (('x' , 'y' ), randn ((nx , ny ), frac_nan = 0.1 )),
67
67
'var2' : (('x' , 't' ), randn ((nx , nt ))),
@@ -73,53 +73,41 @@ def setup(self, key):
73
73
74
74
75
75
class Indexing (Base ):
76
+ @parameterized (['key' ], (list (basic_indexes .keys ())))
76
77
def time_indexing_basic (self , key ):
77
78
self .ds .isel (** basic_indexes [key ]).load ()
78
79
79
- time_indexing_basic .param_names = ['key' ]
80
- time_indexing_basic .params = [list (basic_indexes .keys ())]
81
-
80
+ @parameterized (['key' ], (list (outer_indexes .keys ())))
82
81
def time_indexing_outer (self , key ):
83
82
self .ds .isel (** outer_indexes [key ]).load ()
84
83
85
- time_indexing_outer .param_names = ['key' ]
86
- time_indexing_outer .params = [list (outer_indexes .keys ())]
87
-
84
+ @parameterized (['key' ], (list (vectorized_indexes .keys ())))
88
85
def time_indexing_vectorized (self , key ):
89
86
self .ds .isel (** vectorized_indexes [key ]).load ()
90
87
91
- time_indexing_vectorized .param_names = ['key' ]
92
- time_indexing_vectorized .params = [list (vectorized_indexes .keys ())]
93
-
94
88
95
89
class Assignment (Base ):
90
+ @parameterized (['key' ], (list (basic_indexes .keys ())))
96
91
def time_assignment_basic (self , key ):
97
92
ind = basic_indexes [key ]
98
93
val = basic_assignment_values [key ]
99
94
self .ds ['var1' ][ind .get ('x' , slice (None )),
100
95
ind .get ('y' , slice (None ))] = val
101
96
102
- time_assignment_basic .param_names = ['key' ]
103
- time_assignment_basic .params = [list (basic_indexes .keys ())]
104
-
97
+ @parameterized (['key' ], (list (outer_indexes .keys ())))
105
98
def time_assignment_outer (self , key ):
106
99
ind = outer_indexes [key ]
107
100
val = outer_assignment_values [key ]
108
101
self .ds ['var1' ][ind .get ('x' , slice (None )),
109
102
ind .get ('y' , slice (None ))] = val
110
103
111
- time_assignment_outer .param_names = ['key' ]
112
- time_assignment_outer .params = [list (outer_indexes .keys ())]
113
-
104
+ @parameterized (['key' ], (list (vectorized_indexes .keys ())))
114
105
def time_assignment_vectorized (self , key ):
115
106
ind = vectorized_indexes [key ]
116
107
val = vectorized_assignment_values [key ]
117
108
self .ds ['var1' ][ind .get ('x' , slice (None )),
118
109
ind .get ('y' , slice (None ))] = val
119
110
120
- time_assignment_vectorized .param_names = ['key' ]
121
- time_assignment_vectorized .params = [list (vectorized_indexes .keys ())]
122
-
123
111
124
112
class IndexingDask (Indexing ):
125
113
def setup (self , key ):
0 commit comments