def METHOD_NAME(self):
    """
    Test rectangular transfer of self.d_array1 to self.d_array2
    """
    # Reference
    o1 = self.offset1
    o2 = self.offset2
    T = self.transfer_shape
    logger.info("""Testing D->D rectangular copy with (N1_y, N1_x) = %s,
                (N2_y, N2_x) = %s:
                array2[%d:%d, %d:%d] = array1[%d:%d, %d:%d]""" %
                    (
                        str(self.shape1), str(self.shape2),
                        o2[0], o2[0] + T[0],
                        o2[1], o2[1] + T[1],
                        o1[0], o1[0] + T[0],
                        o1[1], o1[1] + T[1]
                    )
                )
    self.array2[o2[0]:o2[0] + T[0], o2[1]:o2[1] + T[1]] = self.array1[o1[0]:o1[0] + T[0], o1[1]:o1[1] + T[1]]
    kernel_args = (
        self.d_array2.data,
        self.d_array1.data,
        np.int32(self.shape2[1]),
        np.int32(self.shape1[1]),
        np.int32(self.offset2[::-1]),
        np.int32(self.offset1[::-1]),
        np.int32(self.transfer_shape[::-1])
    )
    wg = None
    ndrange = self.transfer_shape[::-1]
    self.program.cpy2d(self.queue, ndrange, wg, *kernel_args)
    res = self.d_array2.get()
    self.compare(res, self.array2)