summaryrefslogtreecommitdiff
path: root/numpy/lib/tests/test_machar.py
blob: 584cd1164c595c9c6ad3f9cd2ceacd89e7c42fa9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from numpy.testing import NumpyTestCase, NumpyTest

from numpy.lib.machar import MachAr
import numpy.core.numerictypes as ntypes
from numpy import seterr, array

class TestMachAr(NumpyTestCase):
    def _run_machar_highprec(self):
        # Instanciate MachAr instance with high enough precision to cause
        # underflow
        try:
            hiprec = ntypes.float96
            machar = MachAr(lambda v:array([v], hiprec))
        except AttributeError:
            "Skipping test: no nyptes.float96 available on this platform."

    def test_underlow(self):
        """Regression testing for #759: instanciating MachAr for dtype =
        np.float96 raises spurious warning."""
        serrstate = seterr(all='raise')
        try:
            try:
                self._run_machar_highprec()
            except FloatingPointError, e:
                self.fail("Caught %s exception, should not have been raised." % e)
        finally:
            seterr(**serrstate)

if __name__ == "__main__":
    NumpyTest().run()