From c8f299ef1b465b219bbc3b4e24b750db04f609fc Mon Sep 17 00:00:00 2001 From: Abdul Kaium Date: Mon, 27 Jul 2026 03:36:22 +0600 Subject: [PATCH 01/14] feat: add doctesting support for `Int64` --- type: pre_commit_static_analysis_report description: Results of running static analysis checks when committing changes. report: - task: lint_filenames status: passed - task: lint_editorconfig status: passed - task: lint_markdown_pkg_readmes status: na - task: lint_markdown_docs status: na - task: lint_markdown status: na - task: lint_package_json status: na - task: lint_repl_help status: na - task: lint_javascript_src status: passed - task: lint_javascript_cli status: na - task: lint_javascript_examples status: na - task: lint_javascript_tests status: passed - task: lint_javascript_benchmarks status: na - task: lint_python status: na - task: lint_r status: na - task: lint_c_src status: na - task: lint_c_examples status: na - task: lint_c_benchmarks status: na - task: lint_c_tests_fixtures status: na - task: lint_shell status: na - task: lint_typescript_declarations status: passed - task: lint_typescript_tests status: na - task: lint_license_headers status: passed --- --- .../_tools/doctest/compare-values/lib/main.js | 16 ++- .../doctest/compare-values/test/test.js | 107 ++++++++++++++---- .../create-annotation-value/lib/main.js | 12 +- .../create-annotation-value/test/test.js | 13 ++- 4 files changed, 117 insertions(+), 31 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js index 9cdeecaae40d..2ffc841bacdd 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js @@ -16,6 +16,7 @@ * limitations under the License. */ +/* eslint-disable max-lines */ /* eslint-disable stdlib/no-empty-lines-between-requires */ 'use strict'; @@ -78,6 +79,7 @@ var isUint8Array = require( '@stdlib/assert/is-uint8array' ); var isUint8ClampedArray = require( '@stdlib/assert/is-uint8clampedarray' ); var isUint16Array = require( '@stdlib/assert/is-uint16array' ); var isUint32Array = require( '@stdlib/assert/is-uint32array' ); +var isInt64 = require( '@stdlib/assert/is-int64' ); var isUint64 = require( '@stdlib/assert/is-uint64' ); var isUndefined = require( '@stdlib/assert/is-undefined' ); var isURIError = require( '@stdlib/assert/is-uri-error' ); @@ -285,6 +287,8 @@ function checkForPlaceholders( actual, expected ) { return isInt16Array( actual ); case '': return isInt32Array( actual ); + case '': + return isInt64( actual ); case '': return isMultiSlice( actual ); case '': @@ -392,14 +396,14 @@ function checkComplex( actual, expected ) { } /** -* Checks whether an unsigned 64-bit integer matches the expected return annotation. +* Checks whether a 64-bit (signed or unsigned) integer matches the expected return annotation. * * @private * @param {*} actual - actual return value * @param {string} expected - return value annotation * @returns {(string|null)} error message or null */ -function checkUint64( actual, expected ) { +function checkInt64( actual, expected ) { var entries; var match; var type; @@ -417,7 +421,7 @@ function checkUint64( actual, expected ) { } return null; } - return 'Unsigned 64-bit integers should be documented using instance annotation'; + return '64-bit integers should be documented using instance annotation'; } /** @@ -667,9 +671,9 @@ function compareValues( actual, expected ) { if ( isComplex64( actual ) || isComplex128( actual ) ) { return checkComplex( actual, expected ); } - // Case: compareValues( new Uint64( 1234 ), '[ 1234n ]' ) - if ( isUint64( actual ) ) { - return checkUint64( actual, expected ); + // Case: compareValues( new Int64( 1234 ), '[ 1234n ]' ) + if ( isInt64( actual ) || isUint64( actual ) ) { + return checkInt64( actual, expected ); } // Case: compareValues( array( [ 1.0, 2.0 ] ), '[ 1.0, 2.0 ]' ) if ( isndarrayLike( actual ) ) { diff --git a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js index 5d976d3be724..532c12292aaf 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js +++ b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js @@ -25,6 +25,7 @@ var hasBigIntSupport = require( '@stdlib/assert/has-bigint-support' ); var hasBigInt64ArraySupport = require( '@stdlib/assert/has-bigint64array-support' ); var hasBigUint64ArraySupport = require( '@stdlib/assert/has-biguint64array-support' ); var Number = require( '@stdlib/number/ctor' ); +var Int64 = require( '@stdlib/number/int64/ctor' ); var Uint64 = require( '@stdlib/number/uint64/ctor' ); var Boolean = require( '@stdlib/boolean/ctor' ); var BigInt = require( '@stdlib/bigint/ctor' ); @@ -164,6 +165,7 @@ tape( 'the function compares primitives and a corresponding non-matching return t.end(); }); +// eslint-disable-next-line max-statements tape( 'the function compares an array and a corresponding return annotation', function test( t ) { var expected; var actual; @@ -487,33 +489,100 @@ tape( 'the function compares a complex number and a corresponding return annotat t.end(); }); -tape( 'the function compares an unsigned 64-bit integer and a corresponding return annotation', function test( t ) { +tape( 'the function compares a 64-bit (signed or unsigned) integer and a corresponding return annotation', function test( t ) { var expected; var actual; var msg; - actual = new Uint64( 1234 ); - expected = ''; - t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); + if ( HAS_BIGINTS ) { + // Signed: + actual = new Int64( 1234 ); + expected = ''; + t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); - actual = new Uint64( 1234 ); - expected = '[ 1234n ]'; - t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); + actual = new Int64( 1234 ); + expected = '[ 1234n ]'; + t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); - actual = new Uint64( 1234 ); - expected = '[ 1234 ]'; - msg = 'Expected entries [1234], but observed [1234n]'; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = '[ 1234 ]'; + msg = 'Expected entries [1234], but observed [1234n]'; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Uint64( 1234 ); - expected = '[ 5678n ]'; - msg = 'Expected entries [5678n], but observed [1234n]'; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = '[ 5678n ]'; + msg = 'Expected entries [5678n], but observed [1234n]'; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Uint64( 1234 ); - expected = '[ 2.0, 3.0 ]'; - msg = 'Expected instance type , but observed '; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = ''; + msg = 'Expected a , but received: `1234`'; // TODO: `1234` doesn't seem right in this context, we should mention recieved `Int64` + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + actual = new Int64( 1234 ); + expected = '[ 1234n ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + actual = new Int64( 1234 ); + expected = ''; + msg = null; // TODO: this should not return null, it's a false positive + t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); + + actual = new Int64( 1234 ); + expected = '[ 1234n ]'; + msg = 'Expected instance type , but observed '; // TODO: this doesn't seem right either, because `Something` is not really a type + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + actual = new Int64( 1234 ); + expected = '[ 2.0, 3.0 ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + // Unsigned: + actual = new Uint64( 1234 ); + expected = ''; + t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); + + actual = new Uint64( 1234 ); + expected = '[ 1234n ]'; + t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); + + actual = new Uint64( 1234 ); + expected = '[ 1234 ]'; + msg = 'Expected entries [1234], but observed [1234n]'; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + actual = new Uint64( 1234 ); + expected = '[ 5678n ]'; + msg = 'Expected entries [5678n], but observed [1234n]'; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + actual = new Uint64( 1234 ); + expected = ''; + msg = 'Expected a , but received: `1234`'; // TODO: `1234` doesn't seem right in this context, we should mention recieved `Uint64` + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + actual = new Uint64( 1234 ); + expected = '[ 1234n ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + actual = new Uint64( 1234 ); + expected = ''; + msg = null; // TODO: this should not return null, it's a false positive + t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); + + actual = new Uint64( 1234 ); + expected = '[ 1234n ]'; + msg = 'Expected instance type , but observed '; // TODO: this doesn't seem right either, because `Something` is not really a type + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + + actual = new Uint64( 1234 ); + expected = '[ 2.0, 3.0 ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + } t.end(); }); diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js index ede86e018e07..14419199c58d 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js @@ -42,6 +42,7 @@ var isRegExp = require( '@stdlib/assert/is-regexp' ); var isString = require( '@stdlib/assert/is-string' ); var isTypedArray = require( '@stdlib/assert/is-typed-array' ); var isUndefined = require( '@stdlib/assert/is-undefined' ); +var isInt64 = require( '@stdlib/assert/is-int64' ); var isUint64 = require( '@stdlib/assert/is-uint64' ); var capitalize = require( '@stdlib/string/capitalize' ); var roundn = require( '@stdlib/math/base/special/roundn' ); @@ -166,14 +167,14 @@ function complexAnnotation( actual, opts ) { } /** -* Creates a return annotation for an unsigned 64-bit integer. +* Creates a return annotation for a 64-bit (signed or unsigned) integer. * * @private * @param {*} actual - actual return value * @param {Object} opts - function options -* @returns {string} return annotation for unsigned 64-bit integer +* @returns {string} return annotation for 64-bit integer */ -function uint64Annotation( actual, opts ) { +function int64Annotation( actual, opts ) { return '<'+actual.constructor.name+'>[ '+primitiveAnnotation( actual.valueOf(), opts )+' ]'; } @@ -198,9 +199,10 @@ function genericAnnotation( actual, opts ) { if ( isComplex( actual ) ) { return complexAnnotation( actual, opts ); } - if ( isUint64( actual ) ) { - return uint64Annotation( actual, opts ); + if ( isInt64( actual ) || isUint64( actual ) ) { + return int64Annotation( actual, opts ); } + // eslint-disable-next-line max-len if ( isTypedArray( actual ) || isComplexTypedArray( actual ) || isBooleanArray( actual ) ) { out = '<'+actual.constructor.name+'>'; if ( actual.length === 0 ) { diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js index 89cc300c636c..b0be578de1dd 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js @@ -37,6 +37,7 @@ var Complex64 = require( '@stdlib/complex/float32/ctor' ); var Complex128 = require( '@stdlib/complex/float64/ctor' ); var Complex64Array = require( '@stdlib/array/complex64' ); var Complex128Array = require( '@stdlib/array/complex128' ); +var Int64 = require( '@stdlib/number/int64/ctor' ); var Uint64 = require( '@stdlib/number/uint64/ctor' ); var BooleanArray = require( '@stdlib/array/bool' ); var createAnnotationValue = require( './../lib' ); @@ -396,11 +397,21 @@ tape( 'the function creates a deep instance equality annotation value for comple t.end(); }); -tape( 'the function creates a deep instance equality annotation value for unsigned 64-bit integers', function test( t ) { +tape( 'the function creates a deep instance equality annotation value for 64-bit (signed or unsigned) integers', function test( t ) { var expected; var val; if ( HAS_BIGINTS ) { + // Signed: + val = new Int64( 1234 ); + expected = '[ 1234n ]'; + t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); + + val = new Int64( BigInt( '9223372036854775807' ) ); // 2^63 - 1 + expected = '[ 9223372036854775807n ]'; + t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); + + // Unsigned: val = new Uint64( 1234 ); expected = '[ 1234n ]'; t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); From f904ea61b36fea66aa61a5d2baf4ba6867a6db88 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:19:12 -0700 Subject: [PATCH 02/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/_tools/doctest/compare-values/lib/main.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js index 2ffc841bacdd..d63410e1a814 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js @@ -16,8 +16,7 @@ * limitations under the License. */ -/* eslint-disable max-lines */ -/* eslint-disable stdlib/no-empty-lines-between-requires */ +/* eslint-disable stdlib/no-empty-lines-between-requires, max-lines */ 'use strict'; From ef82e999058a363f3d6107d3b5034a560792f7dc Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:20:03 -0700 Subject: [PATCH 03/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/_tools/doctest/compare-values/test/test.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js index 532c12292aaf..c19763d6ae4f 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js +++ b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js @@ -165,8 +165,7 @@ tape( 'the function compares primitives and a corresponding non-matching return t.end(); }); -// eslint-disable-next-line max-statements -tape( 'the function compares an array and a corresponding return annotation', function test( t ) { +tape( 'the function compares an array and a corresponding return annotation', function test( t ) { // eslint-disable-line max-statements var expected; var actual; var msg; From adef395bfbcbf06c7c01d83e90cb0a2f46c597f3 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:26:20 -0700 Subject: [PATCH 04/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../_tools/doctest/compare-values/test/test.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js index c19763d6ae4f..c044649a24e4 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js +++ b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js @@ -515,7 +515,7 @@ tape( 'the function compares a 64-bit (signed or unsigned) integer and a corresp actual = new Int64( 1234 ); expected = ''; - msg = 'Expected a , but received: `1234`'; // TODO: `1234` doesn't seem right in this context, we should mention recieved `Int64` + msg = 'Expected a , but received: `1234`'; // FIXME: `1234` doesn't seem right in this context, we should mention received `Int64` t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); actual = new Int64( 1234 ); @@ -525,12 +525,12 @@ tape( 'the function compares a 64-bit (signed or unsigned) integer and a corresp actual = new Int64( 1234 ); expected = ''; - msg = null; // TODO: this should not return null, it's a false positive + msg = null; // FIXME: this should not return null, it's a false positive t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); actual = new Int64( 1234 ); expected = '[ 1234n ]'; - msg = 'Expected instance type , but observed '; // TODO: this doesn't seem right either, because `Something` is not really a type + msg = 'Expected instance type , but observed '; t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); actual = new Int64( 1234 ); @@ -559,7 +559,7 @@ tape( 'the function compares a 64-bit (signed or unsigned) integer and a corresp actual = new Uint64( 1234 ); expected = ''; - msg = 'Expected a , but received: `1234`'; // TODO: `1234` doesn't seem right in this context, we should mention recieved `Uint64` + msg = 'Expected a , but received: `1234`'; // FIXME: `1234` doesn't seem right in this context, we should mention received `Uint64` t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); actual = new Uint64( 1234 ); @@ -569,12 +569,12 @@ tape( 'the function compares a 64-bit (signed or unsigned) integer and a corresp actual = new Uint64( 1234 ); expected = ''; - msg = null; // TODO: this should not return null, it's a false positive + msg = null; // FIXME: this should not return null, it's a false positive t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); actual = new Uint64( 1234 ); expected = '[ 1234n ]'; - msg = 'Expected instance type , but observed '; // TODO: this doesn't seem right either, because `Something` is not really a type + msg = 'Expected instance type , but observed '; t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); actual = new Uint64( 1234 ); From 24b19a35f5c932283bb61330243c007ee7d6cb6a Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:27:42 -0700 Subject: [PATCH 05/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/_tools/doctest/compare-values/test/test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js index c044649a24e4..bc4a2379c073 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js +++ b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js @@ -525,7 +525,7 @@ tape( 'the function compares a 64-bit (signed or unsigned) integer and a corresp actual = new Int64( 1234 ); expected = ''; - msg = null; // FIXME: this should not return null, it's a false positive + msg = null; // FIXME: this should not return null, it's a false negative t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); actual = new Int64( 1234 ); @@ -569,7 +569,7 @@ tape( 'the function compares a 64-bit (signed or unsigned) integer and a corresp actual = new Uint64( 1234 ); expected = ''; - msg = null; // FIXME: this should not return null, it's a false positive + msg = null; // FIXME: this should not return null, it's a false negative t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); actual = new Uint64( 1234 ); From f3d0e85c761970bbb47e5da34add73b0fd4a352a Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:32:53 -0700 Subject: [PATCH 06/14] test: remove assertion Signed-off-by: Athan --- .../doctest/compare-values/test/test.js | 142 +++++++++--------- 1 file changed, 70 insertions(+), 72 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js index bc4a2379c073..f4024f33659d 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js +++ b/lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js @@ -493,95 +493,93 @@ tape( 'the function compares a 64-bit (signed or unsigned) integer and a corresp var actual; var msg; - if ( HAS_BIGINTS ) { - // Signed: - actual = new Int64( 1234 ); - expected = ''; - t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); + // Signed: + actual = new Int64( 1234 ); + expected = ''; + t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); - actual = new Int64( 1234 ); - expected = '[ 1234n ]'; - t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); + actual = new Int64( 1234 ); + expected = '[ 1234n ]'; + t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); - actual = new Int64( 1234 ); - expected = '[ 1234 ]'; - msg = 'Expected entries [1234], but observed [1234n]'; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = '[ 1234 ]'; + msg = 'Expected entries [1234], but observed [1234n]'; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Int64( 1234 ); - expected = '[ 5678n ]'; - msg = 'Expected entries [5678n], but observed [1234n]'; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = '[ 5678n ]'; + msg = 'Expected entries [5678n], but observed [1234n]'; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Int64( 1234 ); - expected = ''; - msg = 'Expected a , but received: `1234`'; // FIXME: `1234` doesn't seem right in this context, we should mention received `Int64` - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = ''; + msg = 'Expected a , but received: `1234`'; // FIXME: `1234` doesn't seem right in this context, we should mention received `Int64` + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Int64( 1234 ); - expected = '[ 1234n ]'; - msg = 'Expected instance type , but observed '; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = '[ 1234n ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Int64( 1234 ); - expected = ''; - msg = null; // FIXME: this should not return null, it's a false negative - t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = ''; + msg = null; // FIXME: this should not return null, it's a false negative + t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); - actual = new Int64( 1234 ); - expected = '[ 1234n ]'; - msg = 'Expected instance type , but observed '; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = '[ 1234n ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Int64( 1234 ); - expected = '[ 2.0, 3.0 ]'; - msg = 'Expected instance type , but observed '; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Int64( 1234 ); + expected = '[ 2.0, 3.0 ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - // Unsigned: - actual = new Uint64( 1234 ); - expected = ''; - t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); + // Unsigned: + actual = new Uint64( 1234 ); + expected = ''; + t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); - actual = new Uint64( 1234 ); - expected = '[ 1234n ]'; - t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); + actual = new Uint64( 1234 ); + expected = '[ 1234n ]'; + t.strictEqual( compareValues( actual, expected ), null, 'returns expected value' ); - actual = new Uint64( 1234 ); - expected = '[ 1234 ]'; - msg = 'Expected entries [1234], but observed [1234n]'; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Uint64( 1234 ); + expected = '[ 1234 ]'; + msg = 'Expected entries [1234], but observed [1234n]'; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Uint64( 1234 ); - expected = '[ 5678n ]'; - msg = 'Expected entries [5678n], but observed [1234n]'; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Uint64( 1234 ); + expected = '[ 5678n ]'; + msg = 'Expected entries [5678n], but observed [1234n]'; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Uint64( 1234 ); - expected = ''; - msg = 'Expected a , but received: `1234`'; // FIXME: `1234` doesn't seem right in this context, we should mention received `Uint64` - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Uint64( 1234 ); + expected = ''; + msg = 'Expected a , but received: `1234`'; // FIXME: `1234` doesn't seem right in this context, we should mention received `Uint64` + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Uint64( 1234 ); - expected = '[ 1234n ]'; - msg = 'Expected instance type , but observed '; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Uint64( 1234 ); + expected = '[ 1234n ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Uint64( 1234 ); - expected = ''; - msg = null; // FIXME: this should not return null, it's a false negative - t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); + actual = new Uint64( 1234 ); + expected = ''; + msg = null; // FIXME: this should not return null, it's a false negative + t.strictEqual( compareValues( actual, expected ), null, 'returns expected message' ); - actual = new Uint64( 1234 ); - expected = '[ 1234n ]'; - msg = 'Expected instance type , but observed '; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); + actual = new Uint64( 1234 ); + expected = '[ 1234n ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - actual = new Uint64( 1234 ); - expected = '[ 2.0, 3.0 ]'; - msg = 'Expected instance type , but observed '; - t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); - } + actual = new Uint64( 1234 ); + expected = '[ 2.0, 3.0 ]'; + msg = 'Expected instance type , but observed '; + t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' ); t.end(); }); From 13cafca723fd2d23b793d566d4b2e7413738d0ba Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:35:30 -0700 Subject: [PATCH 07/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../doctest/create-annotation-value/lib/main.js | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js index 14419199c58d..55e341be0305 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js @@ -43,6 +43,18 @@ var isString = require( '@stdlib/assert/is-string' ); var isTypedArray = require( '@stdlib/assert/is-typed-array' ); var isUndefined = require( '@stdlib/assert/is-undefined' ); var isInt64 = require( '@stdlib/assert/is-int64' ); +var isInfinite = require( '@stdlib/assert/is-infinite' ); +var isInt64 = require( '@stdlib/assert/is-int64' ); +var isInteger = require( '@stdlib/assert/is-integer' ); +var isnan = require( '@stdlib/assert/is-nan' ); +var isNull = require( '@stdlib/assert/is-null' ); +var isNumber = require( '@stdlib/assert/is-number' ); +var isObject = require( '@stdlib/assert/is-object' ); +var isPrimitive = require( '@stdlib/assert/is-primitive' ); +var isRegExp = require( '@stdlib/assert/is-regexp' ); +var isString = require( '@stdlib/assert/is-string' ); +var isTypedArray = require( '@stdlib/assert/is-typed-array' ); +var isUndefined = require( '@stdlib/assert/is-undefined' ); var isUint64 = require( '@stdlib/assert/is-uint64' ); var capitalize = require( '@stdlib/string/capitalize' ); var roundn = require( '@stdlib/math/base/special/roundn' ); @@ -202,8 +214,7 @@ function genericAnnotation( actual, opts ) { if ( isInt64( actual ) || isUint64( actual ) ) { return int64Annotation( actual, opts ); } - // eslint-disable-next-line max-len - if ( isTypedArray( actual ) || isComplexTypedArray( actual ) || isBooleanArray( actual ) ) { + if ( isTypedArray( actual ) || isComplexTypedArray( actual ) || isBooleanArray( actual ) ) { // eslint-disable-line max-len out = '<'+actual.constructor.name+'>'; if ( actual.length === 0 ) { out += '[]'; From ec149d704fa186a5c4338ed2750127dcf09591ae Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:36:34 -0700 Subject: [PATCH 08/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../doctest/create-annotation-value/lib/main.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js index 55e341be0305..5e8fe72b34b2 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js @@ -54,6 +54,17 @@ var isPrimitive = require( '@stdlib/assert/is-primitive' ); var isRegExp = require( '@stdlib/assert/is-regexp' ); var isString = require( '@stdlib/assert/is-string' ); var isTypedArray = require( '@stdlib/assert/is-typed-array' ); +var isInfinite = require( '@stdlib/assert/is-infinite' ); +var isInt64 = require( '@stdlib/assert/is-int64' ); +var isInteger = require( '@stdlib/assert/is-integer' ); +var isnan = require( '@stdlib/assert/is-nan' ); +var isNull = require( '@stdlib/assert/is-null' ); +var isNumber = require( '@stdlib/assert/is-number' ); +var isObject = require( '@stdlib/assert/is-object' ); +var isPrimitive = require( '@stdlib/assert/is-primitive' ); +var isRegExp = require( '@stdlib/assert/is-regexp' ); +var isString = require( '@stdlib/assert/is-string' ); +var isTypedArray = require( '@stdlib/assert/is-typed-array' ); var isUndefined = require( '@stdlib/assert/is-undefined' ); var isUint64 = require( '@stdlib/assert/is-uint64' ); var capitalize = require( '@stdlib/string/capitalize' ); From 6ae96dc9177a02f04b008e2dee6d705da4b243ef Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:37:21 -0700 Subject: [PATCH 09/14] test: workaround GitHub bugs Signed-off-by: Athan --- .../create-annotation-value/lib/main.js | 23 ------------------- 1 file changed, 23 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js index 5e8fe72b34b2..ddc7f51ff975 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js @@ -32,29 +32,6 @@ var isComplex = require( '@stdlib/assert/is-complex' ); var isComplexTypedArray = require( '@stdlib/assert/is-complex-typed-array' ); var isError = require( '@stdlib/assert/is-error' ); var isInfinite = require( '@stdlib/assert/is-infinite' ); -var isInteger = require( '@stdlib/assert/is-integer' ); -var isnan = require( '@stdlib/assert/is-nan' ); -var isNull = require( '@stdlib/assert/is-null' ); -var isNumber = require( '@stdlib/assert/is-number' ); -var isObject = require( '@stdlib/assert/is-object' ); -var isPrimitive = require( '@stdlib/assert/is-primitive' ); -var isRegExp = require( '@stdlib/assert/is-regexp' ); -var isString = require( '@stdlib/assert/is-string' ); -var isTypedArray = require( '@stdlib/assert/is-typed-array' ); -var isUndefined = require( '@stdlib/assert/is-undefined' ); -var isInt64 = require( '@stdlib/assert/is-int64' ); -var isInfinite = require( '@stdlib/assert/is-infinite' ); -var isInt64 = require( '@stdlib/assert/is-int64' ); -var isInteger = require( '@stdlib/assert/is-integer' ); -var isnan = require( '@stdlib/assert/is-nan' ); -var isNull = require( '@stdlib/assert/is-null' ); -var isNumber = require( '@stdlib/assert/is-number' ); -var isObject = require( '@stdlib/assert/is-object' ); -var isPrimitive = require( '@stdlib/assert/is-primitive' ); -var isRegExp = require( '@stdlib/assert/is-regexp' ); -var isString = require( '@stdlib/assert/is-string' ); -var isTypedArray = require( '@stdlib/assert/is-typed-array' ); -var isInfinite = require( '@stdlib/assert/is-infinite' ); var isInt64 = require( '@stdlib/assert/is-int64' ); var isInteger = require( '@stdlib/assert/is-integer' ); var isnan = require( '@stdlib/assert/is-nan' ); From d470d699c1398a3eadc0e542cae91a99ef1e1989 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:39:46 -0700 Subject: [PATCH 10/14] test: update test case Signed-off-by: Athan --- .../create-annotation-value/test/test.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js index b0be578de1dd..6b30643d7a32 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js @@ -401,21 +401,19 @@ tape( 'the function creates a deep instance equality annotation value for 64-bit var expected; var val; - if ( HAS_BIGINTS ) { - // Signed: - val = new Int64( 1234 ); - expected = '[ 1234n ]'; - t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); + val = new Int64( 1234 ); + expected = '[ 1234n ]'; + t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); + + val = new Uint64( 1234 ); + expected = '[ 1234n ]'; + t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); + if ( HAS_BIGINTS ) { val = new Int64( BigInt( '9223372036854775807' ) ); // 2^63 - 1 expected = '[ 9223372036854775807n ]'; t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); - // Unsigned: - val = new Uint64( 1234 ); - expected = '[ 1234n ]'; - t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); - val = new Uint64( BigInt( '18446744073709551615' ) ); // 2^64 - 1 expected = '[ 18446744073709551615n ]'; t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); From 2a7106a352d5b95eda0339786e59f7d969c97587 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:43:19 -0700 Subject: [PATCH 11/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/_tools/doctest/create-annotation-value/test/test.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js index 6b30643d7a32..10741f2ae4ea 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/test/test.js @@ -404,7 +404,6 @@ tape( 'the function creates a deep instance equality annotation value for 64-bit val = new Int64( 1234 ); expected = '[ 1234n ]'; t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); - val = new Uint64( 1234 ); expected = '[ 1234n ]'; t.strictEqual( createAnnotationValue( val ), expected, 'returns expected value' ); From 552dcba0b38d853bd06b33c609a1e9da52732971 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:47:56 -0700 Subject: [PATCH 12/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../_tools/doctest/create-annotation-value/lib/main.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js index ddc7f51ff975..7f652f4c4703 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js @@ -175,7 +175,13 @@ function complexAnnotation( actual, opts ) { * @returns {string} return annotation for 64-bit integer */ function int64Annotation( actual, opts ) { - return '<'+actual.constructor.name+'>[ '+primitiveAnnotation( actual.valueOf(), opts )+' ]'; + var str = primitiveAnnotation( actual.valueOf(), opts ); + + // Accommodate environments not supporting native BigInts... + if ( str[ str.length-1 ] !== 'n' ) { + str += 'n'; + } + return '<'+actual.constructor.name+'>[ '+str+' ]'; } /** From 8fa3f8a8b3ab2cb2f6a5100df4d4005f48ff735a Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:51:27 -0700 Subject: [PATCH 13/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/_tools/doctest/create-annotation-value/lib/main.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js index 7f652f4c4703..f3063b1e08cb 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js @@ -176,7 +176,6 @@ function complexAnnotation( actual, opts ) { */ function int64Annotation( actual, opts ) { var str = primitiveAnnotation( actual.valueOf(), opts ); - // Accommodate environments not supporting native BigInts... if ( str[ str.length-1 ] !== 'n' ) { str += 'n'; From 3e5cf89ffcbf1e3d0eba256b848efdc6e68ee7d4 Mon Sep 17 00:00:00 2001 From: Athan Date: Sun, 26 Jul 2026 21:51:47 -0700 Subject: [PATCH 14/14] Apply suggestions from code review Co-authored-by: Athan Signed-off-by: Athan --- .../@stdlib/_tools/doctest/create-annotation-value/lib/main.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js index f3063b1e08cb..cc291910f4b6 100644 --- a/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js +++ b/lib/node_modules/@stdlib/_tools/doctest/create-annotation-value/lib/main.js @@ -176,6 +176,7 @@ function complexAnnotation( actual, opts ) { */ function int64Annotation( actual, opts ) { var str = primitiveAnnotation( actual.valueOf(), opts ); + // Accommodate environments not supporting native BigInts... if ( str[ str.length-1 ] !== 'n' ) { str += 'n';