Skip to content

Commit 1dc0ed5

Browse files
committed
refactor: add 1d edge case support
--- 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: na - task: lint_javascript_benchmarks status: passed - 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 bd34d7a commit 1dc0ed5

File tree

4 files changed

+360
-21
lines changed

4 files changed

+360
-21
lines changed

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

Lines changed: 161 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ var bench = require( '@stdlib/bench' );
2424
var isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );
2525
var zeros = require( '@stdlib/ndarray/zeros' );
2626
var pkg = require( './../package.json' ).name;
27-
var concat = require( './../lib' );
27+
var concat = require( './../lib/assign.js' );
2828

2929

3030
// MAIN //
@@ -37,14 +37,44 @@ bench( pkg+'::1d', function benchmark( b ) {
3737

3838
/* eslint-disable object-curly-newline */
3939

40+
values = [
41+
zeros( [ 2 ], { 'dtype': 'float64' }),
42+
zeros( [ 2 ], { 'dtype': 'float64' }),
43+
zeros( [ 2 ], { 'dtype': 'float64' }),
44+
zeros( [ 2 ], { 'dtype': 'float64' })
45+
];
46+
out = zeros( [ 8 ], { 'dtype': 'float64' });
47+
48+
b.tic();
49+
for ( i = 0; i < b.iterations; i++ ) {
50+
v = concat( values, out, -1 );
51+
if ( typeof v !== 'object' ) {
52+
b.fail( 'should return an ndarray' );
53+
}
54+
}
55+
b.toc();
56+
if ( !isndarrayLike( v ) ) {
57+
b.fail( 'should return an ndarray' );
58+
}
59+
b.pass( 'benchmark finished' );
60+
b.end();
61+
});
62+
63+
bench( pkg+'::1d:mostly-safe-casts', function benchmark( b ) {
64+
var values;
65+
var out;
66+
var v;
67+
var i;
68+
69+
/* eslint-disable object-curly-newline */
70+
4071
values = [
4172
zeros( [ 2 ], { 'dtype': 'float64' }),
4273
zeros( [ 2 ], { 'dtype': 'float32' }),
4374
zeros( [ 2 ], { 'dtype': 'int32' }),
44-
zeros( [ 2 ], { 'dtype': 'complex128' }),
4575
zeros( [ 2 ], { 'dtype': 'generic' })
4676
];
47-
out = zeros( [ 10 ], { 'dtype': 'float64' });
77+
out = zeros( [ 8 ], { 'dtype': 'generic' });
4878

4979
b.tic();
5080
for ( i = 0; i < b.iterations; i++ ) {
@@ -69,14 +99,44 @@ bench( pkg+'::2d', function benchmark( b ) {
6999

70100
/* eslint-disable object-curly-newline */
71101

102+
values = [
103+
zeros( [ 2, 2 ], { 'dtype': 'float64' }),
104+
zeros( [ 2, 2 ], { 'dtype': 'float64' }),
105+
zeros( [ 2, 2 ], { 'dtype': 'float64' }),
106+
zeros( [ 2, 2 ], { 'dtype': 'float64' })
107+
];
108+
out = zeros( [ 2, 8 ], { 'dtype': 'float64' });
109+
110+
b.tic();
111+
for ( i = 0; i < b.iterations; i++ ) {
112+
v = concat( values, out, -1 );
113+
if ( typeof v !== 'object' ) {
114+
b.fail( 'should return an ndarray' );
115+
}
116+
}
117+
b.toc();
118+
if ( !isndarrayLike( v ) ) {
119+
b.fail( 'should return an ndarray' );
120+
}
121+
b.pass( 'benchmark finished' );
122+
b.end();
123+
});
124+
125+
bench( pkg+'::2d:mostly-safe-casts', function benchmark( b ) {
126+
var values;
127+
var out;
128+
var v;
129+
var i;
130+
131+
/* eslint-disable object-curly-newline */
132+
72133
values = [
73134
zeros( [ 2, 2 ], { 'dtype': 'float64' }),
74135
zeros( [ 2, 2 ], { 'dtype': 'float32' }),
75136
zeros( [ 2, 2 ], { 'dtype': 'int32' }),
76-
zeros( [ 2, 2 ], { 'dtype': 'complex128' }),
77137
zeros( [ 2, 2 ], { 'dtype': 'generic' })
78138
];
79-
out = zeros( [ 2, 10 ], { 'dtype': 'float64' });
139+
out = zeros( [ 2, 8 ], { 'dtype': 'generic' });
80140

81141
b.tic();
82142
for ( i = 0; i < b.iterations; i++ ) {
@@ -101,14 +161,44 @@ bench( pkg+'::3d', function benchmark( b ) {
101161

102162
/* eslint-disable object-curly-newline */
103163

164+
values = [
165+
zeros( [ 2, 2, 2 ], { 'dtype': 'float64' }),
166+
zeros( [ 2, 2, 2 ], { 'dtype': 'float64' }),
167+
zeros( [ 2, 2, 2 ], { 'dtype': 'float64' }),
168+
zeros( [ 2, 2, 2 ], { 'dtype': 'float64' })
169+
];
170+
out = zeros( [ 2, 2, 8 ], { 'dtype': 'float64' });
171+
172+
b.tic();
173+
for ( i = 0; i < b.iterations; i++ ) {
174+
v = concat( values, out, -1 );
175+
if ( typeof v !== 'object' ) {
176+
b.fail( 'should return an ndarray' );
177+
}
178+
}
179+
b.toc();
180+
if ( !isndarrayLike( v ) ) {
181+
b.fail( 'should return an ndarray' );
182+
}
183+
b.pass( 'benchmark finished' );
184+
b.end();
185+
});
186+
187+
bench( pkg+'::3d:mostly-safe-casts', function benchmark( b ) {
188+
var values;
189+
var out;
190+
var v;
191+
var i;
192+
193+
/* eslint-disable object-curly-newline */
194+
104195
values = [
105196
zeros( [ 2, 2, 2 ], { 'dtype': 'float64' }),
106197
zeros( [ 2, 2, 2 ], { 'dtype': 'float32' }),
107198
zeros( [ 2, 2, 2 ], { 'dtype': 'int32' }),
108-
zeros( [ 2, 2, 2 ], { 'dtype': 'complex128' }),
109199
zeros( [ 2, 2, 2 ], { 'dtype': 'generic' })
110200
];
111-
out = zeros( [ 2, 2, 10 ], { 'dtype': 'float64' });
201+
out = zeros( [ 2, 2, 8 ], { 'dtype': 'generic' });
112202

113203
b.tic();
114204
for ( i = 0; i < b.iterations; i++ ) {
@@ -133,14 +223,44 @@ bench( pkg+'::4d', function benchmark( b ) {
133223

134224
/* eslint-disable object-curly-newline */
135225

226+
values = [
227+
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'float64' }),
228+
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'float64' }),
229+
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'float64' }),
230+
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'float64' })
231+
];
232+
out = zeros( [ 2, 2, 2, 8 ], { 'dtype': 'float64' });
233+
234+
b.tic();
235+
for ( i = 0; i < b.iterations; i++ ) {
236+
v = concat( values, out, -1 );
237+
if ( typeof v !== 'object' ) {
238+
b.fail( 'should return an ndarray' );
239+
}
240+
}
241+
b.toc();
242+
if ( !isndarrayLike( v ) ) {
243+
b.fail( 'should return an ndarray' );
244+
}
245+
b.pass( 'benchmark finished' );
246+
b.end();
247+
});
248+
249+
bench( pkg+'::4d:mostly-safe-casts', function benchmark( b ) {
250+
var values;
251+
var out;
252+
var v;
253+
var i;
254+
255+
/* eslint-disable object-curly-newline */
256+
136257
values = [
137258
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'float64' }),
138259
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'float32' }),
139260
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'int32' }),
140-
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'complex128' }),
141261
zeros( [ 2, 2, 2, 2 ], { 'dtype': 'generic' })
142262
];
143-
out = zeros( [ 2, 2, 2, 10 ], { 'dtype': 'float64' });
263+
out = zeros( [ 2, 2, 2, 8 ], { 'dtype': 'generic' });
144264

145265
b.tic();
146266
for ( i = 0; i < b.iterations; i++ ) {
@@ -165,14 +285,44 @@ bench( pkg+'::5d', function benchmark( b ) {
165285

166286
/* eslint-disable object-curly-newline */
167287

288+
values = [
289+
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' }),
290+
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' }),
291+
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' }),
292+
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' })
293+
];
294+
out = zeros( [ 2, 2, 2, 2, 8 ], { 'dtype': 'float64' });
295+
296+
b.tic();
297+
for ( i = 0; i < b.iterations; i++ ) {
298+
v = concat( values, out, -1 );
299+
if ( typeof v !== 'object' ) {
300+
b.fail( 'should return an ndarray' );
301+
}
302+
}
303+
b.toc();
304+
if ( !isndarrayLike( v ) ) {
305+
b.fail( 'should return an ndarray' );
306+
}
307+
b.pass( 'benchmark finished' );
308+
b.end();
309+
});
310+
311+
bench( pkg+'::5d:mostly-safe-casts', function benchmark( b ) {
312+
var values;
313+
var out;
314+
var v;
315+
var i;
316+
317+
/* eslint-disable object-curly-newline */
318+
168319
values = [
169320
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float64' }),
170321
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'float32' }),
171322
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'int32' }),
172-
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'complex128' }),
173323
zeros( [ 2, 2, 2, 2, 2 ], { 'dtype': 'generic' })
174324
];
175-
out = zeros( [ 2, 2, 2, 2, 10 ], { 'dtype': 'float64' });
325+
out = zeros( [ 2, 2, 2, 2, 8 ], { 'dtype': 'generic' });
176326

177327
b.tic();
178328
for ( i = 0; i < b.iterations; i++ ) {

0 commit comments

Comments
 (0)