1414import pandas .tseries .offsets as offsets
1515from pandas .core .base import SpecificationError
1616from pandas .errors import UnsupportedFunctionCall
17+ from pandas .core .sorting import safe_sort
1718import pandas .util .testing as tm
1819import pandas .util ._test_decorators as td
1920from pandas .compat import range , zip
@@ -1645,7 +1646,7 @@ def compare(self, result, expected):
16451646 result = result .dropna ().values
16461647 expected = expected .dropna ().values
16471648
1648- tm .assert_numpy_array_equal (result , expected )
1649+ tm .assert_numpy_array_equal (result , expected , check_dtype = False )
16491650
16501651 @pytest .mark .parametrize ('f' , [lambda x : x .cov (), lambda x : x .corr ()])
16511652 def test_no_flex (self , f ):
@@ -1670,15 +1671,19 @@ def test_no_flex(self, f):
16701671 def test_pairwise_with_self (self , f ):
16711672
16721673 # 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 )
16751679 tm .assert_index_equal (result .index .levels [0 ],
16761680 df .index ,
16771681 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 ()))
16811684 tm .assert_index_equal (result .columns , df .columns )
1685+ results .append (df )
1686+
16821687 for i , result in enumerate (results ):
16831688 if i > 0 :
16841689 self .compare (result , results [0 ])
@@ -1716,9 +1721,8 @@ def test_pairwise_with_other(self, f):
17161721 tm .assert_index_equal (result .index .levels [0 ],
17171722 df .index ,
17181723 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 ()))
17221726 for i , result in enumerate (results ):
17231727 if i > 0 :
17241728 self .compare (result , results [0 ])
0 commit comments