2323var tape = require ( 'tape' ) ;
2424var Float64Array = require ( '@stdlib/array/float64' ) ;
2525var Int32Array = require ( '@stdlib/array/int32' ) ;
26- var EPS = require ( '@stdlib/constants/float64/eps' ) ;
27- var abs = require ( '@stdlib/math/base/special/abs' ) ;
2826var dgttrf = require ( './../lib/ndarray.js' ) ;
2927
3028
@@ -40,35 +38,6 @@ var POSITIVE_STRIDES_OFFSET_1 = require( './fixtures/positive_stride_offset_1.js
4038var POSITIVE_STRIDES_OFFSET_2 = require ( './fixtures/positive_stride_offset_2.json' ) ;
4139
4240
43- // FUNCTIONS //
44-
45- /**
46- * Tests for element-wise approximate equality.
47- *
48- * @private
49- * @param {Object } t - test object
50- * @param {Collection } actual - actual values
51- * @param {Collection } expected - expected values
52- * @param {number } rtol - relative tolerance
53- */
54- function isApprox ( t , actual , expected , rtol ) {
55- var delta ;
56- var tol ;
57- var i ;
58-
59- t . strictEqual ( actual . length , expected . length , 'returns expected value' ) ;
60- for ( i = 0 ; i < expected . length ; i ++ ) {
61- if ( actual [ i ] === expected [ i ] ) {
62- t . strictEqual ( actual [ i ] , expected [ i ] , 'returns expected value' ) ;
63- } else {
64- delta = abs ( actual [ i ] - expected [ i ] ) ;
65- tol = rtol * EPS * abs ( expected [ i ] ) ;
66- t . ok ( delta <= tol , 'within tolerance. actual: ' + actual [ i ] + '. expected: ' + expected [ i ] + '. delta: ' + delta + '. tol: ' + tol + '.' ) ;
67- }
68- }
69- }
70-
71-
7241// TESTS //
7342
7443tape ( 'main export is a function' , function test ( t ) {
@@ -152,10 +121,10 @@ tape( 'the function performs the `LU` factorization of a real tri diagonal matri
152121 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
153122 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
154123 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
155- isApprox ( t , D , expectedD , 1.0 ) ;
156- isApprox ( t , DU , expectedDU , 1.0 ) ;
157- isApprox ( t , DU2 , expectedDU2 , 1.0 ) ;
158- isApprox ( t , DL , expectedDL , 1.0 ) ;
124+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
125+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
126+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
127+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
159128
160129 data = POSITIVE_STRIDES_NO_OFFSET_2 ;
161130
@@ -176,10 +145,10 @@ tape( 'the function performs the `LU` factorization of a real tri diagonal matri
176145 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
177146 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
178147 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
179- isApprox ( t , D , expectedD , 1.0 ) ;
180- isApprox ( t , DU , expectedDU , 1.0 ) ;
181- isApprox ( t , DU2 , expectedDU2 , 1.0 ) ;
182- isApprox ( t , DL , expectedDL , 1.0 ) ;
148+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
149+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
150+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
151+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
183152
184153 t . end ( ) ;
185154} ) ;
@@ -218,10 +187,10 @@ tape( 'the function supports providing positive strides', function test( t ) {
218187 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
219188 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
220189 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
221- isApprox ( t , D , expectedD , 1.0 ) ;
222- isApprox ( t , DU , expectedDU , 1.0 ) ;
223- isApprox ( t , DU2 , expectedDU2 , 1.0 ) ;
224- isApprox ( t , DL , expectedDL , 1.0 ) ;
190+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
191+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
192+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
193+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
225194
226195 data = LARGE_POSITIVE_STRIDE_2 ;
227196
@@ -242,10 +211,10 @@ tape( 'the function supports providing positive strides', function test( t ) {
242211 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
243212 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
244213 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
245- isApprox ( t , D , expectedD , 1.0 ) ;
246- isApprox ( t , DU , expectedDU , 1.0 ) ;
247- isApprox ( t , DU2 , expectedDU2 , 1.0 ) ;
248- isApprox ( t , DL , expectedDL , 1.0 ) ;
214+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
215+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
216+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
217+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
249218
250219 t . end ( ) ;
251220} ) ;
@@ -284,10 +253,10 @@ tape( 'the function supports providing negative strides', function test( t ) {
284253 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
285254 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
286255 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
287- isApprox ( t , D , expectedD , 1.0 ) ;
288- isApprox ( t , DU , expectedDU , 1.0 ) ;
289- isApprox ( t , DU2 , expectedDU2 , 1.0 ) ;
290- isApprox ( t , DL , expectedDL , 1.0 ) ;
256+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
257+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
258+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
259+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
291260
292261 t . end ( ) ;
293262} ) ;
@@ -326,10 +295,10 @@ tape( 'the function supports providing mixed strides', function test( t ) {
326295 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
327296 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
328297 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
329- isApprox ( t , D , expectedD , 1.0 ) ;
330- isApprox ( t , DU , expectedDU , 1.0 ) ;
331- isApprox ( t , DU2 , expectedDU2 , 1.0 ) ;
332- isApprox ( t , DL , expectedDL , 1.0 ) ;
298+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
299+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
300+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
301+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
333302
334303 t . end ( ) ;
335304} ) ;
@@ -368,10 +337,10 @@ tape( 'the function supports providing index offsets', function test( t ) {
368337 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
369338 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
370339 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
371- isApprox ( t , D , expectedD , 1.0 ) ;
372- isApprox ( t , DU , expectedDU , 1.0 ) ;
373- isApprox ( t , DU2 , expectedDU2 , 1.0 ) ;
374- isApprox ( t , DL , expectedDL , 1.0 ) ;
340+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
341+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
342+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
343+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
375344
376345 data = POSITIVE_STRIDES_OFFSET_2 ;
377346
@@ -392,10 +361,10 @@ tape( 'the function supports providing index offsets', function test( t ) {
392361 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
393362 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
394363 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
395- isApprox ( t , D , expectedD , 1.0 ) ;
396- isApprox ( t , DU , expectedDU , 1.0 ) ;
397- isApprox ( t , DU2 , expectedDU2 , 1.0 ) ;
398- isApprox ( t , DL , expectedDL , 1.0 ) ;
364+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
365+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
366+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
367+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
399368
400369 t . end ( ) ;
401370} ) ;
@@ -434,10 +403,10 @@ tape( 'the function leaves the input arrays unchanged when `N` is equal to zero'
434403 info = dgttrf ( N , DL , data . sdl , data . odl , D , data . sd , data . od , DU , data . sdu , data . odu , DU2 , data . sdu2 , data . odu2 , IPIV , data . si , data . oi ) ; // eslint-disable-line max-len
435404 t . strictEqual ( info , data . expectedInfo , 'returns expected value' ) ;
436405 t . deepEqual ( IPIV , expectedIPIV , 'returns expected value' ) ;
437- isApprox ( t , D , expectedD , 0.0 ) ;
438- isApprox ( t , DU , expectedDU , 0.0 ) ;
439- isApprox ( t , DU2 , expectedDU2 , 0.0 ) ;
440- isApprox ( t , DL , expectedDL , 0.0 ) ;
406+ t . deepEqual ( D , expectedD , 'returns expected value' ) ;
407+ t . deepEqual ( DU , expectedDU , 'returns expected value' ) ;
408+ t . deepEqual ( DU2 , expectedDU2 , 'returns expected value' ) ;
409+ t . deepEqual ( DL , expectedDL , 'returns expected value' ) ;
441410
442411 t . end ( ) ;
443412} ) ;
0 commit comments