@@ -25,6 +25,20 @@ def data_missing():
25
25
return DecimalArray ([decimal .Decimal ('NaN' ), decimal .Decimal (1 )])
26
26
27
27
28
+ @pytest .fixture
29
+ def data_for_sorting ():
30
+ return DecimalArray ([decimal .Decimal ('1' ),
31
+ decimal .Decimal ('2' ),
32
+ decimal .Decimal ('0' )])
33
+
34
+
35
+ @pytest .fixture
36
+ def data_missing_for_sorting ():
37
+ return DecimalArray ([decimal .Decimal ('1' ),
38
+ decimal .Decimal ('NaN' ),
39
+ decimal .Decimal ('0' )])
40
+
41
+
28
42
@pytest .fixture
29
43
def na_cmp ():
30
44
return lambda x , y : x .is_nan () and y .is_nan ()
@@ -35,19 +49,32 @@ def na_value():
35
49
return decimal .Decimal ("NaN" )
36
50
37
51
38
- class TestDtype (base .BaseDtypeTests ):
52
+ class BaseDecimal (object ):
53
+ @staticmethod
54
+ def assert_series_equal (left , right , * args , ** kwargs ):
55
+
56
+ left_na = left .isna ()
57
+ right_na = right .isna ()
58
+
59
+ tm .assert_series_equal (left_na , right_na )
60
+ return tm .assert_series_equal (left [~ left_na ],
61
+ right [~ right_na ],
62
+ * args , ** kwargs )
63
+
64
+
65
+ class TestDtype (BaseDecimal , base .BaseDtypeTests ):
39
66
pass
40
67
41
68
42
- class TestInterface (base .BaseInterfaceTests ):
69
+ class TestInterface (BaseDecimal , base .BaseInterfaceTests ):
43
70
pass
44
71
45
72
46
- class TestConstructors (base .BaseConstructorsTests ):
73
+ class TestConstructors (BaseDecimal , base .BaseConstructorsTests ):
47
74
pass
48
75
49
76
50
- class TestReshaping (base .BaseReshapingTests ):
77
+ class TestReshaping (BaseDecimal , base .BaseReshapingTests ):
51
78
52
79
def test_align (self , data , na_value ):
53
80
# Have to override since assert_series_equal doesn't
@@ -88,15 +115,15 @@ def test_align_frame(self, data, na_value):
88
115
assert e2 .loc [0 , 'A' ].is_nan ()
89
116
90
117
91
- class TestGetitem (base .BaseGetitemTests ):
118
+ class TestGetitem (BaseDecimal , base .BaseGetitemTests ):
92
119
pass
93
120
94
121
95
- class TestMissing (base .BaseMissingTests ):
122
+ class TestMissing (BaseDecimal , base .BaseMissingTests ):
96
123
pass
97
124
98
125
99
- class TestMethods (base .BaseMethodsTests ):
126
+ class TestMethods (BaseDecimal , base .BaseMethodsTests ):
100
127
@pytest .mark .parametrize ('dropna' , [True , False ])
101
128
@pytest .mark .xfail (reason = "value_counts not implemented yet." )
102
129
def test_value_counts (self , all_data , dropna ):
@@ -112,7 +139,7 @@ def test_value_counts(self, all_data, dropna):
112
139
tm .assert_series_equal (result , expected )
113
140
114
141
115
- class TestCasting (base .BaseCastingTests ):
142
+ class TestCasting (BaseDecimal , base .BaseCastingTests ):
116
143
pass
117
144
118
145
0 commit comments