3
Kd
                 @   s`   d dl Zd dlmZ ddlmZ d dlmZ d dlZd dl	Z	G dd dej
ZG dd	 d	ZdS )
    N)assert_array_equal   )util)crackfortranc               @   s   e Zd ZdZdd ZdS )TestNoSpacea|  
        subroutine subb(k)
          real(8), intent(inout) :: k(:)
          k=k+1
        endsubroutine

        subroutine subc(w,k)
          real(8), intent(in) :: w(:)
          real(8), intent(out) :: k(size(w))
          k=w+1
        endsubroutine

        function t0(value)
          character value
          character t0
          t0 = value
        endfunction
    c             C   s|   t jdddgt jd}t jdddgt jd}| jj| t||d  | jj||g t||d  | jjddksxtd S )Nr         )Zdtype      2)	nparrayZfloat64moduleZsubbr   Zsubct0AssertionError)selfkw r   V/var/www/html/virt/lib64/python3.6/site-packages/numpy/f2py/tests/test_crackfortran.pytest_module   s    zTestNoSpace.test_moduleN)__name__
__module____qualname__coder   r   r   r   r   r   	   s   r   c               @   s   e Zd Zdd Zdd ZdS )TestPublicPrivatec          
   C   s   |d }|j d}|jtjd W d Q R X tjt|g}t|dksNt|d }d|d d d	 ksntd
|d d d	 kstd|d d d	 kstd
|d d d	 kstd|d d d	 kstd
|d d d	 kstd S )Nzmod.f90r   a>              module foo
              private
              integer :: a
              public :: setA
              integer :: b
            contains
              subroutine setA(v)
                integer, intent(in) :: v
                a = v
              end subroutine setA
            end module foo
            r   r   privatevarsaattrspecpublicbseta)openwritetextwrapdedentr   strlenr   )r   tmp_pathf_pathffmodr   r   r   test_defaultPrivate)   s    z%TestPublicPrivate.test_defaultPrivatec          
   C   s   |d }|j d}|jtjd W d Q R X tjt|g}t|dksNt|d }d|d d d	 ksntd
|d d d	 kstd|d d d	 kstd
|d d d	 kstd S )Nzmod.f90r   a+              module foo
              public
              integer, private :: a
              public :: setA
            contains
              subroutine setA(v)
                integer, intent(in) :: v
                a = v
              end subroutine setA
            end module foo
            r   r   r   r   r   r   r   r!   )r"   r#   r$   r%   r   r&   r'   r   )r   r(   r)   r*   r+   r   r   r   test_defaultPublicC   s    z$TestPublicPrivate.test_defaultPublicN)r   r   r   r,   r-   r   r   r   r   r   (   s   r   )Znumpyr   Znumpy.testingr    r   Z
numpy.f2pyr   tempfiler$   ZF2PyTestr   r   r   r   r   r   <module>   s   