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)
 |