@@ -34,6 +34,7 @@ var zeros = require( '@stdlib/array/zeros' );
3434var toAccessorArray = require ( '@stdlib/array/base/to-accessor-array' ) ;
3535var isSameComplex64Array = require ( '@stdlib/assert/is-same-complex64array' ) ;
3636var isSameComplex128Array = require ( '@stdlib/assert/is-same-complex128array' ) ;
37+ var isAccessorArray = require ( '@stdlib/assert/is-accessor-array' ) ;
3738var put = require ( './../lib' ) ;
3839
3940
@@ -432,6 +433,80 @@ tape( 'the function replaces elements in an array (generic, broadcasting)', func
432433 t . end ( ) ;
433434} ) ;
434435
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+
435510tape ( 'the function replaces elements in an array (int32)' , function test ( t ) {
436511 var expected ;
437512 var indices ;
0 commit comments