ENH: Add sym_diff for index by TomAugspurger · Pull Request #6016 · pandas-dev/pandas (original) (raw)

@TomAugspurger

this test fails on python 3.4 (only tested on windows atm)

any ideas?

 ======================================================================
FAIL: test_symmetric_diff (pandas.tests.test_index.TestIndex)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "c:\Users\Jeff Reback\Documents\GitHub\pandas\build\lib.win32-3.4\pandas\tests\test_index.py", line 501, in test_symmetric_diff
    self.assert_(pd.isnull(result[nans]).all())
AssertionError: False is not true

----------------------------------------------------------------------
Ran 4771 tests in 139.262s

FAILED (SKIP=174, failures=1)

C:\Users\Jeff Reback\Documents\GitHub\pandas\build\lib.win32-3.4 [master]> cd ..
C:\Users\Jeff Reback\Documents\GitHub\pandas\build [master]> cd ..
C:\Users\Jeff Reback\Documents\GitHub\pandas [master]> C:\python34-32\Scripts\nosetests.exe .\build\lib.win32-3.4\pandas\tests\test_index.py --pdb --p
db-failure
..........................................................> c:\python34-32\lib\unittest\case.py(651)assertTrue()
-> raise self.failureException(msg)
(Pdb) u
> c:\python34-32\lib\unittest\case.py(1287)deprecated_func()
-> return original_func(*args, **kwargs)
(Pdb) u
> c:\users\jeff reback\documents\github\pandas\build\lib.win32-3.4\pandas\tests\test_index.py(501)test_symmetric_diff()
-> self.assert_(pd.isnull(result[nans]).all())
(Pdb) l
496             idx1 = Index([1, 2, np.nan])
497             idx2 = Index([0, 1, np.nan])
498             result = idx1.sym_diff(idx2)
499             expected = Index([0.0, np.nan, 2.0, np.nan])  # oddness with nans
500             nans = pd.isnull(expected)
501  ->         self.assert_(pd.isnull(result[nans]).all())
502             self.assert_(tm.equalContents(result[~nans], expected[~nans]))
503
504             # other not an Index:
505             idx1 = Index([1, 2, 3, 4], name='idx1')
506             idx2 = np.array([2, 3, 4, 5])
(Pdb) p nans
array([False,  True, False,  True], dtype=bool)
(Pdb) p result
Float64Index([0.0, nan, nan, 2.0], dtype='object')
(Pdb) p result[nans]
Float64Index([nan, 2.0], dtype='object')
(Pdb) p idx1
Float64Index([1.0, 2.0, nan], dtype='object')
(Pdb) p idx2
Float64Index([0.0, 1.0, nan], dtype='object')
(Pdb) p idx1.sym_diff(idx2)
Float64Index([0.0, nan, nan, 2.0], dtype='object')
(Pdb)
Float64Index([0.0, nan, nan, 2.0], dtype='object')
(Pdb)
Float64Index([0.0, nan, nan, 2.0], dtype='object')
(Pdb)
Float64Index([0.0, nan, nan, 2.0], dtype='object')
(Pdb)
Float64Index([0.0, nan, nan, 2.0], dtype='object')
(Pdb) p idx1
Float64Index([1.0, 2.0, nan], dtype='object')
(Pdb) p idx2
Float64Index([0.0, 1.0, nan], dtype='object')
(Pdb) p idx1.sym_diff(idx2)
Float64Index([0.0, nan, nan, 2.0], dtype='object')
(Pdb)