def test_equals_categorical(self): ci1 = CategoricalIndex(['a', 'b'], categories=['a', 'b'], ordered=True) ci2 = CategoricalIndex(['a', 'b'], categories=['a', 'b', 'c'], ordered=True) self.assertTrue(ci1.equals(ci1)) self.assertFalse(ci1.equals(ci2)) self.assertTrue(ci1.equals(ci1.astype(object))) self.assertTrue(ci1.astype(object).equals(ci1)) self.assertTrue((ci1 == ci1).all()) self.assertFalse((ci1 != ci1).all()) self.assertFalse((ci1 > ci1).all()) self.assertFalse((ci1 < ci1).all()) self.assertTrue((ci1 <= ci1).all()) self.assertTrue((ci1 >= ci1).all()) self.assertFalse((ci1 == 1).all()) self.assertTrue((ci1 == Index(['a', 'b'])).all()) self.assertTrue((ci1 == ci1.values).all()) # invalid comparisons with tm.assertRaisesRegexp(ValueError, "Lengths must match"): ci1 == Index(['a', 'b', 'c']) self.assertRaises(TypeError, lambda: ci1 == ci2) self.assertRaises( TypeError, lambda: ci1 == Categorical(ci1.values, ordered=False)) self.assertRaises( TypeError, lambda: ci1 == Categorical(ci1.values, categories=list('abc'))) # tests # make sure that we are testing for category inclusion properly ci = CategoricalIndex(list('aabca'), categories=['c', 'a', 'b']) self.assertFalse(ci.equals(list('aabca'))) self.assertFalse(ci.equals(CategoricalIndex(list('aabca')))) self.assertTrue(ci.equals(ci.copy())) with tm.assert_produces_warning(FutureWarning, check_stacklevel=False): ci = CategoricalIndex(list('aabca'), categories=['c', 'a', 'b', np.nan]) self.assertFalse(ci.equals(list('aabca'))) self.assertFalse(ci.equals(CategoricalIndex(list('aabca')))) with tm.assert_produces_warning(FutureWarning, check_stacklevel=False): self.assertTrue(ci.equals(ci.copy())) ci = CategoricalIndex(list('aabca') + [np.nan], categories=['c', 'a', 'b']) self.assertFalse(ci.equals(list('aabca'))) self.assertFalse(ci.equals(CategoricalIndex(list('aabca')))) self.assertTrue(ci.equals(ci.copy())) ci = CategoricalIndex(list('aabca') + [np.nan], categories=['c', 'a', 'b']) self.assertFalse(ci.equals(list('aabca') + [np.nan])) self.assertFalse(ci.equals(CategoricalIndex(list('aabca') + [np.nan]))) self.assertTrue(ci.equals(ci.copy()))
def test_identical(self): ci1 = CategoricalIndex(['a', 'b'], categories=['a', 'b'], ordered=True) ci2 = CategoricalIndex(['a', 'b'], categories=['a', 'b', 'c'], ordered=True) self.assertTrue(ci1.identical(ci1)) self.assertTrue(ci1.identical(ci1.copy())) self.assertFalse(ci1.identical(ci2))