24
24
25
25
var tape = require ( 'tape' ) ;
26
26
var Float32Array = require ( '@stdlib/array/float32' ) ;
27
- var EPS = require ( '@stdlib/constants/float32/eps' ) ;
28
- var abs = require ( '@stdlib/math/base/special/abs' ) ;
29
27
var sger = require ( './../lib/ndarray.js' ) ;
30
28
31
29
@@ -56,35 +54,6 @@ var rsa1nsa2n = require( './fixtures/row_major_sa1n_sa2n.json' );
56
54
var rcap = require ( './fixtures/row_major_complex_access_pattern.json' ) ;
57
55
58
56
59
- // FUNCTIONS //
60
-
61
- /**
62
- * Tests for element-wise approximate equality.
63
- *
64
- * @private
65
- * @param {Object } t - test object
66
- * @param {Collection } actual - actual values
67
- * @param {Collection } expected - expected values
68
- * @param {number } rtol - relative tolerance
69
- */
70
- function isApprox ( t , actual , expected , rtol ) {
71
- var delta ;
72
- var tol ;
73
- var i ;
74
-
75
- t . strictEqual ( actual . length , expected . length , 'returns expected value' ) ;
76
- for ( i = 0 ; i < expected . length ; i ++ ) {
77
- if ( actual [ i ] === expected [ i ] ) {
78
- t . strictEqual ( actual [ i ] , expected [ i ] , 'returns expected value' ) ;
79
- } else {
80
- delta = abs ( actual [ i ] - expected [ i ] ) ;
81
- tol = rtol * EPS * abs ( expected [ i ] ) ;
82
- t . ok ( delta <= tol , 'within tolerance. actual: ' + actual [ i ] + '. expected: ' + expected [ i ] + '. delta: ' + delta + '. tol: ' + tol + '.' ) ;
83
- }
84
- }
85
- }
86
-
87
-
88
57
// TESTS //
89
58
90
59
tape ( 'main export is a function' , function test ( t ) {
@@ -211,8 +180,8 @@ tape( 'the function the rank 1 operation `A = α*x*y^T + A` (row-major)', functi
211
180
expected = new Float32Array ( data . A_out ) ;
212
181
213
182
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
214
- isApprox ( t , a , expected , 2.0 ) ;
215
183
t . strictEqual ( out , a , 'returns expected value' ) ;
184
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
216
185
t . end ( ) ;
217
186
} ) ;
218
187
@@ -233,8 +202,8 @@ tape( 'the function the rank 1 operation `A = α*x*y^T + A` (column-major)', fun
233
202
expected = new Float32Array ( data . A_out ) ;
234
203
235
204
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
236
- isApprox ( t , a , expected , 2.0 ) ;
237
205
t . strictEqual ( out , a , 'returns expected value' ) ;
206
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
238
207
t . end ( ) ;
239
208
} ) ;
240
209
@@ -391,8 +360,8 @@ tape( 'the function supports specifying the strides of the first and second dime
391
360
expected = new Float32Array ( data . A_out ) ;
392
361
393
362
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
394
- isApprox ( t , a , expected , 2.0 ) ;
395
363
t . strictEqual ( out , a , 'returns expected value' ) ;
364
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
396
365
t . end ( ) ;
397
366
} ) ;
398
367
@@ -413,8 +382,8 @@ tape( 'the function supports specifying the strides of the first and second dime
413
382
expected = new Float32Array ( data . A_out ) ;
414
383
415
384
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
416
- isApprox ( t , a , expected , 2.0 ) ;
417
385
t . strictEqual ( out , a , 'returns expected value' ) ;
386
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
418
387
t . end ( ) ;
419
388
} ) ;
420
389
@@ -435,8 +404,8 @@ tape( 'the function supports a negative stride for the first dimension of `A` (r
435
404
expected = new Float32Array ( data . A_out ) ;
436
405
437
406
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
438
- isApprox ( t , a , expected , 2.0 ) ;
439
407
t . strictEqual ( out , a , 'returns expected value' ) ;
408
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
440
409
t . end ( ) ;
441
410
} ) ;
442
411
@@ -457,8 +426,8 @@ tape( 'the function supports a negative stride for the first dimension of `A` (c
457
426
expected = new Float32Array ( data . A_out ) ;
458
427
459
428
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
460
- isApprox ( t , a , expected , 2.0 ) ;
461
429
t . strictEqual ( out , a , 'returns expected value' ) ;
430
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
462
431
t . end ( ) ;
463
432
} ) ;
464
433
@@ -479,8 +448,8 @@ tape( 'the function supports a negative stride for the second dimension of `A` (
479
448
expected = new Float32Array ( data . A_out ) ;
480
449
481
450
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
482
- isApprox ( t , a , expected , 2.0 ) ;
483
451
t . strictEqual ( out , a , 'returns expected value' ) ;
452
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
484
453
t . end ( ) ;
485
454
} ) ;
486
455
@@ -501,8 +470,8 @@ tape( 'the function supports a negative stride for the second dimension of `A` (
501
470
expected = new Float32Array ( data . A_out ) ;
502
471
503
472
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
504
- isApprox ( t , a , expected , 2.0 ) ;
505
473
t . strictEqual ( out , a , 'returns expected value' ) ;
474
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
506
475
t . end ( ) ;
507
476
} ) ;
508
477
@@ -523,8 +492,8 @@ tape( 'the function supports negative strides for `A` (row-major)', function tes
523
492
expected = new Float32Array ( data . A_out ) ;
524
493
525
494
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
526
- isApprox ( t , a , expected , 2.0 ) ;
527
495
t . strictEqual ( out , a , 'returns expected value' ) ;
496
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
528
497
t . end ( ) ;
529
498
} ) ;
530
499
@@ -545,8 +514,8 @@ tape( 'the function supports negative strides for `A` (column-major)', function
545
514
expected = new Float32Array ( data . A_out ) ;
546
515
547
516
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
548
- isApprox ( t , a , expected , 2.0 ) ;
549
517
t . strictEqual ( out , a , 'returns expected value' ) ;
518
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
550
519
t . end ( ) ;
551
520
} ) ;
552
521
@@ -567,8 +536,8 @@ tape( 'the function supports specifying an offset parameter for `A` (row-major)'
567
536
expected = new Float32Array ( data . A_out ) ;
568
537
569
538
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
570
- isApprox ( t , a , expected , 2.0 ) ;
571
539
t . strictEqual ( out , a , 'returns expected value' ) ;
540
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
572
541
t . end ( ) ;
573
542
} ) ;
574
543
@@ -589,8 +558,8 @@ tape( 'the function supports specifying an offset parameter for `A` (column-majo
589
558
expected = new Float32Array ( data . A_out ) ;
590
559
591
560
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
592
- isApprox ( t , a , expected , 2.0 ) ;
593
561
t . strictEqual ( out , a , 'returns expected value' ) ;
562
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
594
563
t . end ( ) ;
595
564
} ) ;
596
565
@@ -611,8 +580,8 @@ tape( 'the function supports specifying `x` and `y` strides (row-major)', functi
611
580
expected = new Float32Array ( data . A_out ) ;
612
581
613
582
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
614
- isApprox ( t , a , expected , 2.0 ) ;
615
583
t . strictEqual ( out , a , 'returns expected value' ) ;
584
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
616
585
t . end ( ) ;
617
586
} ) ;
618
587
@@ -633,8 +602,8 @@ tape( 'the function supports specifying `x` and `y` strides (column-major)', fun
633
602
expected = new Float32Array ( data . A_out ) ;
634
603
635
604
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
636
- isApprox ( t , a , expected , 2.0 ) ;
637
605
t . strictEqual ( out , a , 'returns expected value' ) ;
606
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
638
607
t . end ( ) ;
639
608
} ) ;
640
609
@@ -655,8 +624,8 @@ tape( 'the function supports specifying a negative `x` stride (row-major)', func
655
624
expected = new Float32Array ( data . A_out ) ;
656
625
657
626
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
658
- isApprox ( t , a , expected , 2.0 ) ;
659
627
t . strictEqual ( out , a , 'returns expected value' ) ;
628
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
660
629
t . end ( ) ;
661
630
} ) ;
662
631
@@ -677,8 +646,8 @@ tape( 'the function supports specifying a negative `x` stride (column-major)', f
677
646
expected = new Float32Array ( data . A_out ) ;
678
647
679
648
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
680
- isApprox ( t , a , expected , 2.0 ) ;
681
649
t . strictEqual ( out , a , 'returns expected value' ) ;
650
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
682
651
t . end ( ) ;
683
652
} ) ;
684
653
@@ -699,8 +668,8 @@ tape( 'the function supports specifying a negative `y` stride (row-major)', func
699
668
expected = new Float32Array ( data . A_out ) ;
700
669
701
670
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
702
- isApprox ( t , a , expected , 2.0 ) ;
703
671
t . strictEqual ( out , a , 'returns expected value' ) ;
672
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
704
673
t . end ( ) ;
705
674
} ) ;
706
675
@@ -721,8 +690,8 @@ tape( 'the function supports specifying a negative `y` stride (column-major)', f
721
690
expected = new Float32Array ( data . A_out ) ;
722
691
723
692
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
724
- isApprox ( t , a , expected , 2.0 ) ;
725
693
t . strictEqual ( out , a , 'returns expected value' ) ;
694
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
726
695
t . end ( ) ;
727
696
} ) ;
728
697
@@ -743,8 +712,8 @@ tape( 'the function supports specifying negative strides for `x` and `y` (row-ma
743
712
expected = new Float32Array ( data . A_out ) ;
744
713
745
714
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
746
- isApprox ( t , a , expected , 2.0 ) ;
747
715
t . strictEqual ( out , a , 'returns expected value' ) ;
716
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
748
717
t . end ( ) ;
749
718
} ) ;
750
719
@@ -765,8 +734,8 @@ tape( 'the function supports specifying negative strides for `x` and `y` (column
765
734
expected = new Float32Array ( data . A_out ) ;
766
735
767
736
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
768
- isApprox ( t , a , expected , 2.0 ) ;
769
737
t . strictEqual ( out , a , 'returns expected value' ) ;
738
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
770
739
t . end ( ) ;
771
740
} ) ;
772
741
@@ -787,8 +756,8 @@ tape( 'the function supports complex access patterns (row-major)', function test
787
756
expected = new Float32Array ( data . A_out ) ;
788
757
789
758
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
790
- isApprox ( t , a , expected , 2.0 ) ;
791
759
t . strictEqual ( out , a , 'returns expected value' ) ;
760
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
792
761
t . end ( ) ;
793
762
} ) ;
794
763
@@ -809,7 +778,7 @@ tape( 'the function supports complex access patterns (column-major)', function t
809
778
expected = new Float32Array ( data . A_out ) ;
810
779
811
780
out = sger ( data . M , data . N , data . alpha , x , data . strideX , data . offsetX , y , data . strideY , data . offsetY , a , data . strideA1 , data . strideA2 , data . offsetA ) ;
812
- isApprox ( t , a , expected , 2.0 ) ;
813
781
t . strictEqual ( out , a , 'returns expected value' ) ;
782
+ t . deepEqual ( out , expected , 'returns expected value' ) ;
814
783
t . end ( ) ;
815
784
} ) ;
0 commit comments