Skip to content

Commit 04c89d1

Browse files
authored
test: add test cases for blas/base/dtrmv
PR-URL: #7163 Reviewed-by: Athan Reines <[email protected]>
1 parent 03f6481 commit 04c89d1

File tree

3 files changed

+86
-0
lines changed

3 files changed

+86
-0
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"order": "column-major",
3+
"uplo": "lower",
4+
"trans": "no-transpose",
5+
"diag": "unit",
6+
"N": 3,
7+
"A": [ 1.0, 2.0, 2.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0 ],
8+
"A_mat": [
9+
[ 1.0, 0.0, 0.0 ],
10+
[ 2.0, 1.0, 0.0 ],
11+
[ 2.0, 1.0, 1.0 ]
12+
],
13+
"LDA": 3,
14+
"strideA1": 1,
15+
"strideA2": 3,
16+
"offsetA": 0,
17+
"x": [ 0.0, 0.0, 1.0, 2.0, 3.0 ],
18+
"strideX": 1,
19+
"offsetX": 2,
20+
"x_out": [ 0.0, 0.0, 1.0, 4.0, 7.0 ]
21+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"order": "row-major",
3+
"uplo": "lower",
4+
"trans": "no-transpose",
5+
"diag": "unit",
6+
"N": 3,
7+
"A": [ 1.0, 0.0, 0.0, 2.0, 1.0, 0.0, 2.0, 1.0, 1.0 ],
8+
"A_mat": [
9+
[ 1.0, 0.0, 0.0 ],
10+
[ 2.0, 1.0, 0.0 ],
11+
[ 2.0, 1.0, 1.0 ]
12+
],
13+
"LDA": 3,
14+
"strideA1": 3,
15+
"strideA2": 1,
16+
"offsetA": 0,
17+
"x": [ 0.0, 0.0, 1.0, 2.0, 3.0 ],
18+
"strideX": 1,
19+
"offsetX": 2,
20+
"x_out": [ 0.0, 0.0, 1.0, 4.0, 7.0 ]
21+
}

lib/node_modules/@stdlib/blas/base/dtrmv/test/test.ndarray.js

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ var rutu = require( './fixtures/row_major_u_t_u.json' );
4040
var rxt = require( './fixtures/row_major_xt.json' );
4141
var rxn = require( './fixtures/row_major_xn.json' );
4242
var roa = require( './fixtures/row_major_oa.json' );
43+
var rox = require( './fixtures/row_major_ox.json' );
4344
var rsa1sa2 = require( './fixtures/row_major_sa1_sa2.json' );
4445
var rsa1nsa2 = require( './fixtures/row_major_sa1n_sa2.json' );
4546
var rsa1sa2n = require( './fixtures/row_major_sa1_sa2n.json' );
@@ -57,6 +58,7 @@ var cutu = require( './fixtures/column_major_u_t_u.json' );
5758
var cxt = require( './fixtures/column_major_xt.json' );
5859
var cxn = require( './fixtures/column_major_xn.json' );
5960
var coa = require( './fixtures/column_major_oa.json' );
61+
var cox = require( './fixtures/column_major_ox.json' );
6062
var csa1sa2 = require( './fixtures/column_major_sa1_sa2.json' );
6163
var csa1nsa2 = require( './fixtures/column_major_sa1n_sa2.json' );
6264
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
938940
t.end();
939941
});
940942

943+
tape( 'the function supports an `x` offset (row-major)', function test( t ) {
944+
var expected;
945+
var data;
946+
var out;
947+
var a;
948+
var x;
949+
950+
data = rox;
951+
952+
a = new Float64Array( data.A );
953+
x = new Float64Array( data.x );
954+
955+
expected = new Float64Array( data.x_out );
956+
957+
out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX );
958+
t.strictEqual( out, x, 'returns expected value' );
959+
t.deepEqual( out, expected, 'returns expected value' );
960+
961+
t.end();
962+
});
963+
964+
tape( 'the function supports an `x` offset (column-major)', function test( t ) {
965+
var expected;
966+
var data;
967+
var out;
968+
var a;
969+
var x;
970+
971+
data = cox;
972+
973+
a = new Float64Array( data.A );
974+
x = new Float64Array( data.x );
975+
976+
expected = new Float64Array( data.x_out );
977+
978+
out = dtrmv( data.uplo, data.trans, data.diag, data.N, a, data.strideA1, data.strideA2, data.offsetA, x, data.strideX, data.offsetX );
979+
t.strictEqual( out, x, 'returns expected value' );
980+
t.deepEqual( out, expected, 'returns expected value' );
981+
982+
t.end();
983+
});
984+
941985
tape( 'the function supports complex access patterns (row-major)', function test( t ) {
942986
var expected;
943987
var data;

0 commit comments

Comments
 (0)