Skip to content

Commit 9878d33

Browse files
committed
test: add tests for left side
--- 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 ede23c3 commit 9878d33

File tree

7 files changed

+313
-1
lines changed

7 files changed

+313
-1
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ function dlarf1f( side, M, N, V, strideV, offsetV, tau, C, strideC1, strideC2, o
8282
lastv = N;
8383
}
8484

85+
// check here
8586
if ( strideV > 0 ) {
8687
i = offsetV + ( ( lastv - 1 ) * strideV );
8788
} else {
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"order": "column-major",
3+
4+
"side": "left",
5+
6+
"M": 4,
7+
"N": 3,
8+
9+
"V": [ 1.0, 0.0, 0.0, 0.0 ],
10+
"strideV": 1,
11+
"offsetV": 0,
12+
13+
"tau": 0.5,
14+
15+
"C": [ 1.0, 4.0, 7.0, 10.0, 2.0, 5.0, 8.0, 11.0, 3.0, 6.0, 9.0, 12.0 ],
16+
"strideC1": 1,
17+
"strideC2": 4,
18+
"offsetC": 0,
19+
"LDC": 4,
20+
"C_mat": [
21+
[ 1.0, 2.0, 3.0 ],
22+
[ 4.0, 5.0, 6.0 ],
23+
[ 7.0, 8.0, 9.0 ],
24+
[ 10.0, 11.0, 12.0 ]
25+
],
26+
27+
"work": [ 0.0, 0.0, 0.0 ],
28+
"strideWork": 1,
29+
"offsetWork": 0,
30+
31+
"C_out": [ 0.5, 4.0, 7.0, 10.0, 1.0, 5.0, 8.0, 11.0, 1.5, 6.0, 9.0, 12.0 ],
32+
"C_out_mat": [
33+
[ 0.5, 1.0, 1.5 ],
34+
[ 4.0, 5.0, 6.0 ],
35+
[ 7.0, 8.0, 9.0 ],
36+
[ 10.0, 11.0, 12.0 ]
37+
]
38+
}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"order": "row-major",
3+
4+
"side": "left",
5+
6+
"M": 4,
7+
"N": 3,
8+
9+
"V": [ 1.0, 0.0, 0.0, 0.0 ],
10+
"strideV": 1,
11+
"offsetV": 0,
12+
13+
"tau": 0.5,
14+
15+
"C": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ],
16+
"strideC1": 3,
17+
"strideC2": 1,
18+
"offsetC": 0,
19+
"LDC": 3,
20+
"C_mat": [
21+
[ 1.0, 2.0, 3.0 ],
22+
[ 4.0, 5.0, 6.0 ],
23+
[ 7.0, 8.0, 9.0 ],
24+
[ 10.0, 11.0, 12.0 ]
25+
],
26+
27+
"work": [ 0.0, 0.0, 0.0 ],
28+
"strideWork": 1,
29+
"offsetWork": 0,
30+
31+
"C_out": [ 0.5, 1.0, 1.5, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ],
32+
"C_out_mat": [
33+
[ 0.5, 1.0, 1.5 ],
34+
[ 4.0, 5.0, 6.0 ],
35+
[ 7.0, 8.0, 9.0 ],
36+
[ 10.0, 11.0, 12.0 ]
37+
]
38+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{
2+
"order": "column-major",
3+
4+
"side": "left",
5+
6+
"M": 4,
7+
"N": 3,
8+
9+
"V": [ 1.0, 2.0, 3.0, 4.0 ],
10+
"strideV": 1,
11+
"offsetV": 0,
12+
13+
"tau": 0.5,
14+
15+
"C": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ],
16+
"strideC1": 1,
17+
"strideC2": 4,
18+
"offsetC": 0,
19+
"LDC": 4,
20+
"C_mat": [
21+
[ 1.0, 5.0, 9.0 ],
22+
[ 2.0, 6.0, 10.0 ],
23+
[ 3.0, 7.0, 11.0 ],
24+
[ 4.0, 8.0, 12.0 ]
25+
],
26+
27+
"work": [ 0.0, 0.0, 0.0 ],
28+
"strideWork": 1,
29+
"offsetWork": 0,
30+
31+
"C_out": [
32+
-14.0, -28.0, -42.0, -56.0,
33+
-30.0, -64.0, -98.0, -132.0,
34+
-46.0, -100.0, -154.0, -208.0
35+
],
36+
"C_out_mat": [
37+
[ -14.0, -30.0, -46.0 ],
38+
[ -28.0, -64.0, -100.0 ],
39+
[ -42.0, -98.0, -154.0 ],
40+
[ -56.0, -132.0, -208.0 ]
41+
]
42+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
{
2+
"order": "row-major",
3+
4+
"side": "left",
5+
6+
"M": 4,
7+
"N": 3,
8+
9+
"V": [ 1.0, 2.0, 3.0, 4.0 ],
10+
"strideV": 1,
11+
"offsetV": 0,
12+
13+
"tau": 0.5,
14+
15+
"C": [ 1.0, 5.0, 9.0, 2.0, 6.0, 10.0, 3.0, 7.0, 11.0, 4.0, 8.0, 12.0 ],
16+
"strideC1": 3,
17+
"strideC2": 1,
18+
"offsetC": 0,
19+
"LDC": 3,
20+
"C_mat": [
21+
[ 1.0, 5.0, 9.0 ],
22+
[ 2.0, 6.0, 10.0 ],
23+
[ 3.0, 7.0, 11.0 ],
24+
[ 4.0, 8.0, 12.0 ]
25+
],
26+
27+
"work": [ 0.0, 0.0, 0.0 ],
28+
"strideWork": 1,
29+
"offsetWork": 0,
30+
31+
"C_out": [
32+
-14.0, -30.0, -46.0,
33+
-28.0, -64.0, -100.0,
34+
-42.0, -98.0, -154.0,
35+
-56.0, -132.0, -208.0
36+
],
37+
"C_out_mat": [
38+
[ -14.0, -30.0, -46.0 ],
39+
[ -28.0, -64.0, -100.0 ],
40+
[ -42.0, -98.0, -154.0 ],
41+
[ -56.0, -132.0, -208.0 ]
42+
]
43+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"order": "row-major",
3+
4+
"side": "left",
5+
6+
"M": 3,
7+
"N": 3,
8+
9+
"V": [ 0.5, 0.5, 0.5 ],
10+
"strideV": 1,
11+
"offsetV": 0,
12+
13+
"tau": 0.0,
14+
15+
"C": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ],
16+
"strideC1": 3,
17+
"strideC2": 1,
18+
"offsetC": 0,
19+
"LDC": 3,
20+
"C_mat": [
21+
[ 1.0, 2.0, 3.0 ],
22+
[ 4.0, 5.0, 6.0 ],
23+
[ 7.0, 8.0, 9.0 ]
24+
],
25+
26+
"work": [ 0.0, 0.0, 0.0 ],
27+
"strideWork": 1,
28+
"offsetWork": 0,
29+
30+
"C_out": [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0 ],
31+
"C_out_mat": [
32+
[ 1.0, 2.0, 3.0 ],
33+
[ 4.0, 5.0, 6.0 ],
34+
[ 7.0, 8.0, 9.0 ]
35+
]
36+
}

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

Lines changed: 115 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* limitations under the License.
1717
*/
1818

19-
/* eslint-disable max-len */
19+
/* eslint-disable max-len, id-length */
2020

2121
'use strict';
2222

@@ -27,6 +27,15 @@ var Float64Array = require( '@stdlib/array/float64' );
2727
var dlarf1f = require( './../lib/dlarf1f.js' );
2828

2929

30+
// FIXTURES //
31+
32+
var TAU_EQ_ZERO = require( './fixtures/tau_eq_zero.json' );
33+
var LEFT_LASTV_EQ_ONE_ROW_MAJOR = require( './fixtures/left_lastv_eq_one_row_major.json' );
34+
var LEFT_LASTV_EQ_ONE_COL_MAJOR = require( './fixtures/left_lastv_eq_one_col_major.json' );
35+
var LEFT_LASTV_GT_ONE_ROW_MAJOR = require( './fixtures/left_lastv_gt_one_row_major.json' );
36+
var LEFT_LASTV_GT_ONE_COL_MAJOR = require( './fixtures/left_lastv_gt_one_col_major.json' );
37+
38+
3039
// TESTS //
3140

3241
tape( 'main export is a function', function test( t ) {
@@ -165,3 +174,108 @@ tape( 'the function throws an error if provided a sixth argument which is not a
165174
};
166175
}
167176
});
177+
178+
tape( 'the function returns the array unchanged if tau is zero', function test( t ) {
179+
var expectedC;
180+
var data;
181+
var work;
182+
var out;
183+
var V;
184+
var C;
185+
186+
data = TAU_EQ_ZERO;
187+
188+
V = new Float64Array( data.V );
189+
C = new Float64Array( data.C );
190+
work = new Float64Array( data.work );
191+
192+
out = dlarf1f( data.order, data.side, data.M, data.N, V, data.strideV, data.tau, C, data.LDC, work );
193+
expectedC = new Float64Array( data.C_out );
194+
195+
t.deepEqual( out, expectedC, 'returns expected value' );
196+
t.end();
197+
});
198+
199+
tape( 'the function expected value for left side, lastv = 1 (row-major)', function test( t ) {
200+
var expectedC;
201+
var data;
202+
var work;
203+
var out;
204+
var V;
205+
var C;
206+
207+
data = LEFT_LASTV_EQ_ONE_ROW_MAJOR;
208+
209+
V = new Float64Array( data.V );
210+
C = new Float64Array( data.C );
211+
work = new Float64Array( data.work );
212+
213+
out = dlarf1f( data.order, data.side, data.M, data.N, V, data.strideV, data.tau, C, data.LDC, work );
214+
expectedC = new Float64Array( data.C_out );
215+
216+
t.deepEqual( out, expectedC, 'returns expected value' );
217+
t.end();
218+
});
219+
220+
tape( 'the function expected value for left side, lastv = 1 (column-major)', function test( t ) {
221+
var expectedC;
222+
var data;
223+
var work;
224+
var out;
225+
var V;
226+
var C;
227+
228+
data = LEFT_LASTV_EQ_ONE_COL_MAJOR;
229+
230+
V = new Float64Array( data.V );
231+
C = new Float64Array( data.C );
232+
work = new Float64Array( data.work );
233+
234+
out = dlarf1f( data.order, data.side, data.M, data.N, V, data.strideV, data.tau, C, data.LDC, work );
235+
expectedC = new Float64Array( data.C_out );
236+
237+
t.deepEqual( out, expectedC, 'returns expected value' );
238+
t.end();
239+
});
240+
241+
tape( 'the function expected value for left side, lastv > 1 (row-major)', function test( t ) {
242+
var expectedC;
243+
var data;
244+
var work;
245+
var out;
246+
var V;
247+
var C;
248+
249+
data = LEFT_LASTV_GT_ONE_ROW_MAJOR;
250+
251+
V = new Float64Array( data.V );
252+
C = new Float64Array( data.C );
253+
work = new Float64Array( data.work );
254+
255+
out = dlarf1f( data.order, data.side, data.M, data.N, V, data.strideV, data.tau, C, data.LDC, work );
256+
expectedC = new Float64Array( data.C_out );
257+
258+
t.deepEqual( out, expectedC, 'returns expected value' );
259+
t.end();
260+
});
261+
262+
tape( 'the function expected value for left side, lastv > 1 (column-major)', function test( t ) {
263+
var expectedC;
264+
var data;
265+
var work;
266+
var out;
267+
var V;
268+
var C;
269+
270+
data = LEFT_LASTV_GT_ONE_COL_MAJOR;
271+
272+
V = new Float64Array( data.V );
273+
C = new Float64Array( data.C );
274+
work = new Float64Array( data.work );
275+
276+
out = dlarf1f( data.order, data.side, data.M, data.N, V, data.strideV, data.tau, C, data.LDC, work );
277+
expectedC = new Float64Array( data.C_out );
278+
279+
t.deepEqual( out, expectedC, 'returns expected value' );
280+
t.end();
281+
});

0 commit comments

Comments
 (0)