Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
test_kind.py53 linesDownload Raw Back to tests
1import platform
2import sys
3
4import pytest
5
6from numpy.f2py.crackfortran import (
7    _selected_int_kind_func as selected_int_kind,
8    _selected_real_kind_func as selected_real_kind,
9)
10
11from . import util
12
13IS_PPC_OR_AIX = platform.machine().lower().startswith("ppc") or platform.system() == 'AIX'
14
15class TestKind(util.F2PyTest):
16    sources = [util.getpath("tests", "src", "kind", "foo.f90")]
17
18    @pytest.mark.skipif(sys.maxsize < 2 ** 31 + 1,
19                        reason="Fails for 32 bit machines")
20    def test_int(self):
21        """Test `int` kind_func for integers up to 10**40."""
22        selectedintkind = self.module.selectedintkind
23
24        for i in range(40):
25            assert selectedintkind(i) == selected_int_kind(
26                i
27            ), f"selectedintkind({i}): expected {selected_int_kind(i)!r} but got {selectedintkind(i)!r}"
28
29    def test_real(self):
30        """
31        Test (processor-dependent) `real` kind_func for real numbers
32        of up to 31 digits precision (extended/quadruple).
33        """
34        selectedrealkind = self.module.selectedrealkind
35
36        for i in range(32):
37            assert selectedrealkind(i) == selected_real_kind(
38                i
39            ), f"selectedrealkind({i}): expected {selected_real_kind(i)!r} but got {selectedrealkind(i)!r}"
40
41    @pytest.mark.xfail(IS_PPC_OR_AIX,
42                       reason="Some PowerPC may not support full IEEE 754 precision")
43    def test_quad_precision(self):
44        """
45        Test kind_func for quadruple precision [`real(16)`] of 32+ digits .
46        """
47        selectedrealkind = self.module.selectedrealkind
48
49        for i in range(32, 40):
50            assert selectedrealkind(i) == selected_real_kind(
51                i
52            ), f"selectedrealkind({i}): expected {selected_real_kind(i)!r} but got {selectedrealkind(i)!r}"
53 
codekingpro/portable-devtools · Team Ai