Skip to content

Commit 91d0ec8

Browse files
committed
test: add tests for negative strides
--- 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 ---
1 parent ecf4a87 commit 91d0ec8

File tree

1 file changed

+147
-1
lines changed

1 file changed

+147
-1
lines changed

lib/node_modules/@stdlib/lapack/base/dgebal/test/test.ndarray.js

Lines changed: 147 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 array-element-newline */
19+
/* eslint-disable array-element-newline, max-lines */
2020

2121
'use strict';
2222

@@ -1103,3 +1103,149 @@ tape( 'the function returns expected values for job = both with complex input (c
11031103
t.deepEqual( scale, expectedScale, 'returns expected value' );
11041104
t.end();
11051105
});
1106+
1107+
tape( 'the function returns expected values for job = scale with zero norm (row-major) (negative strides)', function test( t ) {
1108+
var expectedScale;
1109+
var expectedOut;
1110+
var expectedA;
1111+
var scale;
1112+
var info;
1113+
var out;
1114+
var A;
1115+
1116+
A = new Float64Array([
1117+
6.0, 0.0, 3.0,
1118+
5.0, 0.0, 2.0,
1119+
4.0, 0.0, 1.0
1120+
]);
1121+
out = new Float64Array( 2 );
1122+
scale = new Float64Array( 3 );
1123+
1124+
expectedOut = new Float64Array( [ 2.0, 0.0 ] );
1125+
expectedScale = new Float64Array( [ 1.0, 1.0, 1.0 ] );
1126+
expectedA = new Float64Array([
1127+
6.0, 0.0, 3.0,
1128+
5.0, 0.0, 2.0,
1129+
4.0, 0.0, 1.0
1130+
]);
1131+
1132+
info = dgebal( 'scale', 3, A, -3, -1, 8, out, -1, 1, scale, -1, 2 );
1133+
t.strictEqual( info, 0, 'returns expected value' );
1134+
t.deepEqual( out, expectedOut, 'returns expected value' );
1135+
t.deepEqual( A, expectedA, 'returns expected value' );
1136+
t.deepEqual( scale, expectedScale, 'returns expected value' );
1137+
t.end();
1138+
});
1139+
1140+
tape( 'the function returns expected values for job = scale with zero norm (column-major) (negative strides)', function test( t ) {
1141+
var expectedScale;
1142+
var expectedOut;
1143+
var expectedA;
1144+
var scale;
1145+
var info;
1146+
var out;
1147+
var A;
1148+
1149+
A = new Float64Array([
1150+
1.0, 2.0, 3.0,
1151+
0.0, 0.0, 0.0,
1152+
4.0, 5.0, 6.0
1153+
]);
1154+
A = new Float64Array([
1155+
6.0, 5.0, 4.0,
1156+
0.0, 0.0, 0.0,
1157+
3.0, 2.0, 1.0
1158+
]);
1159+
out = new Float64Array( 2 );
1160+
scale = new Float64Array( 3 );
1161+
1162+
expectedOut = new Float64Array( [ 2.0, 0.0 ] );
1163+
expectedScale = new Float64Array( [ 1.0, 1.0, 1.0 ] );
1164+
expectedA = new Float64Array([
1165+
1.0, 2.0, 3.0,
1166+
0.0, 0.0, 0.0,
1167+
4.0, 5.0, 6.0
1168+
]);
1169+
expectedA = new Float64Array([
1170+
6.0, 5.0, 4.0,
1171+
0.0, 0.0, 0.0,
1172+
3.0, 2.0, 1.0
1173+
]);
1174+
1175+
info = dgebal( 'scale', 3, A, -1, -3, 8, out, -1, 1, scale, -1, 2 );
1176+
1177+
t.strictEqual( info, 0, 'returns expected value' );
1178+
t.deepEqual( out, expectedOut, 'returns expected value' );
1179+
t.deepEqual( A, expectedA, 'returns expected value' );
1180+
t.deepEqual( scale, expectedScale, 'returns expected value' );
1181+
t.end();
1182+
});
1183+
1184+
tape( 'the function returns expected values for job = scale with small values (row-major) (negative strides)', function test( t ) {
1185+
var expectedScale;
1186+
var expectedOut;
1187+
var expectedA;
1188+
var scale;
1189+
var info;
1190+
var out;
1191+
var A;
1192+
1193+
A = new Float64Array([
1194+
4.0e4, 2.0, 1.0, 4.0e-4,
1195+
3.0e4, 2.0, 1.0, 3.0e-4,
1196+
2.0e4, 2.0, 1.0, 2.0e-4,
1197+
1.0e4, 2.0, 1.0, 1.0e-4
1198+
]);
1199+
out = new Float64Array( 2 );
1200+
scale = new Float64Array( 4 );
1201+
1202+
expectedOut = new Float64Array( [ 3.0, 0.0 ] );
1203+
expectedScale = new Float64Array( [ 1.0, 128.0, 128.0, 4096.0 ] );
1204+
expectedA = new Float64Array([
1205+
4.0e4, 2.56e2, 1.28e2, 1.6384,
1206+
2.34375e2, 2.0, 1.0, 9.6e-3,
1207+
1.5625e2, 2.0, 1.0, 6.4e-3,
1208+
2.44140625, 6.25e-2, 3.125e-2, 1.0e-4
1209+
]);
1210+
1211+
info = dgebal( 'scale', 4, A, -4, -1, 15, out, -1, 1, scale, -1, 3 );
1212+
t.strictEqual( info, 0, 'returns expected value' );
1213+
t.deepEqual( out, expectedOut, 'returns expected value' );
1214+
t.deepEqual( A, expectedA, 'returns expected value' );
1215+
t.deepEqual( scale, expectedScale, 'returns expected value' );
1216+
t.end();
1217+
});
1218+
1219+
tape( 'the function returns expected values for job = scale with small values (column-major)', function test( t ) {
1220+
var expectedScale;
1221+
var expectedOut;
1222+
var expectedA;
1223+
var scale;
1224+
var info;
1225+
var out;
1226+
var A;
1227+
1228+
A = new Float64Array([
1229+
4.0e4, 3.0e4, 2.0e4, 1.0e4,
1230+
2.0, 2.0, 2.0, 2.0,
1231+
1.0, 1.0, 1.0, 1.0,
1232+
4.0e-4, 3.0e-4, 2.0e-4, 1.0e-4
1233+
]);
1234+
out = new Float64Array( 2 );
1235+
scale = new Float64Array( 4 );
1236+
1237+
expectedOut = new Float64Array( [ 3.0, 0.0 ] );
1238+
expectedScale = new Float64Array( [ 1.0, 128.0, 128.0, 4096.0 ] );
1239+
expectedA = new Float64Array([
1240+
4.0e4, 2.34375e2, 1.5625e2, 2.44140625,
1241+
2.56e2, 2.0, 2.0, 6.25e-2,
1242+
1.28e2, 1.0, 1.0, 3.125e-2,
1243+
1.6384, 9.6e-3, 6.4e-3, 1.0e-4
1244+
]);
1245+
info = dgebal( 'scale', 4, A, -1, -4, 15, out, -1, 1, scale, -1, 3 );
1246+
t.strictEqual( info, 0, 'returns expected value' );
1247+
t.deepEqual( out, expectedOut, 'returns expected value' );
1248+
t.deepEqual( A, expectedA, 'returns expected value' );
1249+
t.deepEqual( scale, expectedScale, 'returns expected value' );
1250+
t.end();
1251+
});

0 commit comments

Comments
 (0)