45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
|
|
||
|
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)
|