
    g"                     >   d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlmZ d dlmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZmZmZm Z  d dl!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7dS )     )Q)refine)Expr)IRationalnanpi)S)Symbol)Absargimresign)exp)sqrt)atanatan2)wxyz)EqNe)	Piecewise)MatrixSymbolc                  8   t          t          t                    t          j        t                              t          k    sJ t          dt          t                    z   t          j        t                              dt          z   k    sJ t          t          t                    t          j        t                              t           k    sJ t          dt          t                    z   t          j        t                              dt          z
  k    sJ t          t          t          dz                      t          dz  k    sJ t          t          t          dz            t          j        t                              t          dz  k    sJ d S N      )r   r   r   r   positivenegativereal     _/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/assumptions/tests/test_refine.pytest_Absr'      s   #a&&!*Q--((A----!c!ff*ajmm,,A5555#a&&!*Q--((QB....!c!ff*ajmm,,A5555#ad))1$$$$#ad))QVAYY''1a4//////r%   c                  ^   t          dt          z  t          j        t                              dk    sJ t          dt          z  t          j        t                              dk    sJ t          dt          z  t          j        t                              dt          z  k    sJ t          t          t          dz                      t          t                    k    sJ t          t          t          dz            t          j        t                              t          t                    k    sJ t          t          t          dz            t          j        t                              t          t                    k    sJ t          t          t          dz            t          j	        t                              t          k    sJ t          t          dz  t          dd          z            t          k    sJ t          t          dz  t          dd          z  t          j        t                              t          k    sJ t          t          dz  t          dd          z  t          j	        t                              t          k    sJ t          t          dt          z            t          j        t                              dt          t                    z  k    sJ t          t          dt          z            t          j	        t                              dt          t                    z  k    sJ t          dt          t          z   z  t          j        t                              dt          z  k    sJ t          dt          t          z   t          z   z  t          j        t                    t          j        t                    z            dt          z  k    sJ t          dt          t          z   dz   z  t          j        t                              dt          z  k    sJ t          dt          t          z   dz   z  t          j        t                              dt          dz   z  k    sJ t          dt          dz   z            dt          dz   z  k    sJ t          ddt          z  dz  t          j        z
  z  t          j        t                              dt          z  k    sJ t          ddt          z  dz  t          j        z   z  t          j        t                              dt          dz   z  k    sJ t          ddt          z  dz  dt          j        z  z   z  t          j        t                              dt          dz   z  k    sJ d S )Nr   r          )r   r   r   evenoddr   r   complexr#   r!   r   r   r   r
   Halfintegerr$   r%   r&   	test_pow1r2      s   2'16!99%%****2'1588$$****2'16!99%%A---- $q!t**Q''''$q!t**aill++s1vv5555$q!t**afQii((CFF2222$q!t**ajmm,,11111a4(1a..())Q....1a4(1a..(!&))4499991a4(1a..(!*Q--88A====$qs))QVAYY''1T!WW94444$qs))QZ]]++qay8888 2Q-++Qw66662Q#QU1XXa%899b1WDDDD2Q#QU1XX..2'99992Q#QU1XX..2Q-????2Q-  R1q5M1111 2"qQV+,aill;;QwFFFF2"qQV+,aill;;a!e}LLLL2"qQqvX-.	!=="ANNNNNNr%   c                     t          ddt          z  dz  dt          j        z  z
  z  t	          j        t                              dt          dz   z  k    sJ t          ddt          z  dz  dt          j        z  z
  z  t	          j        t                              dt          z  k    sJ t          t          t                    dz  t	          j        t                              t          dz  k    sJ t          t          t                    dz  t	          j        t                              t          t                    dz  k    sJ t          t          t                    dz            t          t                    dz  k    sJ d S )Nr)   r       r   	   r+   )r   r   r
   r0   r   r1   r   r#   r$   r%   r&   	test_pow2r6   :   s!   2"qQqvX-.	!=="ANNNN2"qQqvX-.	!=="qHHHH #a&&!)QVAYY''1a4////#a&&!)QVAYY''3q66194444#a&&!)A	))))))r%   c            
      D   t          dd          } t          t          t          t          z  dz  | z                      dk    sJ t          t          t          t          z  dz  | t
          j        z   z                      dk    sJ t          t          t          t          z  dz  | t          dd          z   z                      t          k    sJ t          t          t          t          z  dz  | t          dd          z   z                      t           k    sJ d S )	Nr   T)r1   r    r   r)      r+   )r   r   r   r	   r   r
   r0   r   r   s    r&   test_expr:   D   s    sD!!!A#bd1fQh--  A%%%%#bd1fa!&j)**++r1111#bd1fa(1a..012233q8888#bd1fa(1a..012233r999999r%   c            	      h   t          t          dt          dk     fd          t          dk               dk    sJ t          t          dt          dk     fd          t          dk                dk    sJ t          t          dt          dk     fd          t          dk               t          dt          dk     fd          k    sJ t          t          dt          dk    fd          t          dk              dk    sJ t          t          dt          dk    fd          t          dk               dk    sJ t          t          dt          dk    fd          t          dk              t          dt          dk    fd          k    sJ t          t          dt          dk    fd          t          dk              dk    sJ t          t          dt          dk    fd          t          dk               dk    sJ t          t          dt          dk    fd          t          dk              t          dt          dk    fd          k    sJ t          t          dt          dk    fd          t          dk              dk    sJ t          t          dt          dk    fd          t          dk               dk    sJ t          t          dt          dk    fd          t          dk              t          dt          dk    fd          k    sJ t          t          dt	          t          d          fd          t	          t          d                    dk    sJ t          t          dt	          t          d          fd          t	          dt                              dk    sJ t          t          dt	          t          d          fd          t	          t          d                     dk    sJ t          t          dt	          t          d          fd          t	          dt                               dk    sJ t          t          dt	          t          d          fd          t	          t          d                    t          dt	          t          d          fd          k    sJ t          t          dt          t          d          fd          t          t          d                    dk    sJ t          t          dt          t          d          fd          t          t          d                     dk    sJ t          t          dt          t          d          fd          t          t          d                    t          dt          t          d          fd          k    sJ d S )Nr   r   )r+   Tr+   )r   r   r   r   r   r   r$   r%   r&   test_Piecewiser<   L   s   )QAJ	22QU<<AAAA)QAJ	22a!eH==BBBB)QAJ	22QU<<1a!e*i(() ) ) ))QAJ	22QU<<AAAA)QAJ	22a!eH==BBBB)QAJ	22QU<<1a!e*i(() ) ) ))QQK33a1f>>!CCCC)QQK33qAvY??1DDDD)QQK33a1f>>1a1f+y))* * * *)QQK33a1f>>!CCCC)QQK33qAvY??1DDDD)QQK33a1f>>1a1f+y))* * * *)Q1aM9551aBB   )Q1aM9551aBB   )Q1aM955Aq{CC   )Q1aM955Aq{CC   )Q1aM9551aBBaAq]I../ / / /)Q1aM9551aBB   )Q1aM955Aq{CC   )Q1aM9551aBBaAq]I../ / / / / /r%   c                     t          t          t          t                    t	          j        t                    t	          j        t                    z            t          t          t          z            k    sJ t          t          t          t                    t	          j        t                    t	          j        t                    z            t          t          t          z            k    sJ t          t          t          t                    t	          j        t                    t	          j        t                    z            t          t          t          z            t          z
  k    sJ t          t          t          t                    t	          j        t                    t	          j        t                    z            t          t          t          z            t          z   k    sJ t          t          t          t                    t	          j
        t                    t	          j        t                    z            t          k    sJ t          t          t          t                    t	          j        t                    t	          j
        t                    z            t          dz  k    sJ t          t          t          t                    t	          j        t                    t	          j
        t                    z            t           dz  k    sJ t          t          t          t                    t	          j
        t                    t	          j
        t                    z            t          u sJ d S )Nr    )r   r   r   r   r   r#   r!   r   r"   r	   zeror   r$   r%   r&   
test_atan2r?   o   s   %1++qvayy1:a==899T!A#YYFFFF%1++qz!}}qz!}}<==acJJJJ%1++qz!}}qz!}}<==acROOOO%1++qz!}}qz!}}<==acROOOO%1++qvayy1:a==899R????%1++qz!}}qvayy899RTAAAA%1++qz!}}qvayy899bSUBBBB%1++qvayy16!99455<<<<<<r%   c                     t          t          t                    t          j        t                              t          k    sJ t          t          t                    t          j        t                              t          j        u sJ t          t          t          t          z             t          j        t                    t          j        t                    z            t          t          z   k    sJ t          t          t          t          z             t          j        t                    t          j        t                    z            t          k    sJ t          t          t          t          z            t          j        t                    t          j        t                    z            t          t          z  k    sJ t          t          t          t          z            t          j        t                    t          j        t                    z            dk    sJ t          t          t          t          z  t          z            t          j        t                    t          j        t                    z  t          j        t                    z            t          t          z  t          z  k    sJ d S )Nr   )
r   r   r   r   r#   	imaginaryr
   Zeror   r   r$   r%   r&   test_rerC   z   s   "Q%%##q(((("Q%%Q((AF2222"QqS''16!99qvayy011QU::::"QqS''16!99q{1~~566!;;;;"QqS''16!99qvayy011QU::::"QqS''16!99q{1~~566!;;;;"QqSU))QVAYY2QVAYY>??1q519LLLLLLr%   c                     t          t          t                    t          j        t                              t
           t          z  k    sJ t          t          t                    t          j        t                              t          j        u sJ t          t          t          t          z             t          j        t                    t          j        t                    z            t
           t          z  t
          t          z  z
  k    sJ t          t          t          t          z             t          j        t                    t          j        t                    z            t
           t          z  k    sJ t          t          t          t          z            t          j        t                    t          j        t                    z            t
           t          z  t          z  k    sJ t          t          t          t          z            t          j        t                    t          j        t                    z            dk    sJ t          t          dt          z            t          j        t                              t
           t          z  k    sJ t          t          t          t          z  t          z            t          j        t                    t          j        t                    z  t          j        t                    z            t
           t          z  t          z  t          z  k    sJ d S )Nr   r   )r   r   r   r   rA   r   r#   r
   rB   r   r   r$   r%   r&   test_imrE      s   "Q%%Q((QBqD0000"Q%%##qv----"QqS''1;q>>AKNN:;;r!taczIIII"QqS''16!99q{1~~5661"Q$>>>>"QqS''1;q>>AF1II5661"Q$q&@@@@"QqS''1;q>>AKNN:;;q@@@@"QqS''1;q>>**qbd2222"QqSU))Q[^^ak!nn<
+a..  RT!VAX& & & & & &r%   c                  l   t          t          dt          t          t          z  z   z            t          j        t                    t          j        t                    z            t          t          dz  t          dz  z   z  k    sJ t          t          dt          t          t          z  z   z            t          j        t                    t          j        t                    z            t           t          dz  t          dz  z   z  k    sJ t          t          t          t          t          z  z   t          t          t          z  z   z            t          j        t                    t          j        t                    z  t          j        t                    z  t          j        t                    z            t          t          z  t          t          z  z
  k    sJ t          t          t          t          t          z  z   t          t          t          z  z   z            t          j        t                    t          j        t                    z  t          j        t                    z  t          j        t                    z            t          t          z  t          t          z  z   k    sJ d S r   )
r   r   r   r   r   r   r#   r   r   r   r$   r%   r&   test_complexrG      s   "QAaC[//16!99qvayy#899	1a4!Q$;   "QAaC[//16!99qvayy#899	
AqD1a4K   "a!A#g!ac'*++QVAYY-BQVAYY-N
&)).  !ac	" " " ""a!A#g!ac'*++QVAYY-BQVAYY-N
&)).  !ac	" " " " " "r%   c                     t          dd          } t          t          |           t          j        |                     dk    sJ t          t          |           t          j        |                     dk    sJ t          t          |           t          j        |                     dk    sJ t          t          |           d          t          |           k    sJ t          t          t          |                     t          j        |                     dk    sJ t          dd          } t          t          |           t          j        t          |                               t          j        k    sJ t          t          |           t          j        t          |                               t          j         k    sJ t          t          |           d          t          |           k    sJ t          dd          } t          t          |           t          j        |                     dk    sJ d S )	Nr   Tr#   r   r)   r   )rA   r/   )r   r   r   r   r!   r"   r>   r   nonzeror   r
   ImaginaryUnitr9   s    r&   	test_signrM      s   s4   A$q''1:a==))Q....$q''1:a==))R////$q''16!99%%****$q''4  DGG++++$s1vv,,	!--2222sd###A$q''1:bee,,--@@@@$q''1:bee,,--!/1AAAAA$q''4  DGG++++sD!!!A$q''16!99%%******r%   c                     t          dd          } t          t          |           t          j        |                     dk    sJ t          t          |           t          j        |                     t          k    sJ d S )Nr   TrJ   r   )r   r   r   r   r!   r"   r	   r9   s    r&   test_argrO      sl    sd###A#a&&!*Q--((A----#a&&!*Q--((B......r%   c                       G fddt                                  } d| _        | j        t          |           j        k    sJ d S )Nc                   0    e Zd Zd Ze fd            ZdS )test_func_args.<locals>.MyClassc                     d| _         d S )N 	my_member)selfargss     r&   __init__z(test_func_args.<locals>.MyClass.__init__   s    DNNNr%   c                       fd}|S )Nc                  *     |  }j         |_         |S )NrU   )rX   objMyClassrW   s     r&   my_funcz5test_func_args.<locals>.MyClass.func.<locals>.my_func   s    gtn $
r%   r$   )rW   r^   r]   s   ` r&   funcz$test_func_args.<locals>.MyClass.func   s)          Nr%   N)__name__
__module____qualname__rY   propertyr_   )r]   s   r&   r]   rR      sI        	  	  	  
	 	 	 	 
	 	 	r%   r]   zA very important value)r   rV   r   )r   r]   s    @r&   test_func_argsrd      sm          $    			A*AK;&))-------r%   c                  6   t          t          dt          dk     fd          t          j        t                              dk    sJ t          t          dt          dk     fd          t          j        t                              dk    sJ t          t          dt          dk    fd          t          j        t                              dk    sJ t          t          dt          dk    fd          t          j        t                              dk    sJ d S )Nr   r   )r   T)r   r   r   r   r!   r"   r$   r%   r&   test_issue_refine_9384rf      s    )QAJ	22AJqMMBBaGGGG)QAJ	22AJqMMBBaGGGG)QAJ	22AJqMMBBaGGGG)QAJ	22AJqMMBBaGGGGGGr%   c                  b     G d dt                     }  |             }t          |          sJ d S )Nc                       e Zd Zd ZdS )"test_eval_refine.<locals>.MockExprc                     dS )NTr$   )rW   assumptionss     r&   _eval_refinez/test_eval_refine.<locals>.MockExpr._eval_refine   s    4r%   N)r`   ra   rb   rl   r$   r%   r&   MockExprri      s#        	 	 	 	 	r%   rm   )r   r   )rm   mock_objs     r&   test_eval_refinero      sS        4    xzzH(r%   c                     t          t          t          t          z            t	          j        t                              } t          t          t          t          z  t          z            t	          j        t                              }| t          t          t                    z  k    sJ |t          t          t          t          z            z  k    sJ t          dd          }t          t          t          |dz  z  t          z            t	          j        t                              }|t          |dz  z  t          t                    z  k    sJ d S )Ny1TrI   r    )r   r   r   r   r   r!   r   r   )expr1expr2rq   expr3s       r&   test_refine_issue_12724ru      s    3q1u::qz!}}--E3q1uqy>>1:a==11EAAJAAE

N""""	T	"	"	"B3q2q5y1}%%qz!}}55EAAIA&&&&&&&r%   c                     t          ddd          } t          dd          }t          dd          }t          | d         t          j        |                     | d         k    sJ t          | d         t          j        |                     | d         k    sJ t          | ||f         t          j        |                     | ||f         k    sJ t          | ||f         t          j        |                     | ||f         k    sJ d S )	Nr   r+   iT)r!   j)r   r   )r   r   )r   r   r   r   	symmetric)r   rw   rx   s      r&   test_matrixelementrz      s    S!QAst$$$Ast$$$A!D'1;q>>**ag5555!D'1;q>>**ag5555!AqD'1;q>>**a1g5555!AqD'1;q>>**a1g555555r%   N)8sympy.assumptions.askr   sympy.assumptions.refiner   sympy.core.exprr   sympy.core.numbersr   r   r   r	   sympy.core.singletonr
   sympy.core.symbolr   $sympy.functions.elementary.complexesr   r   r   r   r   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   	sympy.abcr   r   r   r   sympy.core.relationalr   r   $sympy.functions.elementary.piecewiser   "sympy.matrices.expressions.matexprr   r'   r2   r6   r:   r<   r?   rC   rE   rG   rM   rO   rd   rf   ro   ru   rz   r$   r%   r&   <module>r      sM   # # # # # # + + + + + +             5 5 5 5 5 5 5 5 5 5 5 5 " " " " " " $ $ $ $ $ $ I I I I I I I I I I I I I I 6 6 6 6 6 6 9 9 9 9 9 9 B B B B B B B B                         ( ( ( ( ( ( ( ( : : : : : : ; ; ; ; ; ;0 0 0O O O>* * *: : : /  /  /F= = =M M M	& 	& 	&" " "+ + + / / /
. . .&H H H  ' ' '6 6 6 6 6r%   