From 78dab16cef171e30015bef1f0de14bff9e6d719d Mon Sep 17 00:00:00 2001 From: ShabiShett07 Date: Mon, 2 Jun 2025 11:31:38 +0530 Subject: [PATCH] test: add test cases for blas/base/strmv --- 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 --- --- .../strmv/test/fixtures/column_major_ox.json | 16 +++++++ .../strmv/test/fixtures/row_major_ox.json | 16 +++++++ .../blas/base/strmv/test/test.ndarray.js | 44 +++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 lib/node_modules/@stdlib/blas/base/strmv/test/fixtures/column_major_ox.json create mode 100644 lib/node_modules/@stdlib/blas/base/strmv/test/fixtures/row_major_ox.json diff --git a/lib/node_modules/@stdlib/blas/base/strmv/test/fixtures/column_major_ox.json b/lib/node_modules/@stdlib/blas/base/strmv/test/fixtures/column_major_ox.json new file mode 100644 index 000000000000..ac7488470fb1 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strmv/test/fixtures/column_major_ox.json @@ -0,0 +1,16 @@ +{ + "order": "column-major", + "trans": "no-transpose", + "diag": "unit", + "uplo": "lower", + "strideX": 1, + "offsetA": 0, + "offsetX": 2, + "LDA": 3, + "strideA1": 1, + "strideA2": 3, + "N": 3, + "A": [ 1.0, 2.0, 2.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ], + "x": [ 0.0, 0.0, 1.0, 2.0, 3.0 ], + "x_out": [ 0.0, 0.0, 1.0, 4.0, 7.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strmv/test/fixtures/row_major_ox.json b/lib/node_modules/@stdlib/blas/base/strmv/test/fixtures/row_major_ox.json new file mode 100644 index 000000000000..2d728e26a2a1 --- /dev/null +++ b/lib/node_modules/@stdlib/blas/base/strmv/test/fixtures/row_major_ox.json @@ -0,0 +1,16 @@ +{ + "order": "row-major", + "trans": "no-transpose", + "diag": "unit", + "uplo": "lower", + "strideX": 1, + "offsetA": 0, + "offsetX": 2, + "LDA": 3, + "strideA1": 3, + "strideA2": 1, + "N": 3, + "A": [ 1.0, 0.0, 0.0, 2.0, 1.0, 0.0, 2.0, 1.0, 1.0 ], + "x": [ 0.0, 0.0, 1.0, 2.0, 3.0 ], + "x_out": [ 0.0, 0.0, 1.0, 4.0, 7.0 ] +} diff --git a/lib/node_modules/@stdlib/blas/base/strmv/test/test.ndarray.js b/lib/node_modules/@stdlib/blas/base/strmv/test/test.ndarray.js index 208fe74fd3f1..ada17b87f09f 100644 --- a/lib/node_modules/@stdlib/blas/base/strmv/test/test.ndarray.js +++ b/lib/node_modules/@stdlib/blas/base/strmv/test/test.ndarray.js @@ -40,6 +40,7 @@ var rutu = require( './fixtures/row_major_u_t_u.json' ); var rxt = require( './fixtures/row_major_xt.json' ); var rxn = require( './fixtures/row_major_xn.json' ); var roa = require( './fixtures/row_major_oa.json' ); +var rox = require( './fixtures/row_major_ox.json' ); var rsa1sa2 = require( './fixtures/row_major_sa1_sa2.json' ); var rsa1nsa2 = require( './fixtures/row_major_sa1n_sa2.json' ); var rsa1sa2n = require( './fixtures/row_major_sa1_sa2n.json' ); @@ -57,6 +58,7 @@ var cutu = require( './fixtures/column_major_u_t_u.json' ); var cxt = require( './fixtures/column_major_xt.json' ); var cxn = require( './fixtures/column_major_xn.json' ); var coa = require( './fixtures/column_major_oa.json' ); +var cox = require( './fixtures/column_major_ox.json' ); var csa1sa2 = require( './fixtures/column_major_sa1_sa2.json' ); var csa1nsa2 = require( './fixtures/column_major_sa1n_sa2.json' ); var csa1sa2n = require( './fixtures/column_major_sa1_sa2n.json' ); @@ -938,6 +940,48 @@ tape( 'the function supports a negative `x` stride (column-major)', function tes t.end(); }); +tape( 'the function supports an `x` offset (row-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var x; + + data = rox; + + a = new Float32Array( data.A ); + x = new Float32Array( data.x ); + + expected = new Float32Array( data.x_out ); + + out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); + t.strictEqual( out, x, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + +tape( 'the function supports an `x` offset (column-major)', function test( t ) { + var expected; + var data; + var out; + var a; + var x; + + data = cox; + + a = new Float32Array( data.A ); + x = new Float32Array( data.x ); + + expected = new Float32Array( data.x_out ); + + out = strmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX ); + t.strictEqual( out, x, 'returns expected value' ); + t.deepEqual( out, expected, 'returns expected value' ); + + t.end(); +}); + tape( 'the function supports complex access patterns (row-major)', function test( t ) { var expected; var data;