Esempio n. 1
0
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));
}
Esempio n. 2
0
 operator T*() const {
     checkOwningReferences();
     return getRawPtr();
 }