def test_fmin(self): from _numpypy import fmin import math nnan, nan, inf, ninf = float('-nan'), float('nan'), float('inf'), float('-inf') a = [ninf, -5, 0, 5, inf] assert (fmin(a, [ninf]*5) == [ninf]*5).all() assert (fmin(a, [inf]*5) == a).all() assert (fmin(a, [1]*5) == [ninf, -5, 0, 1, 1]).all() assert math.isnan(fmin(nan, 0)) assert math.isnan(fmin(0, nan)) assert math.isnan(fmin(nan, nan)) # The numpy docs specify that the FIRST NaN should be used if both are NaN assert math.copysign(1.0, fmin(nnan, nan)) == -1.0
def test_fmin(self): from _numpypy import fmin import math nnan, nan, inf, ninf = float('-nan'), float('nan'), float('inf'), float('-inf') a = [ninf, -5, 0, 5, inf] assert (fmin(a, [ninf]*5) == [ninf]*5).all() assert (fmin(a, [inf]*5) == a).all() assert (fmin(a, [1]*5) == [ninf, -5, 0, 1, 1]).all() assert math.isnan(fmin(nan, 0)) assert math.isnan(fmin(0, nan)) assert math.isnan(fmin(nan, nan)) # The numpy docs specify that the FIRST NaN should be used if both are NaN # use copysign on both sides to sidestep bug in nan representaion # on Microsoft win32 assert math.copysign(1., fmin(nnan, nan)) == math.copysign(1., nnan)
def test_fmin(self): from _numpypy import fmin import math nnan, nan, inf, ninf = float('-nan'), float('nan'), float( 'inf'), float('-inf') a = [ninf, -5, 0, 5, inf] assert (fmin(a, [ninf] * 5) == [ninf] * 5).all() assert (fmin(a, [inf] * 5) == a).all() assert (fmin(a, [1] * 5) == [ninf, -5, 0, 1, 1]).all() assert math.isnan(fmin(nan, 0)) assert math.isnan(fmin(0, nan)) assert math.isnan(fmin(nan, nan)) # The numpy docs specify that the FIRST NaN should be used if both are NaN # use copysign on both sides to sidestep bug in nan representaion # on Microsoft win32 assert math.copysign(1., fmin(nnan, nan)) == math.copysign(1., nnan)