Ë
    7^(h4.  ã                   óæ   — d dl mZ d dlmZ d dlmZ  ed«      ZerRd dlmZm	Z	m
Z
mZmZmZmZmZmZ d dlmZmZmZ d dlmZ  e«       Z e«       ZdZd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"yd„ Z#y)é    )Úraises©ÚSymPyExpression)Úimport_moduleÚlfortran)	ÚVariableÚIntBaseTypeÚFloatBaseTypeÚStringÚReturnÚFunctionDefinitionÚ
AssignmentÚDeclarationÚ	CodeBlock)ÚIntegerÚFloatÚAdd)ÚSymbolz5    integer :: a, b, c, d
    real :: p, q, r, s
    c                  óì  — t         dz   } t        t         d«      }t        | d«      }|j                  «       }|j                  «       }t        dd«      D ],  }t	        ||   t
        «      sJ ‚t	        ||   t
        «      rŒ,J ‚ t	        |d   t        «      sJ ‚|d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚|d	   t        t        t        d
«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚|d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚|d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚|d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚|d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚|d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚|d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚|d   t        t        t        d«      «      t        d«      t        d
«      z   t        d«      z
  «      k(  sJ ‚y )Nz%            d = a + b -c
            Úfr   é   é   ÚaÚinteger©ÚtypeÚvalueé   Úbé   Úcé   Údé   ÚpÚrealç        é   Úqé   ÚrÚs)Úsrcr   Úreturn_exprÚrangeÚ
isinstancer   r   r   r   r	   r   r   r
   r   )Úsrc1Úexpr3Úexpr4Úls1Úls2Úis         úe/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/parsing/tests/test_fortran_parser.pyÚtest_sym_exprr8      së  € äðñð 	ô  ¤ CÓ(ˆÜ  SÓ)ˆØ×ÑÓ!ˆØ×ÑÓ!ˆÜ�q˜!“ò 	3ˆAÜ˜c !™f¤kÔ2Ð2Ð2Ü˜c !™f¤kÕ2Ð2Ð2ð	3ô ˜#˜a™&¤*Ô-Ð-Ð-Ø�1‰vœÜÜ�s“Ü"¤6¨)Ó#4Ó5Ü ›
ôó
ò 
ð 	
ð 
ð �1‰vœÜÜ�s“Ü"¤6¨)Ó#4Ó5Ü ›
ôó
ò 
ð 	
ð 
ð �1‰vœÜÜ�s“Ü"¤6¨)Ó#4Ó5Ü ›
ôó
ò 
ð 	
ð 
ð �1‰vœÜÜ�s“Ü"¤6¨)Ó#4Ó5Ü ›
ôó
ò 
ð 	
ð 
ð �1‰vœÜÜ�s“Ü$¤V¨F£^Ó4Ü˜c›
ôó
ò 
ð 	
ð 
ð �1‰vœÜÜ�s“Ü$¤V¨F£^Ó4Ü˜c›
ôó
ò 
ð 	
ð 
ð �1‰vœÜÜ�s“Ü$¤V¨F£^Ó4Ü˜c›
ôó
ò 
ð 	
ð 
ð �1‰vœÜÜ�s“Ü$¤V¨F£^Ó4Ü˜c›
ôó
ò 
ð 	
ð 
ð �1‰vœÜ”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%¬¨s«Ñ3ó
ò 
ð 	
ñ 
ó    c            	      ó¬  — t         dz   } t        j                  | d«       t        j                  «       }t	        dd«      D ]2  }|dk  rt        ||   t        «      rŒJ ‚t        ||   t        «      rŒ2J ‚ |d   t        t        t        d«      «      t        t        d«      «      «      k(  sJ ‚|d   t        t        t        d	«      «      t        t        d
«      «      «      k(  sJ ‚|d   t        t        t        d«      «      t        t        d«      «      «      k(  sJ ‚|d   t        t        t        d«      «      t        t        d«      «      «      k(  sJ ‚y )NzT            a = b
            c = d
            p = q
            r = s
            r   r   é   r   r   r   é	   r!   r#   é
   r%   r)   é   r+   r,   )
r-   Úexpr1Úconvert_to_exprr.   r/   r0   r   r   r   r   ©r1   r4   Úiters      r7   Útest_assignmentrC   c   sT  € äðñð 	ô 	×Ñ˜d CÔ(Ü×ÑÓ!ˆÜ˜!˜R“Lò 	9ˆDØ�aŠxÜ! # d¡)¬[Õ9Ð9Ð9ä! # d¡)¬ZÕ8Ð8Ð8ð		9ð
 �1‰vœÜ”V˜C“[Ó!Ü”V˜C“[Ó!ó
ò 
ð 	
ð 
ð �1‰vœÜ”V˜C“[Ó!Ü”V˜C“[Ó!ó
ò 
ð 	
ð 
ð �2‰wœ*Ü”V˜C“[Ó!Ü”V˜C“[Ó!ó
ò 
ð 	
ð 
ð �2‰wœ*Ü”V˜C“[Ó!Ü”V˜C“[Ó!ó
ò 
ð 	
ñ 
r9   c                  ó0  — t         dz   } t        j                  | d«       t        j                  «       }t	        dd«      D ]  }t        ||   t        «      rŒJ ‚ |d   t        t        t        d«      «      t        d«      t        d«      z   «      k(  sJ ‚|d   t        t        t        d	«      «      t        d«      t        d«      z   «      k(  sJ ‚|d
   t        t        t        d«      «      t        d«      t        d«      z   t        d«      z   «      k(  sJ ‚y )NzR            c = a + b
            d = a + c
            s = p + q + r
            r   r   r>   r!   r   r   r<   r#   r=   r,   r%   r)   r+   ©	r-   r?   r@   r.   r/   r0   r   r   r   rA   s      r7   Útest_binop_addrF   †   ó  € äðñð 	ô 	×Ñ˜d CÔ(Ü×ÑÓ!ˆÜ˜!˜R“Lò 	5ˆDÜ˜c $™i¬Õ4Ð4Ð4ð	5à�1‰vœÜ”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%ó
ò 
ð 	
ð 
ð �1‰vœÜ”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%ó
ò 
ð 	
ð 
ð �2‰wœ*Ü”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%¬¨s«Ñ3ó
ò 
ð 	
ñ 
r9   c                  ó0  — t         dz   } t        j                  | d«       t        j                  «       }t	        dd«      D ]  }t        ||   t        «      rŒJ ‚ |d   t        t        t        d«      «      t        d«      t        d«      z
  «      k(  sJ ‚|d   t        t        t        d	«      «      t        d«      t        d«      z
  «      k(  sJ ‚|d
   t        t        t        d«      «      t        d«      t        d«      z
  t        d«      z
  «      k(  sJ ‚y )NzR            c = a - b
            d = a - c
            s = p - q - r
            r   r   r>   r!   r   r   r<   r#   r=   r,   r%   r)   r+   rE   rA   s      r7   Útest_binop_subrI   ¡   rG   r9   c                  ó0  — t         dz   } t        j                  | d«       t        j                  «       }t	        dd«      D ]  }t        ||   t        «      rŒJ ‚ |d   t        t        t        d«      «      t        d«      t        d«      z  «      k(  sJ ‚|d   t        t        t        d	«      «      t        d«      t        d«      z  «      k(  sJ ‚|d
   t        t        t        d«      «      t        d«      t        d«      z  t        d«      z  «      k(  sJ ‚y )NzR            c = a * b
            d = a * c
            s = p * q * r
            r   r   r>   r!   r   r   r<   r#   r=   r,   r%   r)   r+   rE   rA   s      r7   Útest_binop_mulrK   ¼   rG   r9   c                  óŽ  — t         dz   } t        j                  | d«       t        j                  «       }t	        dd«      D ]  }t        ||   t        «      rŒJ ‚ |d   t        t        t        d«      «      t        d«      t        d«      z  «      k(  sJ ‚|d   t        t        t        d	«      «      t        d«      t        d«      z  «      k(  sJ ‚|d
   t        t        t        d«      «      t        d«      t        d«      z  «      k(  sJ ‚|d   t        t        t        d«      «      t        d«      t        d«      z  «      k(  sJ ‚y )Nzd            c = a / b
            d = a / c
            s = p / q
            r = q / p
            r   r   r;   r!   r   r   r<   r#   r=   r,   r%   r)   r>   r+   rE   rA   s      r7   Útest_binop_divrM   ×   sG  € äðñð 	ô 	×Ñ˜d CÔ(Ü×ÑÓ!ˆÜ˜!˜R“Lò 	5ˆDÜ˜c $™i¬Õ4Ð4Ð4ð	5à�1‰vœÜ”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%ó
ò 
ð 	
ð 
ð �1‰vœÜ”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%ó
ò 
ð 	
ð 
ð �2‰wœ*Ü”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%ó
ò 
ð 	
ð 
ð �2‰wœ*Ü”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%ó
ò 
ð 	
ñ 
r9   c            	      ó  — t         dz   } t        j                  | d«       t        j                  «       }t	        dd«      D ]  }t        ||   t        «      rŒJ ‚ |d   t        t        t        d«      «      t        d«      t        d«      z   t        d«      z
  «      k(  sJ ‚|d	   t        t        t        d«      «      t        d«      t        d«      z  t        d«      z   «      k(  sJ ‚|d
   t        t        t        d«      «      t        d«      t        d«      z  t        d«      z  «      k(  sJ ‚|d   t        t        t        d«      «      t        d«      t        d«      z  t        d«      t        d«      z  z   «      k(  sJ ‚y )Nzx            d = a + b - c
            c = a * b + d
            s = p * q / r
            r = p * s + q / p
            r   r   r;   r#   r   r   r!   r<   r=   r,   r%   r)   r+   r>   rE   rA   s      r7   Útest_mul_binoprO   ö   st  € äðñð 	ô 	×Ñ˜d CÔ(Ü×ÑÓ!ˆÜ˜!˜R“Lò 	5ˆDÜ˜c $™i¬Õ4Ð4Ð4ð	5à�1‰vœÜ”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%¬¨s«Ñ3ó
ò 
ð 	
ð 
ð �1‰vœÜ”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%¬¨s«Ñ3ó
ò 
ð 	
ð 
ð �2‰wœ*Ü”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%¬¨s«Ñ3ó
ò 
ð 	
ð 
ð �2‰wœ*Ü”V˜C“[Ó!Ü�3‹Kœ& ›+Ñ%¬¨s«´f¸S³kÑ(AÑAó
ò 
ð 	
ñ 
r9   c                  ó6  — d} t         j                  | d«       t         j                  «       D �]é  }t        |t        «      sJ ‚|t	        t        t        d«      «      t        d«      t        t        d«      «      t        t        d«      «      ft        t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      t        t        t        d	«      t        t        d«      «      t        d«      ¬«      «      t        t        t        d«      «      t        t        d«      t        d	«      «      «      t        t        t        d«      «      «      «      ¬
«      k(  r�ŒêJ ‚ y )Nzg        integer function f(a,b)
        integer :: x, y
        f = x + y
        end function
        r   r   r   r   r   r   ÚxÚy)ÚnameÚ
parametersÚbody)r?   r@   r.   r0   r   r	   r   r   r   r   r   r   r   r   r   )r1   rB   s     r7   Útest_functionrV     s´  € ðˆô 	×Ñ˜d CÔ(Ü×%Ñ%Ó'ó 3	ˆDÜ˜dÔ$6Ô7Ð7Ð7ØÔ-ÜœF 9Ó-Ó.Ü˜C“[äœV C›[Ó)ÜœV C›[Ó)ðô ÜÜ Ü" 3›KÜ!,¬V°IÓ->Ó!?Ü")¨!£*ôóô  Ü Ü" 3›KÜ!,¬V°IÓ->Ó!?Ü")¨!£*ôóô  Ü Ü" 3›KÜ!,¬V°IÓ->Ó!?Ü")¨!£*ôóô  Ü Ü" 3›KÜ!,¬V°IÓ->Ó!?Ü")¨!£*ôóô  Ü Ü" 3›KÜ!,¬V°IÓ->Ó!?Ü")¨!£*ôóô Ü ¤¨£Ó-ÜœF 3›K¬°«Ó5óô œ8¤F¨3£KÓ0Ó1óQ)ô1ô 1ð 1ð 1ñ3	r9   c                  óæ  — t         j                  t        d«       t         j                  «       } t         j                  «       D ]  }t	        |t
        «      rŒJ ‚ | d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚| d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚| d   t        t        t        d	«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚| d
   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚| d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚| d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚| d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚| d   t        t        t        d«      t        t        d«      «      t        d«      ¬«      «      k(  sJ ‚y )Nr   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r   r,   )r?   r@   r-   r.   r0   r   r   r   r	   r   r   r
   r   )ÚlsrB   s     r7   Útest_varrY   T  sR  € Ü×Ñœc 3Ô'Ü×ÑÓ ˆÜ×%Ñ%Ó'ò 	1ˆDÜ˜d¤KÕ0Ð0Ð0ð	1à�!‰uœÜÜ�s“Ü"¤6¨)Ó#4Ó5Ü ›
ôó
ò 
ð 	
ð 
ð �!‰uœÜÜ�s“Ü"¤6¨)Ó#4Ó5Ü ›
ôó
ò 
ð 	
ð 
ð �!‰uœÜÜ�s“Ü"¤6¨)Ó#4Ó5Ü ›
ôó
ò 
ð 	
ð 
ð �!‰uœÜÜ�s“Ü"¤6¨)Ó#4Ó5Ü ›
ôó
ò 
ð 	
ð 
ð �!‰uœÜÜ�s“Ü$¤V¨F£^Ó4Ü˜c›
ôó
ò 
ð 	
ð 
ð �!‰uœÜÜ�s“Ü$¤V¨F£^Ó4Ü˜c›
ôó
ò 
ð 	
ð 
ð �!‰uœÜÜ�s“Ü$¤V¨F£^Ó4Ü˜c›
ôó
ò 
ð 	
ð 
ð �!‰uœÜÜ�s“Ü$¤V¨F£^Ó4Ü˜c›
ôó
ò 
ð 	
ñ 
r9   c                  óZ   ‡ — ddl mŠ  t        t        ˆ fd„«       t        t        d„ «       y )Nr   ©ÚASR2PyVisitorc                  ó   •—  ‰ «       S )N© r[   s   €r7   ú<lambda>ztest_raise.<locals>.<lambda>•  s	   ø€ ¡M£O€ r9   c                  ó   — t        dd¬«      S )Nú r   )Úmoder   r^   r9   r7   r_   ztest_raise.<locals>.<lambda>–  s   € ¤O°CÀÔ$D€ r9   )Ú$sympy.parsing.fortran.fortran_parserr\   r   ÚImportErrorr[   s   @r7   Ú
test_raisere   “  s   ø€ ÝFÜŒ{Ó3Ô4ÜŒ{ÑDÕEr9   N)$Úsympy.testing.pytestr   Úsympy.parsing.sym_exprr   Úsympy.externalr   r   Úsympy.codegen.astr   r	   r
   r   r   r   r   r   r   Ú
sympy.corer   r   r   Úsympy.core.symbolr   r?   Úexpr2r-   r8   rC   rF   rI   rK   rM   rO   rV   rY   re   r^   r9   r7   ú<module>rm      s‡   ðÝ 'Ý 2Ý (á˜Ó$€á÷;÷ ;õ ;÷ /Ñ.Ý(ñ Ó€EÙÓ€Eð€CòJ
òX 
òF
ò6
ò6
ò6
ò>
ò@;ó|<
ó~Fr9   