Skip to content

Commit e7b6c75

Browse files
committed
BENCH: add benchmarks for cached Index properties
1 parent 71908cd commit e7b6c75

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import pandas as pd
2+
3+
4+
class _IndexCache:
5+
number = 1
6+
repeat = (3, 100, 20)
7+
8+
def time_values(self):
9+
self.idx._values
10+
11+
def time_shape(self):
12+
self.idx.shape
13+
14+
def time_is_monotonic(self):
15+
self.idx.is_monotonic
16+
17+
def time_is_monotonic_decreasing(self):
18+
self.idx.is_monotonic_decreasing
19+
20+
def time_is_monotonic_increasing(self):
21+
self.idx.is_monotonic_increasing
22+
23+
def time_is_unique(self):
24+
self.idx.is_unique
25+
26+
def time_engine(self):
27+
self.idx._engine
28+
29+
def time_inferred_type(self):
30+
self.idx.inferred_type
31+
32+
def time_is_all_dates(self):
33+
self.idx.is_all_dates
34+
35+
36+
class MultiIndexCached(_IndexCache):
37+
def setup(self):
38+
self.idx = pd.MultiIndex.from_product(
39+
[pd.date_range("1/1/2000", end="1/1/2001", freq="T"), ["a", "b", "c"]]
40+
)
41+
self.idx._cache = {}
42+
43+
44+
class DatetimeIndex(_IndexCache):
45+
def setup(self):
46+
self.idx = pd.date_range("1/1/2000", end="1/1/2001", freq="T")
47+
self.idx._cache = {}
48+
49+
50+
class PeriodIndex(_IndexCache):
51+
def setup(self):
52+
self.idx = pd.period_range("1/1/2000", end="1/1/2001", freq="T")
53+
self.idx._cache = {}
54+
55+
56+
class Int64Index(_IndexCache):
57+
def setup(self):
58+
self.idx = pd.Index(range(100000))
59+
self.idx._cache = {}

0 commit comments

Comments
 (0)