
    Qi4.                         d dl mZ d dlmZ d dlmZ  ed          ZerYd 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"dS d Z#dS )    )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          }|                                }|                                }t          dd          D ]<}t	          ||         t
                    sJ t	          ||         t
                    s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 d S )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         /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/parsing/tests/test_fortran_parser.pytest_sym_exprr8      s    	  C((S))!!!!q! 	3 	3Ac!fk22222c!fk222222#a&*-----1vs"6)#4#455

  
 
 
 
 
 
 1vs"6)#4#455

  
 
 
 
 
 
 1vs"6)#4#455

  
 
 
 
 
 
 1vs"6)#4#455

  
 
 
 
 
 
 1vs$VF^^44c

  
 
 
 
 
 
 1vs$VF^^44c

  
 
 
 
 
 
 1vs$VF^^44c

  
 
 
 
 
 
 1vs$VF^^44c

  
 
 
 
 
 
 1vVC[[!!3KK&++%s3
 
 
 
 
 
 
 
    c            	         t           dz   } t                              | d           t                                          }t	          dd          D ]C}|dk     rt          ||         t                    sJ &t          ||         t                    sJ D|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 d S )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   s    	 	dC(((!!!RLL 	9 	9Daxx!#d)[999999!#d)Z8888881vVC[[!!VC[[!!
 
 
 
 
 
 1vVC[[!!VC[[!!
 
 
 
 
 
 2w*VC[[!!VC[[!!
 
 
 
 
 
 2w*VC[[!!VC[[!!
 
 
 
 
 
 
 
r9   c                     t           dz   } t                              | d           t                                          }t	          dd          D ]}t          ||         t                    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   t          d          z             k    sJ d S )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      n    	 	dC(((!!!RLL 	5 	5Dc$i4444441vVC[[!!3KK&++%
 
 
 
 
 
 1vVC[[!!3KK&++%
 
 
 
 
 
 2w*VC[[!!3KK&++%s3
 
 
 
 
 
 
 
r9   c                     t           dz   } t                              | d           t                                          }t	          dd          D ]}t          ||         t                    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
  t          d          z
            k    sJ d S )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                     t           dz   } t                              | d           t                                          }t	          dd          D ]}t          ||         t                    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  t          d          z            k    sJ d S )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                  z   t           dz   } t                              | d           t                                          }t	          dd          D ]}t          ||         t                    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 |d         t          t          t          d                    t          d          t          d          z            k    sJ d S )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      s    	 	dC(((!!!RLL 	5 	5Dc$i4444441vVC[[!!3KK&++%
 
 
 
 
 
 1vVC[[!!3KK&++%
 
 
 
 
 
 2w*VC[[!!3KK&++%
 
 
 
 
 
 2w*VC[[!!3KK&++%
 
 
 
 
 
 
 
r9   c            	         t           dz   } t                              | d           t                                          }t	          dd          D ]}t          ||         t                    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          z            k    sJ |d         t          t          t          d                    t          d          t          d          z  t          d          t          d          z  z             k    sJ d S )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      s    	 	dC(((!!!RLL 	5 	5Dc$i4444441vVC[[!!3KK&++%s3
 
 
 
 
 
 1vVC[[!!3KK&++%s3
 
 
 
 
 
 2w*VC[[!!3KK&++%s3
 
 
 
 
 
 2w*VC[[!!3KK&++%sfSkk(AA
 
 
 
 
 
 
 
r9   c                     d} t                               | d           t                                           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    sJ d S )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    	dC(((%%'' 3	 3	Dd$677777-F9--..C[[VC[[))VC[[))  "3KK!,VI->->!?!?")!**      "3KK!,VI->->!?!?")!**      "3KK!,VI->->!?!?")!**      "3KK!,VI->->!?!?")!**      "3KK!,VI->->!?!?")!**     --F3KK55  8F3KK0011Q) )1 1 1 1 1 1 1 13	 3	r9   c                     t                               t          d           t                                           } t                                           D ]}t	          |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 S )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  s]   c3'''  %%'' 	1 	1DdK000000!us"6)#4#455

  
 
 
 
 
 
 !us"6)#4#455

  
 
 
 
 
 
 !us"6)#4#455

  
 
 
 
 
 
 !us"6)#4#455

  
 
 
 
 
 
 !us$VF^^44c

  
 
 
 
 
 
 !us$VF^^44c

  
 
 
 
 
 
 !us$VF^^44c

  
 
 
 
 
 
 !us$VF^^44c

  
 
 
 
 
 
 
 
r9   c                  p     ddl m  t          t           fd           t          t          d            d S )Nr   ASR2PyVisitorc                                    S )N r[   s   r7   <lambda>ztest_raise.<locals>.<lambda>  s    MMOO r9   c                  $    t          dd          S )N r   )moder   r^   r9   r7   r_   ztest_raise.<locals>.<lambda>  s    OC$D$D$D r9   )$sympy.parsing.fortran.fortran_parserr\   r   ImportErrorr[   s   @r7   
test_raisere     sI    FFFFFF{3333444{DDEEEE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 2 2 2 2 2 ( ( ( ( ( (=$$ OF; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; /.........(((((( OEOECJ
 J
 J
X 
  
  
F
 
 
6
 
 
6
 
 
6
 
 
>
 
 
@; ; ;|<
 <
 <
 <
 <
~F F F F Fr9   