Skip to content

Commit 2b48f60

Browse files
committed
Add tests for setting elements in a 3d ndarray
1 parent edd9525 commit 2b48f60

1 file changed

Lines changed: 82 additions & 4 deletions

File tree

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

Lines changed: 82 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -345,8 +345,8 @@ tape( 'an ndarray constructor returns an instance which has a `set` method for s
345345
var arr;
346346
var f;
347347

348-
dtype = 'float64';
349-
buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
348+
dtype = 'generic';
349+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
350350
shape = [ 4 ];
351351
order = 'row-major';
352352
strides = [ 1 ];
@@ -384,8 +384,8 @@ tape( 'an ndarray constructor returns an instance which has a `set` method for s
384384
var arr;
385385
var f;
386386

387-
dtype = 'float64';
388-
buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
387+
dtype = 'generic';
388+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
389389
shape = [ 4 ];
390390
order = 'column-major';
391391
strides = [ 1 ];
@@ -724,3 +724,81 @@ tape( 'an ndarray constructor returns an instance which has a `set` method for s
724724

725725
t.end();
726726
});
727+
728+
tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major)', function test( t ) {
729+
var strides;
730+
var buffer;
731+
var offset;
732+
var dtype;
733+
var order;
734+
var shape;
735+
var arr;
736+
var f;
737+
738+
dtype = 'generic';
739+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
740+
shape = [ 1, 2, 2 ];
741+
order = 'row-major';
742+
strides = [ 4, 2, 1 ];
743+
offset = 0;
744+
745+
f = ctor( dtype, shape.length );
746+
arr = f( buffer, shape, strides, offset, order );
747+
748+
t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' );
749+
t.strictEqual( hasProp( arr, 'set' ), true, 'has property' );
750+
t.strictEqual( isFunction( arr.set ), true, 'has method' );
751+
752+
arr.set( 0, 0, 0, 5.0 );
753+
arr.set( 0, 0, 1, 6.0 );
754+
arr.set( 0, 1, 0, 7.0 );
755+
arr.set( 0, 1, 1, 8.0 );
756+
757+
t.strictEqual( arr.get( 0, 0, 0 ), 5.0, 'returns expected value' );
758+
t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' );
759+
t.strictEqual( arr.get( 0, 1, 0 ), 7.0, 'returns expected value' );
760+
t.strictEqual( arr.get( 0, 1, 1 ), 8.0, 'returns expected value' );
761+
762+
t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' );
763+
764+
t.end();
765+
});
766+
767+
tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major)', function test( t ) {
768+
var strides;
769+
var buffer;
770+
var offset;
771+
var dtype;
772+
var order;
773+
var shape;
774+
var arr;
775+
var f;
776+
777+
dtype = 'generic';
778+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
779+
shape = [ 1, 2, 2 ];
780+
order = 'column-major';
781+
strides = [ 1, 1, 2 ];
782+
offset = 0;
783+
784+
f = ctor( dtype, shape.length );
785+
arr = f( buffer, shape, strides, offset, order );
786+
787+
t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' );
788+
t.strictEqual( hasProp( arr, 'set' ), true, 'has property' );
789+
t.strictEqual( isFunction( arr.set ), true, 'has method' );
790+
791+
arr.set( 0, 0, 0, 5.0 );
792+
arr.set( 0, 0, 1, 6.0 );
793+
arr.set( 0, 1, 0, 7.0 );
794+
arr.set( 0, 1, 1, 8.0 );
795+
796+
t.strictEqual( arr.get( 0, 0, 0 ), 5.0, 'returns expected value' );
797+
t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' );
798+
t.strictEqual( arr.get( 0, 1, 0 ), 7.0, 'returns expected value' );
799+
t.strictEqual( arr.get( 0, 1, 1 ), 8.0, 'returns expected value' );
800+
801+
t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' );
802+
803+
t.end();
804+
});

0 commit comments

Comments
 (0)