@@ -201,7 +201,8 @@ fn test_slice_array_fixed() {
201
201
arr. slice ( info) ;
202
202
arr. slice_mut ( info) ;
203
203
arr. view ( ) . slice_move ( info) ;
204
- arr. view ( ) . slice_collapse ( info) ;
204
+ let info2 = s ! [ 1 .., 1 , ..; 2 ] ;
205
+ arr. view ( ) . slice_collapse ( info2) ;
205
206
}
206
207
207
208
#[ test]
@@ -211,7 +212,8 @@ fn test_slice_dyninput_array_fixed() {
211
212
arr. slice ( info) ;
212
213
arr. slice_mut ( info) ;
213
214
arr. view ( ) . slice_move ( info) ;
214
- arr. view ( ) . slice_collapse ( info) ;
215
+ let info2 = s ! [ 1 .., 1 , ..; 2 ] ;
216
+ arr. view ( ) . slice_collapse ( info2) ;
215
217
}
216
218
217
219
#[ test]
@@ -227,7 +229,13 @@ fn test_slice_array_dyn() {
227
229
arr. slice ( info) ;
228
230
arr. slice_mut ( info) ;
229
231
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) ;
231
239
}
232
240
233
241
#[ test]
@@ -243,7 +251,13 @@ fn test_slice_dyninput_array_dyn() {
243
251
arr. slice ( info) ;
244
252
arr. slice_mut ( info) ;
245
253
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) ;
247
261
}
248
262
249
263
#[ test]
@@ -259,7 +273,13 @@ fn test_slice_dyninput_vec_fixed() {
259
273
arr. slice ( info) ;
260
274
arr. slice_mut ( info) ;
261
275
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) ;
263
283
}
264
284
265
285
#[ test]
@@ -275,7 +295,13 @@ fn test_slice_dyninput_vec_dyn() {
275
295
arr. slice ( info) ;
276
296
arr. slice_mut ( info) ;
277
297
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) ;
279
305
}
280
306
281
307
#[ test]
@@ -324,35 +350,42 @@ fn test_slice_collapse_with_indices() {
324
350
325
351
{
326
352
let mut vi = arr. view ( ) ;
327
- vi. slice_collapse ( s ! [ NewAxis , 1 .., 2 , ..; 2 ] ) ;
353
+ vi. slice_collapse ( s ! [ 1 .., 2 , ..; 2 ] ) ;
328
354
assert_eq ! ( vi. shape( ) , & [ 2 , 1 , 2 ] ) ;
329
355
assert ! ( vi
330
356
. iter( )
331
357
. zip( arr. slice( s![ 1 .., 2 ..3 , ..; 2 ] ) . iter( ) )
332
358
. all( |( a, b) | a == b) ) ;
333
359
334
360
let mut vi = arr. view ( ) ;
335
- vi. slice_collapse ( s ! [ 1 , NewAxis , 2 , ..; 2 ] ) ;
361
+ vi. slice_collapse ( s ! [ 1 , 2 , ..; 2 ] ) ;
336
362
assert_eq ! ( vi. shape( ) , & [ 1 , 1 , 2 ] ) ;
337
363
assert ! ( vi
338
364
. iter( )
339
365
. zip( arr. slice( s![ 1 ..2 , 2 ..3 , ..; 2 ] ) . iter( ) )
340
366
. all( |( a, b) | a == b) ) ;
341
367
342
368
let mut vi = arr. view ( ) ;
343
- vi. slice_collapse ( s ! [ 1 , 2 , NewAxis , 3 ] ) ;
369
+ vi. slice_collapse ( s ! [ 1 , 2 , 3 ] ) ;
344
370
assert_eq ! ( vi. shape( ) , & [ 1 , 1 , 1 ] ) ;
345
371
assert_eq ! ( vi, Array3 :: from_elem( ( 1 , 1 , 1 ) , arr[ ( 1 , 2 , 3 ) ] ) ) ;
346
372
}
347
373
348
374
// Do it to the ArcArray itself
349
375
let elem = arr[ ( 1 , 2 , 3 ) ] ;
350
376
let mut vi = arr;
351
- vi. slice_collapse ( s ! [ 1 , 2 , 3 , NewAxis ] ) ;
377
+ vi. slice_collapse ( s ! [ 1 , 2 , 3 ] ) ;
352
378
assert_eq ! ( vi. shape( ) , & [ 1 , 1 , 1 ] ) ;
353
379
assert_eq ! ( vi, Array3 :: from_elem( ( 1 , 1 , 1 ) , elem) ) ;
354
380
}
355
381
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
+
356
389
#[ test]
357
390
fn test_multislice ( ) {
358
391
macro_rules! do_test {
0 commit comments