Skip to content

Commit f2d7f1f

Browse files
committed
Add tests for setting an element in a 4d ndarray
1 parent 4493d00 commit f2d7f1f

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

lib/node_modules/@stdlib/types/ndarray/ctor/test/test.instance.set.js

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -802,3 +802,81 @@ tape( 'an ndarray constructor returns an instance which has a `set` method for s
802802

803803
t.end();
804804
});
805+
806+
tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major)', function test( t ) {
807+
var strides;
808+
var buffer;
809+
var offset;
810+
var dtype;
811+
var order;
812+
var shape;
813+
var arr;
814+
var f;
815+
816+
dtype = 'generic';
817+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
818+
shape = [ 1, 1, 2, 2 ];
819+
order = 'row-major';
820+
strides = [ 4, 4, 2, 1 ];
821+
offset = 0;
822+
823+
f = ctor( dtype, shape.length );
824+
arr = f( buffer, shape, strides, offset, order );
825+
826+
t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' );
827+
t.strictEqual( hasProp( arr, 'set' ), true, 'has property' );
828+
t.strictEqual( isFunction( arr.set ), true, 'has method' );
829+
830+
arr.set( 0, 0, 0, 0, 5.0 );
831+
arr.set( 0, 0, 0, 1, 6.0 );
832+
arr.set( 0, 0, 1, 0, 7.0 );
833+
arr.set( 0, 0, 1, 1, 8.0 );
834+
835+
t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' );
836+
t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' );
837+
t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' );
838+
t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' );
839+
840+
t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' );
841+
842+
t.end();
843+
});
844+
845+
tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major)', function test( t ) {
846+
var strides;
847+
var buffer;
848+
var offset;
849+
var dtype;
850+
var order;
851+
var shape;
852+
var arr;
853+
var f;
854+
855+
dtype = 'generic';
856+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
857+
shape = [ 1, 1, 2, 2 ];
858+
order = 'column-major';
859+
strides = [ 1, 1, 1, 2 ];
860+
offset = 0;
861+
862+
f = ctor( dtype, shape.length );
863+
arr = f( buffer, shape, strides, offset, order );
864+
865+
t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' );
866+
t.strictEqual( hasProp( arr, 'set' ), true, 'has property' );
867+
t.strictEqual( isFunction( arr.set ), true, 'has method' );
868+
869+
arr.set( 0, 0, 0, 0, 5.0 );
870+
arr.set( 0, 0, 0, 1, 6.0 );
871+
arr.set( 0, 0, 1, 0, 7.0 );
872+
arr.set( 0, 0, 1, 1, 8.0 );
873+
874+
t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' );
875+
t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' );
876+
t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' );
877+
t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' );
878+
879+
t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' );
880+
881+
t.end();
882+
});

0 commit comments

Comments
 (0)