Skip to content

Commit 98c0393

Browse files
authored
bench: modernize API usage and align with ndarray/reverse-dimensions
Signed-off-by: Athan <kgryte@gmail.com>
1 parent 47b8956 commit 98c0393

1 file changed

Lines changed: 133 additions & 91 deletions

File tree

  • lib/node_modules/@stdlib/ndarray/to-reversed-dimensions/benchmark

lib/node_modules/@stdlib/ndarray/to-reversed-dimensions/benchmark/benchmark.js

Lines changed: 133 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -21,159 +21,201 @@
2121
// MODULES //
2222

2323
var bench = require( '@stdlib/bench' );
24-
var Float64Array = require( '@stdlib/array/float64' );
25-
var ndarrayBase = require( '@stdlib/ndarray/base/ctor' );
26-
var ndarray = require( '@stdlib/ndarray/ctor' );
2724
var isndarrayLike = require( '@stdlib/assert/is-ndarray-like' );
25+
var empty = require( '@stdlib/ndarray/empty' );
2826
var format = require( '@stdlib/string/format' );
2927
var pkg = require( './../package.json' ).name;
3028
var toReversedDimensions = require( './../lib' );
3129

3230

3331
// MAIN //
3432

35-
bench( format( '%s:ctor=base,ndims=1', pkg ), function benchmark( b ) {
36-
var strides;
37-
var buffer;
38-
var offset;
39-
var dtype;
40-
var order;
41-
var shape;
42-
var dims;
43-
var out;
33+
bench( format( '%s:ndims=1,dims=[0]', pkg ), function benchmark( b ) {
34+
var values;
35+
var v;
4436
var i;
45-
var x;
4637

47-
dtype = 'float64';
48-
buffer = new Float64Array( 24 );
49-
shape = [ 24 ];
50-
strides = [ 1 ];
51-
offset = 0;
52-
order = 'row-major';
53-
dims = [ 0 ];
38+
/* eslint-disable object-curly-newline, stdlib/line-closing-bracket-spacing */
5439

55-
x = ndarrayBase( dtype, buffer, shape, strides, offset, order );
40+
values = [
41+
empty( [ 2 ], { 'dtype': 'float64' } ),
42+
empty( [ 2 ], { 'dtype': 'float32' } ),
43+
empty( [ 2 ], { 'dtype': 'int32' } ),
44+
empty( [ 2 ], { 'dtype': 'complex128' } ),
45+
empty( [ 2 ], { 'dtype': 'generic' } )
46+
];
47+
48+
/* eslint-enable object-curly-newline, stdlib/line-closing-bracket-spacing */
49+
50+
b.tic();
51+
for ( i = 0; i < b.iterations; i++ ) {
52+
v = toReversedDimensions( values[ i%values.length ], [ 0 ] );
53+
if ( typeof v !== 'object' ) {
54+
b.fail( 'should return an ndarray' );
55+
}
56+
}
57+
b.toc();
58+
if ( !isndarrayLike( v ) ) {
59+
b.fail( 'should return an ndarray' );
60+
}
61+
b.pass( 'benchmark finished' );
62+
b.end();
63+
});
64+
65+
bench( format( '%s:ndims=2,dims=[0]', pkg ), function benchmark( b ) {
66+
var values;
67+
var v;
68+
var i;
69+
70+
/* eslint-disable object-curly-newline, stdlib/line-closing-bracket-spacing */
71+
72+
values = [
73+
empty( [ 2, 2 ], { 'dtype': 'float64' } ),
74+
empty( [ 2, 2 ], { 'dtype': 'float32' } ),
75+
empty( [ 2, 2 ], { 'dtype': 'int32' } ),
76+
empty( [ 2, 2 ], { 'dtype': 'complex128' } ),
77+
empty( [ 2, 2 ], { 'dtype': 'generic' } )
78+
];
79+
80+
/* eslint-enable object-curly-newline, stdlib/line-closing-bracket-spacing */
81+
82+
b.tic();
83+
for ( i = 0; i < b.iterations; i++ ) {
84+
v = toReversedDimensions( values[ i%values.length ], [ 0 ] );
85+
if ( typeof v !== 'object' ) {
86+
b.fail( 'should return an ndarray' );
87+
}
88+
}
89+
b.toc();
90+
if ( !isndarrayLike( v ) ) {
91+
b.fail( 'should return an ndarray' );
92+
}
93+
b.pass( 'benchmark finished' );
94+
b.end();
95+
});
96+
97+
bench( format( '%s:ndims=2,dims=[0,1]', pkg ), function benchmark( b ) {
98+
var values;
99+
var v;
100+
var i;
101+
102+
/* eslint-disable object-curly-newline, stdlib/line-closing-bracket-spacing */
103+
104+
values = [
105+
empty( [ 2, 2 ], { 'dtype': 'float64' } ),
106+
empty( [ 2, 2 ], { 'dtype': 'float32' } ),
107+
empty( [ 2, 2 ], { 'dtype': 'int32' } ),
108+
empty( [ 2, 2 ], { 'dtype': 'complex128' } ),
109+
empty( [ 2, 2 ], { 'dtype': 'generic' } )
110+
];
111+
112+
/* eslint-enable object-curly-newline, stdlib/line-closing-bracket-spacing */
56113

57114
b.tic();
58115
for ( i = 0; i < b.iterations; i++ ) {
59-
out = toReversedDimensions( x, dims );
60-
if ( typeof out !== 'object' ) {
61-
b.fail( 'should return an object' );
116+
v = toReversedDimensions( values[ i%values.length ], [ 0, 1 ] );
117+
if ( typeof v !== 'object' ) {
118+
b.fail( 'should return an ndarray' );
62119
}
63120
}
64121
b.toc();
65-
if ( !isndarrayLike( out ) ) {
122+
if ( !isndarrayLike( v ) ) {
66123
b.fail( 'should return an ndarray' );
67124
}
68125
b.pass( 'benchmark finished' );
69126
b.end();
70127
});
71128

72-
bench( format( '%s:ctor=ndarray,ndims=1', pkg ), function benchmark( b ) {
73-
var strides;
74-
var buffer;
75-
var offset;
76-
var dtype;
77-
var order;
78-
var shape;
79-
var dims;
80-
var out;
129+
bench( format( '%s:ndims=3,dims=[0]', pkg ), function benchmark( b ) {
130+
var values;
131+
var v;
81132
var i;
82-
var x;
83133

84-
dtype = 'float64';
85-
buffer = new Float64Array( 24 );
86-
shape = [ 24 ];
87-
strides = [ 1 ];
88-
offset = 0;
89-
order = 'row-major';
90-
dims = [ 0 ];
134+
/* eslint-disable object-curly-newline, stdlib/line-closing-bracket-spacing */
135+
136+
values = [
137+
empty( [ 2, 2, 2 ], { 'dtype': 'float64' } ),
138+
empty( [ 2, 2, 2 ], { 'dtype': 'float32' } ),
139+
empty( [ 2, 2, 2 ], { 'dtype': 'int32' } ),
140+
empty( [ 2, 2, 2 ], { 'dtype': 'complex128' } ),
141+
empty( [ 2, 2, 2 ], { 'dtype': 'generic' } )
142+
];
91143

92-
x = ndarray( dtype, buffer, shape, strides, offset, order );
144+
/* eslint-enable object-curly-newline, stdlib/line-closing-bracket-spacing */
93145

94146
b.tic();
95147
for ( i = 0; i < b.iterations; i++ ) {
96-
out = toReversedDimensions( x, dims );
97-
if ( typeof out !== 'object' ) {
98-
b.fail( 'should return an object' );
148+
v = toReversedDimensions( values[ i%values.length ], [ 0 ] );
149+
if ( typeof v !== 'object' ) {
150+
b.fail( 'should return an ndarray' );
99151
}
100152
}
101153
b.toc();
102-
if ( !isndarrayLike( out ) ) {
154+
if ( !isndarrayLike( v ) ) {
103155
b.fail( 'should return an ndarray' );
104156
}
105157
b.pass( 'benchmark finished' );
106158
b.end();
107159
});
108160

109-
bench( format( '%s:ctor=base,ndims=2', pkg ), function benchmark( b ) {
110-
var strides;
111-
var buffer;
112-
var offset;
113-
var dtype;
114-
var order;
115-
var shape;
116-
var dims;
117-
var out;
161+
bench( format( '%s:ndims=3,dims=[0,2]', pkg ), function benchmark( b ) {
162+
var values;
163+
var v;
118164
var i;
119-
var x;
120165

121-
dtype = 'float64';
122-
buffer = new Float64Array( 24 );
123-
shape = [ 6, 4 ];
124-
strides = [ 4, 1 ];
125-
offset = 0;
126-
order = 'row-major';
127-
dims = [ 0, 1 ];
166+
/* eslint-disable object-curly-newline, stdlib/line-closing-bracket-spacing */
128167

129-
x = ndarrayBase( dtype, buffer, shape, strides, offset, order );
168+
values = [
169+
empty( [ 2, 2, 2 ], { 'dtype': 'float64' } ),
170+
empty( [ 2, 2, 2 ], { 'dtype': 'float32' } ),
171+
empty( [ 2, 2, 2 ], { 'dtype': 'int32' } ),
172+
empty( [ 2, 2, 2 ], { 'dtype': 'complex128' } ),
173+
empty( [ 2, 2, 2 ], { 'dtype': 'generic' } )
174+
];
175+
176+
/* eslint-enable object-curly-newline, stdlib/line-closing-bracket-spacing */
130177

131178
b.tic();
132179
for ( i = 0; i < b.iterations; i++ ) {
133-
out = toReversedDimensions( x, dims );
134-
if ( typeof out !== 'object' ) {
135-
b.fail( 'should return an object' );
180+
v = toReversedDimensions( values[ i%values.length ], [ 0, 2 ] );
181+
if ( typeof v !== 'object' ) {
182+
b.fail( 'should return an ndarray' );
136183
}
137184
}
138185
b.toc();
139-
if ( !isndarrayLike( out ) ) {
186+
if ( !isndarrayLike( v ) ) {
140187
b.fail( 'should return an ndarray' );
141188
}
142189
b.pass( 'benchmark finished' );
143190
b.end();
144191
});
145192

146-
bench( format( '%s:ctor=ndarray,ndims=2', pkg ), function benchmark( b ) {
147-
var strides;
148-
var buffer;
149-
var offset;
150-
var dtype;
151-
var order;
152-
var shape;
153-
var dims;
154-
var out;
193+
bench( format( '%s:ndims=3,dims=[0,1,2]', pkg ), function benchmark( b ) {
194+
var values;
195+
var v;
155196
var i;
156-
var x;
157197

158-
dtype = 'float64';
159-
buffer = new Float64Array( 24 );
160-
shape = [ 6, 4 ];
161-
strides = [ 4, 1 ];
162-
offset = 0;
163-
order = 'row-major';
164-
dims = [ 0, 1 ];
198+
/* eslint-disable object-curly-newline, stdlib/line-closing-bracket-spacing */
199+
200+
values = [
201+
empty( [ 2, 2, 2 ], { 'dtype': 'float64' } ),
202+
empty( [ 2, 2, 2 ], { 'dtype': 'float32' } ),
203+
empty( [ 2, 2, 2 ], { 'dtype': 'int32' } ),
204+
empty( [ 2, 2, 2 ], { 'dtype': 'complex128' } ),
205+
empty( [ 2, 2, 2 ], { 'dtype': 'generic' } )
206+
];
165207

166-
x = ndarray( dtype, buffer, shape, strides, offset, order );
208+
/* eslint-enable object-curly-newline, stdlib/line-closing-bracket-spacing */
167209

168210
b.tic();
169211
for ( i = 0; i < b.iterations; i++ ) {
170-
out = toReversedDimensions( x, dims );
171-
if ( typeof out !== 'object' ) {
172-
b.fail( 'should return an object' );
212+
v = toReversedDimensions( values[ i%values.length ], [ 0, 1, 2 ] );
213+
if ( typeof v !== 'object' ) {
214+
b.fail( 'should return an ndarray' );
173215
}
174216
}
175217
b.toc();
176-
if ( !isndarrayLike( out ) ) {
218+
if ( !isndarrayLike( v ) ) {
177219
b.fail( 'should return an ndarray' );
178220
}
179221
b.pass( 'benchmark finished' );

0 commit comments

Comments
 (0)