File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change
1
+ #[ macro_use( s) ]
1
2
extern crate ndarray;
2
3
extern crate itertools;
3
4
@@ -196,6 +197,23 @@ fn outer_iter() {
196
197
}
197
198
found_rows_rev. reverse ( ) ;
198
199
assert_eq ! ( & found_rows, & found_rows_rev) ;
200
+
201
+ // Test a case where strides are negative instead
202
+ let mut c = Array :: zeros ( ( 2 , 3 , 2 ) ) ;
203
+ let mut cv = c. slice_mut ( s ! [ ..; -1 , ..; -1 , ..; -1 ] ) ;
204
+ cv. assign ( & a) ;
205
+ assert_eq ! ( & a, & cv) ;
206
+ assert_equal ( cv. outer_iter ( ) ,
207
+ vec ! [ a. subview( 0 , 0 ) , a. subview( 0 , 1 ) ] ) ;
208
+
209
+ let mut found_rows = Vec :: new ( ) ;
210
+ for sub in cv. outer_iter ( ) {
211
+ for row in sub. into_outer_iter ( ) {
212
+ found_rows. push ( row) ;
213
+ }
214
+ }
215
+ println ! ( "{:#?}" , found_rows) ;
216
+ assert_equal ( a. inner_iter ( ) , found_rows) ;
199
217
}
200
218
201
219
#[ test]
You can’t perform that action at this time.
0 commit comments