@@ -201,7 +201,8 @@ fn test_slice_array_fixed() {
201201 arr. slice ( info) ;
202202 arr. slice_mut ( info) ;
203203 arr. view ( ) . slice_move ( info) ;
204- arr. view ( ) . slice_collapse ( info) ;
204+ let info2 = s ! [ 1 .., 1 , ..; 2 ] ;
205+ arr. view ( ) . slice_collapse ( info2) ;
205206}
206207
207208#[ test]
@@ -211,7 +212,8 @@ fn test_slice_dyninput_array_fixed() {
211212 arr. slice ( info) ;
212213 arr. slice_mut ( info) ;
213214 arr. view ( ) . slice_move ( info) ;
214- arr. view ( ) . slice_collapse ( info) ;
215+ let info2 = s ! [ 1 .., 1 , ..; 2 ] ;
216+ arr. view ( ) . slice_collapse ( info2) ;
215217}
216218
217219#[ test]
@@ -227,7 +229,13 @@ fn test_slice_array_dyn() {
227229 arr. slice ( info) ;
228230 arr. slice_mut ( info) ;
229231 arr. view ( ) . slice_move ( info) ;
230- arr. view ( ) . slice_collapse ( info) ;
232+ let info2 = & SliceInfo :: < _ , Ix3 , IxDyn > :: try_from ( [
233+ AxisSliceInfo :: from ( 1 ..) ,
234+ AxisSliceInfo :: from ( 1 ) ,
235+ AxisSliceInfo :: from ( ..) . step_by ( 2 ) ,
236+ ] )
237+ . unwrap ( ) ;
238+ arr. view ( ) . slice_collapse ( info2) ;
231239}
232240
233241#[ test]
@@ -243,7 +251,13 @@ fn test_slice_dyninput_array_dyn() {
243251 arr. slice ( info) ;
244252 arr. slice_mut ( info) ;
245253 arr. view ( ) . slice_move ( info) ;
246- arr. view ( ) . slice_collapse ( info) ;
254+ let info2 = & SliceInfo :: < _ , Ix3 , IxDyn > :: try_from ( [
255+ AxisSliceInfo :: from ( 1 ..) ,
256+ AxisSliceInfo :: from ( 1 ) ,
257+ AxisSliceInfo :: from ( ..) . step_by ( 2 ) ,
258+ ] )
259+ . unwrap ( ) ;
260+ arr. view ( ) . slice_collapse ( info2) ;
247261}
248262
249263#[ test]
@@ -259,7 +273,13 @@ fn test_slice_dyninput_vec_fixed() {
259273 arr. slice ( info) ;
260274 arr. slice_mut ( info) ;
261275 arr. view ( ) . slice_move ( info) ;
262- arr. view ( ) . slice_collapse ( info) ;
276+ let info2 = & SliceInfo :: < _ , Ix3 , Ix2 > :: try_from ( vec ! [
277+ AxisSliceInfo :: from( 1 ..) ,
278+ AxisSliceInfo :: from( 1 ) ,
279+ AxisSliceInfo :: from( ..) . step_by( 2 ) ,
280+ ] )
281+ . unwrap ( ) ;
282+ arr. view ( ) . slice_collapse ( info2) ;
263283}
264284
265285#[ test]
@@ -275,7 +295,13 @@ fn test_slice_dyninput_vec_dyn() {
275295 arr. slice ( info) ;
276296 arr. slice_mut ( info) ;
277297 arr. view ( ) . slice_move ( info) ;
278- arr. view ( ) . slice_collapse ( info) ;
298+ let info2 = & SliceInfo :: < _ , Ix3 , IxDyn > :: try_from ( vec ! [
299+ AxisSliceInfo :: from( 1 ..) ,
300+ AxisSliceInfo :: from( 1 ) ,
301+ AxisSliceInfo :: from( ..) . step_by( 2 ) ,
302+ ] )
303+ . unwrap ( ) ;
304+ arr. view ( ) . slice_collapse ( info2) ;
279305}
280306
281307#[ test]
@@ -324,35 +350,42 @@ fn test_slice_collapse_with_indices() {
324350
325351 {
326352 let mut vi = arr. view ( ) ;
327- vi. slice_collapse ( s ! [ NewAxis , 1 .., 2 , ..; 2 ] ) ;
353+ vi. slice_collapse ( s ! [ 1 .., 2 , ..; 2 ] ) ;
328354 assert_eq ! ( vi. shape( ) , & [ 2 , 1 , 2 ] ) ;
329355 assert ! ( vi
330356 . iter( )
331357 . zip( arr. slice( s![ 1 .., 2 ..3 , ..; 2 ] ) . iter( ) )
332358 . all( |( a, b) | a == b) ) ;
333359
334360 let mut vi = arr. view ( ) ;
335- vi. slice_collapse ( s ! [ 1 , NewAxis , 2 , ..; 2 ] ) ;
361+ vi. slice_collapse ( s ! [ 1 , 2 , ..; 2 ] ) ;
336362 assert_eq ! ( vi. shape( ) , & [ 1 , 1 , 2 ] ) ;
337363 assert ! ( vi
338364 . iter( )
339365 . zip( arr. slice( s![ 1 ..2 , 2 ..3 , ..; 2 ] ) . iter( ) )
340366 . all( |( a, b) | a == b) ) ;
341367
342368 let mut vi = arr. view ( ) ;
343- vi. slice_collapse ( s ! [ 1 , 2 , NewAxis , 3 ] ) ;
369+ vi. slice_collapse ( s ! [ 1 , 2 , 3 ] ) ;
344370 assert_eq ! ( vi. shape( ) , & [ 1 , 1 , 1 ] ) ;
345371 assert_eq ! ( vi, Array3 :: from_elem( ( 1 , 1 , 1 ) , arr[ ( 1 , 2 , 3 ) ] ) ) ;
346372 }
347373
348374 // Do it to the ArcArray itself
349375 let elem = arr[ ( 1 , 2 , 3 ) ] ;
350376 let mut vi = arr;
351- vi. slice_collapse ( s ! [ 1 , 2 , 3 , NewAxis ] ) ;
377+ vi. slice_collapse ( s ! [ 1 , 2 , 3 ] ) ;
352378 assert_eq ! ( vi. shape( ) , & [ 1 , 1 , 1 ] ) ;
353379 assert_eq ! ( vi, Array3 :: from_elem( ( 1 , 1 , 1 ) , elem) ) ;
354380}
355381
382+ #[ test]
383+ #[ should_panic]
384+ fn test_slice_collapse_with_newaxis ( ) {
385+ let mut arr = Array2 :: < u8 > :: zeros ( ( 2 , 3 ) ) ;
386+ arr. slice_collapse ( s ! [ 0 , 0 , NewAxis ] ) ;
387+ }
388+
356389#[ test]
357390fn test_multislice ( ) {
358391 macro_rules! do_test {
0 commit comments