Skip to content

Commit 6e5fa88

Browse files
committed
fix: bug & add test case
--- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 2104202 commit 6e5fa88

File tree

4 files changed

+68
-5
lines changed

4 files changed

+68
-5
lines changed

lib/node_modules/@stdlib/ndarray/concat/lib/assign.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ function assign( arrays, out, dim ) {
8787
var err;
8888
var osh;
8989
var odt;
90+
var oo;
9091
var mi;
9192
var N;
9293
var d;
@@ -154,9 +155,11 @@ function assign( arrays, out, dim ) {
154155
odt = getDtype( out );
155156
odata = getData( out );
156157
oord = getOrder( out );
158+
oo = 0;
157159
for ( i = 0; i < arrs.length; i++ ) {
158-
v = ndarray( odt, odata, arrs[ i ].shape, shape2strides( arrs[ i ].shape, oord ), 0, oord ); // eslint-disable-line max-len
160+
v = ndarray( odt, odata, arrs[ i ].shape, shape2strides( arrs[ i ].shape, oord ), oo, oord ); // eslint-disable-line max-len
159161
base( [ arrs[ i ], v ] );
162+
oo += arrs[ i ].shape[ 0 ];
160163
}
161164
return out;
162165
}

lib/node_modules/@stdlib/ndarray/concat/lib/main.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ var getOrder = require( '@stdlib/ndarray/order' );
3535
var getData = require( '@stdlib/ndarray/data-buffer' );
3636
var ndarray = require( '@stdlib/ndarray/ctor' );
3737
var format = require( '@stdlib/string/format' );
38-
var assign = require( '@stdlib/ndarray/base/assign' );
38+
var base = require( '@stdlib/ndarray/base/assign' );
3939
var output = require( './output.js' );
4040

4141

@@ -81,6 +81,7 @@ function concat( arrays, dim ) {
8181
var out;
8282
var osh;
8383
var odt;
84+
var oo;
8485
var mi;
8586
var N;
8687
var d;
@@ -142,9 +143,11 @@ function concat( arrays, dim ) {
142143
odt = getDtype( out );
143144
odata = getData( out );
144145
oord = getOrder( out );
146+
oo = 0;
145147
for ( i = 0; i < arrs.length; i++ ) {
146-
v = ndarray( odt, odata, arrs[ i ].shape, shape2strides( arrs[ i ].shape, oord ), 0, oord ); // eslint-disable-line max-len
147-
assign( [ arrs[ i ], v ] );
148+
v = ndarray( odt, odata, arrs[ i ].shape, shape2strides( arrs[ i ].shape, oord ), oo, oord ); // eslint-disable-line max-len
149+
base( [ arrs[ i ], v ] );
150+
oo += arrs[ i ].shape[ 0 ];
148151
}
149152
return out;
150153
}
@@ -159,7 +162,7 @@ function concat( arrays, dim ) {
159162
if ( s.done ) {
160163
break;
161164
}
162-
assign( [ s.value, ostacks.next().value ] );
165+
base( [ s.value, ostacks.next().value ] );
163166
}
164167
}
165168
return out;

lib/node_modules/@stdlib/ndarray/concat/test/test.assign.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,3 +246,36 @@ tape( 'the function concatenates ndarray along a specified dimension (broadcast
246246

247247
t.end();
248248
});
249+
250+
tape( 'the function concatenates ndarrays along a specified dimension(1D)', function test( t ) {
251+
var expected;
252+
var actual;
253+
var xbuf;
254+
var ybuf;
255+
var out;
256+
var x;
257+
var y;
258+
var z;
259+
260+
xbuf = new Float64Array( [ 1.0, 2.0 ] );
261+
x = new ndarray( 'float64', xbuf, [ 2 ], [ 1 ], 0, 'row-major' );
262+
263+
ybuf = new Float64Array( [ 3.0, 4.0, 5.0 ] );
264+
y = new ndarray( 'float64', ybuf, [ 3 ], [ 1 ], 0, 'row-major' );
265+
266+
z = zeros( [ 5 ], {
267+
'dtype': 'float64'
268+
});
269+
270+
out = assign( [ x, y ], z, -1 );
271+
272+
actual = ndarray2array( z );
273+
expected = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];
274+
275+
t.strictEqual( out, z, 'returns output ndarray' );
276+
t.strictEqual( getDtype( z ), 'float64', 'returns expected value' );
277+
t.deepEqual( getShape( z ), [ 5 ], 'returns expected value' );
278+
t.deepEqual( actual, expected, 'returns expected value' );
279+
280+
t.end();
281+
});

lib/node_modules/@stdlib/ndarray/concat/test/test.main.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,3 +232,27 @@ tape( 'the function concatenates ndarray along a specified dimension (broadcast
232232

233233
t.end();
234234
});
235+
236+
tape( 'the function concatenates ndarrays along a specified dimension(1D)', function test( t ) {
237+
var expected;
238+
var xbuf;
239+
var ybuf;
240+
var out;
241+
var x;
242+
var y;
243+
244+
xbuf = new Float64Array( [ 1.0, 2.0 ] );
245+
x = new ndarray( 'float64', xbuf, [ 2 ], [ 1 ], 0, 'row-major' );
246+
247+
ybuf = new Float64Array( [ 3.0, 4.0, 5.0 ] );
248+
y = new ndarray( 'float64', ybuf, [ 3 ], [ 1 ], 0, 'row-major' );
249+
250+
out = concat( [ x, y ], -1 );
251+
expected = [ 1.0, 2.0, 3.0, 4.0, 5.0 ];
252+
253+
t.strictEqual( getDtype( out ), 'float64', 'returns expected value' );
254+
t.deepEqual( getShape( out ), [ 5 ], 'returns expected value' );
255+
t.deepEqual( ndarray2array( out ), expected, 'returns expected value' );
256+
257+
t.end();
258+
});

0 commit comments

Comments
 (0)