@@ -27,6 +27,9 @@ var randu = require( '@stdlib/random/base/randu' );
27
27
var round = require ( '@stdlib/math/base/special/round' ) ;
28
28
var ln = require ( '@stdlib/math/base/special/ln' ) ;
29
29
var EPS = require ( '@stdlib/constants/float64/eps' ) ;
30
+ var PINF = require ( '@stdlib/constants/float64/pinf' ) ;
31
+ var NINF = require ( '@stdlib/constants/float64/ninf' ) ;
32
+ var isPositiveZero = require ( '@stdlib/math/base/assert/is-positive-zero' ) ;
30
33
var tryRequire = require ( '@stdlib/utils/try-require' ) ;
31
34
32
35
@@ -77,6 +80,35 @@ tape( 'the function returns `1.0` if provided `x` and `b` such that `x = b` (exc
77
80
t . end ( ) ;
78
81
} ) ;
79
82
83
+ tape ( 'the function returns `+infinity` if provided `x = +infinity` and a valid `b`' , opts , function test ( t ) {
84
+ t . equal ( log ( PINF , 1.0 ) , PINF , 'returns expected value' ) ;
85
+ t . equal ( log ( PINF , 2.0 ) , PINF , 'returns expected value' ) ;
86
+ t . equal ( log ( PINF , 10.0 ) , PINF , 'returns expected value' ) ;
87
+ t . end ( ) ;
88
+ } ) ;
89
+
90
+ tape ( 'the function returns `-infinity` if provided `x = +-0` and a valid `b`' , opts , function test ( t ) {
91
+ t . equal ( log ( 0.0 , 1.0 ) , NINF , 'returns expected value' ) ;
92
+ t . equal ( log ( 0.0 , 2.0 ) , NINF , 'returns expected value' ) ;
93
+ t . equal ( log ( 0.0 , 10.0 ) , NINF , 'returns expected value' ) ;
94
+ t . equal ( log ( - 0.0 , 1.0 ) , NINF , 'returns expected value' ) ;
95
+ t . equal ( log ( - 0.0 , 2.0 ) , NINF , 'returns expected value' ) ;
96
+ t . equal ( log ( - 0.0 , 10.0 ) , NINF , 'returns expected value' ) ;
97
+ t . end ( ) ;
98
+ } ) ;
99
+
100
+ tape ( 'the function returns positive zero if provided `x = 1.0` and a valid `b`' , opts , function test ( t ) {
101
+ var v ;
102
+
103
+ v = log ( 1.0 , 2.0 ) ;
104
+ t . equal ( isPositiveZero ( v ) , true , 'returns expected value' ) ;
105
+
106
+ v = log ( 1.0 , 10.0 ) ;
107
+ t . equal ( isPositiveZero ( v ) , true , 'returns expected value' ) ;
108
+
109
+ t . end ( ) ;
110
+ } ) ;
111
+
80
112
tape ( 'the function returns `ln(x) / ln(b)`' , opts , function test ( t ) {
81
113
var b ;
82
114
var x ;
0 commit comments