@@ -25,17 +25,32 @@ def time_constructor(self, data):
25
25
26
26
class IsIn :
27
27
28
- params = ["int64" , "uint64" , "object" ]
28
+ params = ["int64" , "uint64" , "object" , "Int64" ]
29
29
param_names = ["dtype" ]
30
30
31
31
def setup (self , dtype ):
32
- self .s = Series (np .random .randint (1 , 10 , 100000 )).astype (dtype )
32
+ N = 10000
33
+ self .s = Series (np .random .randint (1 , 10 , N )).astype (dtype )
33
34
self .values = [1 , 2 ]
34
35
35
36
def time_isin (self , dtypes ):
36
37
self .s .isin (self .values )
37
38
38
39
40
+ class IsInBoolean :
41
+
42
+ params = ["boolean" , "bool" ]
43
+ param_names = ["dtype" ]
44
+
45
+ def setup (self , dtype ):
46
+ N = 10000
47
+ self .s = Series (np .random .randint (0 , 2 , N )).astype (dtype )
48
+ self .values = [True , False ]
49
+
50
+ def time_isin (self , dtypes ):
51
+ self .s .isin (self .values )
52
+
53
+
39
54
class IsInDatetime64 :
40
55
def setup (self ):
41
56
dti = date_range (
@@ -59,21 +74,27 @@ def time_isin_empty(self):
59
74
60
75
61
76
class IsInFloat64 :
62
- def setup (self ):
63
- self .small = Series ([1 , 2 ], dtype = np .float64 )
64
- self .many_different_values = np .arange (10 ** 6 , dtype = np .float64 )
65
- self .few_different_values = np .zeros (10 ** 7 , dtype = np .float64 )
66
- self .only_nans_values = np .full (10 ** 7 , np .nan , dtype = np .float64 )
67
77
68
- def time_isin_many_different (self ):
78
+ params = [np .float64 , "Float64" ]
79
+ param_names = ["dtype" ]
80
+
81
+ def setup (self , dtype ):
82
+ N_many = 10 ** 5
83
+ N_few = 10 ** 6
84
+ self .small = Series ([1 , 2 ], dtype = dtype )
85
+ self .many_different_values = np .arange (N_many , dtype = np .float64 )
86
+ self .few_different_values = np .zeros (N_few , dtype = np .float64 )
87
+ self .only_nans_values = np .full (N_few , np .nan , dtype = np .float64 )
88
+
89
+ def time_isin_many_different (self , dtypes ):
69
90
# runtime is dominated by creation of the lookup-table
70
91
self .small .isin (self .many_different_values )
71
92
72
- def time_isin_few_different (self ):
93
+ def time_isin_few_different (self , dtypes ):
73
94
# runtime is dominated by creation of the lookup-table
74
95
self .small .isin (self .few_different_values )
75
96
76
- def time_isin_nan_values (self ):
97
+ def time_isin_nan_values (self , dtypes ):
77
98
# runtime is dominated by creation of the lookup-table
78
99
self .small .isin (self .few_different_values )
79
100
@@ -114,7 +135,7 @@ def time_isin_long_series_long_values_floats(self):
114
135
115
136
class IsInLongSeriesLookUpDominates :
116
137
params = [
117
- ["int64" , "int32" , "float64" , "float32" , "object" ],
138
+ ["int64" , "int32" , "float64" , "float32" , "object" , "Int64" , "Float64" ],
118
139
[5 , 1000 ],
119
140
["random_hits" , "random_misses" , "monotone_hits" , "monotone_misses" ],
120
141
]
@@ -141,7 +162,7 @@ def time_isin(self, dtypes, MaxNumber, series_type):
141
162
142
163
class IsInLongSeriesValuesDominate :
143
164
params = [
144
- ["int64" , "int32" , "float64" , "float32" , "object" ],
165
+ ["int64" , "int32" , "float64" , "float32" , "object" , "Int64" , "Float64" ],
145
166
["random" , "monotone" ],
146
167
]
147
168
param_names = ["dtype" , "series_type" ]
0 commit comments