ó
    �œ‘h,X  ã                   óT  • S SK r S SKrS SKrS SKJr  S SKJrJrJ	r	  \R                  R                   " S S\R                  5      5       r " S S\R                  5      r " S S	\R                  5      r " S
 S\R                  5      r " S S\R                  5      r\R                  R                   " S S\R                  5      5       r\R                  R                   " S S\R                  5      5       r\R                  R                   " S S\R                  5      5       rg)é    N)Úutil)Úassert_array_equalÚassert_equalÚassert_raisesc                   ó  • \ rS rSrSrSr/ SQrSr\ H¼  r\r	SS0R                  \\5      r\\R                  " SR                  / SP\ PS	P\	 PS
P\ PSP\ PS	P\	 PSP\ PSP\	 PS
P\ PSP\ PSP\	 PSP\ PSP\	 PSP\ PSP\ PSP\	 PSP\ PSP\	 PSP\ PSP\ PSP\	 PSP\ PSP\	 PSP\ PSP\ PSP\	 PSP5      5      -  rM¾     \R                   R#                  S\5      S 5       r\R                   R#                  S\SS 5      S 5       r\R                   R#                  S\5      S 5       r\R                   R#                  S\5      S 5       r\R                   R#                  S\5      S 5       rS rg)!Ú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                 ó   • SS0R                  X5      n[        U R                  U R                  S-   U-   5      nSSSS.U   n[	        U" U5      [
        R                  " [        [        [        U5      5      SS	95        g )
Nr   r   r   ÚaÚabcÚabcdeabcdeabcder   Úu1©Údtype)
ÚgetÚgetattrÚmoduleÚfprefixr   ÚnpÚarrayÚlistÚmapÚord©Úselfr   ÚfsuffixÚfr   s        ÚcC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\numpy/f2py/tests/test_character.pyÚ
test_inputÚTestCharacterString.test_inputO   si   € à˜&�/×%Ñ% fÓ5ˆÜ�D—K‘K §¡°	Ñ!9¸GÑ!CÓDˆà˜E¨;Ñ7¸Ñ?ˆä™1˜Q›4¤§¢¬$¬s´3¸«{Ó*;À4Ñ!HÕIó    Néÿÿÿÿc                 óø   • Un[        U R                  U R                  S-   U-   5      nSSS.U   n[        U" [        R
                  " [        [        [        U5      5      SS95      UR                  5       5        g )Nr   r   r   )r   r   r   r   )
r    r!   r"   r   r#   r$   r%   r&   r'   Úencoder(   s        r,   Útest_outputÚTestCharacterString.test_outputX   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                 ó*  • Un[        U R                  U R                  S-   U-   5      n[        R                  " SSSS.U   SSSS.U   /S	S
9n[        R                  " U Vs/ s H  n[        U5      PM     snSS
9n[        U" U5      U5        g s  snf )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_inputÚ$TestCharacterString.test_array_inputb   s�   € àˆÜ�D—K‘K §¡°Ñ!?À'Ñ!IÓJˆä�HŠH˜C e°[ÑAÀ&ÑIØ e°[ÑAÀ&ÑIðà"ñ$ˆô —8’8©aÓ0ªa¨œT !žW©aÑ0¸Ñ=ˆÜ™1˜Q›4 Õ*ùò 1ó   Á"Bc                 ó*  • Un[        U R                  U R                  S-   U-   5      n[        R                  " SSSS.U   SSSS.U   /S	S
9n[        R                  " U Vs/ s H  n[        U5      PM     snSS
9n[        U" U5      U5        g s  snf )Nr   r   r   r   r   r6   r7   r8   r9   r   r   r:   )r)   r   r*   r+   r<   r;   r   s          r,   Útest_array_outputÚ%TestCharacterString.test_array_outputn   s”   € àˆÜ�D—K‘K §¡Ð0@Ñ!@À7Ñ!JÓKˆä—8’8Ø˜U¨KÑ8¸Ñ@Ø˜U¨KÑ8¸Ñ@ðBØILñNˆô �HŠH¡xÓ0¢x !”d˜1–g¡xÑ0¸Ñ=ˆÜ™1˜Q›4 Õ*ùò 1r?   c                 ó€  • Un[        U R                  U R                  S-   U-   5      n[        R                  " SSSS.U   SSSS.U   /S	S
SS.U   SSSS.U   //SS9n[        R                  " U VVs/ s H  oU Vs/ s H  n[        U5      PM     snPM      snnSSS9n[        U" U5      U5        g s  snf s  snnf )Nr   r   r   r   r   r6   r7   r8   r+   ÚfghÚfghijfghijfghijÚFÚFGHÚFGHIJFGHIJFGHIJr9   r   r   ©r   Úorderr:   )r)   r   r*   r+   r   ÚrowÚitemr<   s           r,   Útest_2d_array_inputÚ'TestCharacterString.test_2d_array_inputz   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ÂQ¸c°SÓ9²S¨Tœd 4žj±SÔ9ÁQÒGØ"&¨cñ3ˆä™1˜Q›4 Õ*ùò :ùÓGs   Á5	B:
Á>B5ÂB:
Â5B:
© )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Úsuffixr"   Úlength_listÚcoder   r*   r   ÚclengthÚtextwrapÚdedentÚjoinÚpytestÚmarkÚparametrizer-   r3   r=   rA   rM   Ú__static_attributes__rO   r/   r,   r   r   
   se  † ð €FØ%€GÚ$€Kà€DÛˆØˆØ˜5�/×%Ñ% f¨fÓ5ˆà�—’÷ 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                   ót  • \ rS rSrSrSr\R                  " SR                  / SP\ PSP\ PSP\ PSP\ PS	P\ PS
P\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP\ PSP5      5      r	\
R                  R                  SSS /5      S! 5       rS" r\
R                  R                  S/ S#Q5      S$ 5       rS% r\
R                  R                  S/ S#Q5      S& 5       rS' rS( rS) r\
R                  R                  SSS /5      S* 5       rS+ r\
R                  R                  SSS /5      S, 5       r\
R                  R                  SSS /5      S- 5       rS. r\
R                  R5                  S/5      S0 5       rS1 rS2rg3)4ÚTestCharacteré‰   r
   Ú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           	      ó  • [        U R                  U R                  S-   5      n[        U" [        R
                  " SUS95      [        S5      5        [        U" [        R
                  " SUS95      [        S5      5        [        U" [        R
                  " S/US95      [        S5      5        [        U" [        R
                  " SUS95      [        S5      5        [        U" [        R
                  " S//US95      [        S5      5        g )NÚ_inputr   r   ó   ar   )r    r!   r"   r   r#   r$   r'   ©r)   r   r+   s      r,   r-   Ú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                 ó¨  • [        U R                  U R                  S-   5      n[        U" S5      [	        S5      5        [        U" S5      [	        S5      5        [        U" S5      S5        [        U" S5      S5        [        U" S5      S5        [        U" S5      [	        S5      5        [        U" S	5      [	        S5      5        [        U" S/5      [	        S5      5        [        U" [
        R                  " S5      5      [	        S5      5        [        U" [
        R                  " S/5      5      [	        S5      5        [
        R                  " S5      n[        U" U5      [	        S5      5        [
        R                  " S/5      n[        U" U5      [	        S5      5         U" / 5        [        UR                   S
35      e! [         a*  n[        U5      R                  S5      (       d  e  S nAOS nAff = f U" S5        [        UR                   S35      e! [         a*  n[        U5      R                  S5      (       d  e  S nAg S nAff = f)Nrg   r   rh   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$   ÚSystemErrorrP   Ú
IndexErrorÚstrÚendswithÚ	TypeError©r)   r+   r   Úmsgs       r,   Útest_input_variaÚ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Ñ3Øô 4ûð	úð	OÙˆbŒEô
  §¡ Ð,LÐMÓNÐNøô	 ó 	Ü�s“8×$Ñ$Ð%8×9Ñ9Øô :ûð	ús0   Æ%G Ç
G9Ç G4Ç4G9Ç=H È
IÈ' IÉI)rd   re   ÚU1c                 óŽ  • [        U R                  U R                  S-   5      n[        U" [        R
                  " / SQUS95      [        R
                  " [        [        [        S5      5      SS95        [        U" [        R
                  " / SQUS95      [        R
                  " [        [        [        S5      5      SS95        g )NÚ_array_input©r   Úbrd   r   r   Úi1©rh   ó   bó   c)	r    r!   r"   r   r#   r$   r%   r&   r'   ri   s      r,   r=   Ú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                 óô  • [        U R                  U R                  S-   5      n[        U" / SQ5      [        R
                  " [        [        [        S5      5      SS95        [        U" / SQ5      [        R
                  " [        [        [        S5      5      SS95         U" / SQ5        [        UR                   S35      e! [         a*  n[        U5      R                  S	5      (       d  e  S nAg S nAff = f)
Nrz   r{   r   r}   r   r~   ©r   r|   rd   Ú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'   ro   rP   Ú
ValueErrorrq   rr   )r)   r+   ru   s      r,   Útest_array_input_variaÚ$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àôAûð	ús   Â!
C Ã
C7Ã C2Ã2C7c                 ó  • [        U R                  U R                  S-   5      n[        R                  " / SQ/ SQ/USS9nUR                  US:X  a  [        R                  O[        R                  5      n[        U" U5      U5        g )NÚ_2d_array_inputr{   ©r„   Úer+   rF   rI   rx   )	r    r!   r"   r#   r$   ÚviewÚuint32Úuint8r   )r)   r   r+   r   r<   s        r,   rM   Ú!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                 ó¤   • [        U R                  U R                  S-   5      n[        U" [	        S5      5      S5        [        U" S5      S5        g )NÚ_outputrh   r   rl   )r    r!   r"   r   r'   ©r)   r+   s     r,   r3   ÚTestCharacter.test_outputE  s;   € Ü�D—K‘K §¡°	Ñ!9Ó:ˆä‘Q”s˜4“y“\ 4Ô(Ü‘Q�q“T˜5Õ!r/   c           
      óÔ   • [        U R                  U R                  S-   5      n[        U" [	        [        [        S5      5      5      [        R                  " [	        S5      SS95        g )NÚ_array_outputr   re   r   )	r    r!   r"   r   r%   r&   r'   r#   r$   r”   s     r,   rA   ÚTestCharacter.test_array_outputK  sG   € Ü�D—K‘K §¡°Ñ!?Ó@ˆä™1œT¤#¤c¨5£/Ó2Ó3ÜŸ8š8¤D¨£K°tÑ<õ	>r/   c                 ó¶   • [        U R                  U R                  S-   5      n[        U" S5      S5        [        U" S5      S5        [        U" S5      S5        g )NÚ_input_outputrh   r   r   rl   ©r    r!   r"   r   r”   s     r,   Útest_input_outputÚTestCharacter.test_input_outputQ  sE   € Ü�D—K‘K §¡°Ñ!?Ó@ˆä‘Q�t“W˜dÔ#Ü‘Q�s“V˜TÔ"Ü‘Q�r“U˜EÕ"r/   c                 ó
  • [        U R                  U R                  S-   5      n[        R                  " [        S5      US9nU" US5        [        U[        R                  " [        S5      UR                  S95        U" USS  S5        [        U[        R                  " [        S5      UR                  S95        [        R                  " S/US9nU" US5        [        U[        R                  " S/UR                  S95        g )	NÚ_inoutr   r   r6   ÚAbcé   ÚBÚABc)r    r!   r"   r#   r$   r%   r   r   )r)   r   r+   r   s       r,   Ú
test_inoutÚTestCharacter.test_inoutX  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                 ó  • [        U R                  U R                  S-   5      n[        R                  " SSS9nU" US5        [        U[        R                  " SUR                  S95        [        R                  " S/SS9nU" US5        [        U[        R                  " S/UR                  S95         U" SS5        [        UR                   S35      e! [         a*  n[        U5      R                  S5      (       d  e  S nAg S nAff = f)	NrŸ   r   ÚS3r   r6   r    z  should have failed on str valuez
 got 3-str)r    r!   r"   r#   r$   r   r   ro   rP   r‡   rq   rr   rt   s       r,   Útest_inout_variaÚTestCharacter.test_inout_variaf  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Ñ2Øô 3ûð	ús   Â5	C Ã
D
Ã  DÄD
c                 ó¼  • [        U R                  U R                  S-   5      n[        R                  " / SQUSS9n[        R                  " / SQUSS9nU" XC5        [        XC5        [        R                  " / SQUS9nU" USS  U5        [        U[        R                  " / S	QUS95        [        R                  " / SQ/USS9nU" XC5        [        U[        R                  " / SQ/US95        [        R                  " / SQUSS9n U" XC5        [        UR                   S
35      e! [         a*  n[        U5      R                  S5      (       d  e  S nAg S nAff = f)NÚ_array_inout©r6   r¢   ÚCrF   rI   r{   rƒ   r   r¡   )r   r6   r¢   r­   r…   r†   )r    r!   r"   r#   r$   r   ro   rP   r‡   rq   rr   )r)   r   r+   Únr   ru   s         r,   Útest_array_inoutÚTestCharacter.test_array_inoutx  s/  € ä�D—K‘K §¡°Ñ!>Ó?ˆÜ�HŠH’_¨E¸Ñ=ˆä�HŠH’_¨E¸Ñ=ˆÙ	ˆ!ŒÜ˜1Ô ä�HŠHÒ)°Ñ7ˆÙ	ˆ!ˆAˆBˆ%�ŒÜ˜1œbŸhšhÒ';À5ÑIÔJä�HŠH’oÐ&¨e¸3Ñ?ˆÙ	ˆ!ŒÜ˜1œbŸhšhªÐ'8ÀÑFÔGä�HŠHÒ)°¸cÑBˆð	CÙˆaŒGô Ø—:‘:�,Ð@ÐAóCð Cøô ó 	Ü�s“8×$Ñ$Ø?÷Añ AàôAûð	ús   ÄD' Ä'
EÄ1 EÅEc                 óà   • [        U R                  U R                  S-   5      n[        R                  " / SQ/ SQ/USS9n[        R                  " / SQ/ SQ/USS9nU" XC5        [        XC5        g )NÚ_2d_array_inoutr¬   )ÚDÚErF   rF   rI   r{   rŒ   ©r    r!   r"   r#   r$   r   )r)   r   r+   r®   r   s        r,   Útest_2d_array_inoutÚ!TestCharacter.test_2d_array_inout”  si   € ä�D—K‘K §¡Ð0AÑ!AÓBˆÜ�HŠH’oÚ%ð'à ¨ñ-ˆô �HŠH’oÚ%ð'à ¨ñ-ˆñ 	
ˆ!ŒÜ˜1Õ r/   c                 ón   • [        U R                  U R                  S-   5      n[        U" S5      S5        g )NÚ_returnr   rh   r›   r”   s     r,   Útest_returnÚTestCharacter.test_return   s)   € Ü�D—K‘K §¡°	Ñ!9Ó:ˆä‘Q�s“V˜TÕ"r/   z*fortran function returning array segfaultsc                 óª   • [        U R                  U R                  S-   5      n[        R                  " [        S5      SS9n[        U" U5      U5        g )NÚ_array_returnr   re   r   r:   )r)   r+   r   s      r,   Útest_array_returnÚTestCharacter.test_array_return¥  s=   € ä�D—K‘K §¡°Ñ!?Ó@ˆä�HŠH”T˜%“[¨Ñ-ˆÜ™1˜Q›4 Õ#r/   c                 ó�   • [        U R                  U R                  S-   5      n[        U" 5       S5        [        U" S5      S5        g )NÚ	_optionalrh   ó   Br›   r”   s     r,   Útest_optionalÚTestCharacter.test_optional¬  s5   € Ü�D—K‘K §¡°Ñ!;Ó<ˆä‘Q“S˜$ÔÜ‘Q�t“W˜dÕ#r/   rO   N)rP   rQ   rR   rS   rT   r"   rX   rY   rZ   rV   r[   r\   r]   r-   rv   r=   rˆ   rM   r3   rA   rœ   r¤   r¨   r¯   r¶   rº   Úskipr¾   rÃ   r^   rO   r/   r,   r`   r`   ‰   sö  † à€FØ€Gà�?Š?÷ 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/   r`   c                   ó  • \ rS rSrSrSr\R                  " S\ S\ S\ S\ S\ S	\ S
\ S\ S\ S\ S\ S\ S35      r\	R                  R                  S 5       rS rS rS r\	R                  R!                  SSS/5      S 5       rSrg)ÚTestMiscCharacteri³  r
   Útest_misc_characterrc   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                 óž   • [        U R                  U R                  S-   5      n[        R                  " SS/SS9nU" U5      n[        X#5        g )NÚ_gh18684ÚabcdeÚfghijÚS5r   rµ   )r)   r+   ÚxÚys       r,   Útest_gh18684ÚTestMiscCharacter.test_gh18684  sC   € ô �D—K‘K §¡°
Ñ!:Ó;ˆÜ�HŠH�g˜wÐ'¨tÑ4ˆÙˆa‹Dˆä˜1Õ r/   c                 ó  • [        U R                  U R                  S-   5      n[        U R                  R                  R
                  R                  [        R                  " S5      5        [        [        U R                  R                  R
                  5      S5        U" SS5        [        U R                  R                  R
                  S   S5        U" SS5        [        U R                  R                  R
                  S   S	5        g )
NÚ_gh6308rÍ   é   rË   r   s   abcdeÚ12345é   s   12345)	r    r!   r"   r   Ú_BLNK_Únamer   r#   Úlenr”   s     r,   Útest_gh6308Ú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           	      ó  • [        U R                  U R                  S-   5      nSS[        R                  " S5      S.4SS[        R                  " S5      S.4[        R
                  " / SQSS	9S
[        R                  " S5      S.4/ SQS
[        R                  " S5      S.4SS/S[        R                  " S5      S.44 H;  u  p#U" U5      nUR                  5        H  u  pV[        [        XE5      U5        M     M=     g )NÚ_gh4519r   rO   re   )Úshaper   ÚtextÚS4)r   Ú2r   r   )é   )r   rá   Ú34ÚS2r   )é   )r    r!   r"   r#   r   r$   Úitemsr   )r)   r+   rÎ   r<   ÚrÚkÚvs          r,   Útest_gh4519ÚTestMiscCharacter.test_gh4519  s×   € ä�D—K‘K §¡°	Ñ!9Ó:ˆð  ¬R¯XªX°d«^Ñ<Ð=Ø 2´·²¸³Ñ?Ð@Ü—’š/°Ñ6Ø¬"¯(ª(°4«.Ñ9ð;â!Ø¬"¯(ª(°4«.Ñ9ð;à�b� T´B·H²H¸T³NÑCÐDóF‰KˆAñ �!“ˆAØ Ÿ™Ö(‘�ÜœW Q›]¨AÖ.ó )òFr/   c                 ó¶   • [        U R                  U R                  S-   5      n[        U" S5      S5        [        U" S5      S5        [        U" S5      S5        g )NÚ_gh3425ÚabCs   ABCr   r/   ÚabC12ds   ABC12Dr›   r”   s     r,   Útest_gh3425ÚTestMiscCharacter.test_gh3425*  sG   € ä�D—K‘K §¡°	Ñ!9Ó:ˆô 	‘Q�u“X˜vÔ&Ü‘Q�r“U˜CÔ Ü‘Q�x“[ )Õ,r/   ÚstateÚnewÚoldc                 ó$  ^• [        U R                  U R                  S-   U-   5      mT" 5       u  p#[        US5        [        [	        U5      S5        T" S5      u  p#[        US5        [        [	        U5      S5        [        [        U4S j5        g )NÚ_character_bc_rh   r¡   r   rå   c                  ó   >• T " S5      $ )Nr€   rO   )r+   s   €r,   Ú<lambda>Ú5TestMiscCharacter.test_character_bc.<locals>.<lambda>?  s	   ø€ ©¨4¬r/   )r    r!   r"   r   rÙ   r   Ú	Exception)r)   rò   rd   r   r+   s       @r,   Útest_character_bcÚ#TestMiscCharacter.test_character_bc3  sp   ø€ ä�D—K‘K §¡Ð0@Ñ!@À5Ñ!HÓIˆá‹s‰ˆÜ�Q˜ÔÜ”S˜“V˜QÔá�‹w‰ˆÜ�Q˜ÔÜ”S˜“V˜QÔä”i¤Õ1r/   rO   N)rP   rQ   rR   rS   rT   r"   rX   rY   rV   r[   r\   ÚslowrÐ   rÚ   rê   rð   r]   rû   r^   rO   r/   r,   rÇ   rÇ   ³  s  † à€FØ#€Gà�?Š?ð  Ø�)ð ð �ið  à�)ð ð �ið  à�)ð ð �ið  à�Yð ð �Ið à�)ð ð �ið  à�)ð ð �ið  ðWLó L	€Dð\ ‡[�[×Ññ!ó ð!ò	;ò/ò -ð ‡[�[×Ñ˜W u¨e nÓ5ñ2ó 6ó2r/   rÇ   c                   óL   • \ rS rSr\R
                  " SSSS5      /rS rS rSr	g	)
ÚTestStringScalarArriB  ÚtestsÚsrcÚstringzscalar_string.f90c                 óâ   • U R                   R                  R                  U R                   R                  R                  4 H+  nSnUR                  U:X  d   eSnUR
                  U:X  a  M+   e   g )NrO   z|S8)r!   Ústring_testr  Ústring77rÞ   r   ©r)   Úoutr<   s      r,   Ú	test_charÚTestStringScalarArr.test_charE  sb   € Ø—K‘K×+Ñ+×2Ñ2Ø—K‘K×+Ñ+×4Ñ4ó6ˆCàˆHØ—9‘9 Ó(Ð(Ð(ØˆHØ—9‘9 Õ(Ð(Ð(ò6r/   c                 óâ   • U R                   R                  R                  U R                   R                  R                  4 H+  nSnUR                  U:X  d   eSnUR
                  U:X  a  M+   e   g )N)rÖ   é   z|S12)r!   r  ÚstrarrÚstrarr77rÞ   r   r  s      r,   Útest_char_arrÚ!TestStringScalarArr.test_char_arrM  sb   € Ø—K‘K×+Ñ+×2Ñ2Ø—K‘K×+Ñ+×4Ñ4ó6ˆCàˆHØ—9‘9 Ó(Ð(Ð(ØˆHØ—9‘9 Õ(Ð(Ð(ò6r/   rO   N)
rP   rQ   rR   rS   r   ÚgetpathÚsourcesr  r  r^   rO   r/   r,   rÿ   rÿ   B  s$   † Ø�|Š|˜G U¨HÐ6IÓJÐK€Gò)õ)r/   rÿ   c                   óF   • \ rS rSr\R
                  " SSSS5      /rS rSrg)	ÚTestStringAssumedLengthiU  r   r  r  z	gh24008.fc                 ó<   • U R                   R                  SS5        g )NÚjoeÚbob)r!   Úgreet)r)   s    r,   Útest_gh24008Ú$TestStringAssumedLength.test_gh24008X  s   € Ø�‰×Ñ˜% Õ'r/   rO   N)	rP   rQ   rR   rS   r   r  r  r  r^   rO   r/   r,   r  r  U  s   † Ø�|Š|˜G U¨H°kÓBÐC€Gõ(r/   r  c                   óF   • \ rS rSr\R
                  " SSSS5      /rS rSrg)	ÚTestStringOptionalInOuti[  r   r  r  zgh24662.f90c                 ó‚  • U R                   R                  5         [        R                  " SSS9nU R                   R                  U5        SUR	                  5       R                  5       ;   d   e[        R                  " [        5         SnU R                   R                  U5        S S S 5        g ! , (       d  f       g = f)NÚhiÚS32r   zoutput stringÚHi)	r!   Ústring_inout_optionalr#   r$   ÚtobytesÚdecoder[   Úraisesrú   )r)   r   Úaas      r,   Útest_gh24662Ú$TestStringOptionalInOut.test_gh24662_  s€   € Ø�‰×)Ñ)Ô+Ü�HŠH�T Ñ'ˆØ�‰×)Ñ)¨!Ô,Ø !§)¡)£+×"4Ñ"4Ó"6Ó6Ð6Ð6Ü�]Š]œ9Õ%ØˆBØ�K‰K×-Ñ-¨bÔ1÷ &×%Ö%ús   Â	B0Â0
B>rO   N)	rP   rQ   rR   rS   r   r  r  r%  r^   rO   r/   r,   r  r  [  s   † à�|Š|˜G U¨H°mÓDÐE€Gõ2r/   r  c                   ór   • \ rS rSr\R
                  " SSSS5      \R
                  " SSSS5      /rSrS rS	r	g
)ÚTestNewCharHandlingii  r   r  r  zgh25286.pyfúgh25286.f90Ú_char_handling_testc                 óJ   • U R                   R                  S5      nUS:X  d   eg ©NÚTrå   ©r!   Úcharint©r)   Úinfos     r,   Útest_gh25286Ú TestNewCharHandling.test_gh25286r  ó"   € Ø�{‰{×"Ñ" 3Ó'ˆØ�q‹yÐ‰yr/   rO   N©
rP   rQ   rR   rS   r   r  r  Úmodule_namer2  r^   rO   r/   r,   r(  r(  i  s;   † ð 	�Š�W˜e X¨}Ó=Ø�Š�W˜e X¨}Ó=ð€Gð (€Kõr/   r(  c                   ór   • \ rS rSr\R
                  " SSSS5      \R
                  " SSSS5      /rSrS rS	r	g
)ÚTestBCCharHandlingiv  r   r  r  zgh25286_bc.pyfr)  r*  c                 óJ   • U R                   R                  S5      nUS:X  d   eg r,  r.  r0  s     r,   r2  ÚTestBCCharHandling.test_gh25286  r4  r/   rO   Nr5  rO   r/   r,   r8  r8  v  s<   † ð 	�Š�W˜e XÐ/?Ó@Ø�Š�W˜e X¨}Ó=ð€Gð (€Kõr/   r8  )rX   r[   Únumpyr#   Únumpy.f2py.testsr   Únumpy.testingr   r   r   r\   rý   ÚF2PyTestr   r`   rÇ   rÿ   r  r  r(  r8  rO   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/   