@@ -375,7 +375,6 @@ def _test_binary(op, arrseq, scalars, seqs, inplace=False):
375
375
# Restore flags.
376
376
np .seterr (** flags )
377
377
378
-
379
378
def test_arraysequence_setitem (self ):
380
379
# Set one item
381
380
seq = SEQ_DATA ['seq' ] * 0
@@ -384,51 +383,35 @@ def test_arraysequence_setitem(self):
384
383
385
384
check_arr_seq (seq , SEQ_DATA ['seq' ])
386
385
387
- # Get all items using indexing (creates a view).
388
- indices = list (range (len (SEQ_DATA ['seq' ])))
389
- seq_view = SEQ_DATA ['seq' ][indices ]
390
- check_arr_seq_view (seq_view , SEQ_DATA ['seq' ])
391
- # We took all elements so the view should match the original.
392
- check_arr_seq (seq_view , SEQ_DATA ['seq' ])
393
-
394
- # Get multiple items using ndarray of dtype integer.
395
- for dtype in [np .int8 , np .int16 , np .int32 , np .int64 ]:
396
- seq_view = SEQ_DATA ['seq' ][np .array (indices , dtype = dtype )]
397
- check_arr_seq_view (seq_view , SEQ_DATA ['seq' ])
398
- # We took all elements so the view should match the original.
399
- check_arr_seq (seq_view , SEQ_DATA ['seq' ])
400
-
401
- # Get multiple items out of order (creates a view).
402
- SEQ_DATA ['rng' ].shuffle (indices )
403
- seq_view = SEQ_DATA ['seq' ][indices ]
404
- check_arr_seq_view (seq_view , SEQ_DATA ['seq' ])
405
- check_arr_seq (seq_view , [SEQ_DATA ['data' ][i ] for i in indices ])
386
+ # Setitem with a scalar.
387
+ seq = SEQ_DATA ['seq' ].copy ()
388
+ seq [:] = 0
389
+ assert_true (seq ._data .sum () == 0 )
406
390
407
- # Get slice (this will create a view).
408
- seq_view = SEQ_DATA ['seq' ][::2 ]
409
- check_arr_seq_view (seq_view , SEQ_DATA ['seq' ])
410
- check_arr_seq (seq_view , SEQ_DATA ['data' ][::2 ])
391
+ # Setitem with a list of ndarray.
392
+ seq = SEQ_DATA ['seq' ].copy ()
393
+ for i , data in enumerate (SEQ_DATA ['data' ]):
394
+ seq [i ] = data
395
+ check_arr_seq (seq , SEQ_DATA ['data' ])
411
396
412
- # Use advanced indexing with ndarray of data type bool.
413
- selection = np .array ([False , True , True , False , True ])
414
- seq_view = SEQ_DATA ['seq' ][selection ]
415
- check_arr_seq_view (seq_view , SEQ_DATA ['seq' ])
416
- check_arr_seq (seq_view ,
417
- [SEQ_DATA ['data' ][i ]
418
- for i , keep in enumerate (selection ) if keep ])
397
+ # Setting a slice using another slice.
398
+ seq = ArraySequence (np .arange (900 ).reshape ((50 ,6 ,3 )))
399
+ seq [0 :4 ] = seq [5 :9 ]
400
+ check_arr_seq (seq [0 :4 ], seq [5 :9 ])
419
401
420
- # Test invalid indexing
421
- assert_raises (TypeError , SEQ_DATA ['seq' ].__getitem__ , 'abc' )
402
+ # Setting a slice using another slice with more sequences.
403
+ seq = ArraySequence (np .arange (900 ).reshape ((50 ,6 ,3 )))
404
+ assert_raises (ValueError , seq .__setitem__ , slice (0 , 4 ), seq [5 :10 ])
422
405
423
- # Get specific columns .
424
- seq_view = SEQ_DATA [ 'seq' ][: , 2 ]
425
- check_arr_seq_view ( seq_view , SEQ_DATA [ 'seq' ] )
426
- check_arr_seq ( seq_view , [ d [:, 2 ] for d in SEQ_DATA [ 'data' ]] )
406
+ # Setitem between array sequences with different amount of points .
407
+ seq1 = ArraySequence ( np . arange ( 10 ). reshape ( 5 , 2 ))
408
+ seq2 = ArraySequence ( np . arange ( 15 ). reshape ( 5 , 3 ) )
409
+ assert_raises ( ValueError , seq1 . __setitem__ , slice ( 0 , 5 ), seq2 )
427
410
428
- # Combining multiple slicing and indexing operations .
429
- seq_view = SEQ_DATA [ 'seq' ][:: - 2 ][: , 2 ]
430
- check_arr_seq_view ( seq_view , SEQ_DATA [ 'seq' ] )
431
- check_arr_seq ( seq_view , [ d [:, 2 ] for d in SEQ_DATA [ 'data' ][:: - 2 ]] )
411
+ # Setitem between array sequences with different common shape .
412
+ seq1 = ArraySequence ( np . arange ( 12 ). reshape ( 2 , 2 , 3 ))
413
+ seq2 = ArraySequence ( np . arange ( 8 ). reshape ( 2 , 2 , 2 ) )
414
+ assert_raises ( ValueError , seq1 . __setitem__ , slice ( 0 , 2 ), seq2 )
432
415
433
416
def test_arraysequence_repr (self ):
434
417
# Test that calling repr on a ArraySequence object is not falling.
0 commit comments