@@ -5,6 +5,7 @@ class TestMath < Test::Unit::TestCase
5
5
def assert_infinity ( a , *rest )
6
6
rest = [ "not infinity: #{ a . inspect } " ] if rest . empty?
7
7
assert_predicate ( a , :infinite? , *rest )
8
+ assert_predicate ( a , :positive? , *rest )
8
9
end
9
10
10
11
def assert_nan ( a , *rest )
@@ -165,6 +166,8 @@ def test_log
165
166
assert_nothing_raised { assert_nan ( Math . log ( 0.0 , 0.0 ) ) }
166
167
assert_nothing_raised { assert_nan ( Math . log ( Float ::NAN ) ) }
167
168
assert_nothing_raised { assert_nan ( Math . log ( 1.0 , Float ::NAN ) ) }
169
+ assert_nothing_raised { assert_infinity ( -Math . log ( 0 ) ) }
170
+ assert_nothing_raised { assert_infinity ( -Math . log ( 0 , 2 ) ) }
168
171
end
169
172
170
173
def test_log2
@@ -179,6 +182,7 @@ def test_log2
179
182
assert_raise_with_message ( Math ::DomainError , /\b log2\b / ) { Math . log2 ( -1.0 ) }
180
183
assert_raise_with_message ( Math ::DomainError , /\b log2\b / ) { Math . log2 ( -Float ::EPSILON ) }
181
184
assert_nothing_raised { assert_nan ( Math . log2 ( Float ::NAN ) ) }
185
+ assert_nothing_raised { assert_infinity ( -Math . log2 ( 0 ) ) }
182
186
end
183
187
184
188
def test_log10
@@ -193,6 +197,7 @@ def test_log10
193
197
assert_raise_with_message ( Math ::DomainError , /\b log10\b / ) { Math . log10 ( -1.0 ) }
194
198
assert_raise_with_message ( Math ::DomainError , /\b log10\b / ) { Math . log10 ( -Float ::EPSILON ) }
195
199
assert_nothing_raised { assert_nan ( Math . log10 ( Float ::NAN ) ) }
200
+ assert_nothing_raised { assert_infinity ( -Math . log10 ( 0 ) ) }
196
201
end
197
202
198
203
def test_sqrt
@@ -277,8 +282,7 @@ def test_gamma
277
282
assert_raise_with_message ( Math ::DomainError , /\b gamma\b / ) { Math . gamma ( -1.0 ) }
278
283
x = Math . gamma ( -0.0 )
279
284
mesg = "Math.gamma(-0.0) should be -INF"
280
- assert_infinity ( x , mesg )
281
- assert_predicate ( x , :negative? , mesg )
285
+ assert_infinity ( -x , mesg )
282
286
assert_nan ( Math . gamma ( Float ::NAN ) )
283
287
end
284
288
@@ -299,7 +303,6 @@ def test_lgamma
299
303
x , sign = Math . lgamma ( -0.0 )
300
304
mesg = "Math.lgamma(-0.0) should be [INF, -1]"
301
305
assert_infinity ( x , mesg )
302
- assert_predicate ( x , :positive? , mesg )
303
306
assert_equal ( -1 , sign , mesg )
304
307
x , sign = Math . lgamma ( Float ::NAN )
305
308
assert_nan ( x )
0 commit comments