File size: 1,147 Bytes
dc2106c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

from numpy.distutils.from_template import process_str
from numpy.testing import assert_equal


pyf_src = """

python module foo

    <_rd=real,double precision>

    interface

        subroutine <s,d>foosub(tol)

            <_rd>, intent(in,out) :: tol

        end subroutine <s,d>foosub

    end interface

end python module foo

"""

expected_pyf = """

python module foo

    interface

        subroutine sfoosub(tol)

            real, intent(in,out) :: tol

        end subroutine sfoosub

        subroutine dfoosub(tol)

            double precision, intent(in,out) :: tol

        end subroutine dfoosub

    end interface

end python module foo

"""


def normalize_whitespace(s):
    """

    Remove leading and trailing whitespace, and convert internal

    stretches of whitespace to a single space.

    """
    return ' '.join(s.split())


def test_from_template():
    """Regression test for gh-10712."""
    pyf = process_str(pyf_src)
    normalized_pyf = normalize_whitespace(pyf)
    normalized_expected_pyf = normalize_whitespace(expected_pyf)
    assert_equal(normalized_pyf, normalized_expected_pyf)