diff --git a/test/test_xview.cpp b/test/test_xview.cpp index 503dee38c..f27ab5fb4 100644 --- a/test/test_xview.cpp +++ b/test/test_xview.cpp @@ -903,6 +903,33 @@ namespace xt EXPECT_EQ(s7, s7e); } + TEST(xview, strides_issue_2228) + { + { + xt::xtensor aTensor = xt::zeros({4, 3}); + auto aView = xt::view(aTensor, xt::newaxis(), xt::newaxis(), xt::newaxis(), xt::all(), xt::all()); + uint8_t vIndex = 0; + for (size_t vRow = 0; vRow < 3; ++vRow) { + for (size_t vCol = 0; vCol < 3; ++vCol) { + aView(size_t{0}, size_t{0}, size_t{0}, vRow, vCol) = vIndex; + EXPECT_EQ(aTensor(vRow, vCol), vIndex); + ++vIndex; + } + } + } + + { + xt::xtensor aTensor = xt::zeros({4, 3}); + auto aView = xt::view(aTensor, xt::newaxis(), xt::newaxis(), xt::newaxis(), xt::all(), xt::all()); + for (size_t vRow = 0; vRow < 4; ++vRow) { + for (size_t vCol = 0; vCol < 3; ++vCol) { + aView(size_t{0}, size_t{0}, size_t{0}, vRow, vCol) = true; + } + } + EXPECT_EQ(aTensor, aView); + } + } + TEST(xview, to_scalar) { std::array sh{2,2,2};