24
24
25
25
var tape = require ( 'tape' ) ;
26
26
var Float64Array = require ( '@stdlib/array/float64' ) ;
27
- var EPS = require ( '@stdlib/constants/float64/eps' ) ;
28
- var abs = require ( '@stdlib/math/base/special/abs' ) ;
29
27
var dgemv = require ( './../lib/dgemv.js' ) ;
30
28
31
29
@@ -46,35 +44,6 @@ var rxnyp = require( './fixtures/row_major_xnyp.json' );
46
44
var rxpyp = require ( './fixtures/row_major_xpyp.json' ) ;
47
45
48
46
49
- // FUNCTIONS //
50
-
51
- /**
52
- * Tests for element-wise approximate equality.
53
- *
54
- * @private
55
- * @param {Object } t - test object
56
- * @param {Collection } actual - actual values
57
- * @param {Collection } expected - expected values
58
- * @param {number } rtol - relative tolerance
59
- */
60
- function isApprox ( t , actual , expected , rtol ) {
61
- var delta ;
62
- var tol ;
63
- var i ;
64
-
65
- t . strictEqual ( actual . length , expected . length , 'returns expected value' ) ;
66
- for ( i = 0 ; i < expected . length ; i ++ ) {
67
- if ( actual [ i ] === expected [ i ] ) {
68
- t . strictEqual ( actual [ i ] , expected [ i ] , 'returns expected value' ) ;
69
- } else {
70
- delta = abs ( actual [ i ] - expected [ i ] ) ;
71
- tol = rtol * EPS * abs ( expected [ i ] ) ;
72
- t . ok ( delta <= tol , 'within tolerance. actual: ' + actual [ i ] + '. expected: ' + expected [ i ] + '. delta: ' + delta + '. tol: ' + tol + '.' ) ;
73
- }
74
- }
75
- }
76
-
77
-
78
47
// TESTS //
79
48
80
49
tape ( 'main export is a function' , function test ( t ) {
@@ -253,8 +222,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x +
253
222
expected = new Float64Array ( data . y_out ) ;
254
223
255
224
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
256
- isApprox ( t , y , expected , 2.0 ) ;
257
225
t . strictEqual ( out , y , 'returns expected value' ) ;
226
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
227
+
258
228
t . end ( ) ;
259
229
} ) ;
260
230
@@ -275,8 +245,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x +
275
245
expected = new Float64Array ( data . y_out ) ;
276
246
277
247
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
278
- isApprox ( t , y , expected , 2.0 ) ;
279
248
t . strictEqual ( out , y , 'returns expected value' ) ;
249
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
250
+
280
251
t . end ( ) ;
281
252
} ) ;
282
253
@@ -297,8 +268,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x +
297
268
expected = new Float64Array ( data . y_out ) ;
298
269
299
270
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
300
- isApprox ( t , y , expected , 2.0 ) ;
301
271
t . strictEqual ( out , y , 'returns expected value' ) ;
272
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
273
+
302
274
t . end ( ) ;
303
275
} ) ;
304
276
@@ -319,8 +291,9 @@ tape( 'the function performs one of the matrix-vector operations `y = α*A*x +
319
291
expected = new Float64Array ( data . y_out ) ;
320
292
321
293
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
322
- isApprox ( t , y , expected , 2.0 ) ;
323
294
t . strictEqual ( out , y , 'returns expected value' ) ;
295
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
296
+
324
297
t . end ( ) ;
325
298
} ) ;
326
299
@@ -339,6 +312,7 @@ tape( 'the function returns a reference to the second input vector (row-major)',
339
312
340
313
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
341
314
t . strictEqual ( out , y , 'returns expected value' ) ;
315
+
342
316
t . end ( ) ;
343
317
} ) ;
344
318
@@ -357,6 +331,7 @@ tape( 'the function returns a reference to the second input vector (column-major
357
331
358
332
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
359
333
t . strictEqual ( out , y , 'returns expected value' ) ;
334
+
360
335
t . end ( ) ;
361
336
} ) ;
362
337
@@ -523,8 +498,9 @@ tape( 'the function supports specifying `x` and `y` strides (row-major)', functi
523
498
expected = new Float64Array ( data . y_out ) ;
524
499
525
500
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
526
- isApprox ( t , y , expected , 2.0 ) ;
527
501
t . strictEqual ( out , y , 'returns expected value' ) ;
502
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
503
+
528
504
t . end ( ) ;
529
505
} ) ;
530
506
@@ -545,8 +521,9 @@ tape( 'the function supports specifying `x` and `y` strides (column-major)', fun
545
521
expected = new Float64Array ( data . y_out ) ;
546
522
547
523
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
548
- isApprox ( t , y , expected , 2.0 ) ;
549
524
t . strictEqual ( out , y , 'returns expected value' ) ;
525
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
526
+
550
527
t . end ( ) ;
551
528
} ) ;
552
529
@@ -567,8 +544,9 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func
567
544
expected = new Float64Array ( data . y_out ) ;
568
545
569
546
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
570
- isApprox ( t , y , expected , 2.0 ) ;
571
547
t . strictEqual ( out , y , 'returns expected value' ) ;
548
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
549
+
572
550
t . end ( ) ;
573
551
} ) ;
574
552
@@ -589,8 +567,9 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f
589
567
expected = new Float64Array ( data . y_out ) ;
590
568
591
569
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
592
- isApprox ( t , y , expected , 2.0 ) ;
593
570
t . strictEqual ( out , y , 'returns expected value' ) ;
571
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
572
+
594
573
t . end ( ) ;
595
574
} ) ;
596
575
@@ -611,8 +590,9 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func
611
590
expected = new Float64Array ( data . y_out ) ;
612
591
613
592
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
614
- isApprox ( t , y , expected , 2.0 ) ;
615
593
t . strictEqual ( out , y , 'returns expected value' ) ;
594
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
595
+
616
596
t . end ( ) ;
617
597
} ) ;
618
598
@@ -633,8 +613,9 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f
633
613
expected = new Float64Array ( data . y_out ) ;
634
614
635
615
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
636
- isApprox ( t , y , expected , 2.0 ) ;
637
616
t . strictEqual ( out , y , 'returns expected value' ) ;
617
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
618
+
638
619
t . end ( ) ;
639
620
} ) ;
640
621
@@ -655,8 +636,9 @@ tape( 'the function supports complex access patterns (row-major)', function test
655
636
expected = new Float64Array ( data . y_out ) ;
656
637
657
638
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
658
- isApprox ( t , y , expected , 2.0 ) ;
659
639
t . strictEqual ( out , y , 'returns expected value' ) ;
640
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
641
+
660
642
t . end ( ) ;
661
643
} ) ;
662
644
@@ -677,7 +659,8 @@ tape( 'the function supports complex access patterns (column-major)', function t
677
659
expected = new Float64Array ( data . y_out ) ;
678
660
679
661
out = dgemv ( data . order , data . trans , data . M , data . N , data . alpha , a , data . lda , x , data . strideX , data . beta , y , data . strideY ) ;
680
- isApprox ( t , y , expected , 2.0 ) ;
681
662
t . strictEqual ( out , y , 'returns expected value' ) ;
663
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
664
+
682
665
t . end ( ) ;
683
666
} ) ;
0 commit comments