@@ -343,29 +343,39 @@ fn test_slice_collapse_with_indices() {
343343}
344344
345345#[ test]
346- #[ allow( clippy:: cognitive_complexity) ]
347346fn test_multislice ( ) {
348- defmac ! ( test_multislice arr, s1, s2 => {
349- let copy = arr. clone( ) ;
350- assert_eq!(
351- arr. multi_slice_mut( ( s1, s2) ) ,
352- ( copy. clone( ) . slice_mut( s1) , copy. clone( ) . slice_mut( s2) )
353- ) ;
354- } ) ;
347+ macro_rules! do_test {
348+ ( $arr: expr, $( $s: expr) ,* ) => {
349+ {
350+ let arr = $arr;
351+ let copy = arr. clone( ) ;
352+ assert_eq!(
353+ arr. multi_slice_mut( ( $( $s, ) * ) ) ,
354+ ( $( copy. clone( ) . slice_mut( $s) , ) * )
355+ ) ;
356+ }
357+ } ;
358+ }
359+
355360 let mut arr = Array1 :: from_iter ( 0 ..48 ) . into_shape ( ( 8 , 6 ) ) . unwrap ( ) ;
356361
357362 assert_eq ! (
358363 ( arr. clone( ) . view_mut( ) , ) ,
359364 arr. multi_slice_mut( ( s![ .., ..] , ) ) ,
360365 ) ;
361- test_multislice ! ( & mut arr, s![ 0 , ..] , s![ 1 , ..] ) ;
362- test_multislice ! ( & mut arr, s![ 0 , ..] , s![ -1 , ..] ) ;
363- test_multislice ! ( & mut arr, s![ 0 , ..] , s![ 1 .., ..] ) ;
364- test_multislice ! ( & mut arr, s![ 1 , ..] , s![ ..; 2 , ..] ) ;
365- test_multislice ! ( & mut arr, s![ ..2 , ..] , s![ 2 .., ..] ) ;
366- test_multislice ! ( & mut arr, s![ 1 ..; 2 , ..] , s![ ..; 2 , ..] ) ;
367- test_multislice ! ( & mut arr, s![ ..; -2 , ..] , s![ ..; 2 , ..] ) ;
368- test_multislice ! ( & mut arr, s![ ..; 12 , ..] , s![ 3 ..; 3 , ..] ) ;
366+ assert_eq ! ( arr. multi_slice_mut( ( ) ) , ( ) ) ;
367+ do_test ! ( & mut arr, s![ 0 , ..] ) ;
368+ do_test ! ( & mut arr, s![ 0 , ..] , s![ 1 , ..] ) ;
369+ do_test ! ( & mut arr, s![ 0 , ..] , s![ -1 , ..] ) ;
370+ do_test ! ( & mut arr, s![ 0 , ..] , s![ 1 .., ..] ) ;
371+ do_test ! ( & mut arr, s![ 1 , ..] , s![ ..; 2 , ..] ) ;
372+ do_test ! ( & mut arr, s![ ..2 , ..] , s![ 2 .., ..] ) ;
373+ do_test ! ( & mut arr, s![ 1 ..; 2 , ..] , s![ ..; 2 , ..] ) ;
374+ do_test ! ( & mut arr, s![ ..; -2 , ..] , s![ ..; 2 , ..] ) ;
375+ do_test ! ( & mut arr, s![ ..; 12 , ..] , s![ 3 ..; 3 , ..] ) ;
376+ do_test ! ( & mut arr, s![ 3 , ..] , s![ ..-1 ; -2 , ..] ) ;
377+ do_test ! ( & mut arr, s![ 0 , ..] , s![ 1 , ..] , s![ 2 , ..] ) ;
378+ do_test ! ( & mut arr, s![ 0 , ..] , s![ 1 , ..] , s![ 2 , ..] , s![ 3 , ..] ) ;
369379}
370380
371381#[ test]
@@ -390,10 +400,22 @@ fn test_multislice_intersecting() {
390400 let mut arr = Array2 :: <u8 >:: zeros( ( 8 , 6 ) ) ;
391401 arr. multi_slice_mut( ( s![ 2 , ..] , s![ ..-1 ; -2 , ..] ) ) ;
392402 } ) ;
393- {
403+ assert_panics ! ( {
394404 let mut arr = Array2 :: <u8 >:: zeros( ( 8 , 6 ) ) ;
395- arr. multi_slice_mut ( ( s ! [ 3 , ..] , s ! [ -1 ..; -2 , ..] ) ) ;
396- }
405+ arr. multi_slice_mut( ( s![ 4 , ..] , s![ 3 , ..] , s![ 3 , ..] ) ) ;
406+ } ) ;
407+ assert_panics ! ( {
408+ let mut arr = Array2 :: <u8 >:: zeros( ( 8 , 6 ) ) ;
409+ arr. multi_slice_mut( ( s![ 3 , ..] , s![ 4 , ..] , s![ 3 , ..] ) ) ;
410+ } ) ;
411+ assert_panics ! ( {
412+ let mut arr = Array2 :: <u8 >:: zeros( ( 8 , 6 ) ) ;
413+ arr. multi_slice_mut( ( s![ 3 , ..] , s![ 3 , ..] , s![ 4 , ..] ) ) ;
414+ } ) ;
415+ assert_panics ! ( {
416+ let mut arr = Array2 :: <u8 >:: zeros( ( 8 , 6 ) ) ;
417+ arr. multi_slice_mut( ( s![ 3 , ..] , s![ 3 , ..] , s![ 4 , ..] , s![ 3 , ..] ) ) ;
418+ } ) ;
397419}
398420
399421#[ should_panic]
0 commit comments