Skip to content

Commit 57653d2

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

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
@@ -887,3 +887,91 @@ tape( 'an ndarray constructor returns an instance which has a `set` method for s
887887

888888
t.end();
889889
});
890+
891+
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 ) {
892+
var strides;
893+
var buffer;
894+
var offset;
895+
var dtype;
896+
var order;
897+
var shape;
898+
var opts;
899+
var arr;
900+
var f;
901+
902+
opts = {
903+
'codegen': false
904+
};
905+
906+
dtype = 'generic';
907+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
908+
shape = [ 1, 1, 2, 2 ];
909+
order = 'row-major';
910+
strides = [ 4, 4, 2, 1 ];
911+
offset = 0;
912+
913+
f = ctor( dtype, shape.length, opts );
914+
arr = f( buffer, shape, strides, offset, order );
915+
916+
t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' );
917+
t.strictEqual( hasProp( arr, 'set' ), true, 'has property' );
918+
t.strictEqual( isFunction( arr.set ), true, 'has method' );
919+
920+
arr.set( 0, 0, 0, 0, 5.0 );
921+
arr.set( 0, 0, 0, 1, 6.0 );
922+
arr.set( 0, 0, 1, 0, 7.0 );
923+
arr.set( 0, 0, 1, 1, 8.0 );
924+
925+
t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' );
926+
t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' );
927+
t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' );
928+
t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' );
929+
930+
t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' );
931+
932+
t.end();
933+
});
934+
935+
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 ) {
936+
var strides;
937+
var buffer;
938+
var offset;
939+
var dtype;
940+
var order;
941+
var shape;
942+
var opts;
943+
var arr;
944+
var f;
945+
946+
opts = {
947+
'codegen': false
948+
};
949+
950+
dtype = 'generic';
951+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
952+
shape = [ 1, 1, 2, 2 ];
953+
order = 'column-major';
954+
strides = [ 1, 1, 1, 2 ];
955+
offset = 0;
956+
957+
f = ctor( dtype, shape.length, opts );
958+
arr = f( buffer, shape, strides, offset, order );
959+
960+
t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' );
961+
t.strictEqual( hasProp( arr, 'set' ), true, 'has property' );
962+
t.strictEqual( isFunction( arr.set ), true, 'has method' );
963+
964+
arr.set( 0, 0, 0, 0, 5.0 );
965+
arr.set( 0, 0, 0, 1, 6.0 );
966+
arr.set( 0, 0, 1, 0, 7.0 );
967+
arr.set( 0, 0, 1, 1, 8.0 );
968+
969+
t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' );
970+
t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' );
971+
t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' );
972+
t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' );
973+
974+
t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' );
975+
976+
t.end();
977+
});

0 commit comments

Comments
 (0)