@@ -903,6 +903,33 @@ namespace xt
903903 EXPECT_EQ (s7, s7e);
904904 }
905905
906+ TEST (xview, strides_issue_2228)
907+ {
908+ {
909+ xt::xtensor<uint8_t , 2 > aTensor = xt::zeros<uint8_t >({4 , 3 });
910+ auto aView = xt::view (aTensor, xt::newaxis (), xt::newaxis (), xt::newaxis (), xt::all (), xt::all ());
911+ uint8_t vIndex = 0 ;
912+ for (size_t vRow = 0 ; vRow < 3 ; ++vRow) {
913+ for (size_t vCol = 0 ; vCol < 3 ; ++vCol) {
914+ aView (size_t {0 }, size_t {0 }, size_t {0 }, vRow, vCol) = vIndex;
915+ EXPECT_EQ (aTensor (vRow, vCol), vIndex);
916+ ++vIndex;
917+ }
918+ }
919+ }
920+
921+ {
922+ xt::xtensor<bool , 2 > aTensor = xt::zeros<bool >({4 , 3 });
923+ auto aView = xt::view (aTensor, xt::newaxis (), xt::newaxis (), xt::newaxis (), xt::all (), xt::all ());
924+ for (size_t vRow = 0 ; vRow < 4 ; ++vRow) {
925+ for (size_t vCol = 0 ; vCol < 3 ; ++vCol) {
926+ aView (size_t {0 }, size_t {0 }, size_t {0 }, vRow, vCol) = true ;
927+ }
928+ }
929+ EXPECT_EQ (aTensor, aView);
930+ }
931+ }
932+
906933 TEST (xview, to_scalar)
907934 {
908935 std::array<std::size_t , 3 > sh{2 ,2 ,2 };
0 commit comments