Skip to content

Commit c0a5dbe

Browse files
authored
test: achieve complete code coverage in blas/base/dznrm2 and blas/base/scnrm2
PR-URL: #2977 Closes: #2543 Reviewed-by: Philipp Burckhardt <[email protected]> Reviewed-by: Athan Reines <[email protected]>
1 parent 43e7a33 commit c0a5dbe

File tree

2 files changed

+160
-0
lines changed

2 files changed

+160
-0
lines changed

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

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,86 @@ tape( 'the function computes the L2-norm', function test( t ) {
105105

106106
actual = dznrm2( 3, zx, 1, 0 );
107107
isApprox( t, actual, expected, 2.0 );
108+
109+
// Checked on Wolfram Alpha:
110+
zx = new Complex128Array([
111+
1e150, // 1
112+
1e150, // 1
113+
1e150, // 2
114+
1e150, // 2
115+
1e150, // 3
116+
1e150, // 3
117+
1e150, // 4
118+
1e150 // 4
119+
]);
120+
expected = 2.82842e+150;
121+
122+
actual = dznrm2( 4, zx, 1, 0 );
123+
isApprox( t, actual, expected, 2.0 );
124+
125+
// Checked on Wolfram Alpha:
126+
zx = new Complex128Array([
127+
1e-155, // 1
128+
1e-155, // 1
129+
1e-155, // 2
130+
1e-155, // 2
131+
1e-155, // 3
132+
1e-155, // 3
133+
1e-155, // 4
134+
1e-155 // 4
135+
]);
136+
expected = 2.82843e-155;
137+
138+
actual = dznrm2( 4, zx, 1, 0 );
139+
isApprox( t, actual, expected, 2.0 );
140+
141+
// Checked on Wolfram Alpha:
142+
zx = new Complex128Array([
143+
1e150, // 1
144+
1e50, // 1
145+
1e150, // 2
146+
1e50, // 2
147+
1e150, // 3
148+
1e50, // 3
149+
1e150, // 4
150+
1e50 // 4
151+
]);
152+
expected = 2.00000e150;
153+
154+
actual = dznrm2( 4, zx, 1, 0 );
155+
isApprox( t, actual, expected, 2.0 );
156+
157+
// Checked on Wolfram Alpha:
158+
zx = new Complex128Array([
159+
1e-155, // 1
160+
1e50, // 1
161+
1e-155, // 2
162+
1e50, // 2
163+
1e-155, // 3
164+
1e50, // 3
165+
1e-155, // 4
166+
1e50 // 4
167+
]);
168+
expected = 2.00000e50;
169+
170+
actual = dznrm2( 4, zx, 1, 0 );
171+
isApprox( t, actual, expected, 2.0 );
172+
173+
// Checked on Wolfram Alpha:
174+
zx = new Complex128Array([
175+
1.4e-154, // 1
176+
1.5e-154, // 1
177+
1.4e-154, // 2
178+
1.5e-154, // 2
179+
1.4e-154, // 3
180+
0, // 3
181+
1.4e-154, // 4
182+
0 // 4
183+
]);
184+
expected = 3.51283e-154;
185+
186+
actual = dznrm2( 4, zx, 1, 0 );
187+
isApprox( t, actual, expected, 2.0 );
108188
t.end();
109189
});
110190

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

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,86 @@ tape( 'the function computes the L2-norm', function test( t ) {
105105

106106
actual = scnrm2( 3, cx, 1, 0 );
107107
isApprox( t, actual, expected, 2.0 );
108+
109+
// Checked on Wolfram Alpha:
110+
cx = new Complex64Array([
111+
5e+15, // 1
112+
5e+15, // 1
113+
5e+15, // 2
114+
5e+15, // 2
115+
5e+15, // 3
116+
5e+15, // 3
117+
5e+15, // 4
118+
5e+15 // 4
119+
]);
120+
expected = 14142135623730952;
121+
122+
actual = scnrm2( 4, cx, 1, 0 );
123+
isApprox( t, actual, expected, 2.0 );
124+
125+
// Checked on Wolfram Alpha:
126+
cx = new Complex64Array([
127+
1e-20, // 1
128+
1e-20, // 1
129+
1e-20, // 2
130+
1e-20, // 2
131+
1e-20, // 3
132+
1e-20, // 3
133+
1e-20, // 4
134+
1e-20 // 4
135+
]);
136+
expected = 2.82843e-20;
137+
138+
actual = scnrm2( 4, cx, 1, 0 );
139+
isApprox( t, actual, expected, 2.0 );
140+
141+
// Checked on Wolfram Alpha:
142+
cx = new Complex64Array([
143+
1e20, // 1
144+
1e10, // 1
145+
1e20, // 2
146+
1e10, // 2
147+
1e20, // 3
148+
1e10, // 3
149+
1e20, // 4
150+
1e10 // 4
151+
]);
152+
expected = 200000000000000000000;
153+
154+
actual = scnrm2( 4, cx, 1, 0 );
155+
isApprox( t, actual, expected, 2.0 );
156+
157+
// Checked on Wolfram Alpha:
158+
cx = new Complex64Array([
159+
1e-20, // 1
160+
1e10, // 1
161+
1e-20, // 2
162+
1e10, // 2
163+
1e-20, // 3
164+
1e10, // 3
165+
1e-20, // 4
166+
1e10 // 4
167+
]);
168+
expected = 20000000000;
169+
170+
actual = scnrm2( 4, cx, 1, 0 );
171+
isApprox( t, actual, expected, 2.0 );
172+
173+
// Checked on Wolfram Alpha:
174+
cx = new Complex64Array([
175+
1e-19, // 1
176+
1.08420217e-19, // 1
177+
1e-19, // 2
178+
1.08420217e-19, // 2
179+
1e-19, // 3
180+
0, // 3
181+
1e-19, // 4
182+
0 // 4
183+
]);
184+
expected = 2.52012e-19;
185+
186+
actual = scnrm2( 4, cx, 1, 0 );
187+
isApprox( t, actual, expected, 2.0 );
108188
t.end();
109189
});
110190

0 commit comments

Comments
 (0)