@@ -14,99 +14,107 @@ def _assert(self, a, b):
14
14
tm .assert_numpy_array_equal (a , b )
15
15
16
16
def _check_numeric_ops (self , a , b , a_dense , b_dense ):
17
- # sparse & sparse
18
- self . _assert (( a + b ). to_dense (), a_dense + b_dense )
19
- self . _assert (( b + a ). to_dense (), b_dense + a_dense )
17
+ with np . errstate ( invalid = 'ignore' , divide = 'ignore' ):
18
+ # Unfortunately, trying to wrap the computation of each expected
19
+ # value is with np.errstate() is too tedious.
20
20
21
- self ._assert ((a - b ).to_dense (), a_dense - b_dense )
22
- self ._assert ((b - a ).to_dense (), b_dense - a_dense )
21
+ # sparse & sparse
22
+ self ._assert ((a + b ).to_dense (), a_dense + b_dense )
23
+ self ._assert ((b + a ).to_dense (), b_dense + a_dense )
23
24
24
- self ._assert ((a * b ).to_dense (), a_dense * b_dense )
25
- self ._assert ((b * a ).to_dense (), b_dense * a_dense )
25
+ self ._assert ((a - b ).to_dense (), a_dense - b_dense )
26
+ self ._assert ((b - a ).to_dense (), b_dense - a_dense )
26
27
27
- # pandas uses future division
28
- self ._assert ((a / b ).to_dense (), a_dense * 1.0 / b_dense )
29
- self ._assert ((b / a ).to_dense (), b_dense * 1.0 / a_dense )
28
+ self ._assert ((a * b ).to_dense (), a_dense * b_dense )
29
+ self ._assert ((b * a ).to_dense (), b_dense * a_dense )
30
30
31
- # ToDo: FIXME in GH 13843
32
- if not (self ._base == pd .Series and a .dtype == 'int64' ):
33
- self ._assert ((a // b ).to_dense (), a_dense // b_dense )
34
- self ._assert ((b // a ).to_dense (), b_dense // a_dense )
31
+ # pandas uses future division
32
+ self ._assert ((a / b ).to_dense (), a_dense * 1.0 / b_dense )
33
+ self ._assert ((b / a ).to_dense (), b_dense * 1.0 / a_dense )
35
34
36
- self ._assert ((a % b ).to_dense (), a_dense % b_dense )
37
- self ._assert ((b % a ).to_dense (), b_dense % a_dense )
35
+ # ToDo: FIXME in GH 13843
36
+ if not (self ._base == pd .Series and a .dtype == 'int64' ):
37
+ self ._assert ((a // b ).to_dense (), a_dense // b_dense )
38
+ self ._assert ((b // a ).to_dense (), b_dense // a_dense )
38
39
39
- self ._assert ((a ** b ).to_dense (), a_dense ** b_dense )
40
- self ._assert ((b ** a ).to_dense (), b_dense ** a_dense )
40
+ self ._assert ((a % b ).to_dense (), a_dense % b_dense )
41
+ self ._assert ((b % a ).to_dense (), b_dense % a_dense )
41
42
42
- # sparse & dense
43
- self ._assert ((a + b_dense ).to_dense (), a_dense + b_dense )
44
- self ._assert ((b_dense + a ).to_dense (), b_dense + a_dense )
43
+ self ._assert ((a ** b ).to_dense (), a_dense ** b_dense )
44
+ self ._assert ((b ** a ).to_dense (), b_dense ** a_dense )
45
+
46
+ # sparse & dense
47
+ self ._assert ((a + b_dense ).to_dense (), a_dense + b_dense )
48
+ self ._assert ((b_dense + a ).to_dense (), b_dense + a_dense )
45
49
46
- self ._assert ((a - b_dense ).to_dense (), a_dense - b_dense )
47
- self ._assert ((b_dense - a ).to_dense (), b_dense - a_dense )
50
+ self ._assert ((a - b_dense ).to_dense (), a_dense - b_dense )
51
+ self ._assert ((b_dense - a ).to_dense (), b_dense - a_dense )
48
52
49
- self ._assert ((a * b_dense ).to_dense (), a_dense * b_dense )
50
- self ._assert ((b_dense * a ).to_dense (), b_dense * a_dense )
53
+ self ._assert ((a * b_dense ).to_dense (), a_dense * b_dense )
54
+ self ._assert ((b_dense * a ).to_dense (), b_dense * a_dense )
51
55
52
- # pandas uses future division
53
- self ._assert ((a / b_dense ).to_dense (), a_dense * 1.0 / b_dense )
54
- self ._assert ((b_dense / a ).to_dense (), b_dense * 1.0 / a_dense )
56
+ # pandas uses future division
57
+ self ._assert ((a / b_dense ).to_dense (), a_dense * 1.0 / b_dense )
58
+ self ._assert ((b_dense / a ).to_dense (), b_dense * 1.0 / a_dense )
55
59
56
- # ToDo: FIXME in GH 13843
57
- if not (self ._base == pd .Series and a .dtype == 'int64' ):
58
- self ._assert ((a // b_dense ).to_dense (), a_dense // b_dense )
59
- self ._assert ((b_dense // a ).to_dense (), b_dense // a_dense )
60
+ # ToDo: FIXME in GH 13843
61
+ if not (self ._base == pd .Series and a .dtype == 'int64' ):
62
+ self ._assert ((a // b_dense ).to_dense (), a_dense // b_dense )
63
+ self ._assert ((b_dense // a ).to_dense (), b_dense // a_dense )
60
64
61
- self ._assert ((a % b_dense ).to_dense (), a_dense % b_dense )
62
- self ._assert ((b_dense % a ).to_dense (), b_dense % a_dense )
65
+ self ._assert ((a % b_dense ).to_dense (), a_dense % b_dense )
66
+ self ._assert ((b_dense % a ).to_dense (), b_dense % a_dense )
63
67
64
- self ._assert ((a ** b_dense ).to_dense (), a_dense ** b_dense )
65
- self ._assert ((b_dense ** a ).to_dense (), b_dense ** a_dense )
68
+ self ._assert ((a ** b_dense ).to_dense (), a_dense ** b_dense )
69
+ self ._assert ((b_dense ** a ).to_dense (), b_dense ** a_dense )
66
70
67
71
def _check_bool_result (self , res ):
68
72
tm .assertIsInstance (res , self ._klass )
69
73
self .assertEqual (res .dtype , np .bool )
70
74
self .assertIsInstance (res .fill_value , bool )
71
75
72
76
def _check_comparison_ops (self , a , b , a_dense , b_dense ):
73
- # sparse & sparse
74
- self ._check_bool_result (a == b )
75
- self ._assert ((a == b ).to_dense (), a_dense == b_dense )
77
+ with np .errstate (invalid = 'ignore' ):
78
+ # Unfortunately, trying to wrap the computation of each expected
79
+ # value is with np.errstate() is too tedious.
80
+ #
81
+ # sparse & sparse
82
+ self ._check_bool_result (a == b )
83
+ self ._assert ((a == b ).to_dense (), a_dense == b_dense )
76
84
77
- self ._check_bool_result (a != b )
78
- self ._assert ((a != b ).to_dense (), a_dense != b_dense )
85
+ self ._check_bool_result (a != b )
86
+ self ._assert ((a != b ).to_dense (), a_dense != b_dense )
79
87
80
- self ._check_bool_result (a >= b )
81
- self ._assert ((a >= b ).to_dense (), a_dense >= b_dense )
88
+ self ._check_bool_result (a >= b )
89
+ self ._assert ((a >= b ).to_dense (), a_dense >= b_dense )
82
90
83
- self ._check_bool_result (a <= b )
84
- self ._assert ((a <= b ).to_dense (), a_dense <= b_dense )
91
+ self ._check_bool_result (a <= b )
92
+ self ._assert ((a <= b ).to_dense (), a_dense <= b_dense )
85
93
86
- self ._check_bool_result (a > b )
87
- self ._assert ((a > b ).to_dense (), a_dense > b_dense )
94
+ self ._check_bool_result (a > b )
95
+ self ._assert ((a > b ).to_dense (), a_dense > b_dense )
88
96
89
- self ._check_bool_result (a < b )
90
- self ._assert ((a < b ).to_dense (), a_dense < b_dense )
97
+ self ._check_bool_result (a < b )
98
+ self ._assert ((a < b ).to_dense (), a_dense < b_dense )
91
99
92
- # sparse & dense
93
- self ._check_bool_result (a == b_dense )
94
- self ._assert ((a == b_dense ).to_dense (), a_dense == b_dense )
100
+ # sparse & dense
101
+ self ._check_bool_result (a == b_dense )
102
+ self ._assert ((a == b_dense ).to_dense (), a_dense == b_dense )
95
103
96
- self ._check_bool_result (a != b_dense )
97
- self ._assert ((a != b_dense ).to_dense (), a_dense != b_dense )
104
+ self ._check_bool_result (a != b_dense )
105
+ self ._assert ((a != b_dense ).to_dense (), a_dense != b_dense )
98
106
99
- self ._check_bool_result (a >= b_dense )
100
- self ._assert ((a >= b_dense ).to_dense (), a_dense >= b_dense )
107
+ self ._check_bool_result (a >= b_dense )
108
+ self ._assert ((a >= b_dense ).to_dense (), a_dense >= b_dense )
101
109
102
- self ._check_bool_result (a <= b_dense )
103
- self ._assert ((a <= b_dense ).to_dense (), a_dense <= b_dense )
110
+ self ._check_bool_result (a <= b_dense )
111
+ self ._assert ((a <= b_dense ).to_dense (), a_dense <= b_dense )
104
112
105
- self ._check_bool_result (a > b_dense )
106
- self ._assert ((a > b_dense ).to_dense (), a_dense > b_dense )
113
+ self ._check_bool_result (a > b_dense )
114
+ self ._assert ((a > b_dense ).to_dense (), a_dense > b_dense )
107
115
108
- self ._check_bool_result (a < b_dense )
109
- self ._assert ((a < b_dense ).to_dense (), a_dense < b_dense )
116
+ self ._check_bool_result (a < b_dense )
117
+ self ._assert ((a < b_dense ).to_dense (), a_dense < b_dense )
110
118
111
119
def _check_logical_ops (self , a , b , a_dense , b_dense ):
112
120
# sparse & sparse
0 commit comments