Skip to content

Commit 4493d00

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

1 file changed

Lines changed: 92 additions & 4 deletions

File tree

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

Lines changed: 92 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -375,8 +375,8 @@ tape( 'an ndarray constructor returns an instance which has a `set` method for s
375375
'codegen': false
376376
};
377377

378-
dtype = 'float64';
379-
buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
378+
dtype = 'generic';
379+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
380380
shape = [ 4 ];
381381
order = 'row-major';
382382
strides = [ 1 ];
@@ -419,8 +419,8 @@ tape( 'an ndarray constructor returns an instance which has a `set` method for s
419419
'codegen': false
420420
};
421421

422-
dtype = 'float64';
423-
buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] );
422+
dtype = 'generic';
423+
buffer = [ 1.0, 2.0, 3.0, 4.0 ];
424424
shape = [ 4 ];
425425
order = 'column-major';
426426
strides = [ 1 ];
@@ -799,3 +799,91 @@ tape( 'an ndarray constructor returns an instance which has a `set` method for s
799799

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

0 commit comments

Comments
 (0)