14
14
import pandas .tseries .offsets as offsets
15
15
from pandas .core .base import SpecificationError
16
16
from pandas .errors import UnsupportedFunctionCall
17
+ from pandas .core .sorting import safe_sort
17
18
import pandas .util .testing as tm
18
19
import pandas .util ._test_decorators as td
19
20
from pandas .compat import range , zip
@@ -1645,7 +1646,7 @@ def compare(self, result, expected):
1645
1646
result = result .dropna ().values
1646
1647
expected = expected .dropna ().values
1647
1648
1648
- tm .assert_numpy_array_equal (result , expected )
1649
+ tm .assert_numpy_array_equal (result , expected , check_dtype = False )
1649
1650
1650
1651
@pytest .mark .parametrize ('f' , [lambda x : x .cov (), lambda x : x .corr ()])
1651
1652
def test_no_flex (self , f ):
@@ -1670,15 +1671,19 @@ def test_no_flex(self, f):
1670
1671
def test_pairwise_with_self (self , f ):
1671
1672
1672
1673
# DataFrame with itself, pairwise=True
1673
- results = [f (df ) for df in self .df1s ]
1674
- for (df , result ) in zip (self .df1s , results ):
1674
+ # note that we may construct the 1st level of the MI
1675
+ # in a non-motononic way, so compare accordingly
1676
+ results = []
1677
+ for i , df in enumerate (self .df1s ):
1678
+ result = f (df )
1675
1679
tm .assert_index_equal (result .index .levels [0 ],
1676
1680
df .index ,
1677
1681
check_names = False )
1678
- tm .assert_index_equal (result .index .levels [1 ],
1679
- df .columns ,
1680
- check_names = False )
1682
+ tm .assert_numpy_array_equal (safe_sort (result .index .levels [1 ]),
1683
+ safe_sort (df .columns .unique ()))
1681
1684
tm .assert_index_equal (result .columns , df .columns )
1685
+ results .append (df )
1686
+
1682
1687
for i , result in enumerate (results ):
1683
1688
if i > 0 :
1684
1689
self .compare (result , results [0 ])
@@ -1716,9 +1721,8 @@ def test_pairwise_with_other(self, f):
1716
1721
tm .assert_index_equal (result .index .levels [0 ],
1717
1722
df .index ,
1718
1723
check_names = False )
1719
- tm .assert_index_equal (result .index .levels [1 ],
1720
- self .df2 .columns ,
1721
- check_names = False )
1724
+ tm .assert_numpy_array_equal (safe_sort (result .index .levels [1 ]),
1725
+ safe_sort (self .df2 .columns .unique ()))
1722
1726
for i , result in enumerate (results ):
1723
1727
if i > 0 :
1724
1728
self .compare (result , results [0 ])
0 commit comments