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