ó
    �œ‘hÂA  ã                   óø  • S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJ	r	  S SK
JrJr  SSKJr   " S S\R                  5      r " S S	5      r " S
 S5      r " S S\R                  5      r " S S\R                  5      r " S S5      r " S S\R                  5      r " S S5      r " S S\R                  5      r " S S\R                  5      r\R4                  R6                   " S S\R                  5      5       r " S S5      r " S S\R                  5      r " S  S!\R                  5      r " S" S#5      r  " S$ S%5      r!\R4                  R6                   " S& S'\R                  5      5       r"g)(é    N)Úcrackfortran)ÚmarkinnerspacesÚnameargspatterné   )Úutilc                   óF   • \ rS rSr\R
                  " SSSS5      /rS rSrg)	ÚTestNoSpaceé   ÚtestsÚsrcr   z	gh15035.fc                 óÈ  • [         R                  " / SQ[         R                  S9n[         R                  " / SQ[         R                  S9nU R                  R	                  U5        [         R
                  " XS-   5      (       d   eU R                  R                  X!/5        [         R
                  " XS-   5      (       d   eU R                  R                  S5      S:X  d   eg )N©r   é   é   )Údtyper   Ú23ó   2)ÚnpÚarrayÚfloat64ÚmoduleÚsubbÚallcloseÚsubcÚt0)ÚselfÚkÚws      ÚfC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\numpy/f2py/tests/test_crackfortran.pyÚtest_moduleÚTestNoSpace.test_module   s�   € Ü�HŠH’Y¤b§j¡jÑ1ˆÜ�HŠH’Y¤b§j¡jÑ1ˆØ�‰×Ñ˜ÔÜ�{Š{˜1 !™e×$Ñ$Ð$Ð$Ø�‰×Ñ˜!˜Ô Ü�{Š{˜1 !™e×$Ñ$Ð$Ð$Ø�{‰{�~‰~˜dÓ# tÓ+Ð+Ñ+ó    © N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   ÚgetpathÚsourcesr    Ú__static_attributes__r#   r"   r   r	   r	      s    † ð �|Š|˜G U¨N¸KÓHÐI€Gõ,r"   r	   c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚTestPublicPrivateé   c                 ón  • [         R                  " SSSS5      n[        R                  " [        U5      /5      n[	        U5      S:X  d   eUS   nSUS   S	   S
   ;   d   eSUS   S	   S
   ;  d   eSUS   S   S
   ;   d   eSUS   S   S
   ;  d   eSUS   S   S
   ;  d   eSUS   S   S
   ;   d   eg )Nr   r   r   zprivatemod.f90r   r   ÚprivateÚvarsÚaÚattrspecÚpublicÚbÚseta©r   r(   r   ÚstrÚlen)r   ÚfpathÚmods      r   Útest_defaultPrivateÚ%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                 ó*  • [         R                  " SSSS5      n[        R                  " [        U5      /5      n[	        U5      S:X  d   eUS   nSUS   S	   S
   ;   d   eSUS   S	   S
   ;  d   eSUS   S   S
   ;  d   eSUS   S   S
   ;   d   eg )Nr   r   r   zpublicmod.f90r   r   r/   r0   r1   r2   r3   r5   r6   ©r   Útmp_pathr9   r:   s       r   Útest_defaultPublicÚ$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                 ó<  • [         R                  " SSSS5      n[        R                  " [        U5      /5      n[	        U5      S:X  d   eUS   S   n[        US   S	   5      S
S1:X  d   e[        US   S	   5      SS1:X  d   e[        US   S	   5      S1:X  d   eg )Nr   r   r   zaccesstype.f90r   r   r0   r1   r2   r/   zbind(c)Úb_r3   Úc)r   r(   r   r7   r8   Úset)r   r?   r9   r:   Útts        r   Útest_access_typeÚ"TestPublicPrivate.test_access_type6   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                 óÔ   • [         R                  " SSSS5      n[        R                  " [        U5      /5      n[	        U5      S:X  d   e[        R
                  " U5      nSU;  d   eg )Nr   r   r   zgh23879.f90r   Úbar)r   r(   r   r7   r8   Úcrack2fortran)r   r?   r9   r:   Úpyfs        r   Útest_nowrap_private_proceeduresÚ1TestPublicPrivate.test_nowrap_private_proceedures?   sZ   € Ü—’˜W e¨^¸]ÓKˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1‹}Ðˆ}Ü×(Ò(¨Ó-ˆØ˜CÓÐÑr"   r#   N)	r$   r%   r&   r'   r;   r@   rG   rM   r*   r#   r"   r   r,   r,      s   † ò
;ò;ò6õ r"   r,   c                   ó    • \ rS rSrS rS rSrg)ÚTestModuleProcedureéF   c                 ó   • [         R                  " SSSS5      n[        R                  " [        U5      /5      n[	        U5      S:X  d   eUS   nSU;   a  [	        US   5      S:X  d   eUS   S   S	   S
:X  d   eSUS   S   ;   d   eUS   S   S   SS/:X  d   eUS   S   S	   S:X  d   eSUS   S   ;   d   eUS   S   S   S/:X  d   eUS   S   S	   S:X  d   eSUS   S   ;   d   eUS   S   S   SS/:X  d   eg )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_realr6   r>   s       r   Útest_moduleOperatorsÚ(TestModuleProcedure.test_moduleOperatorsG   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                 ó  • [         R                  " SSSS5      n[        R                  " [        U5      /5      n[	        U5      S:X  d   eUS   nUS   S   S	   S
/:X  d   eUS   S   S	   S/:X  d   eUS   S   S	   S/:X  d   eg )Nr   r   r   zpubprivmod.f90r   r   r0   r1   r2   r/   r4   r3   r5   r6   r>   s       r   Útest_notPublicPrivateÚ)TestModuleProcedure.test_notPublicPrivateY   s    € Ü—’˜W e¨^Ð=MÓNˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1‹}Ðˆ}Ø�!‰fˆØ�6‰{˜3Ñ 
Ñ+°	¨}Ó<Ð<Ð<Ø�6‰{˜3Ñ 
Ñ+°¨|Ó;Ð;Ð;Ø�6‰{˜6Ñ" :Ñ.°8°,Ó>Ð>Ñ>r"   r#   N)r$   r%   r&   r'   r\   r_   r*   r#   r"   r   rP   rP   F   s   † ò$õ$?r"   rP   c                   óL   • \ rS rSr\R
                  " SSSS5      /rS rS rSr	g	)
ÚTestExternaléc   r   r   r   z	gh17859.fc                 óP   • S nU R                   R                  U5      nUS:X  d   eg )Nc                 ó   • U S-   $ ©Né{   r#   ©Úxs    r   ÚincrÚ5TestExternal.test_external_as_statement.<locals>.incrh   ó   € Ø�s‘7ˆNr"   rg   )r   Úexternal_as_statement©r   rj   Úrs      r   Útest_external_as_statementÚ'TestExternal.test_external_as_statementg   ó(   € ò	ð �K‰K×-Ñ-¨dÓ3ˆØ�C‹xˆ‰xr"   c                 óP   • S nU R                   R                  U5      nUS:X  d   eg )Nc                 ó   • U S-   $ rf   r#   rh   s    r   rj   Ú5TestExternal.test_external_as_attribute.<locals>.incro   rl   r"   rg   )r   Úexternal_as_attributern   s      r   Útest_external_as_attributeÚ'TestExternal.test_external_as_attributen   rr   r"   r#   N)
r$   r%   r&   r'   r   r(   r)   rp   rw   r*   r#   r"   r   rb   rb   c   s#   † à�|Š|˜G U¨N¸KÓHÐI€Gòõr"   rb   c                   ót   • \ 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
)ÚTestCrackFortranév   r   r   r   z
gh2848.f90zcommon_with_division.fc                 óL   • U R                   R                  SS5      nUS:X  d   eg )Nr   r   ©r   r   )r   Úgh2848)r   ro   s     r   Útest_gh2848ÚTestCrackFortran.test_gh2848|   s$   € Ø�K‰K×Ñ˜q !Ó$ˆØ�F‹{Ð‰{r"   c                 ób   • [        U R                  R                  R                  5      S:X  d   eg )Né   )r8   r   ÚmortmpÚctmp©r   s    r   Útest_common_with_divisionÚ*TestCrackFortran.test_common_with_division€   s%   € Ü�4—;‘;×%Ñ%×*Ñ*Ó+¨rÓ1Ð1Ñ1r"   r#   N)
r$   r%   r&   r'   r   r(   r)   r   r†   r*   r#   r"   r   rz   rz   v   s8   † à�|Š|˜G U¨N¸LÓIØ�|Š|˜G U¨NÐ<TÓUð€Gòõ2r"   rz   c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚTestMarkinnerspaceséƒ   c                 ó@   • / SQnU H  n[        U5      U:X  a  M   e   g )N)za z aza b cz'abcdefghij'©r   )r   Ú	test_listÚis      r   Útest_do_not_touch_normal_spacesÚ3TestMarkinnerspaces.test_do_not_touch_normal_spaces†   s$   € Ú9ˆ	ÛˆAÜ" 1Ó%¨Õ*Ð*Ð*ò r"   c                 óH   • [        S5      S:X  d   e[        S5      S:X  d   eg )Nza 'b c' \' \'za 'b@_@c' \' \'za "b c" \" \"za "b@_@c" \" \"rŒ   r…   s    r   Útest_one_relevant_spaceÚ+TestMarkinnerspaces.test_one_relevant_space‹   s,   € ÜÐ0Ó1Ð5HÓHÐHÐHÜÐ/Ó0Ð4FÓFÐFÑFr"   c                 óH   • [        S5      S:X  d   e[        S5      S:X  d   eg )Nza 'b c" " d' eza 'b@_@c"@_@"@_@d' eza "b c' ' d" eza "b@_@c'@_@'@_@d" erŒ   r…   s    r   Útest_ignore_inner_quotesÚ,TestMarkinnerspaces.test_ignore_inner_quotes�   s,   € ÜÐ1Ó2Ð6NÓNÐNÐNÜÐ1Ó2Ð6NÓNÐNÑNr"   c                 óH   • [        S5      S:X  d   e[        S5      S:X  d   eg )Nza 'b c' 'd e'za 'b@_@c' 'd@_@e'za "b c" "d e"za "b@_@c" "d@_@e"rŒ   r…   s    r   Útest_multiple_relevant_spacesÚ1TestMarkinnerspaces.test_multiple_relevant_spaces“   s+   € Ü˜Ó/Ð3FÓFÐFÐFÜÐ/Ó0Ð4HÓHÐHÑHr"   r#   N)	r$   r%   r&   r'   r�   r’   r•   r˜   r*   r#   r"   r   r‰   r‰   ƒ   s   † ò+ò
GòOõIr"   r‰   c            	       ó  • \ rS rSrSrSr\R                  " S5      r/ SQr	S/r
\	\
-   rSr\" \5       Hg  u  rr\R!                  S5       V Vs/ s H  nS	U;   a  UR!                  S	5      S
   OSPM!     snn r\\R%                  \\SR'                  \5      S9-  rMi     \R*                  R-                  S\5      \R*                  R.                  S 5       5       r\R*                  R-                  S\5      S 5       rSrgs  snn f )ÚTestDimSpecé˜   an  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                 ó¶   • U R                   R                  U5      n[        U R                  SU 35      nS H  nU" U5      u  pVUR                  U:X  a  M   e   g )NÚget_arr_size_©r   r   r   é   é   )Úall_dimspecsÚindexÚgetattrr   Úsize)r   r£   r¢   Úget_arr_sizer�   Úszr1   s          r   Útest_array_sizeÚTestDimSpec.test_array_sizeÜ   sV   € ð ×!Ñ!×'Ñ'¨Ó0ˆÜ˜tŸ{™{¨m¸E¸7Ð,CÓDˆã ˆAÙ  “O‰EˆBØ—6‘6˜R•<Ð�<ò !r"   c                 ó4  • U R                   R                  U5      n[        U R                  SU 35      n[        U R                  SU 35      nS HE  nU" U5      u  pgXR                  ;   a	  U" Xu5      nOU" U5      nU" U5      u  pšXi:X  a  M>   XXXi45       e   g )Nr¦   Úget_inv_arr_size_r§   )rª   r«   r¬   r   Únonlinear_dimspecs)r   r£   r¢   r®   Úget_inv_arr_sizer�   r¯   r1   Ún1Úsz1Ú_s              r   Útest_inv_array_sizeÚ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"   r#   N)r$   r%   r&   r'   Ú__doc__ÚsuffixÚtextwrapÚdedentÚcode_templateÚlinear_dimspecsr´   rª   ÚcodeÚ	enumerater¢   r£   ÚsplitÚlstÚformatÚjoinÚpytestÚmarkÚparametrizeÚslowr°   r¹   r*   )Ú.0Úds   00r   r›   r›   ˜   s  † ñð< €Fà—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   Á&C>r›   c                   ó   • \ rS rSrS rSrg)ÚTestModuleDeclarationéÿ   c                 óÀ   • [         R                  " SSSS5      n[        R                  " [        U5      /5      n[	        U5      S:X  d   eUS   S   S   S	   S
:X  d   eg )Nr   r   r   zfoo_deps.f90r   r   r0   ÚabarÚ=zbar('abar')r6   r>   s       r   Útest_dependenciesÚ'TestModuleDeclaration.test_dependencies   s\   € Ü—’˜W e¨^¸^ÓLˆÜ×'Ò'¬¨U«¨Ó5ˆÜ�3‹x˜1‹}Ðˆ}Ø�1‰v�f‰~˜fÑ% cÑ*¨mÓ;Ð;Ñ;r"   r#   N)r$   r%   r&   r'   rÓ   r*   r#   r"   r   rÎ   rÎ   ÿ   s   † õ<r"   rÎ   c                   ó   • \ rS rSrS rSrg)ÚTestEvali  c                 ó¢   • [         R                  nU" S0 5      S:X  d   eU" S0 5      S:X  d   eU" SSSS.5      S:X  d   eU" S	0 5      S
:X  d   eg )NÚ123z12 + 3Ú15za + br   r   )r1   r4   Ú3z"123"z'123')r   Ú_eval_scalar)r   Úeval_scalars     r   Útest_eval_scalarÚTestEval.test_eval_scalar  sf   € Ü"×/Ñ/ˆá˜5 "Ó%¨Ó.Ð.Ð.Ù˜8 RÓ(¨DÓ0Ð0Ð0Ù˜7¨!°!Ñ$4Ó5¸Ó<Ð<Ð<Ù˜7 BÓ'¨7Ó2Ð2Ñ2r"   r#   N)r$   r%   r&   r'   rÝ   r*   r#   r"   r   rÖ   rÖ     s   † õ3r"   rÖ   c                   ó\   • \ rS rSr\R
                  R                  S/ SQ5      S 5       rSrg)ÚTestFortranReaderi  Úencoding)Úasciizutf-8zutf-16zutf-32c                 óè   • USU S3-  nUR                  SUS9 nUR                  S5        S S S 5        [        R                  " [        U5      /5      nUS   S   S:X  d   eg ! , (       d  f       N== f)	NÚinput_with_z_encoding.f90r   )rá   zd
                     subroutine foo()
                     end subroutine foo
                     r   rU   Úfoo)ÚopenÚwriter   r7   )r   r?   rá   Úf_pathÚffr:   s         r   Útest_input_encodingÚ%TestFortranReader.test_input_encoding  sv   € ð ˜k¨(¨°=ÐAÑAˆØ�[‰[˜ xˆ[Ñ0°BØ�H‰Hð ô ÷ 1ô
 ×'Ò'¬¨V«¨Ó6ˆØ�1‰v�f‰~ Ó&Ð&Ñ&÷ 1Õ0ús   šA#Á#
A1r#   N)	r$   r%   r&   r'   rÇ   rÈ   rÉ   rê   r*   r#   r"   r   rà   rà     s*   † Ø‡[�[×Ñ˜ZÚCóEñ	'óEó	'r"   rà   c                   ó¶   • \ rS rSr\R
                  " SSSS5      /r\R                  R                  \
R                  R                  S5      SL SS	9S
 5       rSrg)ÚTestUnicodeCommenti   r   r   r   zunicode_comment.f90Úcharset_normalizerNz7test requires charset_normalizer which is not installed)Úreasonc                 ó:   • U R                   R                  S5        g )Nr   )r   rå   r…   s    r   Útest_encoding_commentÚ(TestUnicodeComment.test_encoding_comment$  s   € ð
 	�‰�‰˜Õr"   r#   )r$   r%   r&   r'   r   r(   r)   rÇ   rÈ   ÚskipifÚ	importlibÚ	find_specrñ   r*   r#   r"   r   rí   rí      s[   † à�|Š|˜G U¨NÐ<QÓRÐS€Gà‡[�[×ÑØ	�‰×	!Ñ	!Ð"6Ó	7¸4Ð	?ØHð ð ñó	ór"   rí   c                   ó^   • \ rS rSr\R
                  R                  S// SQ5      S 5       rSrg)ÚTestNameArgsPatternBacktrackingi,  Ú	adversary))z
@)@bind@(@)z#@)@bind                         @(@)z@)@bind foo bar baz@(@c                 ó¾  • SnSnSu  pE[        XE5       HÆ  nX-  n[        U5       H…  n/ n	[        U5       HU  n[        R                  " 5       n
[        R                  " U5      nU	R                  [        R                  " 5       U
-
  5        MW     [        R                  " U	5      S:  a  M…   e   W(       a   eUS-   n[        R                  " U5      (       a  MÆ   e   g)zHaddress 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_backtrackingÚATestNameArgsPatternBacktracking.test_nameargspattern_backtracking-  sÖ   € ð ÐØÐØ%Ñˆ
Ü˜
Ö-ˆBØ!*¡Ðô Ð,Ö-�Ø�ÜÐ/Ö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ÐDò' .r"   r#   N)	r$   r%   r&   r'   rÇ   rÈ   rÉ   r  r*   r#   r"   r   r÷   r÷   ,  s/   † Ø‡[�[×ÑØ	ˆò	
óñEóóEr"   r÷   c                   óx   • \ rS rSr\R
                  " SSSS5      /r\R                  R                  S 5       r
Srg)	ÚTestFunctionReturniP  r   r   r   zgh23598.f90c                 óH   • U R                   R                  SS5      S:X  d   eg )Nr   r¨   rú   )r   Ú
intproductr…   s    r   Útest_function_rettypeÚ(TestFunctionReturn.test_function_rettypeS  s#   € ð �{‰{×%Ñ% a¨Ó+¨rÓ1Ð1Ñ1r"   r#   N)r$   r%   r&   r'   r   r(   r)   rÇ   rÈ   rÊ   r  r*   r#   r"   r   r  r  P  s5   † Ø�|Š|˜G U¨N¸MÓJÐK€Gà‡[�[×Ññ2ó ó2r"   r  c                   ó   • \ rS rSrS rSrg)ÚTestFortranGroupCountersiY  c                 ó°   • [         R                  " SSSS5      n [        R                  " [        U5      /5        g ! [         a  n SU 35       eS nAff = f)Nr   r   r   z	gh23533.fz0'crackfortran.crackfortran' raised an exception )r   r(   r   r7   Ú	Exception)r   r9   Úexcs      r   Útest_end_if_commentÚ,TestFortranGroupCounters.test_end_if_commentZ  sT   € ä—’˜W e¨^¸[ÓIˆð	SÜ×%Ò%¤s¨5£z lÕ3øÜó 	SØRÐLÈSÈEÐRÓR�5ûð	Sús   › < ¼
AÁ
AÁAr#   N)r$   r%   r&   r'   r  r*   r#   r"   r   r  r  Y  s   † õSr"   r  c                   ó   • \ rS rSrS rSrg)ÚTestF77CommonBlockReaderic  c                 ó(  • [         R                  " SSSS5      n[        R                  " [        R
                  " 5       5       n[        R                  " [        U5      /5      nS S S 5        SWR                  5       ;  d   eg ! , (       d  f       N%= f)Nr   r   r   zgh22648.pyfÚMismatch)	r   r(   Ú
contextlibÚredirect_stdoutÚioÚStringIOr   r7   Úgetvalue)r   r?   r9   Ústdout_f2pyr:   s        r   Útest_gh22648Ú%TestF77CommonBlockReader.test_gh22648d  sg   € Ü—’˜W e¨^¸]ÓKˆÜ×'Ò'¬¯ª«Ô6¸+Ü×+Ò+¬S°«Z¨LÓ9ˆC÷ 7à ×!5Ñ!5Ó!7Ó7Ð7Ñ7÷ 7Õ6ús   Á!BÂ
Br#   N)r$   r%   r&   r'   r%  r*   r#   r"   r   r  r  c  s   † õ8r"   r  c                   ó2   • \ rS rSrS rS rS rS rS rSr	g)	ÚTestParamEvalij  c                 óÆ   • Sn[         R                  [         R                  [         R                  S.nSSSS.SSSS	.S
.nSn[         R                  " XX4S9nUSSS.:X  d   eg )Nz(/3.14, 4./)©ÚkindÚselected_int_kindÚselected_real_kindé   r   r©   r}   r   r   r   )ÚdpÚintparamarrayÚnestedz(2)©r£   g…ëQ¸	@g      @©r   Ú
_kind_funcÚ_selected_int_kind_funcÚ_selected_real_kind_funcÚ
param_eval©r   ÚvÚg_paramsÚparamsr£   Úrets         r   Útest_param_eval_nestedÚ$TestParamEval.test_param_eval_nestedl  sp   € ØˆÜ(×3Ñ3Ü%1×%IÑ%IÜ&2×&KÑ&KñMˆð °°a©LØ ! a¨AÑ.ñ0ˆàˆÜ×%Ò% a°6ÑKˆØ˜$ 3Ñ'Ó'Ð'Ñ'r"   c                 ó²   • Sn[         R                  [         R                  [         R                  S.n0 nSn[         R                  " XX4S9nUSSSS.:X  d   eg )	Nz(/ 6, 3, 1 /)r*  z(-1:1)r2  é   r   r   )éÿÿÿÿr   r   r3  r8  s         r   Ú!test_param_eval_nonstandard_rangeÚ/TestParamEval.test_param_eval_nonstandard_rangew  s]   € ØˆÜ(×3Ñ3Ü%1×%IÑ%IÜ&2×&KÑ&KñMˆð ˆØˆÜ×%Ò% a°6ÑKˆØ˜1  qÑ)Ó)Ð)Ñ)r"   c           	      óÄ   • Sn[         R                  [         R                  [         R                  S.n0 nSn[        R
                  " [        [         R                  XUUS9  g )NÚ6r*  rž   r2  ©r   r4  r5  r6  rÇ   ÚraisesÚ
ValueErrorr7  ©r   r9  r:  r;  r£   s        r   Útest_param_eval_empty_rangeÚ)TestParamEval.test_param_eval_empty_range�  sS   € ØˆÜ(×3Ñ3Ü%1×%IÑ%IÜ&2×&KÑ&KñMˆð ˆØˆÜ�Š”j¤,×"9Ñ"9¸1ÈØ%ó	'r"   c                 ó¨   • Sn[         R                  [         R                  [         R                  S.n0 n[         R                  " XUS S9nUS:X  d   eg )Nz3.14_dpr*  r2  r3  )r   r9  r:  r;  r<  s        r   Útest_param_eval_non_array_paramÚ-TestParamEval.test_param_eval_non_array_param‹  sS   € ØˆÜ(×3Ñ3Ü%1×%IÑ%IÜ&2×&KÑ&KñMˆð ˆÜ×%Ò% a°6À4ÑHˆØ�iÓÐÑr"   c           	      óÄ   • Sn[         R                  [         R                  [         R                  S.n0 nSn[        R
                  " [        [         R                  XUUS9  g )Nz*reshape((/ (i, i=1, 250) /), (/5, 10, 5/))r*  z(0:4, 3:12, 5)r2  rF  rI  s        r   Útest_param_eval_too_many_dimsÚ+TestParamEval.test_param_eval_too_many_dims”  sS   € Ø8ˆÜ(×3Ñ3Ü%1×%IÑ%IÜ&2×&KÑ&KñMˆð ˆØ"ˆÜ�Š”j¤,×"9Ñ"9¸1ÈØ%ó	'r"   r#   N)
r$   r%   r&   r'   r=  rB  rJ  rM  rP  r*   r#   r"   r   r(  r(  j  s   † ò	(ò*ò'ò õ'r"   r(  c                   óL   • \ rS rSr\R
                  " SSSS5      /rS/rS rSr	g	)
ÚTestLowerF2PYDirectiveiž  r   r   r   zgh27697.f90z--lowerc                 ó´   • [         R                  " [        SS9 nU R                  R                  R                  S5        S S S 5        g ! , (       d  f       g = f)Nzaborting directly)Úmatch)rÇ   rG  rH  r   ÚutilsÚmy_abort)r   r  s     r   Útest_no_lower_failÚ)TestLowerF2PYDirective.test_no_lower_fail£  s9   € Ü�]Š]œ:Ð-@ÒAÀSØ�K‰K×Ñ×&Ñ&Ð':Ô;÷ B×AÖAús   š&A	Á	
Ar#   N)
r$   r%   r&   r'   r   r(   r)   ÚoptionsrX  r*   r#   r"   r   rS  rS  ž  s%   † à�|Š|˜G U¨N¸MÓJÐK€GØˆk€Gõ<r"   rS  )#r  rô   r!  r½   rþ   rÇ   Únumpyr   Ú
numpy.f2pyr   Únumpy.f2py.crackfortranr   r   rž   r   ÚF2PyTestr	   r,   rP   rb   rz   r‰   r›   rÎ   rÖ   rà   rÈ   rÊ   rí   r÷   r  r  r  r(  rS  r#   r"   r   Ú<module>r_     sG  ðÛ Û Û 	Û Û ã ã Ý #ß Då ô,�$—-‘-ô ,÷% ñ % ÷N?ñ ?ô:�4—=‘=ô ô&2�t—}‘}ô 2÷Iñ Iô*d/�$—-‘-ô d/÷N<ñ <ô3ˆt�}‰}ô 3ô'˜Ÿ™ô 'ð ‡�×Ñô˜Ÿ™ó ó ð÷"Eñ "EôH2˜Ÿ™ô 2ôS˜tŸ}™}ô S÷8ñ 8÷2'ñ 2'ðh ‡�×Ñô<˜TŸ]™]ó <ó ñ<r"   