def test_intersect_empty(self): xindex = IntIndex(4, np.array([], dtype=np.int32)) yindex = IntIndex(4, np.array([2, 3], dtype=np.int32)) self.assertTrue(xindex.intersect(yindex).equals(xindex)) self.assertTrue(yindex.intersect(xindex).equals(xindex)) xindex = xindex.to_block_index() yindex = yindex.to_block_index() self.assertTrue(xindex.intersect(yindex).equals(xindex)) self.assertTrue(yindex.intersect(xindex).equals(xindex))
def test_intersect_identical(self): cases = [ IntIndex(5, np.array([1, 2], dtype=np.int32)), IntIndex(5, np.array([0, 2, 4], dtype=np.int32)), IntIndex(0, np.array([], dtype=np.int32)), IntIndex(5, np.array([], dtype=np.int32)) ] for case in cases: self.assertTrue(case.intersect(case).equals(case)) case = case.to_block_index() self.assertTrue(case.intersect(case).equals(case))
def test_check_integrity(self): # Too many indices than specified in self.length msg = "Too many indices" with tm.assertRaisesRegexp(ValueError, msg): IntIndex(length=1, indices=[1, 2, 3]) # No index can be negative. msg = "No index can be less than zero" with tm.assertRaisesRegexp(ValueError, msg): IntIndex(length=5, indices=[1, -2, 3]) # No index can be negative. msg = "No index can be less than zero" with tm.assertRaisesRegexp(ValueError, msg): IntIndex(length=5, indices=[1, -2, 3]) # All indices must be less than the length. msg = "All indices must be less than the length" with tm.assertRaisesRegexp(ValueError, msg): IntIndex(length=5, indices=[1, 2, 5]) with tm.assertRaisesRegexp(ValueError, msg): IntIndex(length=5, indices=[1, 2, 6]) # Indices must be strictly ascending. msg = "Indices must be strictly increasing" with tm.assertRaisesRegexp(ValueError, msg): IntIndex(length=5, indices=[1, 3, 2]) with tm.assertRaisesRegexp(ValueError, msg): IntIndex(length=5, indices=[1, 3, 3])
def _read_sparse_intindex(self, group, key): length = getattr(group._v_attrs, '%s_length' % key) indices = _read_array(group, '%s_indices' % key) return IntIndex(length, indices)
def test_to_int_index(self): index = IntIndex(10, [2, 3, 4, 5, 6]) self.assertIs(index.to_int_index(), index)
def test_equals(self): index = IntIndex(10, [0, 1, 2, 3, 4]) self.assertTrue(index.equals(index)) self.assertFalse(index.equals(IntIndex(10, [0, 1, 2, 3])))
def test_intindex_make_union(self): a = IntIndex(5, np.array([0, 3, 4], dtype=np.int32)) b = IntIndex(5, np.array([0, 2], dtype=np.int32)) res = a.make_union(b) exp = IntIndex(5, np.array([0, 2, 3, 4], np.int32)) self.assertTrue(res.equals(exp)) a = IntIndex(5, np.array([], dtype=np.int32)) b = IntIndex(5, np.array([0, 2], dtype=np.int32)) res = a.make_union(b) exp = IntIndex(5, np.array([0, 2], np.int32)) self.assertTrue(res.equals(exp)) a = IntIndex(5, np.array([], dtype=np.int32)) b = IntIndex(5, np.array([], dtype=np.int32)) res = a.make_union(b) exp = IntIndex(5, np.array([], np.int32)) self.assertTrue(res.equals(exp)) a = IntIndex(5, np.array([0, 1, 2, 3, 4], dtype=np.int32)) b = IntIndex(5, np.array([0, 1, 2, 3, 4], dtype=np.int32)) res = a.make_union(b) exp = IntIndex(5, np.array([0, 1, 2, 3, 4], np.int32)) self.assertTrue(res.equals(exp)) a = IntIndex(5, np.array([0, 1], dtype=np.int32)) b = IntIndex(4, np.array([0, 1], dtype=np.int32)) with tm.assertRaises(ValueError): a.make_union(b)