@@ -34,6 +34,7 @@ var zeros = require( '@stdlib/array/zeros' );
34
34
var toAccessorArray = require ( '@stdlib/array/base/to-accessor-array' ) ;
35
35
var isSameComplex64Array = require ( '@stdlib/assert/is-same-complex64array' ) ;
36
36
var isSameComplex128Array = require ( '@stdlib/assert/is-same-complex128array' ) ;
37
+ var isAccessorArray = require ( '@stdlib/assert/is-accessor-array' ) ;
37
38
var put = require ( './../lib' ) ;
38
39
39
40
@@ -432,6 +433,80 @@ tape( 'the function replaces elements in an array (generic, broadcasting)', func
432
433
t . end ( ) ;
433
434
} ) ;
434
435
436
+ tape ( 'the function replaces elements in an array (accessors, generic)' , function test ( t ) {
437
+ var expected ;
438
+ var indices ;
439
+ var actual ;
440
+ var x ;
441
+
442
+ x = [ 1 , 2 , 3 , 4 ] ;
443
+ indices = toAccessorArray ( [ 1 , 3 ] ) ;
444
+ actual = put ( toAccessorArray ( x ) , indices , toAccessorArray ( [ 20 , 40 ] ) ) ;
445
+ expected = [ 1 , 20 , 3 , 40 ] ;
446
+ t . strictEqual ( isAccessorArray ( actual ) , true , 'returns expected value' ) ;
447
+ t . deepEqual ( x , expected , 'returns expected value' ) ;
448
+
449
+ x = [ 1 , 2 , 3 , 4 ] ;
450
+ indices = toAccessorArray ( [ 1 , 1 , 3 , 3 ] ) ;
451
+ actual = put ( toAccessorArray ( x ) , indices , toAccessorArray ( [ 20 , 30 , 40 , 50 ] ) ) ;
452
+ expected = [ 1 , 30 , 3 , 50 ] ;
453
+ t . strictEqual ( isAccessorArray ( actual ) , true , 'returns expected value' ) ;
454
+ t . deepEqual ( x , expected , 'returns expected value' ) ;
455
+
456
+ x = [ 1 , 2 , 3 , 4 ] ;
457
+ indices = toAccessorArray ( [ 3 , 2 , 1 , 0 ] ) ;
458
+ actual = put ( toAccessorArray ( x ) , indices , toAccessorArray ( [ 20 , 30 , 40 , 50 ] ) ) ;
459
+ expected = [ 50 , 40 , 30 , 20 ] ;
460
+ t . strictEqual ( isAccessorArray ( actual ) , true , 'returns expected value' ) ;
461
+ t . deepEqual ( x , expected , 'returns expected value' ) ;
462
+
463
+ x = [ 1 , 2 , 3 , 4 ] ;
464
+ indices = toAccessorArray ( [ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ] ) ;
465
+ actual = put ( toAccessorArray ( x ) , indices , toAccessorArray ( [ 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 , 100 ] ) ) ;
466
+ expected = [ 1 , 100 , 3 , 4 ] ;
467
+ t . strictEqual ( isAccessorArray ( actual ) , true , 'returns expected value' ) ;
468
+ t . deepEqual ( x , expected , 'returns expected value' ) ;
469
+
470
+ t . end ( ) ;
471
+ } ) ;
472
+
473
+ tape ( 'the function replaces elements in an array (accessors, generic, broadcasting)' , function test ( t ) {
474
+ var expected ;
475
+ var indices ;
476
+ var actual ;
477
+ var x ;
478
+
479
+ x = [ 1 , 2 , 3 , 4 ] ;
480
+ indices = toAccessorArray ( [ 1 , 3 ] ) ;
481
+ actual = put ( toAccessorArray ( x ) , indices , toAccessorArray ( [ 20 ] ) ) ;
482
+ expected = [ 1 , 20 , 3 , 20 ] ;
483
+ t . strictEqual ( isAccessorArray ( actual ) , true , 'returns expected value' ) ;
484
+ t . deepEqual ( x , expected , 'returns expected value' ) ;
485
+
486
+ x = [ 1 , 2 , 3 , 4 ] ;
487
+ indices = toAccessorArray ( [ 1 , 1 , 3 , 3 ] ) ;
488
+ actual = put ( toAccessorArray ( x ) , indices , toAccessorArray ( [ 20 ] ) ) ;
489
+ expected = [ 1 , 20 , 3 , 20 ] ;
490
+ t . strictEqual ( isAccessorArray ( actual ) , true , 'returns expected value' ) ;
491
+ t . deepEqual ( x , expected , 'returns expected value' ) ;
492
+
493
+ x = [ 1 , 2 , 3 , 4 ] ;
494
+ indices = toAccessorArray ( [ 3 , 2 , 1 , 0 ] ) ;
495
+ actual = put ( toAccessorArray ( x ) , indices , toAccessorArray ( [ 20 ] ) ) ;
496
+ expected = [ 20 , 20 , 20 , 20 ] ;
497
+ t . strictEqual ( isAccessorArray ( actual ) , true , 'returns expected value' ) ;
498
+ t . deepEqual ( x , expected , 'returns expected value' ) ;
499
+
500
+ x = [ 1 , 2 , 3 , 4 ] ;
501
+ indices = toAccessorArray ( [ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ] ) ;
502
+ actual = put ( toAccessorArray ( x ) , indices , toAccessorArray ( [ 100 ] ) ) ;
503
+ expected = [ 1 , 100 , 3 , 4 ] ;
504
+ t . strictEqual ( isAccessorArray ( actual ) , true , 'returns expected value' ) ;
505
+ t . deepEqual ( x , expected , 'returns expected value' ) ;
506
+
507
+ t . end ( ) ;
508
+ } ) ;
509
+
435
510
tape ( 'the function replaces elements in an array (int32)' , function test ( t ) {
436
511
var expected ;
437
512
var indices ;
0 commit comments