Ë
    öU.jÜ@  ã                   óø  — d dl Z d dlZd dlZd dlZd dlmZmZ ddlm	Z	 d dl
mZ d dlZd dlZd dlZ G d„ de	j                  «      Z G d„ d	«      Z G d
„ d«      Z G d„ de	j                  «      Z G d„ de	j                  «      Z G d„ d«      Z G d„ de	j                  «      Z G d„ d«      Z G d„ de	j                  «      Z G d„ de	j                  «      Zej4                  j6                   G d„ de	j                  «      «       Z G d„ d«      Z G d„ de	j                  «      Z G d „ d!e	j                  «      Z G d"„ d#«      Z  G d$„ d%«      Z!ej4                  j6                   G d&„ d'e	j                  «      «       Z"y)(é    N)ÚmarkinnerspacesÚnameargspatterné   )Úutil)Úcrackfortranc                   ó>   — e Zd Z ej                  dddd«      gZd„ Zy)ÚTestNoSpaceÚtestsÚsrcr   z	gh15035.fc                 ó¼  — t        j                  g d¢t         j                  ¬«      }t        j                  g d¢t         j                  ¬«      }| j                  j	                  |«       t        j
                  ||dz   «      sJ ‚| j                  j                  ||g«       t        j
                  ||dz   «      sJ ‚| j                  j                  d«      dk(  sJ ‚y )N©r   é   é   )Údtyper   Ú23ó   2)ÚnpÚarrayÚfloat64ÚmoduleÚsubbÚallcloseÚsubcÚt0)ÚselfÚkÚws      údC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\numpy/f2py/tests/test_crackfortran.pyÚtest_modulezTestNoSpace.test_module   s�   € Ü�H‰H’Y¤b§j¡jÔ1ˆÜ�H‰H’Y¤b§j¡jÔ1ˆØ�‰×Ñ˜ÔÜ�{‰{˜1˜a !™eÔ$Ð$Ð$Ø�‰×Ñ˜!˜Q˜Ô Ü�{‰{˜1˜a !™eÔ$Ð$Ð$Ø�{‰{�~‰~˜dÓ# tÒ+Ð+Ñ+ó    N)Ú__name__Ú
__module__Ú__qualname__r   ÚgetpathÚsourcesr   © r    r   r	   r	      s"   „ ð ˆt�|‰|˜G U¨N¸KÓHÐI€Gó,r    r	   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestPublicPrivatec                 óP  — t        j                  dddd«      }t        j                  t        |«      g«      }t	        |«      dk(  sJ ‚|d   }d|d   d	   d
   v sJ ‚d|d   d	   d
   vsJ ‚d|d   d   d
   v sJ ‚d|d   d   d
   vsJ ‚d|d   d   d
   vsJ ‚d|d   d   d
   v sJ ‚y )Nr
   r   r   zprivatemod.f90r   r   ÚprivateÚvarsÚaÚattrspecÚpublicÚbÚseta©r   r$   r   ÚstrÚlen)r   ÚfpathÚmods      r   Útest_defaultPrivatez%TestPublicPrivate.test_defaultPrivate   sî   € Ü—‘˜W e¨^Ð=MÓNˆÜ×'Ñ'¬¨U«¨Ó5ˆÜ�3‹x˜1Š}Ðˆ}Ø�!‰fˆØ˜C ™K¨Ñ,¨ZÑ8Ñ8Ð8Ð8Ø˜s 6™{¨3Ñ/°
Ñ;Ñ;Ð;Ð;Ø˜C ™K¨Ñ,¨ZÑ8Ñ8Ð8Ð8Ø˜s 6™{¨3Ñ/°
Ñ;Ñ;Ð;Ð;Ø  F¡¨FÑ 3°JÑ ?Ñ?Ð?Ð?Ø˜3˜v™; vÑ.¨zÑ:Ñ:Ð:Ñ:r    c                 ó  — t        j                  dddd«      }t        j                  t        |«      g«      }t	        |«      dk(  sJ ‚|d   }d|d   d	   d
   v sJ ‚d|d   d	   d
   vsJ ‚d|d   d   d
   vsJ ‚d|d   d   d
   v sJ ‚y )Nr
   r   r   zpublicmod.f90r   r   r*   r+   r,   r-   r.   r0   r1   ©r   Útmp_pathr4   r5   s       r   Útest_defaultPublicz$TestPublicPrivate.test_defaultPublic)   sµ   € Ü—‘˜W e¨^¸_ÓMˆÜ×'Ñ'¬¨U«¨Ó5ˆÜ�3‹x˜1Š}Ðˆ}Ø�!‰fˆØ˜C ™K¨Ñ,¨ZÑ8Ñ8Ð8Ð8Ø˜s 6™{¨3Ñ/°
Ñ;Ñ;Ð;Ð;Ø  F¡¨FÑ 3°JÑ ?Ñ?Ð?Ð?Ø˜3˜v™; vÑ.¨zÑ:Ñ:Ð:Ñ:r    c                 ó0  — t        j                  dddd«      }t        j                  t        |«      g«      }t	        |«      dk(  sJ ‚|d   d   }t        |d   d	   «      d
dhk(  sJ ‚t        |d   d	   «      ddhk(  sJ ‚t        |d   d	   «      dhk(  sJ ‚y )Nr
   r   r   zaccesstype.f90r   r   r+   r,   r-   r*   zbind(c)Úb_r.   Úc)r   r$   r   r2   r3   Úset)r   r9   r4   r5   Útts        r   Útest_access_typez"TestPublicPrivate.test_access_type3   sª   € Ü—‘˜W e¨^Ð=MÓNˆÜ×'Ñ'¬¨U«¨Ó5ˆÜ�3‹x˜1Š}Ðˆ}Ø�‰V�F‰^ˆÜ�2�c‘7˜:Ñ&Ó'¨I°yÐ+AÒAÐAÐAÜ�2�d‘8˜JÑ'Ó(¨X°yÐ,AÒAÐAÐAÜ�2�c‘7˜:Ñ&Ó'¨H¨:Ò5Ð5Ñ5r    c                 óÈ   — t        j                  dddd«      }t        j                  t        |«      g«      }t	        |«      dk(  sJ ‚t        j
                  |«      }d|vsJ ‚y )Nr
   r   r   zgh23879.f90r   Úbar)r   r$   r   r2   r3   Úcrack2fortran)r   r9   r4   r5   Úpyfs        r   Útest_nowrap_private_proceeduresz1TestPublicPrivate.test_nowrap_private_proceedures<   sZ   € Ü—‘˜W e¨^¸]ÓKˆÜ×'Ñ'¬¨U«¨Ó5ˆÜ�3‹x˜1Š}Ðˆ}Ü×(Ñ(¨Ó-ˆØ˜CÑÐÑr    N)r!   r"   r#   r6   r:   r@   rE   r&   r    r   r(   r(      s   „ ò
;ò;ò6ó r    r(   c                   ó   — e Zd Zd„ Zd„ Zy)ÚTestModuleProcedurec                 óÜ  — t        j                  dddd«      }t        j                  t        |«      g«      }t	        |«      dk(  sJ ‚|d   }d|v rt	        |d   «      dk(  sJ ‚|d   d   d	   d
k(  sJ ‚d|d   d   v sJ ‚|d   d   d   ddgk(  sJ ‚|d   d   d	   dk(  sJ ‚d|d   d   v sJ ‚|d   d   d   dgk(  sJ ‚|d   d   d	   dk(  sJ ‚d|d   d   v sJ ‚|d   d   d   ddgk(  sJ ‚y )Nr
   r   r   zoperators.f90r   r   Úbodyé	   Únamezoperator(.item.)ÚimplementedbyÚitem_intÚ	item_realr   zoperator(==)Úitems_are_equalr   zassignment(=)Úget_intÚget_realr1   r8   s       r   Útest_moduleOperatorsz(TestModuleProcedure.test_moduleOperatorsD   sc  € Ü—‘˜W e¨^¸_ÓMˆÜ×'Ñ'¬¨U«¨Ó5ˆÜ�3‹x˜1Š}Ðˆ}Ø�!‰fˆØ˜‰}¤ S¨¡[Ó!1°QÒ!6Ð6Ð6Ø�6‰{˜1‰~˜fÑ%Ð);Ò;Ð;Ð;Ø # f¡+¨a¡.Ñ0Ð0Ð0Ø�6‰{˜1‰~˜oÑ.Ø˜Ð%ò&ð 	&ð &à�6‰{˜1‰~˜fÑ%¨Ò7Ð7Ð7Ø # f¡+¨a¡.Ñ0Ð0Ð0Ø�6‰{˜1‰~˜oÑ.Ð3DÐ2EÒEÐEÐEØ�6‰{˜1‰~˜fÑ%¨Ò8Ð8Ð8Ø # f¡+¨a¡.Ñ0Ð0Ð0Ø�6‰{˜1‰~˜oÑ.Ø˜
Ð#ò$ð 	$ñ $r    c                 ó  — t        j                  dddd«      }t        j                  t        |«      g«      }t	        |«      dk(  sJ ‚|d   }|d   d   d	   d
gk(  sJ ‚|d   d   d	   dgk(  sJ ‚|d   d   d	   dgk(  sJ ‚y )Nr
   r   r   zpubprivmod.f90r   r   r+   r,   r-   r*   r/   r.   r0   r1   r8   s       r   Útest_notPublicPrivatez)TestModuleProcedure.test_notPublicPrivateV   s    € Ü—‘˜W e¨^Ð=MÓNˆÜ×'Ñ'¬¨U«¨Ó5ˆÜ�3‹x˜1Š}Ðˆ}Ø�!‰fˆØ�6‰{˜3Ñ 
Ñ+°	¨}Ò<Ð<Ð<Ø�6‰{˜3Ñ 
Ñ+°¨|Ò;Ð;Ð;Ø�6‰{˜6Ñ" :Ñ.°8°,Ò>Ð>Ñ>r    N)r!   r"   r#   rR   rT   r&   r    r   rG   rG   C   s   „ ò$ó$?r    rG   c                   óD   — e Zd Z ej                  dddd«      gZd„ Zd„ Zy)ÚTestExternalr
   r   r   z	gh17859.fc                 óN   — d„ }| j                   j                  |«      }|dk(  sJ ‚y )Nc                 ó   — | dz   S ©Né{   r&   ©Úxs    r   Úincrz5TestExternal.test_external_as_statement.<locals>.incre   ó   € Ø�s‘7ˆNr    rZ   )r   Úexternal_as_statement©r   r]   Úrs      r   Útest_external_as_statementz'TestExternal.test_external_as_statementd   ó(   € ò	ð �K‰K×-Ñ-¨dÓ3ˆØ�CŠxˆ‰xr    c                 óN   — d„ }| j                   j                  |«      }|dk(  sJ ‚y )Nc                 ó   — | dz   S rY   r&   r[   s    r   r]   z5TestExternal.test_external_as_attribute.<locals>.incrl   r^   r    rZ   )r   Úexternal_as_attributer`   s      r   Útest_external_as_attributez'TestExternal.test_external_as_attributek   rc   r    N)r!   r"   r#   r   r$   r%   rb   rg   r&   r    r   rV   rV   `   s%   „ àˆt�|‰|˜G U¨N¸KÓHÐI€Gòór    rV   c                   ó>   — e Zd Z ej                  dddd«      gZd„ Zy)ÚTestCrackFortranr
   r   r   z
gh2848.f90c                 óJ   — | j                   j                  dd«      }|dk(  sJ ‚y )Nr   r   ©r   r   )r   Úgh2848)r   ra   s     r   Útest_gh2848zTestCrackFortran.test_gh2848w   s$   € Ø�K‰K×Ñ˜q !Ó$ˆØ�FŠ{Ð‰{r    N)r!   r"   r#   r   r$   r%   rm   r&   r    r   ri   ri   s   s    „ àˆt�|‰|˜G U¨N¸LÓIÐJ€Gór    ri   c                   ó$   — e Zd Zd„ Zd„ Zd„ Zd„ Zy)ÚTestMarkinnerspacesc                 ó:   — g d¢}|D ]  }t        |«      |k(  rŒJ ‚ y )N)za z aza b cz'abcdefghij'©r   )r   Ú	test_listÚis      r   Útest_do_not_touch_normal_spacesz3TestMarkinnerspaces.test_do_not_touch_normal_spaces   s$   € Ú9ˆ	ÛˆAÜ" 1Ó%¨Ó*Ð*Ð*ñ r    c                 óD   — t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚y )Nza 'b c' \' \'za 'b@_@c' \' \'za "b c" \" \"za "b@_@c" \" \"rq   ©r   s    r   Útest_one_relevant_spacez+TestMarkinnerspaces.test_one_relevant_space„   s,   € ÜÐ0Ó1Ð5HÒHÐHÐHÜÐ/Ó0Ð4FÒFÐFÑFr    c                 óD   — t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚y )Nza 'b c" " d' eza 'b@_@c"@_@"@_@d' eza "b c' ' d" eza "b@_@c'@_@'@_@d" erq   rv   s    r   Útest_ignore_inner_quotesz,TestMarkinnerspaces.test_ignore_inner_quotesˆ   s,   € ÜÐ1Ó2Ð6NÒNÐNÐNÜÐ1Ó2Ð6NÒNÐNÑNr    c                 óD   — t        d«      dk(  sJ ‚t        d«      dk(  sJ ‚y )Nza 'b c' 'd e'za 'b@_@c' 'd@_@e'za "b c" "d e"za "b@_@c" "d@_@e"rq   rv   s    r   Útest_multiple_relevant_spacesz1TestMarkinnerspaces.test_multiple_relevant_spacesŒ   s+   € Ü˜Ó/Ð3FÒFÐFÐFÜÐ/Ó0Ð4HÒHÐHÑHr    N)r!   r"   r#   rt   rw   ry   r{   r&   r    r   ro   ro   |   s   „ ò+ò
GòOóIr    ro   c            	       óø  — e Zd ZdZdZ ej                  d«      Zg d¢ZdgZ	ee	z   Z
dZ ee
«      D ]d  \  ZZej                  d«      D � �cg c]  }d|v r|j                  d«      d	   nd
‘Œ c}} Zeej#                  eedj%                  e«      ¬«      z  ZŒf ej(                  j+                  de
«      ej(                  j,                  d„ «       «       Zej(                  j+                  de
«      d„ «       Zyc c}} w )ÚTestDimSpecaÎ  This test suite tests various expressions that are used as dimension
    specifications.

    There exists two usage cases where analyzing dimensions
    specifications are important.

    In the first case, the size of output arrays must be defined based
    on the inputs to a Fortran function. Because Fortran supports
    arbitrary bases for indexing, for instance, `arr(lower:upper)`,
    f2py has to evaluate an expression `upper - lower + 1` where
    `lower` and `upper` are arbitrary expressions of input parameters.
    The evaluation is performed in C, so f2py has to translate Fortran
    expressions to valid C expressions (an alternative approach is
    that a developer specifies the corresponding C expressions in a
    .pyf file).

    In the second case, when user provides an input array with a given
    size but some hidden parameters used in dimensions specifications
    need to be determined based on the input array size. This is a
    harder problem because f2py has to solve the inverse problem: find
    a parameter `p` such that `upper(p) - lower(p) + 1` equals to the
    size of input array. In the case when this equation cannot be
    solved (e.g. because the input array size is wrong), raise an
    error before calling the Fortran function (that otherwise would
    likely crash Python process when the size of input arrays is
    wrong). f2py currently supports this case only when the equation
    is linear with respect to unknown parameter.

    z.f90a
  
      function get_arr_size_{count}(a, n) result (length)
        integer, intent(in) :: n
        integer, dimension({dimspec}), intent(out) :: a
        integer length
        length = size(a)
      end function

      subroutine get_inv_arr_size_{count}(a, n)
        integer :: n
        ! the value of n is computed in f2py wrapper
        !f2py intent(out) n
        integer, dimension({dimspec}), intent(in) :: a
        if (a({first}).gt.0) then
          ! print*, "a=", a
        endif
      end subroutine
    )Únz2*nz2:nzn/2z5 - n/2z3*n:20zn*(n+1):n*(n+5)z2*n, nz2*n:3*n*n+2*nÚ Ú,Ú:r   Ú1z, )ÚcountÚdimspecÚfirstr„   c                 ó²   — | j                   j                  |«      }t        | j                  d|› �«      }dD ]  } ||«      \  }}|j                  |k(  rŒJ ‚ y )NÚget_arr_size_©r   r   r   é   é   )Úall_dimspecsÚindexÚgetattrr   Úsize)r   r„   rƒ   Úget_arr_sizer~   Úszr,   s          r   Útest_array_sizezTestDimSpec.test_array_sizeÕ   sX   € ð ×!Ñ!×'Ñ'¨Ó0ˆÜ˜tŸ{™{¨m¸E¸7Ð,CÓDˆã ˆAÙ  “O‰EˆB�Ø—6‘6˜R“<Ð�<ñ !r    c                 ó8  — | j                   j                  |«      }t        | j                  d|› �«      }t        | j                  d|› �«      }dD ]H  } ||«      \  }}|| j                  v r
 |||«      }n ||«      } ||«      \  }	}
||	k(  rŒ?J ||||	f«       ‚ y )Nr‡   Úget_inv_arr_size_rˆ   )r‹   rŒ   r�   r   Únonlinear_dimspecs)r   r„   rƒ   r�   Úget_inv_arr_sizer~   r�   r,   Ún1Úsz1Ú_s              r   Útest_inv_array_sizezTestDimSpec.test_inv_array_sizeà   s³   € ð ×!Ñ!×'Ñ'¨Ó0ˆÜ˜tŸ{™{¨m¸E¸7Ð,CÓDˆÜ" 4§;¡;Ð2CÀEÀ7Ð0KÓLÐã ˆAÙ  “O‰EˆB�Ø˜$×1Ñ1Ñ1ñ & a¨Ó+‘ñ & aÓ(�ñ " "Ó%‰FˆC�Ø˜“9Ð.˜q " b¨#Ð.Ó.�9ñ !r    N)r!   r"   r#   Ú__doc__ÚsuffixÚtextwrapÚdedentÚcode_templateÚlinear_dimspecsr”   r‹   ÚcodeÚ	enumeraterƒ   r„   ÚsplitÚlstÚformatÚjoinÚpytestÚmarkÚparametrizeÚslowr‘   r™   )Ú.0Úds   00r   r}   r}   ‘   s  „ ñð< €Fà#�H—O‘Oð %ó 	€Mò&€Oð *Ð*ÐØ"Ð%7Ñ7€Là€DÙ# LÖ1‰ˆˆwØ?F¿}¹}ÈSÔ?QÔRÑ?Q¸! 3¨!¡8�—‘˜“˜Q’°Ñ4Ð?QÒRˆØ�×$Ñ$ØØØ—)‘)˜C“.ð %ó 
ñ 	
‰ð 2ð ‡[�[×Ñ˜Y¨Ó5Ø‡[�[×Ññ ó ó 6ð ð ‡[�[×Ñ˜Y¨Ó5ñ/ó 6ñ/ùó' Ss   Á!C6r}   c                   ó   — e Zd Zd„ Zy)ÚTestModuleDeclarationc                 ó¸   — t        j                  dddd«      }t        j                  t        |«      g«      }t	        |«      dk(  sJ ‚|d   d   d   d	   d
k(  sJ ‚y )Nr
   r   r   zfoo_deps.f90r   r   r+   ÚabarÚ=zbar('abar')r1   r8   s       r   Útest_dependenciesz'TestModuleDeclaration.test_dependenciesù   s\   € Ü—‘˜W e¨^¸^ÓLˆÜ×'Ñ'¬¨U«¨Ó5ˆÜ�3‹x˜1Š}Ðˆ}Ø�1‰v�f‰~˜fÑ% cÑ*¨mÒ;Ð;Ñ;r    N)r!   r"   r#   r±   r&   r    r   r­   r­   ø   s   „ ó<r    r­   c                   ó   — e Zd Zd„ Zy)ÚTestEvalc                 óª   — t         j                  } |di «      dk(  sJ ‚ |di «      dk(  sJ ‚ |dt        dd¬«      «      dk(  sJ ‚ |d	i «      d
k(  sJ ‚y )NÚ123z12 + 3Ú15za + br   r   )r,   r/   Ú3z"123"z'123')r   Ú_eval_scalarÚdict)r   Úeval_scalars     r   Útest_eval_scalarzTestEval.test_eval_scalar  sg   € Ü"×/Ñ/ˆá˜5 "Ó%¨Ò.Ð.Ð.Ù˜8 RÓ(¨DÒ0Ð0Ð0Ù˜7¤D¨1°¤NÓ3°sÒ:Ð:Ð:Ù˜7 BÓ'¨7Ò2Ð2Ñ2r    N)r!   r"   r#   r»   r&   r    r   r³   r³      s   „ ó3r    r³   c                   óT   — e Zd Zej                  j                  dg d¢«      d„ «       Zy)ÚTestFortranReaderÚencoding)Úasciizutf-8zutf-16zutf-32c                 óà   — |d|› d�z  }|j                  d|¬«      5 }|j                  d«       d d d «       t        j                  t        |«      g«      }|d   d   dk(  sJ ‚y # 1 sw Y   Œ6xY w)	NÚinput_with_z_encoding.f90r   )r¾   zd
                     subroutine foo()
                     end subroutine foo
                     r   rK   Úfoo)ÚopenÚwriter   r2   )r   r9   r¾   Úf_pathÚffr5   s         r   Útest_input_encodingz%TestFortranReader.test_input_encoding  sv   € ð ˜k¨(¨°=ÐAÑAˆØ�[‰[˜ xˆ[Ô0°BØ�H‰Hð ô ÷ 1ô
 ×'Ñ'¬¨V«¨Ó6ˆØ�1‰v�f‰~ Ò&Ð&Ñ&÷ 1Ð0ús   �A$Á$A-N)r!   r"   r#   r¦   r§   r¨   rÇ   r&   r    r   r½   r½   
  s*   „ Ø‡[�[×Ñ˜ZÚCóEñ	'óEñ	'r    r½   c                   ó´   — e Zd Z ej                  dddd«      gZej                  j                  e	j                  j                  d«      du d¬«      d	„ «       Zy)
ÚTestUnicodeCommentr
   r   r   zunicode_comment.f90Úcharset_normalizerNz7test requires charset_normalizer which is not installed)Úreasonc                 ó:   — | j                   j                  d«       y )Nr   )r   rÂ   rv   s    r   Útest_encoding_commentz(TestUnicodeComment.test_encoding_comment  s   € ð
 	�‰�‰˜Õr    )r!   r"   r#   r   r$   r%   r¦   r§   ÚskipifÚ	importlibÚ	find_specrÍ   r&   r    r   rÉ   rÉ     s]   „ àˆt�|‰|˜G U¨NÐ<QÓRÐS€Gà‡[�[×ÑØ	�‰×	!Ñ	!Ð"6Ó	7¸4Ð	?ØHð ó ñó	ñr    rÉ   c                   óV   — e Zd Zej                  j                  dgg d¢«      d„ «       Zy)ÚTestNameArgsPatternBacktrackingÚ	adversary))z
@)@bind@(@)z#@)@bind                         @(@)z@)@bind foo bar baz@(@c                 ó˜  — d}d}d\  }}t        ||«      D ]²  }||z  }t        |«      D ]}  }g }	t        |«      D ]Q  }t        j                  «       }
t        j                  |«      }|	j                  t        j                  «       |
z
  «       ŒS t        j                  |	«      dk  rŒ}J ‚ rJ ‚|dz   }t        j                  |«      rŒ²J ‚ y)zPaddress ReDOS vulnerability:
        https://github.com/numpy/numpy/issues/23338é   r‰   )é   é   gš™™™™™É?z@)@N)ÚrangeÚtimeÚperf_counterr   ÚsearchÚappendr   Úmedian)r   rÓ   Útrials_per_batchÚbatches_per_regexÚ
start_repsÚend_repsÚiiÚrepeated_adversaryr˜   Útimesr   ÚmtchÚgood_version_of_adversarys                r   Ú!test_nameargspattern_backtrackingzATestNameArgsPatternBacktracking.test_nameargspattern_backtracking&  sÙ   € ð ÐØÐØ%Ñˆ
�HÜ˜
 HÖ-ˆBØ!*¨R¡Ðô Ð,Ö-�Ø�ÜÐ/Ö0�AÜ×*Ñ*Ó,�BÜ*×1Ñ1Ð2DÓE�DØ—L‘L¤×!2Ñ!2Ó!4°rÑ!9Õ:ð 1ô —y‘y Ó'¨#Ó-Ð-Ð-ð .ñ ˆO�8ð );¸UÑ(BÐ%Ü"×)Ñ)Ð*CÕDÐDÐDñ' .r    N)r!   r"   r#   r¦   r§   r¨   rç   r&   r    r   rÒ   rÒ   %  s/   „ Ø‡[�[×ÑØ	ˆò	
óñEóñEr    rÒ   c                   óp   — e Zd Z ej                  dddd«      gZej                  j                  d„ «       Z	y)ÚTestFunctionReturnr
   r   r   zgh23598.f90c                 óF   — | j                   j                  dd«      dk(  sJ ‚y )Nr   r‰   rÕ   )r   Ú
intproductrv   s    r   Útest_function_rettypez(TestFunctionReturn.test_function_rettypeL  s#   € ð �{‰{×%Ñ% a¨Ó+¨rÒ1Ð1Ñ1r    N)
r!   r"   r#   r   r$   r%   r¦   r§   r©   rì   r&   r    r   ré   ré   I  s7   „ Øˆt�|‰|˜G U¨N¸MÓJÐK€Gà‡[�[×Ññ2ó ñ2r    ré   c                   ó   — e Zd Zd„ Zy)ÚTestFortranGroupCountersc                 óª   — t        j                  dddd«      }	 t        j                  t        |«      g«       y # t        $ r}J d|› �«       ‚d }~ww xY w)Nr
   r   r   z	gh23533.fz0'crackfortran.crackfortran' raised an exception )r   r$   r   r2   Ú	Exception)r   r4   Úexcs      r   Útest_end_if_commentz,TestFortranGroupCounters.test_end_if_commentS  sT   € ä—‘˜W e¨^¸[ÓIˆð	SÜ×%Ñ%¤s¨5£z lÕ3øÜò 	SØRÐLÈSÈEÐRÓR�5ûð	Sús   š: º	AÁ
AÁAN)r!   r"   r#   rò   r&   r    r   rî   rî   R  s   „ óSr    rî   c                   ó   — e Zd Zd„ Zy)ÚTestF77CommonBlockReaderc                 ó  — t        j                  dddd«      }t        j                  t	        j
                  «       «      5 }t        j                  t        |«      g«      }d d d «       dj                  «       vsJ ‚y # 1 sw Y   ŒxY w)Nr
   r   r   zgh22648.pyfÚMismatch)	r   r$   Ú
contextlibÚredirect_stdoutÚioÚStringIOr   r2   Úgetvalue)r   r9   r4   Ústdout_f2pyr5   s        r   Útest_gh22648z%TestF77CommonBlockReader.test_gh22648]  sg   € Ü—‘˜W e¨^¸]ÓKˆÜ×'Ñ'¬¯©«Ô6¸+Ü×+Ñ+¬S°«Z¨LÓ9ˆC÷ 7à ×!5Ñ!5Ó!7Ñ7Ð7Ñ7÷ 7Ð6ús   Á  A=Á=BN)r!   r"   r#   rý   r&   r    r   rô   rô   \  s   „ ó8r    rô   c                   ó*   — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zy)ÚTestParamEvalc                 óÜ   — d}t        t        j                  t        j                  t        j                  ¬«      }ddddœdddd	œd
œ}d}t        j
                  ||||¬«      }|dddœk(  sJ ‚y )Nz(/3.14, 4./)©ÚkindÚselected_int_kindÚselected_real_kindé   r   rŠ   rk   r   r   r   )ÚdpÚintparamarrayÚnestedz(2)©r„   g…ëQ¸	@g      @©r¹   r   Ú
_kind_funcÚ_selected_int_kind_funcÚ_selected_real_kind_funcÚ
param_eval©r   ÚvÚg_paramsÚparamsr„   Úrets         r   Útest_param_eval_nestedz$TestParamEval.test_param_eval_nestede  sv   € ØˆÜœ\×4Ñ4Ü".×"FÑ"FÜ#/×#HÑ#HôJˆð °°a©LØ ! a¨AÑ.ñ0ˆàˆÜ×%Ñ% a¨°6À7ÔKˆØ˜$ 3Ñ'Ò'Ð'Ñ'r    c                 óÈ   — d}t        t        j                  t        j                  t        j                  ¬«      }i }d}t        j
                  ||||¬«      }|ddddœk(  sJ ‚y )	Nz(/ 6, 3, 1 /)r  z(-1:1)r	  é   r   r   )éÿÿÿÿr   r   r
  r  s         r   Ú!test_param_eval_nonstandard_rangez/TestParamEval.test_param_eval_nonstandard_rangep  sc   € ØˆÜœ\×4Ñ4Ü".×"FÑ"FÜ#/×#HÑ#HôJˆð ˆØˆÜ×%Ñ% a¨°6À7ÔKˆØ˜1  qÑ)Ò)Ð)Ñ)r    c                 óÚ   — d}t        t        j                  t        j                  t        j                  ¬«      }i }d}t        j                  t        t        j                  ||||¬«       y )NÚ6r  r   r	  ©	r¹   r   r  r  r  r¦   ÚraisesÚ
ValueErrorr  ©r   r  r  r  r„   s        r   Útest_param_eval_empty_rangez)TestParamEval.test_param_eval_empty_rangez  sW   € ØˆÜœ\×4Ñ4Ü".×"FÑ"FÜ#/×#HÑ#HôJˆð ˆØˆÜ�‰”j¤,×"9Ñ"9¸1¸hÈØ%ö	'r    c                 ó¼   — d}t        t        j                  t        j                  t        j                  ¬«      }i }t        j
                  |||d ¬«      }|dk(  sJ ‚y )Nz3.14_dpr  r	  r
  )r   r  r  r  r  s        r   Útest_param_eval_non_array_paramz-TestParamEval.test_param_eval_non_array_param„  sW   € ØˆÜœ\×4Ñ4Ü".×"FÑ"FÜ#/×#HÑ#HôJˆð ˆÜ×%Ñ% a¨°6À4ÔHˆØ�iÒÐÑr    c                 óÚ   — d}t        t        j                  t        j                  t        j                  ¬«      }i }d}t        j                  t        t        j                  ||||¬«       y )Nz*reshape((/ (i, i=1, 250) /), (/5, 10, 5/))r  z(0:4, 3:12, 5)r	  r  r  s        r   Útest_param_eval_too_many_dimsz+TestParamEval.test_param_eval_too_many_dims�  sW   € Ø8ˆÜœ\×4Ñ4Ü".×"FÑ"FÜ#/×#HÑ#HôJˆð ˆØ"ˆÜ�‰”j¤,×"9Ñ"9¸1¸hÈØ%ö	'r    N)r!   r"   r#   r  r  r  r!  r#  r&   r    r   rÿ   rÿ   c  s   „ ò	(ò*ò'ò ó'r    rÿ   c                   óD   — e Zd Z ej                  dddd«      gZdgZd„ Zy)ÚTestLowerF2PYDirectiver
   r   r   zgh27697.f90z--lowerc                 ó®   — t        j                  t        d¬«      5 }| j                  j                  j                  d«       d d d «       y # 1 sw Y   y xY w)Nzaborting directly)Úmatch)r¦   r  r  r   ÚutilsÚmy_abort)r   rñ   s     r   Útest_no_lower_failz)TestLowerF2PYDirective.test_no_lower_failœ  s9   € Ü�]‰]œ:Ð-@ÕAÀSØ�K‰K×Ñ×&Ñ&Ð':Ô;÷ B×AÑAús   œ&AÁAN)r!   r"   r#   r   r$   r%   Úoptionsr*  r&   r    r   r%  r%  —  s'   „ àˆt�|‰|˜G U¨N¸MÓJÐK€GØˆk€Gó<r    r%  )#rÏ   rÙ   r¦   Únumpyr   Únumpy.f2py.crackfortranr   r   r   r   Ú
numpy.f2pyr   rœ   r÷   rù   ÚF2PyTestr	   r(   rG   rV   ri   ro   r}   r­   r³   r½   r§   r©   rÉ   rÒ   ré   rî   rô   rÿ   r%  r&   r    r   Ú<module>r0     sG  ðÛ Û Û Û ß DÝ Ý #Û Û Û 	ô,�$—-‘-ô ,÷% ñ % ÷N?ñ ?ô:�4—=‘=ô ô&�t—}‘}ô ÷Iñ Iô*d/�$—-‘-ô d/÷N<ñ <ô3ˆt�}‰}ô 3ô'˜Ÿ™ô 'ð ‡�×Ñô˜Ÿ™ó ó ð÷"Eñ "EôH2˜Ÿ™ô 2ôS˜tŸ}™}ô S÷8ñ 8÷2'ñ 2'ðh ‡�×Ñô<˜TŸ]™]ó <ó ñ<r    