|
24 | 24 |
|
25 | 25 | var tape = require( 'tape' ); |
26 | 26 | var isSameFloat64Array = require( '@stdlib/assert/is-same-float64array' ); |
| 27 | +var isSameFloat32Array = require( '@stdlib/assert/is-same-float32array' ); |
27 | 28 | var zeros = require( './../../zeros' ); |
28 | 29 | var ndarray = require( './../../ctor' ); |
29 | 30 | var Float64Array = require( '@stdlib/array/float64' ); |
| 31 | +var Float32Array = require( '@stdlib/array/float32' ); |
30 | 32 | var getDType = require( './../../dtype' ); |
31 | 33 | var getShape = require( './../../shape' ); |
32 | 34 | var getOrder = require( './../../order' ); |
@@ -1391,3 +1393,50 @@ tape( 'the function supports flattening a one-dimensional input ndarray (order=a |
1391 | 1393 |
|
1392 | 1394 | t.end(); |
1393 | 1395 | }); |
| 1396 | + |
| 1397 | +tape( 'the function supports specifying the output ndarray data type', function test( t ) { |
| 1398 | + var expected; |
| 1399 | + var xbuf; |
| 1400 | + var ord; |
| 1401 | + var sh; |
| 1402 | + var st; |
| 1403 | + var dt; |
| 1404 | + var o; |
| 1405 | + var x; |
| 1406 | + var y; |
| 1407 | + |
| 1408 | + dt = 'float64'; |
| 1409 | + ord = 'row-major'; |
| 1410 | + sh = [ 2, 2, 2 ]; |
| 1411 | + st = shape2strides( sh, ord ); |
| 1412 | + o = strides2offset( sh, st ); |
| 1413 | + |
| 1414 | + /* |
| 1415 | + * [ |
| 1416 | + * [ |
| 1417 | + * [ 1.0, 2.0 ], |
| 1418 | + * [ 3.0, 4.0 ] |
| 1419 | + * ], |
| 1420 | + * [ |
| 1421 | + * [ 5.0, 6.0 ], |
| 1422 | + * [ 7.0, 8.0 ] |
| 1423 | + * ] |
| 1424 | + * ] |
| 1425 | + */ |
| 1426 | + xbuf = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); |
| 1427 | + x = new ndarray( dt, xbuf, sh, st, o, ord ); |
| 1428 | + |
| 1429 | + y = flatten( x, { |
| 1430 | + 'dtype': 'float32' |
| 1431 | + }); |
| 1432 | + expected = new Float32Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); |
| 1433 | + |
| 1434 | + t.notEqual( y, x, 'returns expected value' ); |
| 1435 | + t.notEqual( getData( y ), xbuf, 'returns expected value' ); |
| 1436 | + t.strictEqual( isSameFloat32Array( getData( y ), expected ), true, 'returns expected value' ); |
| 1437 | + t.deepEqual( getShape( y ), [ 8 ], 'returns expected value' ); |
| 1438 | + t.strictEqual( getDType( y ), 'float32', 'returns expected value' ); |
| 1439 | + t.strictEqual( getOrder( y ), ord, 'returns expected value' ); |
| 1440 | + |
| 1441 | + t.end(); |
| 1442 | +}); |
0 commit comments