Skip to content

Commit 6d755ca

Browse files
committed
test: add ndarray tests
--- 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: na - 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 2c45388 commit 6d755ca

File tree

2 files changed

+336
-1
lines changed

2 files changed

+336
-1
lines changed

lib/node_modules/@stdlib/lapack/base/dgebal/test/test.dgebal.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ tape( 'the function throws an error if provided an invalid second argument', fun
128128
}
129129
});
130130

131-
tape( 'the function returns invalid indices and leaves the input array unchanged for none = 0', function test( t ) {
131+
tape( 'the function returns invalid indices and leaves the input array unchanged for N = 0', function test( t ) {
132132
var expectedOut;
133133
var scale;
134134
var info;

lib/node_modules/@stdlib/lapack/base/dgebal/test/test.ndarray.js

Lines changed: 335 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,341 @@ tape( 'the function returns expected values for job = both (column-major)', func
346346
0.0, 0.0, 5.0
347347
]);
348348

349+
info = dgebal( 'both', 3, A, 1, 3, 0, out, 1, 0, scale, 1, 0 );
350+
351+
t.strictEqual( info, 0, 'returns expected value' );
352+
t.deepEqual( out, expectedOut, 'returns expected value' );
353+
t.deepEqual( A, expectedA, 'returns expected value' );
354+
t.deepEqual( scale, expectedScale, 'returns expected value' );
355+
t.end();
356+
});
357+
358+
tape( 'the function returns expected values for job = both with complex input (row-major)', function test( t ) {
359+
var expectedScale;
360+
var expectedOut;
361+
var expectedA;
362+
var scale;
363+
var info;
364+
var out;
365+
var A;
366+
367+
A = new Float64Array([
368+
1.0, 1.0, 0.0,
369+
0.0, 2.0, 0.0,
370+
0.0, 0.0, 3.0
371+
]);
372+
out = new Float64Array( 2 );
373+
scale = new Float64Array( 3 );
374+
375+
expectedOut = new Float64Array( [ 0.0, 0.0 ] );
376+
expectedScale = new Float64Array( [ 0.0, 1.0, 2.0 ] );
377+
expectedA = new Float64Array([
378+
1.0, 1.0, 0.0,
379+
0.0, 2.0, 0.0,
380+
0.0, 0.0, 3.0
381+
]);
382+
383+
info = dgebal( 'both', 3, A, 3, 1, 0, out, 1, 0, scale, 1, 0 );
384+
t.strictEqual( info, 0, 'returns expected value' );
385+
t.deepEqual( out, expectedOut, 'returns expected value' );
386+
t.deepEqual( A, expectedA, 'returns expected value' );
387+
t.deepEqual( scale, expectedScale, 'returns expected value' );
388+
t.end();
389+
});
390+
391+
tape( 'the function returns expected values for job = both with complex input (column-major)', function test( t ) {
392+
var expectedScale;
393+
var expectedOut;
394+
var expectedA;
395+
var scale;
396+
var info;
397+
var out;
398+
var A;
399+
400+
A = new Float64Array([
401+
1.0, 0.0, 0.0,
402+
1.0, 2.0, 0.0,
403+
0.0, 0.0, 3.0
404+
]);
405+
out = new Float64Array( 2 );
406+
scale = new Float64Array( 3 );
407+
408+
expectedOut = new Float64Array( [ 0.0, 0.0 ] );
409+
expectedScale = new Float64Array( [ 0.0, 1.0, 2.0 ] );
410+
expectedA = new Float64Array([
411+
1.0, 0.0, 0.0,
412+
1.0, 2.0, 0.0,
413+
0.0, 0.0, 3.0
414+
]);
415+
416+
info = dgebal( 'both', 3, A, 1, 3, 0, out, 1, 0, scale, 1, 0 );
417+
t.strictEqual( info, 0, 'returns expected value' );
418+
t.deepEqual( out, expectedOut, 'returns expected value' );
419+
t.deepEqual( A, expectedA, 'returns expected value' );
420+
t.deepEqual( scale, expectedScale, 'returns expected value' );
421+
t.end();
422+
});
423+
424+
tape( 'the function returns expected values for job = both with complex input (row-major)', function test( t ) {
425+
var expectedScale;
426+
var expectedOut;
427+
var expectedA;
428+
var scale;
429+
var info;
430+
var out;
431+
var A;
432+
433+
A = new Float64Array([
434+
1.0, 0.0, 2.0,
435+
3.0, 4.0, 5.0,
436+
6.0, 0.0, 7.0
437+
]);
438+
out = new Float64Array( 2 );
439+
scale = new Float64Array( 3 );
440+
441+
expectedOut = new Float64Array( [ 1.0, 2.0 ] );
442+
expectedScale = new Float64Array( [ 1.0, 0.5, 1.0 ] );
443+
expectedA = new Float64Array([
444+
4.0, 1.5, 5.0,
445+
0.0, 1.0, 4.0,
446+
0.0, 3.0, 7.0
447+
]);
448+
449+
info = dgebal( 'both', 3, A, 3, 1, 0, out, 1, 0, scale, 1, 0 );
450+
t.strictEqual( info, 0, 'returns expected value' );
451+
t.deepEqual( out, expectedOut, 'returns expected value' );
452+
t.deepEqual( A, expectedA, 'returns expected value' );
453+
t.deepEqual( scale, expectedScale, 'returns expected value' );
454+
t.end();
455+
});
456+
457+
tape( 'the function returns expected values for job = both with complex input (column-major)', function test( t ) {
458+
var expectedScale;
459+
var expectedOut;
460+
var expectedA;
461+
var scale;
462+
var info;
463+
var out;
464+
var A;
465+
466+
A = new Float64Array([
467+
1.0, 3.0, 6.0,
468+
0.0, 4.0, 0.0,
469+
2.0, 5.0, 7.0
470+
]);
471+
out = new Float64Array( 2 );
472+
scale = new Float64Array( 3 );
473+
474+
expectedOut = new Float64Array( [ 1.0, 2.0 ] );
475+
expectedScale = new Float64Array( [ 1.0, 0.5, 1.0 ] );
476+
expectedA = new Float64Array([
477+
4.0, 0.0, 0.0,
478+
1.5, 1.0, 3.0,
479+
5.0, 4.0, 7.0
480+
]);
481+
482+
info = dgebal( 'both', 3, A, 1, 3, 0, out, 1, 0, scale, 1, 0 );
483+
t.strictEqual( info, 0, 'returns expected value' );
484+
t.deepEqual( out, expectedOut, 'returns expected value' );
485+
t.deepEqual( A, expectedA, 'returns expected value' );
486+
t.deepEqual( scale, expectedScale, 'returns expected value' );
487+
t.end();
488+
});
489+
490+
tape( 'the function returns expected values for job = scale with zero norm (row-major)', function test( t ) {
491+
var expectedScale;
492+
var expectedOut;
493+
var expectedA;
494+
var scale;
495+
var info;
496+
var out;
497+
var A;
498+
499+
A = new Float64Array([
500+
1.0, 0.0, 4.0,
501+
2.0, 0.0, 5.0,
502+
3.0, 0.0, 6.0
503+
]);
504+
out = new Float64Array( 2 );
505+
scale = new Float64Array( 3 );
506+
507+
expectedOut = new Float64Array( [ 0.0, 2.0 ] );
508+
expectedScale = new Float64Array( [ 1.0, 1.0, 1.0 ] );
509+
expectedA = new Float64Array([
510+
1.0, 0.0, 4.0,
511+
2.0, 0.0, 5.0,
512+
3.0, 0.0, 6.0
513+
]);
514+
515+
info = dgebal( 'scale', 3, A, 3, 1, 0, out, 1, 0, scale, 1, 0 );
516+
t.strictEqual( info, 0, 'returns expected value' );
517+
t.deepEqual( out, expectedOut, 'returns expected value' );
518+
t.deepEqual( A, expectedA, 'returns expected value' );
519+
t.deepEqual( scale, expectedScale, 'returns expected value' );
520+
t.end();
521+
});
522+
523+
tape( 'the function returns expected values for job = scale with zero norm (column-major)', function test( t ) {
524+
var expectedScale;
525+
var expectedOut;
526+
var expectedA;
527+
var scale;
528+
var info;
529+
var out;
530+
var A;
531+
532+
A = new Float64Array([
533+
1.0, 2.0, 3.0,
534+
0.0, 0.0, 0.0,
535+
4.0, 5.0, 6.0
536+
]);
537+
out = new Float64Array( 2 );
538+
scale = new Float64Array( 3 );
539+
540+
expectedOut = new Float64Array( [ 0.0, 2.0 ] );
541+
expectedScale = new Float64Array( [ 1.0, 1.0, 1.0 ] );
542+
expectedA = new Float64Array([
543+
1.0, 2.0, 3.0,
544+
0.0, 0.0, 0.0,
545+
4.0, 5.0, 6.0
546+
]);
547+
548+
info = dgebal( 'scale', 3, A, 1, 3, 0, out, 1, 0, scale, 1, 0 );
549+
t.strictEqual( info, 0, 'returns expected value' );
550+
t.deepEqual( out, expectedOut, 'returns expected value' );
551+
t.deepEqual( A, expectedA, 'returns expected value' );
552+
t.deepEqual( scale, expectedScale, 'returns expected value' );
553+
t.end();
554+
});
555+
556+
tape( 'the function returns expected values for job = scale with small values (row-major)', function test( t ) {
557+
var expectedScale;
558+
var expectedOut;
559+
var expectedA;
560+
var scale;
561+
var info;
562+
var out;
563+
var A;
564+
565+
A = new Float64Array([
566+
1.0e-4, 1.0, 2.0, 1.0e4,
567+
2.0e-4, 1.0, 2.0, 2.0e4,
568+
3.0e-4, 1.0, 2.0, 3.0e4,
569+
4.0e-4, 1.0, 2.0, 4.0e4
570+
]);
571+
out = new Float64Array( 2 );
572+
scale = new Float64Array( 4 );
573+
574+
expectedOut = new Float64Array( [ 0.0, 3.0 ] );
575+
expectedScale = new Float64Array( [ 4096.0, 128.0, 128.0, 1.0 ] );
576+
expectedA = new Float64Array([
577+
1.0e-4, 3.125e-2, 6.25e-2, 2.44140625,
578+
6.4e-3, 1.0, 2.0, 1.5625e+2,
579+
9.6e-3, 1.0, 2.0, 2.34375e+2,
580+
1.6384, 1.28e+2, 2.56e+2, 4.0e+4
581+
]);
582+
583+
info = dgebal( 'scale', 4, A, 4, 1, 0, out, 1, 0, scale, 1, 0 );
584+
t.strictEqual( info, 0, 'returns expected value' );
585+
t.deepEqual( out, expectedOut, 'returns expected value' );
586+
t.deepEqual( A, expectedA, 'returns expected value' );
587+
t.deepEqual( scale, expectedScale, 'returns expected value' );
588+
t.end();
589+
});
590+
591+
tape( 'the function returns expected values for job = scale with small values (column-major)', function test( t ) {
592+
var expectedScale;
593+
var expectedOut;
594+
var expectedA;
595+
var scale;
596+
var info;
597+
var out;
598+
var A;
599+
600+
A = new Float64Array([
601+
1.0e-4, 2.0e-4, 3.0e-4, 4.0e-4,
602+
1.0, 1.0, 1.0, 1.0,
603+
2.0, 2.0, 2.0, 2.0,
604+
1.0e4, 2.0e4, 3.0e4, 4.0e4
605+
]);
606+
out = new Float64Array( 2 );
607+
scale = new Float64Array( 4 );
608+
609+
expectedOut = new Float64Array( [ 0.0, 3.0 ] );
610+
expectedScale = new Float64Array( [ 4096.0, 128.0, 128.0, 1.0 ] );
611+
expectedA = new Float64Array([
612+
1.0e-4, 6.4e-3, 9.6e-3, 1.6384,
613+
3.125e-2, 1.0, 1.0, 1.28e+2,
614+
6.25e-2, 2.0, 2.0, 2.56e+2,
615+
2.44140625, 1.5625e+2, 2.34375e+2, 4.0e+4
616+
]);
617+
618+
info = dgebal( 'scale', 4, A, 1, 4, 0, out, 1, 0, scale, 1, 0 );
619+
t.strictEqual( info, 0, 'returns expected value' );
620+
t.deepEqual( out, expectedOut, 'returns expected value' );
621+
t.deepEqual( A, expectedA, 'returns expected value' );
622+
t.deepEqual( scale, expectedScale, 'returns expected value' );
623+
t.end();
624+
});
625+
626+
tape( 'the function returns expected values for job = both with large values (row-major)', function test( t ) {
627+
var expectedScale;
628+
var expectedOut;
629+
var expectedA;
630+
var scale;
631+
var info;
632+
var out;
633+
var A;
634+
635+
A = new Float64Array([
636+
1.0e30, 1.0, 1.0e-30,
637+
1.0e30, 1.0, 1.0e-30,
638+
1.0e30, 1.0, 1.0e-30
639+
]);
640+
out = new Float64Array( 2 );
641+
scale = new Float64Array( 3 );
642+
643+
expectedOut = new Float64Array( [ 0.0, 2.0 ] );
644+
expectedScale = new Float64Array( [ 1.0, 1125899906842624.0, 1.2676506002282294e+30 ] ); // eslint-disable-line max-len
645+
expectedA = new Float64Array([
646+
1.0e30, 1.1258999068426240e15, 1.2676506002282295,
647+
8.8817841970012525e14, 1.0, 1.1258999068426241e-15,
648+
7.8886090522101182e-1, 8.8817841970012523e-16, 1.0e-30
649+
]);
650+
651+
info = dgebal( 'both', 3, A, 3, 1, 0, out, 1, 0, scale, 1, 0 );
652+
t.strictEqual( info, 0, 'returns expected value' );
653+
t.deepEqual( out, expectedOut, 'returns expected value' );
654+
t.deepEqual( A, expectedA, 'returns expected value' );
655+
t.deepEqual( scale, expectedScale, 'returns expected value' );
656+
t.end();
657+
});
658+
659+
tape( 'the function returns expected values for job = both with large values (column-major)', function test( t ) {
660+
var expectedScale;
661+
var expectedOut;
662+
var expectedA;
663+
var scale;
664+
var info;
665+
var out;
666+
var A;
667+
668+
A = new Float64Array([
669+
1.0e30, 1.0e30, 1.0e30,
670+
1.0, 1.0, 1.0,
671+
1.0e-30, 1.0e-30, 1.0e-30
672+
]);
673+
out = new Float64Array( 2 );
674+
scale = new Float64Array( 3 );
675+
676+
expectedOut = new Float64Array( [ 0.0, 2.0 ] );
677+
expectedScale = new Float64Array( [ 1.0, 1125899906842624.0, 1.2676506002282294e+30 ] ); // eslint-disable-line max-len
678+
expectedA = new Float64Array([
679+
1.0e30, 8.8817841970012525e14, 7.8886090522101182e-1,
680+
1.1258999068426240e15, 1.0, 8.8817841970012523e-16,
681+
1.2676506002282295, 1.1258999068426241e-15, 1.0e-30
682+
]);
683+
349684
info = dgebal( 'both', 3, A, 1, 3, 0, out, 1, 0, scale, 1, 0 );
350685
t.strictEqual( info, 0, 'returns expected value' );
351686
t.deepEqual( out, expectedOut, 'returns expected value' );

0 commit comments

Comments
 (0)