Skip to content

Commit ed0e9eb

Browse files
committed
feat: add support for complex number arrays
--- 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 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: na - task: lint_typescript_tests status: na - task: lint_license_headers status: passed ---
1 parent 718525f commit ed0e9eb

File tree

2 files changed

+17
-5
lines changed
  • lib/node_modules/@stdlib/_tools/doctest/compare-values

2 files changed

+17
-5
lines changed

lib/node_modules/@stdlib/_tools/doctest/compare-values/lib/main.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ var isPrimitive = require( '@stdlib/assert/is-primitive' );
4545
var isObjectLike = require( '@stdlib/assert/is-object-like' );
4646
var isFunction = require( '@stdlib/assert/is-function' );
4747
var isTypedArray = require( '@stdlib/assert/is-typed-array' );
48+
var isComplexTypedArray = require( '@stdlib/assert/is-complex-typed-array' );
4849
var isError = require( '@stdlib/assert/is-error' );
4950
var isTypeError = require( '@stdlib/assert/is-type-error' );
5051
var isSyntaxError = require( '@stdlib/assert/is-syntax-error' );
@@ -61,6 +62,7 @@ var replace = require( '@stdlib/string/replace' );
6162
var trim = require( '@stdlib/string/trim' );
6263
var PINF = require( '@stdlib/constants/float64/pinf' );
6364
var NINF = require( '@stdlib/constants/float64/ninf' );
65+
var reinterpretComplex = require( '@stdlib/strided/base/reinterpret-complex' );
6466
var createAnnotationValue = require( '@stdlib/_tools/doctest/create-annotation-value' );
6567
var parse = require( './parse.js' );
6668

@@ -251,6 +253,9 @@ function checkTypedArrays( actual, expected ) {
251253
return 'Expected instance type <'+actual.constructor.name+'>, but observed <'+type+'>';
252254
}
253255
if ( entries ) {
256+
if ( isComplexTypedArray( actual ) ) {
257+
actual = reinterpretComplex( actual, 0 );
258+
}
254259
return compareEntries( actual, parse( entries ) );
255260
}
256261
return null;
@@ -404,7 +409,7 @@ function compareValues( actual, expected ) {
404409
}
405410
return null;
406411
}
407-
if ( isTypedArray( actual ) ) {
412+
if ( isTypedArray( actual ) || isComplexTypedArray( actual ) ) {
408413
return checkTypedArrays( actual, expected );
409414
}
410415
if ( isArray( actual ) ) {

lib/node_modules/@stdlib/_tools/doctest/compare-values/test/test.js

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ function createErrorMessage( actual, expected ) {
4242
// TESTS //
4343

4444
tape( 'main export is a function', function test( t ) {
45+
t.ok( true, __filename );
4546
t.strictEqual( typeof compareValues, 'function', 'main export is a function' );
4647
t.end();
4748
});
@@ -300,14 +301,20 @@ tape( 'the function compares a typed array and a corresponding return annotation
300301

301302
buf = new Float32Array( [ 1.0, -1.0, 2.0, -2.0 ] );
302303
actual = new Complex64Array( buf );
303-
expected = '<Complex64Array>';
304+
expected = '<Complex64Array>[ 1.0, -1.0, 2.0, -2.0 ]';
304305
t.strictEqual( compareValues( actual, expected ), null, 'returns null' );
305306

306307
buf = new Float64Array( [ 1.0, -1.0, 2.0, -2.0 ] );
307308
actual = new Complex128Array( buf );
308-
expected = '<Complex128Array>';
309+
expected = '<Complex128Array>[ 1.0, -1.0, 2.0, -2.0 ]';
309310
t.strictEqual( compareValues( actual, expected ), null, 'returns null' );
310311

312+
buf = new Float64Array( [ 1.0, -1.0, 2.0, -2.0 ] );
313+
actual = new Complex128Array( buf );
314+
expected = '<Complex128Array>[ 1.0, 1.0, 2.0, 2.0 ]';
315+
msg = 'Expected array entries [1,1,2,2], but observed [1,-1,2,-2]';
316+
t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' );
317+
311318
t.end();
312319
});
313320

@@ -369,7 +376,7 @@ tape( 'the function differentiates between boxed and primitive values', function
369376
msg = 'Expected a <Number>, but received an unboxed primitive: `2.3`';
370377
t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' );
371378

372-
actual = new Number( 2.3 ); // eslint-disable-line no-new-wrappers
379+
actual = new Number( 2.3 );
373380
expected = '<number>';
374381
msg = 'Expected a <number>, but received a boxed primitive: `2.3`';
375382
t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' );
@@ -393,7 +400,7 @@ tape( 'the function differentiates between boxed and primitive values', function
393400
msg = 'Expected a <Boolean>, but received an unboxed primitive: `false`';
394401
t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' );
395402

396-
actual = new Boolean( false ); // eslint-disable-line no-new-wrappers
403+
actual = new Boolean( false );
397404
expected = '<boolean>';
398405
msg = 'Expected a <boolean>, but received a boxed primitive: `false`';
399406
t.strictEqual( compareValues( actual, expected ), msg, 'returns expected message' );

0 commit comments

Comments
 (0)