@@ -27,6 +27,9 @@ var randu = require( '@stdlib/random/base/randu' );
2727var round = require ( './../../../../base/special/round' ) ;
2828var ln = require ( './../../../../base/special/ln' ) ;
2929var 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 ( './../../../../base/assert/is-positive-zero' ) ;
3033var tryRequire = require ( '@stdlib/utils/try-require' ) ;
3134
3235
@@ -77,6 +80,35 @@ tape( 'the function returns `1.0` if provided `x` and `b` such that `x = b` (exc
7780 t . end ( ) ;
7881} ) ;
7982
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+
80112tape ( 'the function returns `ln(x) / ln(b)`' , opts , function test ( t ) {
81113 var b ;
82114 var x ;
0 commit comments