Skip to content

Commit 9e43ff5

Browse files
committed
test: add some tests
1 parent 6420a10 commit 9e43ff5

File tree

11 files changed

+223
-36
lines changed

11 files changed

+223
-36
lines changed

lib/node_modules/@stdlib/lapack/base/dlascl/lib/base.js

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -253,17 +253,18 @@ function dlascl( type, KL, KU, CFROM, CTO, M, N, A, strideA1, strideA2, offsetA
253253
}
254254

255255
if ( type === 'banded' ) {
256-
k1 = KL + KU + 2;
257-
k2 = KL + 1;
258-
k3 = ( 2 * KL ) + KU + 1;
259-
k4 = KL + KU + 1 + M;
256+
k1 = KL + KU;
257+
k2 = KL;
258+
k3 = ( 2 * KL ) + KU;
259+
k4 = KL + KU + M - 1;
260260
ia = offsetA;
261+
261262
if ( isRowMajor( [ strideA1, strideA2 ] ) ) {
262263
for ( i1 = 0; i1 < M; i1++ ) {
263264
for ( i0 = max( 0, i1 - KL ); i0 <= min( N - 1, i1 + KU ); i0++ ) {
264-
A[ ia + ( ( i0 - i1 + KL ) * strideA2 ) ] *= mul;
265+
ia = offsetA + ( ( KL + KU + 1 + i1 - i0 ) * strideA1 ) + ( i0 * strideA2 );
266+
A[ ia ] *= mul;
265267
}
266-
ia += strideA1;
267268
}
268269
} else {
269270
for ( i1 = 0; i1 < N; i1++ ) {
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"order": "column-major",
3+
"type": "banded",
4+
"M": 5,
5+
"N": 5,
6+
"KL": 2,
7+
"KU": 1,
8+
"CFROM": 1.0,
9+
"CTO": 10.0,
10+
"A": [
11+
0.0, 0.0, 0.0, 1.1, 2.1, 3.1,
12+
0.0, 0.0, 1.2, 2.2, 3.2, 4.2,
13+
0.0, 0.0, 2.3, 3.3, 4.3, 5.3,
14+
0.0, 0.0, 3.4, 4.4, 5.4, 0.0,
15+
0.0, 0.0, 4.5, 5.5, 0.0, 0.0
16+
],
17+
"A_mat": [
18+
[ 1.1, 1.2, 0.0, 0.0, 0.0 ],
19+
[ 2.1, 2.2, 2.3, 0.0, 0.0 ],
20+
[ 3.1, 3.2, 3.3, 3.4, 0.0 ],
21+
[ 0.0, 4.2, 4.3, 4.4, 4.5 ],
22+
[ 0.0, 0.0, 5.3, 5.4, 5.5 ]
23+
],
24+
"LDA": 6,
25+
"strideA1": 1,
26+
"strideA2": 6,
27+
"offsetA": 0,
28+
"A_out": [
29+
0.0, 0.0, 0.0, 11.0, 21.0, 31.0,
30+
0.0, 0.0, 12.0, 22.0, 32.0, 42.0,
31+
0.0, 0.0, 23.0, 33.0, 43.0, 53.0,
32+
0.0, 0.0, 34.0, 44.0, 54.0, 0.0,
33+
0.0, 0.0, 45.0, 55.0, 0.0, 0.0
34+
],
35+
"A_out_mat": [
36+
[ 11.0, 12.0, 0.0, 0.0, 0.0 ],
37+
[ 21.0, 22.0, 23.0, 0.0, 0.0 ],
38+
[ 31.0, 32.0, 33.0, 34.0, 0.0 ],
39+
[ 0.0, 42.0, 43.0, 44.0, 45.0 ],
40+
[ 0.0, 0.0, 53.0, 54.0, 55.0 ]
41+
]
42+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"order": "row-major",
3+
"type": "banded",
4+
"M": 5,
5+
"N": 5,
6+
"KL": 2,
7+
"KU": 1,
8+
"CFROM": 1.0,
9+
"CTO": 10.0,
10+
"A": [
11+
0.0, 0.0, 0.0, 0.0, 0.0,
12+
0.0, 0.0, 0.0, 0.0, 0.0,
13+
0.0, 1.2, 2.3, 3.4, 4.5,
14+
1.1, 2.2, 3.3, 4.4, 5.5,
15+
2.1, 3.2, 4.3, 5.4, 0.0,
16+
3.1, 4.2, 5.3, 0.0, 0.0
17+
],
18+
"A_mat": [
19+
[ 1.1, 1.2, 0.0, 0.0, 0.0 ],
20+
[ 2.1, 2.2, 2.3, 0.0, 0.0 ],
21+
[ 3.1, 3.2, 3.3, 3.4, 0.0 ],
22+
[ 0.0, 4.2, 4.3, 4.4, 4.5 ],
23+
[ 0.0, 0.0, 5.3, 5.4, 5.5 ]
24+
],
25+
"LDA": 6,
26+
"strideA1": 5,
27+
"strideA2": 1,
28+
"offsetA": 0,
29+
"A_out": [
30+
0.0, 0.0, 0.0, 0.0, 0.0,
31+
0.0, 0.0, 0.0, 0.0, 0.0,
32+
0.0, 12.0, 23.0, 34.0, 45.0,
33+
11.0, 22.0, 33.0, 44.0, 55.0,
34+
21.0, 32.0, 43.0, 54.0, 0.0,
35+
31.0, 42.0, 53.0, 0.0, 0.0
36+
],
37+
"A_out_mat": [
38+
[ 11.0, 12.0, 0.0, 0.0, 0.0 ],
39+
[ 21.0, 22.0, 23.0, 0.0, 0.0 ],
40+
[ 31.0, 32.0, 33.0, 34.0, 0.0 ],
41+
[ 0.0, 42.0, 43.0, 44.0, 45.0 ],
42+
[ 0.0, 0.0, 53.0, 54.0, 55.0 ]
43+
]
44+
}

lib/node_modules/@stdlib/lapack/base/dlascl/test/fixtures/general_column_major.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,19 @@
88
"CFROM": 1.0,
99
"CTO": 2.0,
1010
"A": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ],
11+
"A_mat": [
12+
[ 1.0, 2.0 ],
13+
[ 3.0, 4.0 ],
14+
[ 5.0, 6.0 ]
15+
],
1116
"LDA": 3,
1217
"strideA1": 1,
1318
"strideA2": 3,
1419
"offsetA": 0,
15-
"A_out": [ 2.0, 4.0, 6.0, 8.0, 10.0, 12.0 ]
20+
"A_out": [ 2.0, 4.0, 6.0, 8.0, 10.0, 12.0 ],
21+
"A_out_mat": [
22+
[ 2.0, 4.0 ],
23+
[ 6.0, 8.0 ],
24+
[ 10.0, 12.0 ]
25+
]
1626
}

lib/node_modules/@stdlib/lapack/base/dlascl/test/fixtures/general_row_major.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,19 @@
88
"CFROM": 1.0,
99
"CTO": 2.0,
1010
"A": [ 1.0, 4.0, 2.0, 5.0, 3.0, 6.0 ],
11+
"A_mat": [
12+
[ 1.0, 4.0 ],
13+
[ 2.0, 5.0 ],
14+
[ 3.0, 6.0 ]
15+
],
1116
"LDA": 2,
1217
"strideA1": 2,
1318
"strideA2": 1,
1419
"offsetA": 0,
15-
"A_out": [ 2.0, 8.0, 4.0, 10.0, 6.0, 12.0 ]
20+
"A_out": [ 2.0, 8.0, 4.0, 10.0, 6.0, 12.0 ],
21+
"A_out_mat": [
22+
[ 2.0, 8.0 ],
23+
[ 4.0, 10.0 ],
24+
[ 6.0, 12.0 ]
25+
]
1626
}

lib/node_modules/@stdlib/lapack/base/dlascl/test/fixtures/lower_column_major.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,19 @@
88
"CFROM": 1.0,
99
"CTO": 2.0,
1010
"A": [ 1.0, 2.0, 3.0, 0.0, 4.0, 5.0, 0.0, 0.0, 6.0 ],
11+
"A_mat": [
12+
[ 1.0, 0.0, 0.0 ],
13+
[ 2.0, 4.0, 0.0 ],
14+
[ 3.0, 5.0, 6.0 ]
15+
],
1116
"LDA": 3,
1217
"strideA1": 1,
1318
"strideA2": 3,
1419
"offsetA": 0,
15-
"A_out": [ 2.0, 4.0, 6.0, 0.0, 8.0, 10.0, 0.0, 0.0, 12.0 ]
20+
"A_out": [ 2.0, 4.0, 6.0, 0.0, 8.0, 10.0, 0.0, 0.0, 12.0 ],
21+
"A_out_mat": [
22+
[ 2.0, 0.0, 0.0 ],
23+
[ 4.0, 8.0, 0.0 ],
24+
[ 6.0, 10.0, 12.0 ]
25+
]
1626
}

lib/node_modules/@stdlib/lapack/base/dlascl/test/fixtures/lower_row_major.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,19 @@
88
"CFROM": 1.0,
99
"CTO": 2.0,
1010
"A": [ 1.0, 0.0, 0.0, 2.0, 4.0, 0.0, 3.0, 5.0, 6.0 ],
11+
"A_mat": [
12+
[ 1.0, 0.0, 0.0 ],
13+
[ 2.0, 4.0, 0.0 ],
14+
[ 3.0, 5.0, 6.0 ]
15+
],
1116
"LDA": 3,
1217
"strideA1": 3,
1318
"strideA2": 1,
1419
"offsetA": 0,
15-
"A_out": [ 2.0, 0.0, 0.0, 4.0, 8.0, 0.0, 6.0, 10.0, 12.0 ]
20+
"A_out": [ 2.0, 0.0, 0.0, 4.0, 8.0, 0.0, 6.0, 10.0, 12.0 ],
21+
"A_out_mat": [
22+
[ 2.0, 0.0, 0.0 ],
23+
[ 4.0, 8.0, 0.0 ],
24+
[ 6.0, 10.0, 12.0 ]
25+
]
1626
}

lib/node_modules/@stdlib/lapack/base/dlascl/test/fixtures/upper_column_major.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,19 @@
88
"CFROM": 1.0,
99
"CTO": 2.0,
1010
"A": [ 1.0, 0.0, 0.0, 2.0, 3.0, 0.0, 4.0, 5.0, 6.0 ],
11+
"A_mat": [
12+
[ 1.0, 2.0, 4.0 ],
13+
[ 0.0, 3.0, 5.0 ],
14+
[ 0.0, 0.0, 6.0 ]
15+
],
1116
"LDA": 3,
1217
"strideA1": 1,
1318
"strideA2": 3,
1419
"offsetA": 0,
15-
"A_out": [ 2.0, 0.0, 0.0, 4.0, 6.0, 0.0, 8.0, 10.0, 12.0 ]
20+
"A_out": [ 2.0, 0.0, 0.0, 4.0, 6.0, 0.0, 8.0, 10.0, 12.0 ],
21+
"A_out_mat": [
22+
[ 2.0, 4.0, 8.0 ],
23+
[ 0.0, 6.0, 10.0 ],
24+
[ 0.0, 0.0, 12.0 ]
25+
]
1626
}

lib/node_modules/@stdlib/lapack/base/dlascl/test/fixtures/upper_row_major.json

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,19 @@
88
"CFROM": 1.0,
99
"CTO": 2.0,
1010
"A": [ 1.0, 2.0, 4.0, 0.0, 3.0, 5.0, 0.0, 0.0, 6.0 ],
11+
"A_mat": [
12+
[ 1.0, 2.0, 4.0 ],
13+
[ 0.0, 3.0, 5.0 ],
14+
[ 0.0, 0.0, 6.0 ]
15+
],
1116
"LDA": 3,
1217
"strideA1": 3,
1318
"strideA2": 1,
1419
"offsetA": 0,
15-
"A_out": [ 2.0, 4.0, 8.0, 0.0, 6.0, 10.0, 0.0, 0.0, 12.0 ]
20+
"A_out": [ 2.0, 4.0, 8.0, 0.0, 6.0, 10.0, 0.0, 0.0, 12.0 ],
21+
"A_out_mat": [
22+
[ 2.0, 4.0, 8.0 ],
23+
[ 0.0, 6.0, 10.0 ],
24+
[ 0.0, 0.0, 12.0 ]
25+
]
1626
}

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

Lines changed: 52 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@ var dlascl = require( './../lib/dlascl.js' );
2929

3030
// FIXTURES //
3131

32-
var COL_MAJOR_GENERAL = require( './fixtures/general_column_major.json' );
33-
var ROW_MAJOR_GENERAL = require( './fixtures/general_row_major.json' );
34-
var COL_MAJOR_UPPER = require( './fixtures/upper_column_major.json' );
35-
var ROW_MAJOR_UPPER = require( './fixtures/upper_row_major.json' );
36-
var COL_MAJOR_LOWER = require( './fixtures/lower_row_major.json' );
37-
var ROW_MAJOR_LOWER = require( './fixtures/lower_row_major.json' );
32+
var GENERAL_COL_MAJOR = require( './fixtures/general_column_major.json' );
33+
var GENERAL_ROW_MAJOR = require( './fixtures/general_row_major.json' );
34+
var UPPER_COL_MAJOR = require( './fixtures/upper_column_major.json' );
35+
var UPPER_ROW_MAJOR = require( './fixtures/upper_row_major.json' );
36+
var LOWER_COL_MAJOR = require( './fixtures/lower_row_major.json' );
37+
var LOWER_ROW_MAJOR = require( './fixtures/lower_row_major.json' );
38+
var BANDED_COL_MAJOR = require( './fixtures/banded_column_major.json' );
39+
var BANDED_ROW_MAJOR = require( './fixtures/banded_row_major.json' );
3840

3941

4042
// TESTS //
@@ -231,7 +233,7 @@ tape( 'the function scales a general matrix (column-major)', function test( t )
231233
var out;
232234
var A;
233235

234-
data = COL_MAJOR_GENERAL;
236+
data = GENERAL_COL_MAJOR;
235237

236238
A = new Float64Array( data.A );
237239

@@ -250,7 +252,7 @@ tape( 'the function scales a general matrix (row-major)', function test( t ) {
250252
var out;
251253
var A;
252254

253-
data = ROW_MAJOR_GENERAL;
255+
data = GENERAL_ROW_MAJOR;
254256

255257
A = new Float64Array( data.A );
256258

@@ -269,7 +271,7 @@ tape( 'the function scales an upper triangular matrix (column-major)', function
269271
var out;
270272
var A;
271273

272-
data = COL_MAJOR_UPPER;
274+
data = UPPER_COL_MAJOR;
273275

274276
A = new Float64Array( data.A );
275277

@@ -288,7 +290,7 @@ tape( 'the function scales an upper triangular matrix (row-major)', function tes
288290
var out;
289291
var A;
290292

291-
data = ROW_MAJOR_UPPER;
293+
data = UPPER_ROW_MAJOR;
292294

293295
A = new Float64Array( data.A );
294296

@@ -307,7 +309,7 @@ tape( 'the function scales a lower triangular matrix (column-major)', function t
307309
var out;
308310
var A;
309311

310-
data = COL_MAJOR_LOWER;
312+
data = LOWER_COL_MAJOR;
311313

312314
A = new Float64Array( data.A );
313315

@@ -326,7 +328,45 @@ tape( 'the function scales a lower triangular matrix (row-major)', function test
326328
var out;
327329
var A;
328330

329-
data = ROW_MAJOR_LOWER;
331+
data = LOWER_ROW_MAJOR;
332+
333+
A = new Float64Array( data.A );
334+
335+
expected = new Float64Array( data.A_out );
336+
337+
out = dlascl( data.order, data.type, data.KL, data.KU, data.CFROM, data.CTO, data.M, data.N, A, data.LDA );
338+
t.strictEqual( out, A, 'returns expected value' );
339+
t.deepEqual( out, expected, 'returns expected value' );
340+
341+
t.end();
342+
});
343+
344+
tape( 'the function scales a banded matrix (column-major)', function test( t ) {
345+
var expected;
346+
var data;
347+
var out;
348+
var A;
349+
350+
data = BANDED_COL_MAJOR;
351+
352+
A = new Float64Array( data.A );
353+
354+
expected = new Float64Array( data.A_out );
355+
356+
out = dlascl( data.order, data.type, data.KL, data.KU, data.CFROM, data.CTO, data.M, data.N, A, data.LDA );
357+
t.strictEqual( out, A, 'returns expected value' );
358+
t.deepEqual( out, expected, 'returns expected value' );
359+
360+
t.end();
361+
});
362+
363+
tape( 'the function scales a banded matrix (row-major)', function test( t ) {
364+
var expected;
365+
var data;
366+
var out;
367+
var A;
368+
369+
data = BANDED_ROW_MAJOR;
330370

331371
A = new Float64Array( data.A );
332372

0 commit comments

Comments
 (0)