import math
import random
-import platform
import sys
import unittest
import warnings
# PyFloat_Pack/Unpack*() API. See also gh-130317 and
# e.g. https://developercommunity.visualstudio.com/t/155064
signaling = 0
- if platform.machine().startswith('parisc'):
- # HP PA RISC uses 0 for quiet, see:
+ if _testcapi.nan_msb_is_signaling:
+ # HP PA RISC and some MIPS CPUs use 0 for quiet, see:
# https://en.wikipedia.org/wiki/NaN#Encoding
signaling = 1
i = make_nan(size, sign, not signaling)
import math
import operator
import unittest
-import platform
import struct
import sys
import weakref
self.assertRaises(StopIteration, next, it)
def test_half_float(self):
+ _testcapi = import_helper.import_module('_testcapi')
# Little-endian examples from:
# http://en.wikipedia.org/wiki/Half_precision_floating-point_format
format_bits_float__cleanRoundtrip_list = [
# Check that packing produces a bit pattern representing a quiet NaN:
# all exponent bits and the msb of the fraction should all be 1.
- if platform.machine().startswith('parisc'):
- # HP PA RISC uses 0 for quiet, see:
+ if _testcapi.nan_msb_is_signaling:
+ # HP PA RISC and some MIPS CPUs use 0 for quiet, see:
# https://en.wikipedia.org/wiki/NaN#Encoding
expected = 0x7c
else:
return -1;
}
- return 0;
+#if (defined(__mips__) && !defined(__mips_nan2008)) || defined(__hppa__)
+ return PyModule_Add(mod, "nan_msb_is_signaling", PyBool_FromLong(1));
+#else
+ return PyModule_Add(mod, "nan_msb_is_signaling", PyBool_FromLong(0));
+#endif
}