Skip to content

Commit 3c41218

Browse files
committed
Auto-generated commit
1 parent 1a77f53 commit 3c41218

File tree

12 files changed

+137
-118
lines changed

12 files changed

+137
-118
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -817,6 +817,8 @@ A total of 45 issues were closed in this release:
817817

818818
<details>
819819

820+
- [`2bc2d8b`](https://github.com/stdlib-js/stdlib/commit/2bc2d8b3568550581f6574843480eccd40c7589a) - **test:** use accessors to resolve ndarray meta data _(by Athan Reines)_
821+
- [`29648e3`](https://github.com/stdlib-js/stdlib/commit/29648e3c22b94656db3d56f822718f5860dfba9d) - **refactor:** improve type specificity _(by Athan Reines)_
820822
- [`b9709d8`](https://github.com/stdlib-js/stdlib/commit/b9709d8608a4cbfc6e5af6f293e5263708ae3430) - **test:** use accessors to resolve ndarray meta data _(by Athan Reines)_
821823
- [`24fe5a1`](https://github.com/stdlib-js/stdlib/commit/24fe5a1e1528667d2229445b1d9e5b4116225509) - **test:** explicitly serialize return value to a string _(by Athan Reines)_
822824
- [`a73a430`](https://github.com/stdlib-js/stdlib/commit/a73a430f8cf1e69a6bda08d1a4441b8985ef56ec) - **refactor:** improve type specificity _(by Athan Reines)_

base/prepend-singleton-dimensions/docs/types/index.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ import { ndarray } from '@stdlib/types/ndarray';
3939
* var y = prependSingletonDimensions( x, 3, false );
4040
* // returns <ndarray>[ [ [ [ [ 1, 2 ], [ 3, 4 ] ] ] ] ]
4141
*/
42-
declare function prependSingletonDimensions( x: ndarray, n: number, writable: boolean ): ndarray;
42+
declare function prependSingletonDimensions<T extends ndarray>( x: T, n: number, writable: boolean ): T;
4343

4444

4545
// EXPORTS //

base/prepend-singleton-dimensions/docs/types/test.ts

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,21 @@
1616
* limitations under the License.
1717
*/
1818

19-
import array = require( './../../../../array' );
19+
/* eslint-disable space-in-parens */
20+
21+
import zeros = require( './../../../../zeros' );
2022
import prependSingletonDimensions = require( './index' );
2123

2224

2325
// TESTS //
2426

2527
// The function returns an ndarray...
2628
{
27-
const x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
29+
const x = zeros( [ 2, 2 ], {
30+
'dtype': 'float64'
31+
});
2832

29-
prependSingletonDimensions( x, 3, false ); // $ExpectType ndarray
33+
prependSingletonDimensions( x, 3, false ); // $ExpectType float64ndarray
3034
}
3135

3236
// The compiler throws an error if the function is not provided a first argument which is an ndarray...
@@ -43,7 +47,9 @@ import prependSingletonDimensions = require( './index' );
4347

4448
// The compiler throws an error if the function is not provided a second argument which is a number...
4549
{
46-
const x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
50+
const x = zeros( [ 2, 2 ], {
51+
'dtype': 'float64'
52+
});
4753

4854
prependSingletonDimensions( x, '5', false ); // $ExpectError
4955
prependSingletonDimensions( x, true, false ); // $ExpectError
@@ -56,7 +62,9 @@ import prependSingletonDimensions = require( './index' );
5662

5763
// The compiler throws an error if the function is not provided a third argument which is a boolean...
5864
{
59-
const x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
65+
const x = zeros( [ 2, 2 ], {
66+
'dtype': 'float64'
67+
});
6068

6169
prependSingletonDimensions( x, 3, '5' ); // $ExpectError
6270
prependSingletonDimensions( x, 3, 5 ); // $ExpectError
@@ -68,7 +76,9 @@ import prependSingletonDimensions = require( './index' );
6876

6977
// The compiler throws an error if the function is provided an unsupported number of arguments...
7078
{
71-
const x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
79+
const x = zeros( [ 2, 2 ], {
80+
'dtype': 'float64'
81+
});
7282

7383
prependSingletonDimensions(); // $ExpectError
7484
prependSingletonDimensions( x ); // $ExpectError

base/prepend-singleton-dimensions/test/test.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
var tape = require( 'tape' );
2424
var array = require( './../../../array' );
2525
var ndarray = require( './../../../base/ctor' );
26+
var getShape = require( './../../../shape' );
27+
var getData = require( './../../../data-buffer' );
28+
var getStrides = require( './../../../strides' );
2629
var isReadOnly = require( './../../../base/assert/is-read-only' );
2730
var prependSingletonDimensions = require( './../lib' ); // eslint-disable-line id-length
2831

@@ -44,15 +47,15 @@ tape( 'the function prepends singleton dimensions', function test( t ) {
4447
y = prependSingletonDimensions( x, 3, false );
4548

4649
t.notEqual( y, x, 'returns expected value' );
47-
t.deepEqual( y.shape, [ 1, 1, 1, 2, 2 ], 'returns expected value' );
48-
t.strictEqual( y.data, x.data, 'returns expected value' );
50+
t.deepEqual( getShape( y ), [ 1, 1, 1, 2, 2 ], 'returns expected value' );
51+
t.strictEqual( getData( y ), getData( x ), 'returns expected value' );
4952
t.strictEqual( isReadOnly( y ), true, 'returns expected value' );
5053

5154
y = prependSingletonDimensions( x, 3, true );
5255

5356
t.notEqual( y, x, 'returns expected value' );
54-
t.deepEqual( y.shape, [ 1, 1, 1, 2, 2 ], 'returns expected value' );
55-
t.strictEqual( y.data, x.data, 'returns expected value' );
57+
t.deepEqual( getShape( y ), [ 1, 1, 1, 2, 2 ], 'returns expected value' );
58+
t.strictEqual( getData( y ), x.data, 'returns expected value' );
5659
t.strictEqual( isReadOnly( y ), false, 'returns expected value' );
5760

5861
t.end();
@@ -66,9 +69,9 @@ tape( 'the function prepends singleton dimensions (base; row-major)', function t
6669
y = prependSingletonDimensions( x, 3, false );
6770

6871
t.notEqual( y, x, 'returns expected value' );
69-
t.deepEqual( y.shape, [ 1, 1, 1, 2, 1, 2 ], 'returns expected value' );
70-
t.deepEqual( y.strides, [ 2, 2, 2, 2, 2, 1 ], 'returns expected value' );
71-
t.strictEqual( y.data, x.data, 'returns expected value' );
72+
t.deepEqual( getShape( y ), [ 1, 1, 1, 2, 1, 2 ], 'returns expected value' );
73+
t.deepEqual( getStrides( y ), [ 2, 2, 2, 2, 2, 1 ], 'returns expected value' );
74+
t.strictEqual( getData( y ), getData( x ), 'returns expected value' );
7275

7376
t.end();
7477
});
@@ -81,9 +84,9 @@ tape( 'the function prepends singleton dimensions (base; column-major)', functio
8184
y = prependSingletonDimensions( x, 3, false );
8285

8386
t.notEqual( y, x, 'returns expected value' );
84-
t.deepEqual( y.shape, [ 1, 1, 1, 2, 1, 2 ], 'returns expected value' );
85-
t.deepEqual( y.strides, [ 1, 1, 1, 1, 2, 2 ], 'returns expected value' );
86-
t.strictEqual( y.data, x.data, 'returns expected value' );
87+
t.deepEqual( getShape( y ), [ 1, 1, 1, 2, 1, 2 ], 'returns expected value' );
88+
t.deepEqual( getStrides( y ), [ 1, 1, 1, 1, 2, 2 ], 'returns expected value' );
89+
t.strictEqual( getData( y ), getData( x ), 'returns expected value' );
8790

8891
t.end();
8992
});

base/spread-dimensions/README.md

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -45,42 +45,33 @@ var spreadDimensions = require( '@stdlib/ndarray/base/spread-dimensions' );
4545
Expands the shape of an array to a specified dimensionality by spreading its dimensions to specified dimension indices and inserting dimensions of size one for the remaining dimensions.
4646

4747
```javascript
48-
var ndarray2array = require( '@stdlib/ndarray/to-array' );
48+
var getShape = require( '@stdlib/ndarray/shape' );
4949
var array = require( '@stdlib/ndarray/array' );
5050

5151
// Create a 2x2 ndarray:
5252
var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
53-
// returns <ndarray>
53+
// returns <ndarray>[ [ 1, 2 ], [ 3, 4 ] ]
5454

5555
// Prepend a singleton dimension:
5656
var y = spreadDimensions( 3, x, [ 1, 2 ], false );
57-
// returns <ndarray>
57+
// returns <ndarray>[ [ [ 1, 2 ], [ 3, 4 ] ] ]
5858

59-
var sh = y.shape;
59+
var sh = getShape( y );
6060
// returns [ 1, 2, 2 ]
6161

62-
var a = ndarray2array( y );
63-
// returns [ [ [ 1, 2 ], [ 3, 4 ] ] ]
64-
6562
// Append a singleton dimension:
6663
y = spreadDimensions( 3, x, [ 0, 1 ], false );
67-
// returns <ndarray>
64+
// returns <ndarray>[ [ [ 1 ], [ 2 ] ], [ [ 3 ], [ 4 ] ] ]
6865

69-
sh = y.shape;
66+
sh = getShape( y );
7067
// returns [ 2, 2, 1 ]
7168

72-
a = ndarray2array( y );
73-
// returns [ [ [ 1 ], [ 2 ] ], [ [ 3 ], [ 4 ] ] ]
74-
7569
// Insert a singleton dimension:
7670
y = spreadDimensions( 3, x, [ 0, 2 ], false );
77-
// returns <ndarray>
71+
// returns <ndarray>[ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ]
7872

79-
sh = y.shape;
73+
sh = getShape( y );
8074
// returns [ 2, 1, 2 ]
81-
82-
a = ndarray2array( y );
83-
// returns [ [ [ 1, 2 ] ], [ [ 3, 4 ] ] ]
8475
```
8576

8677
The function accepts the following arguments:
@@ -118,6 +109,7 @@ The function accepts the following arguments:
118109

119110
```javascript
120111
var array = require( '@stdlib/ndarray/array' );
112+
var getShape = require( '@stdlib/ndarray/shape' );
121113
var numel = require( '@stdlib/ndarray/base/numel' );
122114
var ind2sub = require( '@stdlib/ndarray/ind2sub' );
123115
var spreadDimensions = require( '@stdlib/ndarray/base/spread-dimensions' );
@@ -133,7 +125,7 @@ var y = spreadDimensions( 5, x, [ 1, 3 ], false );
133125
// returns <ndarray>
134126

135127
// Retrieve the shape:
136-
var sh = y.shape;
128+
var sh = getShape( y );
137129
// returns [ 1, 2, 1, 2, 1 ]
138130

139131
// Retrieve the number of elements:

base/spread-dimensions/docs/repl.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@
3636
--------
3737
> var x = {{alias:@stdlib/ndarray/array}}( [ [ 1, 2 ], [ 3, 4 ] ] )
3838
<ndarray>
39-
> var sh = x.shape
39+
> var sh = {{alias:@stdlib/ndarray/shape}}( x )
4040
[ 2, 2 ]
4141
> var y = {{alias}}( 5, x, [ 1, 3 ], false )
4242
<ndarray>
43-
> sh = y.shape
43+
> sh = {{alias:@stdlib/ndarray/shape}}( y )
4444
[ 1, 2, 1, 2, 1 ]
4545
> var v = y.get( 0, 0, 0, 0, 0 )
4646
1

base/spread-dimensions/docs/types/index.d.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,19 @@ import { Collection } from '@stdlib/types/array';
3838
* @returns output array
3939
*
4040
* @example
41+
* var getShape = require( '@stdlib/ndarray/shape' );
4142
* var array = require( '@stdlib/ndarray/array' );
4243
*
4344
* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
4445
* // returns <ndarray>
4546
*
46-
* var shx = x.shape;
47+
* var shx = getShape( x );
4748
* // returns [ 2, 2 ]
4849
*
4950
* var y = spreadDimensions( 5, x, [ 1, 3 ], false );
5051
* // returns <ndarray>
5152
*
52-
* var shy = y.shape;
53+
* var shy = getShape( y );
5354
* // returns [ 1, 2, 1, 2, 1 ]
5455
*
5556
* var v = y.get( 0, 0, 0, 0, 0 );

base/spread-dimensions/docs/types/test.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
* limitations under the License.
1717
*/
1818

19+
/* eslint-disable space-in-parens */
20+
1921
import array = require( './../../../../array' );
2022
import zeros = require( './../../../../zeros' );
2123
import spreadDimensions = require( './index' );
@@ -25,7 +27,9 @@ import spreadDimensions = require( './index' );
2527

2628
// The function returns an ndarray...
2729
{
28-
const x = zeros( [ 2, 2 ] );
30+
const x = zeros( [ 2, 2 ], {
31+
'dtype': 'float64'
32+
});
2933

3034
spreadDimensions( 5, x, [ 1, 3 ], false ); // $ExpectType float64ndarray
3135
}
@@ -72,13 +76,13 @@ import spreadDimensions = require( './index' );
7276
{
7377
const x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
7478

75-
spreadDimensions( 5, x, '5', false ); // $ExpectError
76-
spreadDimensions( 5, x, true, false ); // $ExpectError
77-
spreadDimensions( 5, x, false, false ); // $ExpectError
78-
spreadDimensions( 5, x, null, false ); // $ExpectError
79-
spreadDimensions( 5, x, {}, false ); // $ExpectError
80-
spreadDimensions( 5, x, [ '5' ], false ); // $ExpectError
81-
spreadDimensions( 5, x, ( x: number ): number => x, false ); // $ExpectError
79+
spreadDimensions( 5, x, [ 1, 3 ], '5' ); // $ExpectError
80+
spreadDimensions( 5, x, [ 1, 3 ], 5 ); // $ExpectError
81+
spreadDimensions( 5, x, [ 1, 3 ], void 0 ); // $ExpectError
82+
spreadDimensions( 5, x, [ 1, 3 ], null ); // $ExpectError
83+
spreadDimensions( 5, x, [ 1, 3 ], {} ); // $ExpectError
84+
spreadDimensions( 5, x, [ 1, 3 ], [ '5' ] ); // $ExpectError
85+
spreadDimensions( 5, x, [ 1, 3 ], ( x: number ): number => x ); // $ExpectError
8286
}
8387

8488

base/spread-dimensions/examples/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
'use strict';
2020

2121
var array = require( './../../../array' );
22+
var getShape = require( './../../../shape' );
2223
var numel = require( './../../../base/numel' );
2324
var ind2sub = require( './../../../ind2sub' );
2425
var spreadDimensions = require( './../lib' );
@@ -34,7 +35,7 @@ var y = spreadDimensions( 5, x, [ 1, 3 ], false );
3435
// returns <ndarray>
3536

3637
// Retrieve the shape:
37-
var sh = y.shape;
38+
var sh = getShape( y );
3839
// returns [ 1, 2, 1, 2, 1 ]
3940

4041
// Retrieve the number of elements:

base/spread-dimensions/lib/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,19 @@
2525
*
2626
* @example
2727
* var array = require( '@stdlib/ndarray/array' );
28+
* var getShape = require( '@stdlib/ndarray/shape' );
2829
* var spreadDimensions = require( '@stdlib/ndarray/base/spread-dimensions' );
2930
*
3031
* var x = array( [ [ 1, 2 ], [ 3, 4 ] ] );
3132
* // returns <ndarray>
3233
*
33-
* var shx = x.shape;
34+
* var shx = getShape( x );
3435
* // returns [ 2, 2 ]
3536
*
3637
* var y = spreadDimensions( 5, x, [ 1, 3 ], false );
3738
* // returns <ndarray>
3839
*
39-
* var shy = y.shape;
40+
* var shy = getShape( y );
4041
* // returns [ 1, 2, 1, 2, 1 ]
4142
*
4243
* var v = y.get( 0, 0, 0, 0, 0 );

0 commit comments

Comments
 (0)