Ë
    ¡eh‘U  ã                   óT  — 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e	j                  «      «       Z G d„ de	j                  «      Z G d„ d	e	j                  «      Z G d
„ de	j                  «      Z G d„ de	j                  «      Ze j                  j                   G d„ de	j                  «      «       Ze j                  j                   G d„ de	j                  «      «       Ze j                  j                   G d„ de	j                  «      «       Zy)é    N)Úassert_array_equalÚassert_equalÚassert_raises)Úutilc                   ó  — e Zd ZdZdZg d¢ZdZeD ]À  ZeZ e	d¬«      j                  ee«      Ze ej                  dj                  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‘«      «      z  ZŒÂ ej                   j#                  de«      d„ «       Zej                   j#                  dedd «      d„ «       Zej                   j#                  de«      d„ «       Zej                   j#                  de«      d„ «       Zej                   j#                  de«      d„ «       Zy)Ú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                 ó  — ddij                  ||«      }t        | j                  | j                  dz   |z   «      }ddddœ|   }t	         ||«      t        j                  t        t        t        |«      «      d¬	«      «       y )
Nr   r   r   ÚaÚabcÚabcdeabcdeabcder   Úu1©Údtype)
ÚgetÚgetattrÚmoduleÚfprefixr   ÚnpÚarrayÚlistÚmapÚord©Úselfr   ÚfsuffixÚfr   s        ú]/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/numpy/f2py/tests/test_character.pyÚ
test_inputzTestCharacterString.test_inputM   sk   € à˜&�/×%Ñ% f¨fÓ5ˆÜ�D—K‘K §¡°	Ñ!9¸GÑ!CÓDˆà˜E¨;Ñ7¸Ñ?ˆä™1˜Q›4¤§¡¬$¬s´3¸«{Ó*;À4Ô!HÕIó    Néÿÿÿÿc                 óü   — |}t        | j                  | j                  dz   |z   «      }dddœ|   }t         |t	        j
                  t        t        t        |«      «      d¬«      «      |j                  «       «       y )Nr   r   r   )r   r   r   r   )
r   r    r!   r   r"   r#   r$   r%   r&   Úencoder'   s        r+   Útest_outputzTestCharacterString.test_outputV   sb   € àˆÜ�D—K‘K §¡°
Ñ!:¸WÑ!DÓEˆà˜EÑ" 6Ñ*ˆä™1œRŸX™X¤d¬3¬s°A«;Ó&7¸tÔDÓEØŸ8™8›:õ	'r-   c                 ó,  — |}t        | j                  | j                  dz   |z   «      }t        j                  ddddœ|   ddddœ|   gd	¬
«      }t        j                  |D �cg c]  }t        |«      ‘Œ c}d¬
«      }t         ||«      |«       y c c}w )Nr   r   r   r   r   ÚAÚABCÚABCDEABCDEABCDEÚSr   r   ©r   r    r!   r"   r#   r$   r   )r(   r   r)   r*   r   ÚsÚexpecteds          r+   Útest_array_inputz$TestCharacterString.test_array_input`   sŒ   € àˆÜ�D—K‘K §¡°Ñ!?À'Ñ!IÓJˆä�H‰H˜C e°[ÑAÀ&ÑIØ e°[ÑAÀ&ÑIðà"ô$ˆô —8‘8¨aÖ0¨œT !�WÒ0¸Ô=ˆÜ™1˜Q›4 Õ*ùò 1ó   Á#Bc                 ó,  — |}t        | j                  | j                  dz   |z   «      }t        j                  ddddœ|   ddddœ|   gd	¬
«      }t        j                  |D �cg c]  }t        |«      ‘Œ c}d¬
«      }t         ||«      |«       y c c}w )Nr   r   r   r   r   r3   r4   r5   r6   r   r   r7   )r(   r   r)   r*   r9   r8   r   s          r+   Útest_array_outputz%TestCharacterString.test_array_outputl   s�   € àˆÜ�D—K‘K §¡Ð0@Ñ!@À7Ñ!JÓKˆä—8‘8Ø˜U¨KÑ8¸Ñ@Ø˜U¨KÑ8¸Ñ@ðBØILôNˆô �H‰H xÖ0 !”d˜1•gÒ0¸Ô=ˆÜ™1˜Q›4 Õ*ùò 1r;   c                 ó~  — |}t        | j                  | j                  dz   |z   «      }t        j                  ddddœ|   ddddœ|   gd	d
ddœ|   ddddœ|   ggd¬«      }t        j                  |D ��cg c]  }|D �cg c]  }t        |«      ‘Œ c}‘Œ c}}dd¬«      }t         ||«      |«       y c c}w c c}}w )Nr   r   r   r   r   r3   r4   r5   r*   ÚfghÚfghijfghijfghijÚFÚFGHÚFGHIJFGHIJFGHIJr6   r   r   ©r   Úorderr7   )r(   r   r)   r*   r   ÚrowÚitemr9   s           r+   Útest_2d_array_inputz'TestCharacterString.test_2d_array_inputx   sÍ   € àˆÜ�D—K‘K §¡Ð0BÑ!BÀWÑ!LÓMˆä�H‰H˜S u°kÑBÀ6ÑJØ  u°kÑBÀ6ÑJðLà  u°kÑBÀ6ÑJØ  u°kÑBÀ6ÑJðLðMð ô	 ˆô
 —8‘8ÀQ×G¸c°SÖ9¨Tœd 4�jÔ9ÓGØ"&¨cô3ˆä™1˜Q›4 Õ*ùò :ùÓGs   Á6	B9
Á?B4ÂB9
Â4B9
)Ú__name__Ú
__module__Ú__qualname__Úsuffixr!   Úlength_listÚcoder   r)   Údictr   ÚclengthÚtextwrapÚdedentÚjoinÚpytestÚmarkÚparametrizer,   r1   r:   r=   rH   © r-   r+   r   r      sm  „ ð €FØ%€GÚ$€Kà€DØò ;ˆØˆÙ˜EÔ"×&Ñ& v¨vÓ6ˆà��—‘÷ 7!ó 7!ð %ð 7!à�9ð7!à#ð7!à$+ 9ð7!ð-ð7!ð �Ið7!ðð7!ð  �yð7!ð !(ð7!ð )0 yð7!ð1ð7!ð �9ð7!ð %ð7!ð &- Ið7!ð.ð7!ð �Ið7!ðð7!ð"  �yð#7!ð" !)ð#7!ð" *1¨	ð#7!ð"2ð#7!ð& �9ð'7!ð& *ð'7!ð& +2¨ð'7!ð&3ð'7!ð* �Ið+7!ð*ð+7!ð8  �yð97!ð8 !.ð97!ð8 /6¨Yð97!ð87ð97!ð< �9ð=7!ð< +ð=7!ð< ,3¨)ð=7!ð<4ð=7!ð> �Ið?7!ð>	ð?7!ðP  �yðQ7!ðP !/ðQ7!ðP 07¨iðQ7!ðP8ðQ7!ðT �9ðU7!ðT -ðU7!ðT .5¨IðU7!ðT6ðU7!ðX �IðY7!ðX
ðY7!ðl  �yðm7!ðl !1ðm7!ðl 29°	ðm7!ðl:	ôm7!ó 7ñ 7	‰ð	;ðz ‡[�[×Ñ˜X {Ó3ñJó 4ðJð ‡[�[×Ñ˜X {°3°BÐ'7Ó8ñ'ó 9ð'ð ‡[�[×Ñ˜X {Ó3ñ	+ó 4ð	+ð ‡[�[×Ñ˜X {Ó3ñ	+ó 4ð	+ð ‡[�[×Ñ˜X {Ó3ñ+ó 4ñ+r-   r   c                   ól  — e Zd ZdZdZ ej                  dj                  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                  j                  dddg«      d „ «       Zd!„ Ze	j                  j                  dg d"¢«      d#„ «       Zd$„ Ze	j                  j                  dg d"¢«      d%„ «       Zd&„ Zd'„ Zd(„ Ze	j                  j                  dddg«      d)„ «       Zd*„ Ze	j                  j                  dddg«      d+„ «       Ze	j                  j                  dddg«      d,„ «       Zd-„ Ze	j                  j3                  d.«      d/„ «       Zd0„ Zy1)2Ú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                 ó0  — t        | j                  | j                  dz   «      }t         |t	        j
                  d|¬«      «      t        d«      «       t         |t	        j
                  d|¬«      «      t        d«      «       t         |t	        j
                  dg|¬«      «      t        d«      «       t         |t	        j
                  d|¬«      «      t        d«      «       t         |t	        j
                  dgg|¬«      «      t        d«      «       y )NÚ_inputr   r   ó   ar   )r   r    r!   r   r"   r#   r&   ©r(   r   r*   s      r+   r,   zTestCharacter.test_inputó   s·   € ä�D—K‘K §¡°Ñ!8Ó9ˆä‘Q”r—x‘x ¨5Ô1Ó2´C¸³HÔ=Ü‘Q”r—x‘x ¨EÔ2Ó3´S¸³XÔ>Ü‘Q”r—x‘x  ¨UÔ3Ó4´c¸#³hÔ?Ü‘Q”r—x‘x ¨UÔ3Ó4´c¸#³hÔ?Ü‘Q”r—x‘x #  ¨uÔ5Ó6¼¸C»ÕAr-   c                 óˆ  — t        | j                  | j                  dz   «      }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        j                  d«      «      t	        d«      «       t         |t        j                  dg«      «      t	        d«      «       t        j                  d«      }t         ||«      t	        d«      «       t        j                  dg«      }t         ||«      t	        d«      «       	  |g «       t        |j                  › d
�«      ‚# t        $ r%}t        |«      j                  d«      s‚ Y d }~nd }~ww xY w	  |d«       t        |j                  › d�«      ‚# t        $ r%}t        |«      j                  d«      s‚ Y d }~y d }~ww xY w)Nr_   r   r`   r   r   r-   ó    Úabs   abz! should have failed on empty listz got 0-listéa   z  should have failed on int valuez got int instance)r   r    r!   r   r&   r"   r#   ÚSystemErrorrI   Ú
IndexErrorÚstrÚendswithÚ	TypeError©r(   r*   r   Úmsgs       r+   Útest_input_variazTestCharacter.test_input_variaý   s¿  € Ü�D—K‘K §¡°Ñ!8Ó9ˆä‘Q�s“VœS ›XÔ&Ü‘Q�t“Wœc $›iÔ(Ü‘Q�r“U˜AÔÜ‘Q�s“V˜QÔÜ‘Q�u“X˜qÔ!Ü‘Q�t“Wœc #›hÔ'Ü‘Q�u“Xœs 3›xÔ(Ü‘Q˜�u“Xœs 3›xÔ(ä‘Q”r—x‘x “~Ó&¬¨C«Ô1Ü‘Q”r—x‘x  Ó'Ó(¬#¨c«(Ô3Ü�H‰H�S‹MˆÜ‘Q�q“Tœ3˜s›8Ô$Ü�H‰H�c�U‹OˆÜ‘Q�q“Tœ3˜s›8Ô$ð	PÙˆbŒEô
  §¡ Ð,MÐNÓOÐOøô	 ò 	Ü�s“8×$Ñ$ ]Ô3Øô 4ûð	úð	OÙˆbŒEô
  §¡ Ð,LÐMÓNÐNøô	 ò 	Ü�s“8×$Ñ$Ð%8Ô9Øô :ûð	ús0   Æ!G Ç	G/Ç
G*Ç*G/Ç3H È	IÈH<È<I)r\   r]   ÚU1c                 óž  — t        | j                  | j                  dz   «      }t         |t	        j
                  g d¢|¬«      «      t	        j
                  t        t        t        d«      «      d¬«      «       t         |t	        j
                  g d¢|¬«      «      t	        j
                  t        t        t        d«      «      d¬«      «       y )NÚ_array_input©r   Úbr\   r   r   Úi1©r`   ó   bó   c)	r   r    r!   r   r"   r#   r$   r%   r&   ra   s      r+   r:   zTestCharacter.test_array_input   s„   € ä�D—K‘K §¡°Ñ!>Ó?ˆä™1œRŸX™X¢o¸UÔCÓDÜŸ8™8¤D¬¬S°%«Ó$9ÀÔFô	Hä™1œRŸX™XÒ&8ÀÔFÓGÜŸ8™8¤D¬¬S°%«Ó$9ÀÔFõ	Hr-   c                 óð  — t        | j                  | j                  dz   «      }t         |g d¢«      t	        j
                  t        t        t        d«      «      d¬«      «       t         |g d¢«      t	        j
                  t        t        t        d«      «      d¬«      «       	  |g d¢«       t        |j                  › d�«      ‚# t        $ r%}t        |«      j                  d	«      s‚ Y d }~y d }~ww xY w)
Nrp   rq   r   rs   r   rt   ©r   rr   r\   Údú" should have failed on wrong inputú)th dimension must be fixed to 3 but got 4)r   r    r!   r   r"   r#   r$   r%   r&   rf   rI   Ú
ValueErrorrh   ri   )r(   r*   rl   s      r+   Útest_array_input_variaz$TestCharacter.test_array_input_varia)  sÎ   € Ü�D—K‘K §¡°Ñ!>Ó?ˆÜ™1š_Ó-ÜŸ8™8¤D¬¬S°%«Ó$9ÀÔFô	Hä™1Ò/Ó0ÜŸ8™8¤D¬¬S°%«Ó$9ÀÔFô	Hð	CÙÒ"Ô#ô Ø—:‘:�,Ð@ÐAóCð Cøô ò 	Ü�s“8×$Ñ$Ø?ôAàôAûð	ús   Â%
C Ã	C5ÃC0Ã0C5c                 ó  — t        | j                  | j                  dz   «      }t        j                  g d¢g d¢g|d¬«      }|j                  |dk(  rt        j                  nt        j                  «      }t         ||«      |«       y )NÚ_2d_array_inputrq   ©ry   Úer*   rA   rD   rn   )	r   r    r!   r"   r#   ÚviewÚuint32Úuint8r   )r(   r   r*   r   r9   s        r+   rH   z!TestCharacter.test_2d_array_input:  sf   € ä�D—K‘K §¡Ð0AÑ!AÓBˆä�H‰H’oÚ%ð'Ø.3¸3ô@ˆà—6‘6 u°¢}œ"Ÿ)š)¼"¿(¹(ÓCˆÜ™1˜Q›4 Õ*r-   c                 ó¤   — t        | j                  | j                  dz   «      }t         |t	        d«      «      d«       t         |d«      d«       y )NÚ_outputr`   r   rc   )r   r    r!   r   r&   ©r(   r*   s     r+   r1   zTestCharacter.test_outputC  s;   € Ü�D—K‘K §¡°	Ñ!9Ó:ˆä‘Q”s˜4“y“\ 4Ô(Ü‘Q�q“T˜5Õ!r-   c           
      óØ   — t        | j                  | j                  dz   «      }t         |t	        t        t        d«      «      «      t        j                  t	        d«      d¬«      «       y )NÚ_array_outputr   r]   r   )	r   r    r!   r   r$   r%   r&   r"   r#   r‡   s     r+   r=   zTestCharacter.test_array_outputI  sG   € Ü�D—K‘K §¡°Ñ!?Ó@ˆä™1œT¤#¤c¨5£/Ó2Ó3ÜŸ8™8¤D¨£K°tÔ<õ	>r-   c                 ó¶   — t        | j                  | j                  dz   «      }t         |d«      d«       t         |d«      d«       t         |d«      d«       y )NÚ_input_outputr`   r   r   rc   ©r   r    r!   r   r‡   s     r+   Útest_input_outputzTestCharacter.test_input_outputO  sE   € Ü�D—K‘K §¡°Ñ!?Ó@ˆä‘Q�t“W˜dÔ#Ü‘Q�s“V˜TÔ"Ü‘Q�r“U˜EÕ"r-   c                 ó  — t        | j                  | j                  dz   «      }t        j                  t        d«      |¬«      } ||d«       t        |t        j                  t        d«      |j                  ¬«      «        ||dd  d«       t        |t        j                  t        d«      |j                  ¬«      «       t        j                  dg|¬«      } ||d«       t        |t        j                  dg|j                  ¬«      «       y )	NÚ_inoutr   r   r3   ÚAbcé   ÚBÚABc)r   r    r!   r"   r#   r$   r   r   )r(   r   r*   r   s       r+   Ú
test_inoutzTestCharacter.test_inoutV  s·   € ä�D—K‘K §¡°Ñ!8Ó9ˆä�H‰H”T˜%“[¨Ô.ˆÙ	ˆ!ˆSŒ	Ü˜1œbŸh™h¤t¨E£{¸!¿'¹'ÔBÔCÙ	ˆ!ˆAˆBˆ%�ŒÜ˜1œbŸh™h¤t¨E£{¸!¿'¹'ÔBÔCä�H‰H�e�W EÔ*ˆÙ	ˆ!ˆSŒ	Ü˜1œbŸh™h¨ w°a·g±gÔ>Õ?r-   c                 ó  — t        | j                  | j                  dz   «      }t        j                  dd¬«      } ||d«       t        |t        j                  d|j                  ¬«      «       t        j                  dgd¬«      } ||d«       t        |t        j                  dg|j                  ¬«      «       	  |dd«       t        |j                  › d�«      ‚# t        $ r%}t        |«      j                  d«      s‚ Y d }~y d }~ww xY w)	Nr�   r   ÚS3r   r3   r�   z  should have failed on str valuez
 got 3-str)r   r    r!   r"   r#   r   r   rf   rI   r|   rh   ri   rk   s       r+   Útest_inout_variazTestCharacter.test_inout_variad  s×   € Ü�D—K‘K §¡°Ñ!8Ó9ˆÜ�H‰H�U $Ô'ˆÙ	ˆ!ˆSŒ	Ü˜1œbŸh™h u°A·G±GÔ<Ô=ä�H‰H�e�W DÔ)ˆÙ	ˆ!ˆSŒ	Ü˜1œbŸh™h¨ w°a·g±gÔ>Ô?ð	OÙˆe�SŒMô
  §¡ Ð,LÐMÓNÐNøô	 ò 	Ü�s“8×$Ñ$ \Ô2Øô 3ûð	ús   Â=	C Ã	DÃ'DÄDc                 óÔ  — t        | j                  | j                  dz   «      }t        j                  g d¢|d¬«      }t        j                  g d¢|d¬«      } |||«       t        ||«       t        j                  g d¢|¬«      } ||dd  |«       t        |t        j                  g d	¢|¬«      «       t        j                  g d¢g|d¬«      } |||«       t        |t        j                  g d¢g|¬«      «       t        j                  g d¢|d¬«      }	  |||«       t        |j                  › d
�«      ‚# t        $ r%}t        |«      j                  d«      s‚ Y d }~y d }~ww xY w)NÚ_array_inout©r3   r’   ÚCrA   rD   rq   rx   r   r‘   )r   r3   r’   r›   rz   r{   )r   r    r!   r"   r#   r   rf   rI   r|   rh   ri   )r(   r   r*   Únr   rl   s         r+   Útest_array_inoutzTestCharacter.test_array_inoutv  s1  € ä�D—K‘K §¡°Ñ!>Ó?ˆÜ�H‰H’_¨E¸Ô=ˆä�H‰H’_¨E¸Ô=ˆÙ	ˆ!ˆQŒÜ˜1˜aÔ ä�H‰HÒ)°Ô7ˆÙ	ˆ!ˆAˆBˆ%�ŒÜ˜1œbŸh™hÒ';À5ÔIÔJä�H‰H’oÐ&¨e¸3Ô?ˆÙ	ˆ!ˆQŒÜ˜1œbŸh™hªÐ'8ÀÔFÔGä�H‰HÒ)°¸cÔBˆð	CÙˆa�ŒGô Ø—:‘:�,Ð@ÐAóCð Cøô ò 	Ü�s“8×$Ñ$Ø?ôAàôAûð	ús   Ä	D9 Ä9	E'ÅE"Å"E'c                 óì   — t        | j                  | j                  dz   «      }t        j                  g d¢g d¢g|d¬«      }t        j                  g d¢g d¢g|d¬«      } |||«       t        ||«       y )NÚ_2d_array_inoutrš   )ÚDÚErA   rA   rD   rq   r€   ©r   r    r!   r"   r#   r   )r(   r   r*   rœ   r   s        r+   Útest_2d_array_inoutz!TestCharacter.test_2d_array_inout’  sm   € ä�D—K‘K §¡Ð0AÑ!AÓBˆÜ�H‰H’oÚ%ð'à ¨ô-ˆô �H‰H’oÚ%ð'à ¨ô-ˆñ 	
ˆ!ˆQŒÜ˜1˜aÕ r-   c                 ón   — t        | j                  | j                  dz   «      }t         |d«      d«       y )NÚ_returnr   r`   rŒ   r‡   s     r+   Útest_returnzTestCharacter.test_returnž  s)   € Ü�D—K‘K §¡°	Ñ!9Ó:ˆä‘Q�s“V˜TÕ"r-   z*fortran function returning array segfaultsc                 ó®   — t        | j                  | j                  dz   «      }t        j                  t        d«      d¬«      }t         ||«      |«       y )NÚ_array_returnr   r]   r   r7   )r(   r*   r   s      r+   Útest_array_returnzTestCharacter.test_array_return£  s=   € ä�D—K‘K §¡°Ñ!?Ó@ˆä�H‰H”T˜%“[¨Ô-ˆÜ™1˜Q›4 Õ#r-   c                 ó�   — t        | j                  | j                  dz   «      }t         |«       d«       t         |d«      d«       y )NÚ	_optionalr`   ó   BrŒ   r‡   s     r+   Útest_optionalzTestCharacter.test_optionalª  s5   € Ü�D—K‘K §¡°Ñ!;Ó<ˆä‘Q“S˜$ÔÜ‘Q�t“W˜dÕ#r-   N)rI   rJ   rK   rL   r!   rQ   rR   rS   rN   rT   rU   rV   r,   rm   r:   r}   rH   r1   r=   r�   r”   r—   r�   r£   r¦   Úskipr©   r­   rW   r-   r+   rY   rY   ‡   sø  „ à€FØ€Gàˆ8�?‰?÷ eó eð  ð eØ�)ðeððeð �iðeð ðeð �)ðeððeð �iðeð ðeð �)ðeððeð( �ið)eð( ð)eð, �)ð-eð,ð-eð6 �ið7eð6 ð7eð: �	ð;eð:ð;eðB �IðCeðBðCeðF �)ðGeðFðGeðV �iðWeðV ðWeðZ �)ð[eðZ
ð[eðn �iðoeðn ðoeðr �)ðseðrðseð@ �iðAeð@ ðAeðD �)ðEeðDðEeðR �iðSeðR ðSeðV �)ðWeðV
ðWeðj �iðkeðj ðkeðn �	ðoeðnðoeðz �Ið{eðzð{eð~ �	ðeð~ðeðH �IðIeðHôIeó e	€DðN ‡[�[×Ñ˜W s¨D kÓ2ñBó 3ðBò!OðF ‡[�[×Ñ˜WÒ&7Ó8ñHó 9ðHòCð" ‡[�[×Ñ˜WÒ&7Ó8ñ+ó 9ð+ò"ò>ò#ð ‡[�[×Ñ˜W s¨D kÓ2ñ@ó 3ð@òOð$ ‡[�[×Ñ˜W s¨D kÓ2ñCó 3ðCð6 ‡[�[×Ñ˜W s¨D kÓ2ñ	!ó 3ð	!ò#ð
 ‡[�[×ÑÐBÓCñ$ó Dð$ó$r-   rY   c                   ó  — e Zd ZdZdZ ej                  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„ «       Zd„ Zd„ Zd„ Zej                  j                  dddg«      d„ «       Zy)ÚTestMiscCharacterr	   Útest_misc_characterr[   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                 ó¤   — t        | j                  | j                  dz   «      }t        j                  ddgd¬«      } ||«      }t        ||«       y )NÚ_gh18684ÚabcdeÚfghijÚS5r   r¢   )r(   r*   ÚxÚys       r+   Útest_gh18684zTestMiscCharacter.test_gh18684  sE   € ô �D—K‘K §¡°
Ñ!:Ó;ˆÜ�H‰H�g˜wÐ'¨tÔ4ˆÙˆa‹Dˆä˜1˜aÕ r-   c                 ó  — t        | j                  | j                  dz   «      }t        | j                  j                  j
                  j                  t        j                  d«      «       t        t        | j                  j                  j
                  «      d«        |dd«       t        | j                  j                  j
                  d   d«        |dd«       t        | j                  j                  j
                  d   d	«       y )
NÚ_gh6308r¶   é   r´   r   s   abcdeÚ12345é   s   12345)	r   r    r!   r   Ú_BLNK_Únamer   r"   Úlenr‡   s     r+   Útest_gh6308zTestMiscCharacter.test_gh6308  s²   € ä�D—K‘K §¡°	Ñ!9Ó:ˆä�T—[‘[×'Ñ'×,Ñ,×2Ñ2´B·H±H¸T³NÔCÜ”S˜Ÿ™×+Ñ+×0Ñ0Ó1°2Ô6Ù	ˆ'�1ŒÜ�T—[‘[×'Ñ'×,Ñ,¨QÑ/°Ô:Ù	ˆ'�1ŒÜ�T—[‘[×'Ñ'×,Ñ,¨QÑ/°Õ:r-   c                 óJ  — t        | j                  | j                  dz   «      }dt        dt	        j
                  d«      ¬«      fdt        dt	        j
                  d«      ¬«      ft	        j                  g d¢d¬	«      t        d
t	        j
                  d«      ¬«      fg d¢t        d
t	        j
                  d«      ¬«      fddgt        dt	        j
                  d«      ¬«      ffD ];  \  }} ||«      }|j                  «       D ]  \  }}t        t        ||«      |«       Œ Œ= y )NÚ_gh4519r   rW   r]   )Úshaper   ÚtextÚS4)r   Ú2r   r   )é   )r   rÈ   Ú34ÚS2r   )é   )	r   r    r!   rO   r"   r   r#   Úitemsr   )r(   r*   r·   r9   ÚrÚkÚvs          r+   Útest_gh4519zTestMiscCharacter.test_gh4519  sð   € ä�D—K‘K §¡°	Ñ!9Ó:ˆð ”d ¬2¯8©8°D«>Ô:Ð;Øœ B¬b¯h©h°t«nÔ=Ð>Ü—‘š/°Ô6Ü˜D¬¯©°«Ô7ð9â!Ü˜D¬¯©°«Ô7ð9à�b�œ4 d´"·(±(¸4³.ÔAÐBðDò 
	/‰KˆAˆxñ �!“ˆAØ Ÿ™Ó(ò /‘��1ÜœW Q¨›]¨AÕ.ñ/ñ
	/r-   c                 ó¶   — t        | j                  | j                  dz   «      }t         |d«      d«       t         |d«      d«       t         |d«      d«       y )NÚ_gh3425ÚabCs   ABCr   r-   ÚabC12ds   ABC12DrŒ   r‡   s     r+   Útest_gh3425zTestMiscCharacter.test_gh3425(  sG   € ä�D—K‘K §¡°	Ñ!9Ó:ˆô 	‘Q�u“X˜vÔ&Ü‘Q�r“U˜CÔ Ü‘Q�x“[ )Õ,r-   ÚstateÚnewÚoldc                 ó&  ‡— t        | j                  | j                  dz   |z   «      Š ‰«       \  }}t        |d«       t        t	        |«      d«        ‰d«      \  }}t        |d«       t        t	        |«      d«       t        t        ˆfd„«       y )NÚ_character_bc_r`   r‘   ru   rÌ   c                  ó   •—  ‰ d«      S )Nrv   rW   )r*   s   €r+   ú<lambda>z5TestMiscCharacter.test_character_bc.<locals>.<lambda>=  s   ø€ ©¨4«€ r-   )r   r    r!   r   rÁ   r   Ú	Exception)r(   r×   r\   r   r*   s       @r+   Útest_character_bcz#TestMiscCharacter.test_character_bc1  st   ø€ ä�D—K‘K §¡Ð0@Ñ!@À5Ñ!HÓIˆá‹s‰ˆˆ1Ü�Q˜ÔÜ”S˜“V˜QÔá�‹w‰ˆˆ1Ü�Q˜ÔÜ”S˜“V˜QÔä”i£Õ1r-   N)rI   rJ   rK   rL   r!   rQ   rR   rN   rT   rU   Úslowr¹   rÂ   rÑ   rÖ   rV   rß   rW   r-   r+   r°   r°   ±  s  „ à€FØ#€Gàˆ8�?‰?ð  Ø�)ð ð �ið  à�)ð ð �ið  à�)ð ð �ið  à�Yð ð �Ið à�)ð ð �ið  à�)ð ð �ið  ðWLó L	€Dð\ ‡[�[×Ññ!ó ð!ò	;ò/ò -ð ‡[�[×Ñ˜W u¨e nÓ5ñ2ó 6ñ2r-   r°   c                   óD   — e Zd Z ej                  dddd«      gZd„ Zd„ Zy)ÚTestStringScalarArrÚtestsÚsrcÚstringzscalar_string.f90c                 óÚ   — | j                   j                  j                  | j                   j                  j                  fD ](  }d}|j                  |k(  sJ ‚d}|j
                  |k(  rŒ(J ‚ y )NrW   z|S8)r    Ústring_testrå   Ústring77rÅ   r   ©r(   Úoutr9   s      r+   Ú	test_charzTestStringScalarArr.test_charC  sg   € Ø—K‘K×+Ñ+×2Ñ2Ø—K‘K×+Ñ+×4Ñ4ð6ò 	)ˆCàˆHØ—9‘9 Ò(Ð(Ð(ØˆHØ—9‘9 Ó(Ð(Ð(ñ	)r-   c                 óÚ   — | j                   j                  j                  | j                   j                  j                  fD ](  }d}|j                  |k(  sJ ‚d}|j
                  |k(  rŒ(J ‚ y )N)r¾   é   z|S12)r    rç   ÚstrarrÚstrarr77rÅ   r   ré   s      r+   Útest_char_arrz!TestStringScalarArr.test_char_arrK  sg   € Ø—K‘K×+Ñ+×2Ñ2Ø—K‘K×+Ñ+×4Ñ4ð6ò 	)ˆCàˆHØ—9‘9 Ò(Ð(Ð(ØˆHØ—9‘9 Ó(Ð(Ð(ñ	)r-   N)rI   rJ   rK   r   ÚgetpathÚsourcesrë   rð   rW   r-   r+   râ   râ   @  s&   „ Øˆt�|‰|˜G U¨HÐ6IÓJÐK€Gò)ó)r-   râ   c                   ó>   — e Zd Z ej                  dddd«      gZd„ Zy)ÚTestStringAssumedLengthrã   rä   rå   z	gh24008.fc                 ó<   — | j                   j                  dd«       y )NÚjoeÚbob)r    Úgreet)r(   s    r+   Útest_gh24008z$TestStringAssumedLength.test_gh24008V  s   € Ø�‰×Ñ˜% Õ'r-   N)rI   rJ   rK   r   rñ   rò   rù   rW   r-   r+   rô   rô   S  s    „ Øˆt�|‰|˜G U¨H°kÓBÐC€Gó(r-   rô   c                   ó>   — e Zd Z ej                  dddd«      gZd„ Zy)ÚTestStringOptionalInOutrã   rä   rå   zgh24662.f90c                 óv  — | j                   j                  «        t        j                  dd¬«      }| j                   j                  |«       d|j	                  «       j                  «       v sJ ‚t        j                  t        «      5  d}| j                   j                  |«       d d d «       y # 1 sw Y   y xY w)NÚhiÚS32r   zoutput stringÚHi)	r    Ústring_inout_optionalr"   r#   ÚtobytesÚdecoderT   ÚraisesrÞ   )r(   r   Úaas      r+   Útest_gh24662z$TestStringOptionalInOut.test_gh24662]  s‰   € Ø�‰×)Ñ)Ô+Ü�H‰H�T Ô'ˆØ�‰×)Ñ)¨!Ô,Ø !§)¡)£+×"4Ñ"4Ó"6Ñ6Ð6Ð6Ü�]‰]œ9Ó%ñ 	2ØˆBØ�K‰K×-Ñ-¨bÔ1÷	2÷ 	2ñ 	2ús   ÂB/Â/B8N)rI   rJ   rK   r   rñ   rò   r  rW   r-   r+   rû   rû   Y  s    „ àˆt�|‰|˜G U¨H°mÓDÐE€Gó2r-   rû   c                   ój   — e Zd Z ej                  dddd«       ej                  dddd«      gZdZd„ Zy)	ÚTestNewCharHandlingrã   rä   rå   zgh25286.pyfúgh25286.f90Ú_char_handling_testc                 óH   — | j                   j                  d«      }|dk(  sJ ‚y ©NÚTrÌ   ©r    Úcharint©r(   Úinfos     r+   Útest_gh25286z TestNewCharHandling.test_gh25286p  ó"   € Ø�{‰{×"Ñ" 3Ó'ˆØ�qŠyÐ‰yr-   N©rI   rJ   rK   r   rñ   rò   Úmodule_namer  rW   r-   r+   r  r  g  s?   „ ð 	ˆ�‰�W˜e X¨}Ó=Øˆ�‰�W˜e X¨}Ó=ð€Gð (€Kór-   r  c                   ój   — e Zd Z ej                  dddd«       ej                  dddd«      gZdZd„ Zy)	ÚTestBCCharHandlingrã   rä   rå   zgh25286_bc.pyfr  r	  c                 óH   — | j                   j                  d«      }|dk(  sJ ‚y r  r  r  s     r+   r  zTestBCCharHandling.test_gh25286}  r  r-   Nr  rW   r-   r+   r  r  t  s@   „ ð 	ˆ�‰�W˜e XÐ/?Ó@Øˆ�‰�W˜e X¨}Ó=ð€Gð (€Kór-   r  )rT   rQ   Únumpy.testingr   r   r   Únumpyr"   Únumpy.f2py.testsr   rU   rà   ÚF2PyTestr   rY   r°   râ   rô   rû   r  r  rW   r-   r+   ú<module>r     s  ðÛ Û ß IÑ IÛ Ý !ð ‡�×Ñô{+˜$Ÿ-™-ó {+ó ð{+ô|g$�D—M‘Mô g$ôT	L2˜Ÿ™ô L2ô^)˜$Ÿ-™-ô )ô&(˜dŸm™mô (ð ‡�×Ñô
2˜dŸm™mó 
2ó ð
2ð ‡�×Ñô
˜$Ÿ-™-ó 
ó ð
ð ‡�×Ñô
˜Ÿ™ó 
ó ñ
r-   