Skip to content

Commit c9c4e17

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

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

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

0 commit comments

Comments
 (0)