@@ -23,16 +23,16 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
2323 < div class ='clearfix '>
2424
2525 < div class ='fl pad1y space-right2 '>
26- < span class ="strong "> 100 % </ span >
26+ < span class ="strong "> 99.73 % </ span >
2727 < span class ="quiet "> Statements</ span >
28- < span class ='fraction '> 375/375 </ span >
28+ < span class ='fraction '> 376/377 </ span >
2929 </ div >
3030
3131
3232 < div class ='fl pad1y space-right2 '>
33- < span class ="strong "> 100 % </ span >
33+ < span class ="strong "> 88.88 % </ span >
3434 < span class ="quiet "> Branches</ span >
35- < span class ='fraction '> 44/44 </ span >
35+ < span class ='fraction '> 40/45 </ span >
3636 </ div >
3737
3838
@@ -44,9 +44,9 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
4444
4545
4646 < div class ='fl pad1y space-right2 '>
47- < span class ="strong "> 100 % </ span >
47+ < span class ="strong "> 99.73 % </ span >
4848 < span class ="quiet "> Lines</ span >
49- < span class ='fraction '> 375/375 </ span >
49+ < span class ='fraction '> 376/377 </ span >
5050 </ div >
5151
5252
@@ -438,7 +438,9 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
438438< a name ='L373 '> </ a > < a href ='#L373 '> 373</ a >
439439< a name ='L374 '> </ a > < a href ='#L374 '> 374</ a >
440440< a name ='L375 '> </ a > < a href ='#L375 '> 375</ a >
441- < a name ='L376 '> </ a > < a href ='#L376 '> 376</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
441+ < a name ='L376 '> </ a > < a href ='#L376 '> 376</ a >
442+ < a name ='L377 '> </ a > < a href ='#L377 '> 377</ a >
443+ < a name ='L378 '> </ a > < a href ='#L378 '> 378</ a > </ td > < td class ="line-coverage quiet "> < span class ="cline-any cline-yes "> 1x</ span >
442444< span class ="cline-any cline-yes "> 1x</ span >
443445< span class ="cline-any cline-yes "> 1x</ span >
444446< span class ="cline-any cline-yes "> 1x</ span >
@@ -487,18 +489,20 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
487489< span class ="cline-any cline-yes "> 1x</ span >
488490< span class ="cline-any cline-yes "> 1x</ span >
489491< span class ="cline-any cline-yes "> 1x</ span >
490- < span class ="cline-any cline-yes "> 1x </ span >
491- < span class ="cline-any cline-yes "> 21x </ span >
492- < span class ="cline-any cline-yes "> 21x </ span >
492+ < span class ="cline-any cline-yes "> 22x </ span >
493+ < span class ="cline-any cline-yes "> 22x </ span >
494+ < span class ="cline-any cline-yes "> 22x </ span >
493495< span class ="cline-any cline-yes "> 21x</ span >
494496< span class ="cline-any cline-yes "> 21x</ span >
495497< span class ="cline-any cline-yes "> 21x</ span >
496498< span class ="cline-any cline-yes "> 21x</ span >
497499< span class ="cline-any cline-yes "> 21x</ span >
498500< span class ="cline-any cline-yes "> 21x</ span >
499- < span class ="cline-any cline-yes "> 1x</ span >
500501< span class ="cline-any cline-yes "> 21x</ span >
502+ < span class ="cline-any cline-no "> </ span >
501503< span class ="cline-any cline-yes "> 21x</ span >
504+ < span class ="cline-any cline-yes "> 22x</ span >
505+ < span class ="cline-any cline-yes "> 22x</ span >
502506< span class ="cline-any cline-yes "> 1x</ span >
503507< span class ="cline-any cline-yes "> 1x</ span >
504508< span class ="cline-any cline-yes "> 1x</ span >
@@ -538,10 +542,10 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
538542< span class ="cline-any cline-yes "> 37x</ span >
539543< span class ="cline-any cline-yes "> 61x</ span >
540544< span class ="cline-any cline-yes "> 1x</ span >
541- < span class ="cline-any cline-yes "> 22x</ span >
542545< span class ="cline-any cline-yes "> 1x</ span >
543546< span class ="cline-any cline-yes "> 1x</ span >
544547< span class ="cline-any cline-yes "> 1x</ span >
548+ < span class ="cline-any cline-yes "> 22x</ span >
545549< span class ="cline-any cline-yes "> 1x</ span >
546550< span class ="cline-any cline-yes "> 21x</ span >
547551< span class ="cline-any cline-yes "> 20x</ span >
@@ -652,7 +656,6 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
652656< span class ="cline-any cline-yes "> 1x</ span >
653657< span class ="cline-any cline-yes "> 1x</ span >
654658< span class ="cline-any cline-yes "> 1x</ span >
655- < span class ="cline-any cline-yes "> 2x</ span >
656659< span class ="cline-any cline-yes "> 1x</ span >
657660< span class ="cline-any cline-yes "> 1x</ span >
658661< span class ="cline-any cline-yes "> 1x</ span >
@@ -675,7 +678,6 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
675678< span class ="cline-any cline-yes "> 1x</ span >
676679< span class ="cline-any cline-yes "> 1x</ span >
677680< span class ="cline-any cline-yes "> 1x</ span >
678- < span class ="cline-any cline-yes "> 2x</ span >
679681< span class ="cline-any cline-yes "> 1x</ span >
680682< span class ="cline-any cline-yes "> 1x</ span >
681683< span class ="cline-any cline-yes "> 1x</ span >
@@ -698,7 +700,9 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
698700< span class ="cline-any cline-yes "> 1x</ span >
699701< span class ="cline-any cline-yes "> 1x</ span >
700702< span class ="cline-any cline-yes "> 1x</ span >
701- < span class ="cline-any cline-yes "> 4x</ span >
703+ < span class ="cline-any cline-yes "> 1x</ span >
704+ < span class ="cline-any cline-yes "> 1x</ span >
705+ < span class ="cline-any cline-yes "> 3x</ span >
702706< span class ="cline-any cline-yes "> 1x</ span >
703707< span class ="cline-any cline-yes "> 1x</ span >
704708< span class ="cline-any cline-yes "> 1x</ span >
@@ -850,7 +854,6 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
850854var dtype2char = require( '@stdlib/ndarray/base/dtype-char' );
851855var dtype2alignment = require( '@stdlib/ndarray/base/dtype-alignment' );
852856var bytesPerElement = require( '@stdlib/ndarray/base/bytes-per-element' );
853- var dtypes = require( '@stdlib/ndarray/dtypes' );
854857var format = require( '@stdlib/string/format' );
855858
856859
@@ -863,15 +866,18 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
863866* @param {*} value - value to test
864867* @returns {boolean} boolean indicating if a value is a `DataType`
865868*/
866- function isDataType( value ) {
869+ function isDataType( value ) { // NOTE: we do not use `ndarray/base/assert/is-data-type-object` in order to avoid circular dependencies
867870 return (
868- typeof value === 'object' &&
869- value !== null &&
870- value.constructor.name === 'DataType' &&
871- isString( value.char ) &&
872- isString( value.description ) &&
873- isString( value.byteOrder ) &&
874- hasProp( value, 'value' )
871+ value instanceof DataType ||
872+ (
873+ typeof value === 'object' &&
874+ value !== null &&
875+ value.constructor.name === 'DataType' < span class ="branch-0 cbranch-no " title ="branch not covered " > &&</ span >
876+ isString( value.char ) < span class ="branch-0 cbranch-no " title ="branch not covered " > &&</ span >
877+ isString( value.description ) < span class ="branch-0 cbranch-no " title ="branch not covered " > &&</ span >
878+ isString( value.byteOrder ) < span class ="branch-0 cbranch-no " title ="branch not covered " > &&</ span >
879+ < span class ="cstat-no " title ="statement not covered " > hasProp( value, 'value' )</ span >
880+ )
875881 );
876882}
877883
@@ -911,13 +917,13 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
911917 }
912918 if ( isDataTypeString( value ) ) {
913919 type = 'builtin';
914- } else if ( isStructConstructorLike( value ) ) {
915- type = 'struct';
916920 } else if ( isDataType( value ) ) {
917921 // Clone the input data type:
918922 return new DataType( value.value, {
919923 'description': value.description
920924 });
925+ } else if ( isStructConstructorLike( value ) ) {
926+ type = 'struct';
921927 } else {
922928 throw new TypeError( format( 'invalid argument. First argument must be either a supported data type string, a struct constructor, or another data type instance. Value: `%s`.', value ) );
923929 }
@@ -932,14 +938,14 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
932938 } else {
933939 opts = {};
934940 }
935- this. _value = value;
936- this. _description = opts.description || ( dtype2desc( value ) || '' );
937- this. _char = dtype2char( value ) || '';
938- this. _enum = resolveEnum( value ) || dtypes.userdefined_type ;
939- this. _alignment = dtype2alignment( value ) || -1;
940- this. _byteLength = bytesPerElement( value ) || -1;
941- this. _byteOrder = 'host'; // TODO: consider supporting little-endian and big-endian byte orders
942- this. _type = type;
941+ setReadOnly( this, ' _value', value ) ;
942+ setReadOnly( this, ' _description', opts.description || ( dtype2desc( value ) || '' ) );
943+ setReadOnly( this, ' _char', dtype2char( value ) || '' ) ;
944+ setReadOnly( this, ' _enum', resolveEnum( value ) < span class =" branch-0 cbranch-no " title =" branch not covered " > || -1 </ span > ) ;
945+ setReadOnly( this, ' _alignment', dtype2alignment( value ) || -1 ) ;
946+ setReadOnly( this, ' _byteLength', bytesPerElement( value ) || -1 ) ;
947+ setReadOnly( this, ' _byteOrder', 'host' ) ; // TODO: consider supporting little-endian and big-endian byte orders
948+ setReadOnly( this, ' _type', type ) ;
943949 return this;
944950}
945951
@@ -1081,12 +1087,12 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
10811087*
10821088* ## Notes
10831089*
1084- * - If a data type does not have a corresponding known enumeration constant, the returned value is the enumeration constant for a user-defined data type .
1090+ * - If a data type does not have a corresponding known enumeration constant, the returned value is `-1` .
10851091*
10861092* @name enum
10871093* @memberof DataType.prototype
10881094* @readonly
1089- * @type {NonNegativeInteger }
1095+ * @type {integer }
10901096*
10911097* @example
10921098* var dt = new DataType( 'float64' );
@@ -1195,7 +1201,7 @@ <h1><a href="../../../index.html">All files</a> / <a href="index.html">ndarray/d
11951201 < div class ='footer quiet pad2 space-top1 center small '>
11961202 Code coverage generated by
11971203 < a href ="https://istanbul.js.org/ " target ="_blank " rel ="noopener noreferrer "> istanbul</ a >
1198- at 2025-09-18T23:49:42.989Z
1204+ at 2025-09-22T08:46:33.749Z
11991205 </ div >
12001206 < script src ="../../../prettify.js "> </ script >
12011207 < script >
0 commit comments