|
20 | 20 |
|
21 | 21 | // MODULES //
|
22 | 22 |
|
| 23 | +// Note: keep in alphabetical order |
| 24 | +var isArray = require( '@stdlib/assert/is-array' ); |
| 25 | +var isBoolean = require( '@stdlib/assert/is-boolean' ); |
| 26 | +var isBooleanArray = require( '@stdlib/assert/is-booleanarray' ); |
23 | 27 | var isBoxedPrimitive = require( '@stdlib/assert/is-boxed-primitive' );
|
24 |
| -var isTypedArray = require( '@stdlib/assert/is-typed-array' ); |
| 28 | +var isComplexTypedArray = require( '@stdlib/assert/is-complex-typed-array' ); |
| 29 | +var isError = require( '@stdlib/assert/is-error' ); |
25 | 30 | var isInfinite = require( '@stdlib/assert/is-infinite' );
|
26 |
| -var isPrimitive = require( '@stdlib/assert/is-primitive' ); |
27 |
| -var isBoolean = require( '@stdlib/assert/is-boolean' ); |
28 | 31 | var isInteger = require( '@stdlib/assert/is-integer' );
|
| 32 | +var isnan = require( '@stdlib/assert/is-nan' ); |
| 33 | +var isNull = require( '@stdlib/assert/is-null' ); |
29 | 34 | var isNumber = require( '@stdlib/assert/is-number' );
|
30 |
| -var isString = require( '@stdlib/assert/is-string' ); |
31 |
| -var isArray = require( '@stdlib/assert/is-array' ); |
32 |
| -var isError = require( '@stdlib/assert/is-error' ); |
33 | 35 | var isObject = require( '@stdlib/assert/is-object' );
|
| 36 | +var isPrimitive = require( '@stdlib/assert/is-primitive' ); |
34 | 37 | var isRegExp = require( '@stdlib/assert/is-regexp' );
|
| 38 | +var isString = require( '@stdlib/assert/is-string' ); |
| 39 | +var isTypedArray = require( '@stdlib/assert/is-typed-array' ); |
35 | 40 | var isUndefined = require( '@stdlib/assert/is-undefined' );
|
36 |
| -var isNull = require( '@stdlib/assert/is-null' ); |
37 |
| -var isnan = require( '@stdlib/assert/is-nan' ); |
| 41 | + |
38 | 42 | var capitalize = require( '@stdlib/string/capitalize' );
|
39 | 43 | var roundn = require( '@stdlib/math/base/special/roundn' );
|
40 | 44 | var floor = require( '@stdlib/math/base/special/floor' );
|
41 | 45 | var constructorName = require( '@stdlib/utils/constructor-name' );
|
42 | 46 | var objectKeys = require( '@stdlib/utils/keys' );
|
43 | 47 | var typeOf = require( '@stdlib/utils/type-of' );
|
| 48 | +var reinterpretComplex = require( '@stdlib/strided/base/reinterpret-complex' ); |
| 49 | +var copyArray = require( '@stdlib/array/base/copy' ); |
44 | 50 | var validate = require( './validate.js' );
|
45 | 51 |
|
46 | 52 |
|
@@ -131,35 +137,43 @@ function genericAnnotation( actual, opts ) {
|
131 | 137 | var keys;
|
132 | 138 | var out;
|
133 | 139 | var end;
|
| 140 | + var f; |
134 | 141 | var i;
|
135 | 142 |
|
136 | 143 | if ( isPrimitive( actual ) ) {
|
137 | 144 | return primitiveAnnotation( actual, opts );
|
138 | 145 | }
|
139 |
| - if ( isTypedArray( actual ) ) { |
| 146 | + if ( isTypedArray( actual ) || isComplexTypedArray( actual ) || isBooleanArray( actual ) ) { |
140 | 147 | out = '<'+actual.constructor.name+'>';
|
141 | 148 | if ( actual.length === 0 ) {
|
142 | 149 | out += '[]';
|
143 | 150 | return out;
|
144 | 151 | }
|
| 152 | + f = numberAnnotation; |
| 153 | + if ( isComplexTypedArray( actual ) ) { |
| 154 | + actual = reinterpretComplex( actual, 0 ); |
| 155 | + } else if ( isBooleanArray( actual ) ) { |
| 156 | + actual = copyArray( actual ); |
| 157 | + f = genericAnnotation; |
| 158 | + } |
145 | 159 | out += '[ ';
|
146 |
| - out += numberAnnotation( actual[ 0 ], opts ); |
| 160 | + out += f( actual[ 0 ], opts ); |
147 | 161 | if ( actual.length > opts.numel ) {
|
148 | 162 | end = floor( opts.numel / 2 );
|
149 | 163 | for ( i = 1; i < end; i++ ) {
|
150 | 164 | out += ', ';
|
151 |
| - out += numberAnnotation( actual[ i ], opts ); |
| 165 | + out += f( actual[ i ], opts ); |
152 | 166 | }
|
153 | 167 | out += ', ...';
|
154 | 168 | for ( i = actual.length - end; i < actual.length; i++ ) {
|
155 | 169 | out += ', ';
|
156 |
| - out += numberAnnotation( actual[ i ], opts ); |
| 170 | + out += f( actual[ i ], opts ); |
157 | 171 | }
|
158 | 172 | }
|
159 | 173 | else {
|
160 | 174 | for ( i = 1; i < actual.length; i++ ) {
|
161 | 175 | out += ', ';
|
162 |
| - out += numberAnnotation( actual[ i ], opts ); |
| 176 | + out += f( actual[ i ], opts ); |
163 | 177 | }
|
164 | 178 | }
|
165 | 179 | out += ' ]';
|
|
0 commit comments