REQUIRE_TRUE(shapeRank==1,0,"SCATTER_ND OP: the rank of shape array must be 1, but got %i instead !",shapeRank);
REQUIRE_TRUE(indices->sizeAt(-1)<=shapeLen,0,"SCATTER_ND OP: last dimension of indices array must be <= length of shape array, but got %i and %i correspondingly !",indices->sizeAt(-1),shapeLen);
// REQUIRE_TRUE(updRank == (indRank + shapeLen - 2), 0, "SCATTER_ND OP: the equality updates_rank = (indices_rank + shape_length - 2) must be true for input arrays, but got instead: updates_rank = %i, indices_rank = %i, shape_length = %i !", updRank, indRank, shapeLen);
REQUIRE_TRUE(updRank==(indRank-1+shapeLen-indices->sizeAt(-1)),0,"SCATTER_ND OP: the equality updates_rank = (indices_rank - 1 + shape_length - last_indices_dimension) must be true for input arrays, but got instead: updates_rank = %i, shape_length = %i, last_indices_dimension = %i !",updRank,shapeLen,indices->sizeAt(-1));
REQUIRE_TRUE(expectedUpdShape==updShape,0,"SCATTER_ND OP: wrong shape of updates array, expected is %s, but got %s instead !",ShapeUtils::shapeAsString(expectedUpdShape).c_str(),ShapeUtils::shapeAsString(updShape).c_str());