TEST(Internal, CheckInfo) { int xdim = 10; int ydim = 8; int xoff = 1; int yoff = 2; int xnum = 5; int ynum = 3; af::array a = af::randu(10, 8); af::array b = a(af::seq(xoff, xoff + xnum - 1), af::seq(yoff, yoff + ynum - 1)); af::dim4 strides = getStrides(b); af::dim4 dims = b.dims(); dim_t offset = xoff + yoff * xdim; ASSERT_EQ(dims[0], xnum); ASSERT_EQ(dims[1], ynum); ASSERT_EQ(isOwner(a), true); ASSERT_EQ(isOwner(b), false); ASSERT_EQ(getOffset(b), offset); ASSERT_EQ(strides[0], 1); ASSERT_EQ(strides[1], xdim); ASSERT_EQ(strides[2], xdim * ydim); ASSERT_EQ(getRawPtr(a), getRawPtr(b)); }
operator T*() const { checkOwningReferences(); return getRawPtr(); }