Skip to content

Commit 1ffc335

Browse files
committed
Add tests for setting an element in a >4d ndarray
1 parent c9c4e17 commit 1ffc335

1 file changed

Lines changed: 88 additions & 0 deletions

File tree

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

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

976976
t.end();
977977
});
978+
979+
tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; codegen=false)', function test( t ) {
980+
var strides;
981+
var buffer;
982+
var offset;
983+
var dtype;
984+
var order;
985+
var shape;
986+
var opts;
987+
var arr;
988+
var f;
989+
990+
opts = {
991+
'codegen': false
992+
};
993+
994+
dtype = 'generic';
995+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
996+
shape = [ 1, 1, 1, 2, 2 ];
997+
order = 'row-major';
998+
strides = [ 4, 4, 4, 2, 1 ];
999+
offset = 0;
1000+
1001+
f = ctor( dtype, shape.length, opts );
1002+
arr = f( buffer, shape, strides, offset, order );
1003+
1004+
t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' );
1005+
t.strictEqual( hasProp( arr, 'set' ), true, 'has property' );
1006+
t.strictEqual( isFunction( arr.set ), true, 'has method' );
1007+
1008+
arr.set( 0, 0, 0, 0, 0, 5.0 );
1009+
arr.set( 0, 0, 0, 0, 1, 6.0 );
1010+
arr.set( 0, 0, 0, 1, 0, 7.0 );
1011+
arr.set( 0, 0, 0, 1, 1, 8.0 );
1012+
1013+
t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 5.0, 'returns expected value' );
1014+
t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' );
1015+
t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' );
1016+
t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' );
1017+
1018+
t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' );
1019+
1020+
t.end();
1021+
});
1022+
1023+
tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; codegen=false)', function test( t ) {
1024+
var strides;
1025+
var buffer;
1026+
var offset;
1027+
var dtype;
1028+
var order;
1029+
var shape;
1030+
var opts;
1031+
var arr;
1032+
var f;
1033+
1034+
opts = {
1035+
'codegen': false
1036+
};
1037+
1038+
dtype = 'generic';
1039+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
1040+
shape = [ 1, 1, 1, 2, 2 ];
1041+
order = 'column-major';
1042+
strides = [ 1, 1, 1, 1, 2 ];
1043+
offset = 0;
1044+
1045+
f = ctor( dtype, shape.length, opts );
1046+
arr = f( buffer, shape, strides, offset, order );
1047+
1048+
t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' );
1049+
t.strictEqual( hasProp( arr, 'set' ), true, 'has property' );
1050+
t.strictEqual( isFunction( arr.set ), true, 'has method' );
1051+
1052+
arr.set( 0, 0, 0, 0, 0, 5.0 );
1053+
arr.set( 0, 0, 0, 0, 1, 6.0 );
1054+
arr.set( 0, 0, 0, 1, 0, 7.0 );
1055+
arr.set( 0, 0, 0, 1, 1, 8.0 );
1056+
1057+
t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 5.0, 'returns expected value' );
1058+
t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' );
1059+
t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' );
1060+
t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' );
1061+
1062+
t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' );
1063+
1064+
t.end();
1065+
});

0 commit comments

Comments
 (0)