o
    ðT·j‘U  ã                   @   sì   d dl Z d dlZd dlmZmZmZ d dlZd dlm	Z	 e j
jG dd„ de	jƒƒZG dd„ de	jƒZG dd	„ d	e	jƒZG d
d„ de	jƒZG dd„ de	jƒZe j
jG dd„ de	jƒƒZe j
jG dd„ de	jƒƒZe j
jG dd„ de	jƒƒZdS )é    N)Úassert_array_equalÚassert_equalÚassert_raises)Úutilc                   @   sÈ  e Zd ZdZdZg d¢ZdZeD ]–ZeZe	dd� 
ee¡Zee d g d‘e› ‘d‘e› ‘d	‘e› ‘d
‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d	‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘¡¡7 Zqej de¡dd„ ƒZej dedd… ¡dd„ ƒZej de¡dd„ ƒZej de¡d d!„ ƒZej de¡d"d#„ ƒZdS )$ÚTestCharacterStringú.f90Útest_character_string©Ú1Ú3ÚstarÚ ú(*))r   z

        subroutine Ú_input_z(c, o, n)
          character*zß, intent(in) :: c
          integer n
          !f2py integer, depend(c), intent(hide) :: n = slen(c)
          integer*1, dimension(n) :: o
          !f2py intent(out) o
          o = transfer(c, o)
        end subroutine Ú_output_zÍ, intent(out) :: c
          integer n
          integer*1, dimension(n), intent(in) :: o
          !f2py integer, depend(o), intent(hide) :: n = len(o)
          c = transfer(o, c)
        end subroutine Ú_array_input_z;(c, o, m, n)
          integer m, i, n
          character*aH  , intent(in), dimension(m) :: c
          !f2py integer, depend(c), intent(hide) :: m = len(c)
          !f2py integer, depend(c), intent(hide) :: n = f2py_itemsize(c)
          integer*1, dimension(m, n), intent(out) :: o
          do i=1,m
            o(i, :) = transfer(c(i), o(i, :))
          end do
        end subroutine Ú_array_output_z!(c, o, m, n)
          character*a  , intent(out), dimension(m) :: c
          integer n
          integer*1, dimension(m, n), intent(in) :: o
          !f2py character(f2py_len=n) :: c
          !f2py integer, depend(o), intent(hide) :: m = len(o)
          !f2py integer, depend(o), intent(hide) :: n = shape(o, 1)
          do i=1,m
            c(i) = transfer(o(i, :), c(i))
          end do
        end subroutine Ú_2d_array_input_zH(c, o, m1, m2, n)
          integer m1, m2, i, j, n
          character*aÍ  , intent(in), dimension(m1, m2) :: c
          !f2py integer, depend(c), intent(hide) :: m1 = len(c)
          !f2py integer, depend(c), intent(hide) :: m2 = shape(c, 1)
          !f2py integer, depend(c), intent(hide) :: n = f2py_itemsize(c)
          integer*1, dimension(m1, m2, n), intent(out) :: o
          do i=1,m1
            do j=1,m2
              o(i, j, :) = transfer(c(i, j), o(i, j, :))
            end do
          end do
        end subroutine z	
        Úlengthc                 C   s\   ddi  ||¡}t| j| jd | ƒ}ddddœ| }t||ƒtjttt	|ƒƒdd	�ƒ d S )
Nr   r   r   ÚaÚabcÚabcdeabcdeabcder	   Úu1©Údtype)
ÚgetÚgetattrÚmoduleÚfprefixr   ÚnpÚarrayÚlistÚmapÚord©Úselfr   ÚfsuffixÚfr   © r(   úb/home/dinkstrade/pdmp-scanner/venv/lib/python3.10/site-packages/numpy/f2py/tests/test_character.pyÚ
test_inputM   s   &zTestCharacterString.test_inputNéÿÿÿÿc                 C   sR   |}t | j| jd | ƒ}dddœ| }t|tjttt|ƒƒdd�ƒ| 	¡ ƒ d S )Nr   r   r   )r
   r   r   r   )
r   r   r   r   r   r    r!   r"   r#   Úencoder$   r(   r(   r)   Útest_outputV   s   ÿzTestCharacterString.test_outputc                 C   sn   |}t | j| jd | ƒ}tjddddœ| ddddœ| gd	d
�}tjdd„ |D ƒdd
�}t||ƒ|ƒ d S )Nr   r   r   r   r	   ÚAÚABCÚABCDEABCDEABCDEÚSr   c                 S   ó   g | ]}t |ƒ‘qS r(   ©r!   ©Ú.0Úsr(   r(   r)   Ú
<listcomp>i   ó    z8TestCharacterString.test_array_input.<locals>.<listcomp>r   ©r   r   r   r   r    r   ©r%   r   r&   r'   r   Úexpectedr(   r(   r)   Útest_array_input`   s   ÿþz$TestCharacterString.test_array_inputc                 C   sn   |}t | j| jd | ƒ}tjddddœ| ddddœ| gd	d
�}tjdd„ |D ƒdd
�}t||ƒ|ƒ d S )Nr   r   r   r   r	   r.   r/   r0   r1   r   c                 S   r2   r(   r3   r4   r(   r(   r)   r7   u   r8   z9TestCharacterString.test_array_output.<locals>.<listcomp>r   r9   )r%   r   r&   r'   r;   r   r(   r(   r)   Útest_array_outputl   s   ÿþz%TestCharacterString.test_array_outputc                 C   s�   |}t | j| jd | ƒ}tjddddœ| ddddœ| gd	d
ddœ| ddddœ| ggdd�}tjdd„ |D ƒddd�}t||ƒ|ƒ d S )Nr   r   r   r   r	   r.   r/   r0   r'   ÚfghÚfghijfghijfghijÚFÚFGHÚFGHIJFGHIJFGHIJr1   r   c                 S   s   g | ]	}d d„ |D ƒ‘qS )c                 S   r2   r(   r3   )r5   Úitemr(   r(   r)   r7   ‚   r8   zFTestCharacterString.test_2d_array_input.<locals>.<listcomp>.<listcomp>r(   )r5   Úrowr(   r(   r)   r7   ‚   s    z;TestCharacterString.test_2d_array_input.<locals>.<listcomp>r   ©r   Úorderr9   r:   r(   r(   r)   Útest_2d_array_inputx   s   ÿÿþüÿz'TestCharacterString.test_2d_array_input)Ú__name__Ú
__module__Ú__qualname__Úsuffixr   Úlength_listÚcoder   r&   Údictr   ÚclengthÚtextwrapÚdedentÚjoinÚpytestÚmarkÚparametrizer*   r-   r<   r=   rG   r(   r(   r(   r)   r      sŠ    þþý	÷	÷õõôïïííëääââá(Ø(Ø*Ö*Ö,Ô6Ê6Ê9

	

r   c                   @   s  e Zd ZdZdZe d g d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d	‘e› ‘d
‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘e› ‘d‘¡¡Ze	j
 dddg¡d d!„ ƒZd"d#„ Ze	j
 dg d$¢¡d%d&„ ƒZd'd(„ Ze	j
 dg d$¢¡d)d*„ ƒZd+d,„ Zd-d.„ Zd/d0„ Ze	j
 dddg¡d1d2„ ƒZd3d4„ Ze	j
 dddg¡d5d6„ ƒZe	j
 dddg¡d7d8„ ƒZd9d:„ Ze	j
 d;¡d<d=„ ƒZd>d?„ Zd@S )AÚTestCharacterr   Útest_characterr   ú
       subroutine z™_input(c, o)
          character, intent(in) :: c
          integer*1 o
          !f2py intent(out) o
          o = transfer(c, o)
       end subroutine z_input

       subroutine z�_output(c, o)
          character :: c
          integer*1, intent(in) :: o
          !f2py intent(out) c
          c = transfer(o, c)
       end subroutine z_output

       subroutine z“_input_output(c, o)
          character, intent(in) :: c
          character o
          !f2py intent(out) o
          o = c
       end subroutine z!_input_output

       subroutine zŒ_inout(c, n)
          character :: c, n
          !f2py intent(in) n
          !f2py intent(inout) c
          c = n
       end subroutine z_inout

       function z…_return(o) result (c)
          character :: c
          character, intent(in) :: o
          c = transfer(o, c)
       end function z_return

       subroutine zè_array_input(c, o)
          character, intent(in) :: c(3)
          integer*1 o(3)
          !f2py intent(out) o
          integer i
          do i=1,3
            o(i) = transfer(c(i), o(i))
          end do
       end subroutine z _array_input

       subroutine a'  _2d_array_input(c, o)
          character, intent(in) :: c(2, 3)
          integer*1 o(2, 3)
          !f2py intent(out) o
          integer i, j
          do i=1,2
            do j=1,3
              o(i, j) = transfer(c(i, j), o(i, j))
            end do
          end do
       end subroutine z#_2d_array_input

       subroutine zØ_array_output(c, o)
          character :: c(3)
          integer*1, intent(in) :: o(3)
          !f2py intent(out) c
          do i=1,3
            c(i) = transfer(o(i), c(i))
          end do
       end subroutine z!_array_output

       subroutine zÊ_array_inout(c, n)
          character :: c(3), n(3)
          !f2py intent(in) n(3)
          !f2py intent(inout) c(3)
          do i=1,3
            c(i) = n(i)
          end do
       end subroutine z _array_inout

       subroutine a   _2d_array_inout(c, n)
          character :: c(2, 3), n(2, 3)
          !f2py intent(in) n(2, 3)
          !f2py intent(inout) c(2. 3)
          integer i, j
          do i=1,2
            do j=1,3
              c(i, j) = n(i, j)
            end do
          end do
       end subroutine z!_2d_array_inout

       function z»_array_return(o) result (c)
          character, dimension(3) :: c
          character, intent(in) :: o(3)
          do i=1,3
            c(i) = o(i)
          end do
       end function z_array_return

       function zœ_optional(o) result (c)
          character, intent(in) :: o
          !f2py character o = "a"
          character :: c
          c = o
       end function z_optional
    r   ÚcÚS1c                 C   s¨   t | j| jd ƒ}t|tjd|d�ƒtdƒƒ t|tjd|d�ƒtdƒƒ t|tjdg|d�ƒtdƒƒ t|tjd|d�ƒtdƒƒ t|tjdgg|d�ƒtdƒƒ d S )NÚ_inputr   r   ó   ar   )r   r   r   r   r   r    r#   ©r%   r   r'   r(   r(   r)   r*   ó   s   $zTestCharacter.test_inputc              
   C   sª  t | j| jd ƒ}t|dƒtdƒƒ t|dƒtdƒƒ t|dƒdƒ t|dƒdƒ t|dƒdƒ t|dƒtdƒƒ t|d	ƒtdƒƒ t|dgƒtdƒƒ t|t d¡ƒtdƒƒ t|t dg¡ƒtdƒƒ t d¡}t||ƒtdƒƒ t dg¡}t||ƒtdƒƒ z|g ƒ W n ty¢ } zt|ƒ 	d
¡s˜‚ W Y d }~nd }~ww t
|j› d�ƒ‚z|dƒ W n tyÌ } zt|ƒ 	d¡sÁ‚ W Y d }~d S d }~ww t
|j› d�ƒ‚)Nr[   r   r\   r   r   ó    ó    Úabs   abz got 0-listz! should have failed on empty listéa   z got int instancez  should have failed on int value)r   r   r   r   r#   r   r    Ú
IndexErrorÚstrÚendswithÚSystemErrorrH   Ú	TypeError©r%   r'   r   Úmsgr(   r(   r)   Útest_input_variaý   sB   
ÿ€ÿÿ€ÿzTestCharacter.test_input_varia)rY   rZ   ÚU1c                 C   sv   t | j| jd ƒ}t|tjg d¢|d�ƒtjtttdƒƒdd�ƒ t|tjg d¢|d�ƒtjtttdƒƒdd�ƒ d S )NÚ_array_input©r   ÚbrY   r   r   Úi1©r\   ó   bó   c)	r   r   r   r   r   r    r!   r"   r#   r]   r(   r(   r)   r<      s   ÿÿzTestCharacter.test_array_inputc              
   C   s¶   t | j| jd ƒ}t|g d¢ƒtjtttdƒƒdd�ƒ t|g d¢ƒtjtttdƒƒdd�ƒ z|g d¢ƒ W n t	yR } zt
|ƒ d¡sG‚ W Y d }~d S d }~ww t|j› d	�ƒ‚)
Nrk   rl   r   rn   r   ro   ©r   rm   rY   Údú)th dimension must be fixed to 3 but got 4ú" should have failed on wrong input)r   r   r   r   r   r    r!   r"   r#   Ú
ValueErrorrc   rd   re   rH   )r%   r'   rh   r(   r(   r)   Útest_array_input_varia)  s(   ÿÿÿþ€ÿ
ÿz$TestCharacter.test_array_input_variac                 C   sZ   t | j| jd ƒ}tjg d¢g d¢g|dd�}| |dkr tjntj¡}t||ƒ|ƒ d S )NÚ_2d_array_inputrl   ©rs   Úer'   r@   rE   rj   )	r   r   r   r   r    ÚviewÚuint32Úuint8r   )r%   r   r'   r   r;   r(   r(   r)   rG   :  s   
ÿÿz!TestCharacter.test_2d_array_inputc                 C   s6   t | j| jd ƒ}t|tdƒƒdƒ t|dƒdƒ d S )NÚ_outputr\   r   r_   )r   r   r   r   r#   ©r%   r'   r(   r(   r)   r-   C  s   zTestCharacter.test_outputc                 C   s<   t | j| jd ƒ}t|tttdƒƒƒtjtdƒdd�ƒ d S )NÚ_array_outputr   rZ   r   )	r   r   r   r   r!   r"   r#   r   r    r   r(   r(   r)   r=   I  s   ÿzTestCharacter.test_array_outputc                 C   s@   t | j| jd ƒ}t|dƒdƒ t|dƒdƒ t|dƒdƒ d S )NÚ_input_outputr\   r   r   r_   ©r   r   r   r   r   r(   r(   r)   Útest_input_outputO  s   zTestCharacter.test_input_outputc                 C   sª   t | j| jd ƒ}tjtdƒ|d�}||dƒ t|tjtdƒ|jd�ƒ ||dd … dƒ t|tjtdƒ|jd�ƒ tjdg|d�}||dƒ t|tjdg|jd�ƒ d S )	NÚ_inoutr   r   r.   ÚAbcé   ÚBÚABc)r   r   r   r   r    r!   r   r   )r%   r   r'   r   r(   r(   r)   Ú
test_inoutV  s   

zTestCharacter.test_inoutc              
   C   sÈ   t | j| jd ƒ}tjddd�}||dƒ t|tjd|jd�ƒ tjdgdd�}||dƒ t|tjdg|jd�ƒ z|ddƒ W n ty[ } zt|ƒ 	d¡sP‚ W Y d }~d S d }~ww t
|j› d�ƒ‚)	Nr„   r   ÚS3r   r.   r…   z
 got 3-strz  should have failed on str value)r   r   r   r   r    r   r   rv   rc   rd   re   rH   rg   r(   r(   r)   Útest_inout_variad  s    

ÿ€ÿzTestCharacter.test_inout_variac              
   C   s.  t | j| jd ƒ}tjg d¢|dd�}tjg d¢|dd�}|||ƒ t||ƒ tjg d¢|d�}||dd … |ƒ t|tjg d	¢|d�ƒ tjg d¢g|dd�}|||ƒ t|tjg d¢g|d�ƒ tjg d¢|dd�}z|||ƒ W n tyŽ } zt|ƒ d
¡sƒ‚ W Y d }~d S d }~ww t	|j
› d�ƒ‚)NÚ_array_inout©r.   r‡   ÚCr@   rE   rl   rr   r   r†   )r   r.   r‡   rŽ   rt   ru   )r   r   r   r   r    r   rv   rc   rd   re   rH   )r%   r   r'   Únr   rh   r(   r(   r)   Útest_array_inoutv  s2   


ÿþ€ÿ
ÿzTestCharacter.test_array_inoutc                 C   sb   t | j| jd ƒ}tjg d¢g d¢g|dd�}tjg d¢g d¢g|dd�}|||ƒ t||ƒ d S )NÚ_2d_array_inoutr�   )ÚDÚEr@   r@   rE   rl   ry   r9   )r%   r   r'   r�   r   r(   r(   r)   Útest_2d_array_inout’  s   
ÿþ
ÿþ
z!TestCharacter.test_2d_array_inoutc                 C   s$   t | j| jd ƒ}t|dƒdƒ d S )NÚ_returnr   r\   r‚   r   r(   r(   r)   Útest_returnž  s   zTestCharacter.test_returnz*fortran function returning array segfaultsc                 C   s6   t | j| jd ƒ}tjtdƒdd�}t||ƒ|ƒ d S )NÚ_array_returnr   rZ   r   )r   r   r   r   r    r!   r   )r%   r'   r   r(   r(   r)   Útest_array_return£  s   zTestCharacter.test_array_returnc                 C   s0   t | j| jd ƒ}t|ƒ dƒ t|dƒdƒ d S )NÚ	_optionalr\   ó   Br‚   r   r(   r(   r)   Útest_optionalª  s   zTestCharacter.test_optionalN)rH   rI   rJ   rK   r   rP   rQ   rR   rM   rS   rT   rU   r*   ri   r<   rw   rG   r-   r=   rƒ   r‰   r‹   r�   r”   r–   Úskipr˜   r›   r(   r(   r(   r)   rV   ‡   s”    ÿúøóñìêåã!ß#Ý+Õ-Ó7É9Ç@ÀB¾I·KµU«W©]£_¡dœg
	#






rV   c                   @   sª   e Zd ZdZdZe de› de› de› de› de› de› d	e› d
e› de› de› de› de› d�¡Zej	j
dd„ ƒZdd„ Zdd„ Zdd„ Zej	 dddg¡dd„ ƒZdS )ÚTestMiscCharacterr   Útest_misc_characterrX   a(  _gh18684(x, y, m)
         character(len=5), dimension(m), intent(in) :: x
         character*5, dimension(m), intent(out) :: y
         integer i, m
         !f2py integer, intent(hide), depend(x) :: m = f2py_len(x)
         do i=1,m
           y(i) = x(i)
         end do
       end subroutine z_gh18684

       subroutine z«_gh6308(x, i)
         integer i
         !f2py check(i>=0 && i<12) i
         character*5 name, x
         common name(12)
         name(i + 1) = x
       end subroutine z_gh6308

       subroutine zý_gh4519(x)
         character(len=*), intent(in) :: x(:)
         !f2py intent(out) x
         integer :: i
         ! Uncomment for debug printing:
         !do i=1, size(x)
         !   print*, "x(",i,")=", x(i)
         !end do
       end subroutine z_gh4519

       pure function aq  _gh3425(x) result (y)
         character(len=*), intent(in) :: x
         character(len=len(x)) :: y
         integer :: i
         do i = 1, len(x)
           j = iachar(x(i:i))
           if (j>=iachar("a") .and. j<=iachar("z") ) then
             y(i:i) = achar(j-32)
           else
             y(i:i) = x(i:i)
           endif
         end do
       end function z_gh3425

       subroutine aO  _character_bc_new(x, y, z)
         character, intent(in) :: x
         character, intent(out) :: y
         !f2py character, depend(x) :: y = x
         !f2py character, dimension((x=='a'?1:2)), depend(x), intent(out) :: z
         character, dimension(*) :: z
         !f2py character, optional, check(x == 'a' || x == 'b') :: x = 'a'
         !f2py callstatement (*f2py_func)(&x, &y, z)
         !f2py callprotoargument character*, character*, character*
         if (y.eq.x) then
           y = x
         else
           y = 'e'
         endif
         z(1) = 'c'
       end subroutine z%_character_bc_new

       subroutine aG  _character_bc_old(x, y, z)
         character, intent(in) :: x
         character, intent(out) :: y
         !f2py character, depend(x) :: y = x[0]
         !f2py character, dimension((*x=='a'?1:2)), depend(x), intent(out) :: z
         character, dimension(*) :: z
         !f2py character, optional, check(*x == 'a' || x[0] == 'b') :: x = 'a'
         !f2py callstatement (*f2py_func)(x, y, z)
         !f2py callprotoargument char*, char*, char*
          if (y.eq.x) then
           y = x
         else
           y = 'e'
         endif
         z(1) = 'c'
       end subroutine z_character_bc_old
    c                 C   s:   t | j| jd ƒ}tjddgdd�}||ƒ}t||ƒ d S )NÚ_gh18684ÚabcdeÚfghijÚS5r   r9   )r%   r'   ÚxÚyr(   r(   r)   Útest_gh18684  s   zTestMiscCharacter.test_gh18684c                 C   s~   t | j| jd ƒ}t| jjjjt d¡ƒ tt| jjjƒdƒ |ddƒ t| jjjd dƒ |ddƒ t| jjjd d	ƒ d S )
NÚ_gh6308r¢   é   r    r   s   abcdeÚ12345é   s   12345)	r   r   r   r   Ú_BLNK_Únamer   r   Úlenr   r(   r(   r)   Útest_gh6308  s   

zTestMiscCharacter.test_gh6308c              
   C   sÈ   t | j| jd ƒ}dtdt d¡d�fdtdt d¡d�ftjg d¢dd	�td
t d¡d�fg d¢td
t d¡d�fddgtdt d¡d�ffD ]\}}||ƒ}| ¡ D ]\}}tt ||ƒ|ƒ qTqHd S )NÚ_gh4519r   r(   rZ   )Úshaper   ÚtextÚS4)r
   Ú2r   r   )é   )r
   r²   Ú34ÚS2r   )é   )	r   r   r   rN   r   r   r    Úitemsr   )r%   r'   r£   r;   ÚrÚkÚvr(   r(   r)   Útest_gh4519  s    ÿÿùÿ÷zTestMiscCharacter.test_gh4519c                 C   s@   t | j| jd ƒ}t|dƒdƒ t|dƒdƒ t|dƒdƒ d S )NÚ_gh3425ÚabCs   ABCr   r^   ÚabC12ds   ABC12Dr‚   r   r(   r(   r)   Útest_gh3425(  s   zTestMiscCharacter.test_gh3425ÚstateÚnewÚoldc                    sr   t | j| jd | ƒ‰ ˆ ƒ \}}t|dƒ tt|ƒdƒ ˆ dƒ\}}t|dƒ tt|ƒdƒ tt‡ fdd„ƒ d S )NÚ_character_bc_r\   r†   rp   r¶   c                      s   ˆ dƒS )Nrq   r(   r(   ©r'   r(   r)   Ú<lambda>=  s    z5TestMiscCharacter.test_character_bc.<locals>.<lambda>)r   r   r   r   r¬   r   Ú	Exception)r%   rÀ   rY   r   r(   rÄ   r)   Útest_character_bc1  s   


z#TestMiscCharacter.test_character_bcN)rH   rI   rJ   rK   r   rP   rQ   rM   rS   rT   Úslowr¥   r­   r»   r¿   rU   rÇ   r(   r(   r(   r)   r�   ±  sF    ÿ	÷õïíåã)×+Õ:Æ<ÄK
µN
	r�   c                   @   s.   e Zd Ze dddd¡gZdd„ Zdd„ Zd	S )
ÚTestStringScalarArrÚtestsÚsrcÚstringzscalar_string.f90c                 C   óB   | j jj| j jjfD ]}d}|j|ksJ ‚d}|j|ksJ ‚q
d S )Nr(   z|S8)r   Ústring_testrÌ   Ústring77r¯   r   ©r%   Úoutr;   r(   r(   r)   Ú	test_charC  ó   ÿûzTestStringScalarArr.test_charc                 C   rÍ   )N)r©   é   z|S12)r   rÎ   ÚstrarrÚstrarr77r¯   r   rÐ   r(   r(   r)   Útest_char_arrK  rÓ   z!TestStringScalarArr.test_char_arrN)rH   rI   rJ   r   ÚgetpathÚsourcesrÒ   r×   r(   r(   r(   r)   rÉ   @  s    rÉ   c                   @   ó&   e Zd Ze dddd¡gZdd„ ZdS )ÚTestStringAssumedLengthrÊ   rË   rÌ   z	gh24008.fc                 C   s   | j  dd¡ d S )NÚjoeÚbob)r   Úgreet)r%   r(   r(   r)   Útest_gh24008V  s   z$TestStringAssumedLength.test_gh24008N)rH   rI   rJ   r   rØ   rÙ   rß   r(   r(   r(   r)   rÛ   S  s    rÛ   c                   @   rÚ   )ÚTestStringOptionalInOutrÊ   rË   rÌ   zgh24662.f90c                 C   sx   | j  ¡  tjddd�}| j  |¡ d| ¡  ¡ v sJ ‚t t¡� d}| j  |¡ W d   ƒ d S 1 s5w   Y  d S )NÚhiÚS32r   zoutput stringÚHi)	r   Ústring_inout_optionalr   r    ÚtobytesÚdecoderS   ÚraisesrÆ   )r%   r   Úaar(   r(   r)   Útest_gh24662]  s   
"þz$TestStringOptionalInOut.test_gh24662N)rH   rI   rJ   r   rØ   rÙ   ré   r(   r(   r(   r)   rà   Y  s    rà   c                   @   ó8   e Zd Ze dddd¡e dddd¡gZdZdd„ Zd	S )
ÚTestNewCharHandlingrÊ   rË   rÌ   zgh25286.pyfúgh25286.f90Ú_char_handling_testc                 C   ó   | j  d¡}|dksJ ‚d S ©NÚTr¶   ©r   Úcharint©r%   Úinfor(   r(   r)   Útest_gh25286p  ó   z TestNewCharHandling.test_gh25286N©rH   rI   rJ   r   rØ   rÙ   Úmodule_namerõ   r(   r(   r(   r)   rë   g  ó    þrë   c                   @   rê   )
ÚTestBCCharHandlingrÊ   rË   rÌ   zgh25286_bc.pyfrì   rí   c                 C   rî   rï   rñ   ró   r(   r(   r)   rõ   }  rö   zTestBCCharHandling.test_gh25286Nr÷   r(   r(   r(   r)   rú   t  rù   rú   )rS   rP   Únumpy.testingr   r   r   Únumpyr   Únumpy.f2py.testsr   rT   rÈ   ÚF2PyTestr   rV   r�   rÉ   rÛ   rà   rë   rú   r(   r(   r(   r)   Ú<module>   s(    ~  , 