Skip to content

Commit ae55b7d

Browse files
committed
TST: benchmark get_loc in various cases
1 parent 6d5fdbe commit ae55b7d

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

asv_bench/benchmarks/index_object.py

+17
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@ def setup(self, dtype):
147147
self.idx = getattr(tm, 'make{}Index'.format(dtype))(N)
148148
self.array_mask = (np.arange(N) % 3) == 0
149149
self.series_mask = Series(self.array_mask)
150+
self.sorted = self.idx.sort_values()
151+
half = N // 2
152+
self.non_unique = self.idx[:half].append(self.idx[:half])
153+
self.non_unique_sorted = self.sorted[:half].append(self.sorted[:half])
154+
self.key = self.sorted[N // 4]
150155

151156
def time_boolean_array(self, dtype):
152157
self.idx[self.array_mask]
@@ -163,6 +168,18 @@ def time_slice(self, dtype):
163168
def time_slice_step(self, dtype):
164169
self.idx[::2]
165170

171+
def time_get_loc(self, dtype):
172+
self.idx.get_loc(self.key)
173+
174+
def time_get_loc_sorted(self, dtype):
175+
self.sorted.get_loc(self.key)
176+
177+
def time_get_loc_non_unique(self, dtype):
178+
self.non_unique.get_loc(self.key)
179+
180+
def time_get_loc_non_unique_sorted(self, dtype):
181+
self.non_unique_sorted.get_loc(self.key)
182+
166183

167184
class Float64IndexMethod(object):
168185
# GH 13166

0 commit comments

Comments
 (0)