
    oVh                        d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m
Z
 d dlmZ d dlmZ d dl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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' d dl(m)Z) d dl*m+Z+m,Z,m-Z- d dl.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z:m;Z; d dl<m=Z= d dl>m?Z? d dl@mAZA d dlBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZV d dlWmXZXmYZY d dlZm[Z[  e$d      \  Z\Z]Z^Z_d Z`d Zad Zbd  Zcd! Zdd" Zed# Zfd$ Zgd% Zhd& Zid' Zjd( Zkd) Zld* Zmd+ Znd, Zoed-        Zpd. Zqd/ Zrd0 Zsd1 Ztd2 Zud3 Zvd4 Zwd5 Zxd6 Zyd7 Zzd8 Z{d9 Z|d: Z}d; Z~d< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZedE        ZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zd_ Zd` Zda Zyb)c    )	fuzzy_and)_sympify)dispatch)XFAILraises)QAdd)Basic)Expr	unchanged)FunctionMul)FloatIRationalnanoopizooPow)S)Symbolsymbols)signAbs)	Piecewise)exp	exp_polarlog)ceilingfloor)sqrt)cossin)AndImpliesNotOrXor)Reals)simplify)trigsimp)
RelationalEquality
UnequalityGreaterThanLessThanStrictGreaterThanStrictLessThanRelEqLtLeGtGeNeis_leis_gtis_geis_ltis_eqis_neq)Interval	FiniteSet)combinationszx,y,z,tc                     ddl m}  j                  rj                  sJ t        t	        t               t              h            D ]  }t        j                   fv r k(   k7  g}t	        t        |            dk(  r|d   dk(  sJ  k7  s k(  rJ  |t         fd      sJ  |t         fd      sJ  |t         fd      sJ  |t         fd      s}J  k(   k7  g}t	        t        |            d	k(  sJ  k   k   kD   k\  g}g d
g dg dgj                  |      }|dk(  r |d   s" j                  j                  k7  s	J |d   sJ  c  y)Nr   )r      Fc                       k  S N abs   P/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_relational.py<lambda>zrel_check.<locals>.<lambda>,       QU     c                       k  S rJ   rK   rL   s   rO   rP   zrel_check.<locals>.<lambda>-       Q!V rR   c                       kD  S rJ   rK   rL   s   rO   rP   zrel_check.<locals>.<lambda>.   rQ   rR   c                       k\  S rJ   rK   rL   s   rO   rP   zrel_check.<locals>.<lambda>/   rT   rR      )TTFF)FTFT)FFTTT)sympy.testing.pytestr   	is_numberrangelentyper   NaNset	TypeErrorindexis_Float)rM   rN   r   dovEis   ``     rO   	rel_checkrf   $   s{   +;;1;;&&Ca$q'*+, 55QF?q&AF$As1v;!#!55Qa00)]333)^444)]333)^444q&AF$As1v;!###Ua1fAa2A 0..0 16a  Avt

ajj 899tt!1-. rR   c                      t        t        t        d      t        t        t              k(  sJ t	        dd      } t        | d      t
        j                  u sJ y )N!=pTpositiver   )r0   xyr=   r   r   trueri   s    rO   test_rel_nerp   A   sE    aD!R1X--- 	sT"Aa8qvvrR   c                     t        t        t        d      } | j                  t        t              } t        | t              sJ | j                  t        k(  sJ | j                  t        k(  sJ t        t        t        d      } | j                  t        t              } t        | t              sJ | j                  t        k(  sJ | j                  t        k(  sJ t        t        t        d      } | j                  t        t              } t        | t              sJ | j                  t        k(  sJ | j                  t        k(  sJ t        t        t        d      } | j                  t        t              } t        | t              sJ | j                  t        k(  sJ | j                  t        k(  sJ t        t        t        d      } | j                  t        t              } t        | t              sJ | j                  t        k(  sJ | j                  t        k(  sJ t        t        d      } | j                  t        d      t        j                  u sJ | j                  t        d      t        j                   u sJ y )N==>=<=><r   rH   )r0   rl   rm   subsz
isinstancer1   lhsrhsr3   r4   r5   r6   r8   r   rn   false)es    rO   test_rel_subsr~   I   s   1aA	q!Aa"""55A::55A::1aA	q!Aa%%%55A::55A::1aA	q!Aa"""55A::55A::1aA	q!Aa*+++55A::55A::1aA	q!Aa(((55A::55A::
1aA66!Q<166!!!66!Q<177"""rR   c                     t         t         dz  z   } t        t        | d      }t        t        t         t         dz  z   d      |k(  sJ t	        t        t         t         dz  z         |k(  sJ t        t        | d      }t        t        t         t         dz  z         |k(  sJ t        t        | d      }t        t        t         t         dz  z         |k(  sJ t        t        | d      }t        t        t         t         dz  z         |k(  sJ t        t        | d      }t        t        t         t         dz  z         |k(  sJ t        t        | d      }t        t        t         t         dz  z         |k(  sJ y )NrW   rr   rv   rt   ru   rs   rh   )
rl   r0   rm   r7   r8   r9   r:   r;   r<   r=   )r}   ress     rO   test_wrappersr   r   s*   	AqDA
Q4
 Cq!ad(D!S(((aQT?c!!!
Q3
CaQT?c!!!
Q4
 CaQT?c!!!
Q3
CaQT?c!!!
Q4
 CaQT?c!!!
Q4
 CaQT?c!!!rR   c                     t        t        t              sJ t        dd      } t        | d      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        t         d      t        j                  u sJ t        t         d      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        t         d      t        j                  u sJ t        t         d      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ y )Nri   Trj   r   rH   FrK   )r8   rl   r   r   r|   r=   rn   ro   s    rO   
test_Eq_Ner      s/   a8O8 	sT"Aa8qww
 dA;!''!!!eQ<177"""qb!9qb!9dA;!&&   eQ<166!!!qb!9qb!9b!9b!9rR   c                  (   ddl m}  t        t        d      j	                          | t        dz
  t        d      k(  sJ t        t        d        t        t        d        t        t        d        t        t        d	        t        t        d
        y )Nr   PolyrH   ZZ)domainc                  >    t        t        d      j                         S NrH   )r=   rl   as_polyrK   rR   rO   rP   ztest_as_poly.<locals>.<lambda>       2a8#3#3#5 rR   c                  >    t        t        d      j                         S r   )r<   rl   r   rK   rR   rO   rP   ztest_as_poly.<locals>.<lambda>   r   rR   c                  >    t        t        d      j                         S r   )r;   rl   r   rK   rR   rO   rP   ztest_as_poly.<locals>.<lambda>   r   rR   c                  >    t        t        d      j                         S r   )r:   rl   r   rK   rR   rO   rP   ztest_as_poly.<locals>.<lambda>   r   rR   c                  >    t        t        d      j                         S r   )r9   rl   r   rK   rR   rO   rP   ztest_as_poly.<locals>.<lambda>   r   rR   )sympy.polys.polytoolsr   r8   rl   r   r   AttributeErrorr   s    rO   test_as_polyr      sf    *a8a!eQt!<<<<
>56
>56
>56
>56
>56rR   c                     t         t         kD  t        j                  u sJ t         t          kD  t        j                  u sJ t         dkD  t        j                  u sJ t         t         k  t        j                  u sJ t         t          k  t        j                  u sJ t         dk  t        j                  u sJ t         t         k\  t        j                  u sJ t         t          k\  t        j                  u sJ t         dk\  t        j                  u sJ t         t         k  t        j                  u sJ t         t          k  t        j                  u sJ t         dk  t        j                  u sJ t          t         kD  t        j                  u sJ t          t          kD  t        j                  u sJ t          dkD  t        j                  u sJ t          t         k  t        j                  u sJ t          t          k  t        j                  u sJ t          dk  t        j                  u sJ t          t         k\  t        j                  u sJ t          t          k\  t        j                  u sJ t          dk\  t        j                  u sJ t          t         k  t        j                  u sJ t          t          k  t        j                  u sJ t          dk  t        j                  u sJ y r   )r   r   r|   rn   rK   rR   rO   test_rel_Infinityr      s<    G"HFqvvG"H   Fqww"H2#I!&&   !G"H2#I!''!!!!GC"H   C2#I!''!!!C!GC"HC2#I!''!!!C!GC2I!''!!!CB3J166!!!C1H   C2I!&&   CB3J166!!!C1HrR   c                  4   t        ddd      } t        ddd      }t        ddd      }t        ddd      }| |t        f}||t         f}|D ]  }|dk  t        j                  u sJ |dkD  t        j                  u sJ |dk  t        j                  u sJ |dk\  t        j                  u sJ |D ]^  }||k  t        j                  u sJ ||kD  t        j                  u sJ ||k  t        j                  u sJ ||k\  t        j                  u r^J  |D ]  }||k  t        j                  u sJ ||kD  t        j                  u sJ ||k  t        j                  u sJ ||k\  t        j                  u sJ ||k  t        j                  u sJ ||kD  t        j                  u sJ ||k  t        j                  u sJ ||k\  t        j                  u rJ   |D ]  }|dk  t        j                  u sJ |dkD  t        j                  u sJ |dk  t        j                  u sJ |dk\  t        j                  u sJ |D ]^  }	||	k  t        j                  u sJ ||	kD  t        j                  u sJ ||	k  t        j                  u sJ ||	k\  t        j                  u r^J   y )	Nrl   T)extended_positiveinfiniterm   rx   )extended_negativer   wrH   )r   r   r   r|   rn   )
rl   rm   rx   r   inf_setninf_setinf1inf2ninf1ninf2s
             rO   !test_infinite_symbol_inequalitiesr      s   sdT:AsdT:AsdT:AsdT:A!RjG1rc{H .qQWW$$$qQVV###	agg%%%	aff$$$ 	,D4KAGG+++4KAGG+++DLQVV+++DLQVV+++		,  	.E5LQWW,,,5LQVV+++EMagg---EMaff,,,DLQVV+++DLQWW,,,TMaff,,,TMagg---	..,  
.	aff$$$	agg%%%
qvv%%%
qww&&& 	.EEMagg---EMagg---UNqvv---UNqvv---		.
.rR   c                     t        dd      t        j                  u sJ t        dd      t        j                  u sJ t	        dd      t        j                  u sJ t	        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        dd      t        j                  u sJ t        t        d      t        j                  u sJ t	        t        d      t        j                  u sJ t        t        d        t        t        d        t        t        d        t        t        d        t        dd	      } t        d
d	      }t        t        | z   t        |z         t        j                  u sJ y )Nr   rH   rW   c                  "    t        t        d      S NrW   r;   r   rK   rR   rO   rP   ztest_bool.<locals>.<lambda>      bAh rR   c                  "    t        t        d      S r   r<   r   rK   rR   rO   rP   ztest_bool.<locals>.<lambda>  r   rR   c                  "    t        t        d      S r   r9   r   rK   rR   rO   rP   ztest_bool.<locals>.<lambda>  r   rR   c                  "    t        t        d      S r   r:   r   rK   rR   rO   rP   ztest_bool.<locals>.<lambda>	  r   rR   z.000000000000000000001 z.0000000000000000000001)r8   r   rn   r|   r=   r9   r:   r;   r<   r   r   r_   r   r   rL   s     rO   	test_boolr      s   a8qvva8qwwa8qwwa8qvva8qvva8qwwa8qvva8qwwa8qvva8qvva8qwwa8qvva8qwwa8qvva8qwwa8qvv
9&'
9&'
9&'
9&'&+A',Ab1fb1f(((rR   c                  $   t         t        k  t        t         t              k(  sJ t         t        k  t        t         t              k(  sJ t         t        kD  t	        t         t              k(  sJ t         t        k\  t        t         t              k(  sJ y rJ   )rl   rm   r9   r:   r;   r<   rK   rR   rO   test_rich_cmpr     sb    EbAhFr!QxEbAhFr!QxrR   c                  v   ddl m}   | dd      } | dd      } | dd	      } | d
d      }t        |d      j                         t        j
                  u sJ t        |d      j                         t        |d      k(  sJ t        |d      j                         t        j
                  u sJ t        |d      j                         t        j                  u sJ t        |d      j                         t        j
                  u sJ t        |d      j                         t        j
                  u sJ t        |d      j                         t        |d      k(  sJ t        |d      j                         t        j                  u sJ t        t        d      j                         t        t        d      k(  sJ y )Nr   )r   ri   Trj   n)negativenp)nonpositivennnonnegativerH   )sympy.core.symbolr   r;   doitr   rn   r<   r:   r|   r9   r8   rl   )r   ri   r   r   r   s        rO   	test_doitr     sL   (sT"AsT"A	$	'B	$	'Ba8==?aff$$$a8==?bAh&&&a8==?aff$$$a8==?agg%%%a8==?aff$$$b!9>>qvv%%%b!9>>r"ay(((b!9>>qww&&&a8==?bAh&&&rR   c                  P   t        d      t        d      t        d      k(  sJ t        d      t        dd      k(  sJ t        d      t        dd      k(  sJ t        d      t        d      k(  sJ t        d      t        d      k7  sJ t        d      t        dd      k7  sJ t        d      t        dd      k7  sJ t        d      t        d      k7  sJ t        d      t        d      k(  sJ t        d      t        dd      k(  sJ t        d      t        dd      k(  sJ t        d      t        d      k(  sJ t        d      t        d      k7  sJ t        d      t        dd      k7  sJ t        d      t        dd      k7  sJ t        d      t        d      k7  sJ t	        d      t        dd      k(  sJ t	        d      t        dd      k(  sJ t	        d      t        dd	      k(  sJ t	        d      t        d      k(  sJ t	        d      t        dd      k7  sJ t	        d      t        dd      k7  sJ t	        d      t        dd	      k7  sJ t	        d      t        d      k7  sJ t        d      t        dd
      k(  sJ t        d      t        dd      k(  sJ t        d      t        d      k(  sJ t        d      t        dd
      k7  sJ t        d      t        dd      k7  sJ t        d      t        d      k7  sJ dk\  t        dd
      k(  sJ dk\  t        dd      k(  sJ dk\  t        d      k(  sJ dk\  t        dd
      k7  sJ dk\  t        dd      k7  sJ dk\  t        d      k7  sJ t        d      t        dd      k(  sJ t        d      t        dd      k(  sJ t        d      t        d      k(  sJ t        d      t        dd      k7  sJ t        d      t        dd      k7  sJ t        d      t        d      k7  sJ dk  t        dd      k(  sJ dk  t        dd      k(  sJ dk  t        d      k(  sJ dk  t        dd      k7  sJ dk  t        dd      k7  sJ dk  t        d      k7  sJ t        d      t        dd      k(  sJ t        d      t        dd      k(  sJ t        d      t        d      k(  sJ t        d      t        dd      k7  sJ t        d      t        dd      k7  sJ t        d      t        d      k7  sJ dkD  t        dd      k(  sJ dkD  t        dd      k(  sJ dkD  t        d      k(  sJ dkD  t        dd      k7  sJ dkD  t        dd      k7  sJ dkD  t        d      k7  sJ t        d      t        dd      k(  sJ t        d      t        dd      k(  sJ t        d      t        d      k(  sJ t        d      t        dd      k7  sJ t        d      t        dd      k7  sJ t        d      t        d      k7  sJ dk  t        dd      k(  sJ dk  t        dd      k(  sJ dk  t        d      k(  sJ dk  t        dd      k7  sJ dk  t        dd      k7  sJ dk  t        d      k7  sJ ddlm}  t!        d      D ]c  }	  | dd      rt"        dfnt"        df\  }} | | d|             | dd      r | | d|            z  dvrnLt%        t&        fd       e t)        fddD              sJ t)        fddD              sJ t)        fddD              sJ t)        fddD              sJ t)        fd d!D              sJ t)        fd"d#D              sJ y )$Nrl   r   rr   eqrH   rh   <>ners   gert   leru   gtrv   lt)randintd   i     )rr   r   rh   r   r   rs   r   rt   r   ru   r   rv   r   z:=z+=z-=z*=z/=z%=c                      t        d       S r   r0   )relation_typerl   s   rO   rP   z%test_new_relational.<locals>.<lambda>  s    :aM#B rR   c              3   R   K   | ]  }t        d |      j                  dk(     yw)r   rr   Nr0   rel_op.0oprl   s     rO   	<genexpr>z&test_new_relational.<locals>.<genexpr>  %     Jrz!Q#**d2J   $')r   rr   c              3   R   K   | ]  }t        d |      j                  dk(     yw)r   rh   Nr   r   s     rO   r   z&test_new_relational.<locals>.<genexpr>  s-      - !Q#**d2 -r   )r   r   rh   c              3   R   K   | ]  }t        d |      j                  dk(     yw)r   ru   Nr   r   s     rO   r   z&test_new_relational.<locals>.<genexpr>  %     Hbz!Q#**c1Hr   )r   ru   c              3   R   K   | ]  }t        d |      j                  dk(     yw)r   rv   Nr   r   s     rO   r   z&test_new_relational.<locals>.<genexpr>  r   r   )r   rv   c              3   R   K   | ]  }t        d |      j                  dk(     yw)r   rs   Nr   r   s     rO   r   z&test_new_relational.<locals>.<genexpr>  r   r   )r   rs   c              3   R   K   | ]  }t        d |      j                  dk(     yw)r   rt   Nr   r   s     rO   r   z&test_new_relational.<locals>.<genexpr>  r   r   )r   rt   )r   r8   r0   r1   r=   r2   r<   r3   r:   r4   r;   r5   r9   r6   sympy.core.randomr   rZ   chrr   
ValueErrorall)r   re   strtypelengthr   rl   s       @@rO   test_new_relationalr   )  s   sAa8z!Q''''a8z!Q----a8z!Q----a8x1~%%%a8z!Q''''a8z!Q----a8z!Q----a8x1~%%%a9
1b))))a9
1b$////a9
1b$////a9B'''a9
1a((((a9
1a....a9
1a....a9A&&&a8z!Q----a8z!Q----a8z!Q----a8z!Q''''a8z!Q----a8z!Q----a8z!Q----a8z!Q''''a8z!Q----a8z!Q----a8{1a((((a8z!Q----a8z!Q----a8{1a((((Fz!Q----Fz!Q----F{1a((((Fz!Q----Fz!Q----F{1a((((a8z!Q----a8z!Q----a8x1~%%%a8z!Q----a8z!Q----a8x1~%%%Fz!Q----Fz!Q----Fx1~%%%Fz!Q----Fz!Q----Fx1~%%%a8z!Q,,,,a8z!Q----a8(A....a8z!Q,,,,a8z!Q----a8(A....EjAs++++EjAt,,,,E'1----EjAs++++EjAt,,,,E'1----a8z!Q,,,,a8z!Q----a8~a++++a8z!Q,,,,a8z!Q----a8~a++++EjAs++++EjAt,,,,EnQ****EjAs++++EjAt,,,,EnQ**** *3Z D.5amsEl#sOGV#GAv$67Mq!}F);!<< %C C   	zBCD J\JJJJ -+- - - -HKHHHHHKHHHHJ\JJJJJ\JJJJrR   c                     t         t        t        t        t        t
        fD ]  }  | t        t              t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd        y )	Nc                      d z   S Nr   rK   rels   rO   rP   z,test_relational_arithmetic.<locals>.<lambda>      !C% rR   c                      d z  S r   rK   r   s   rO   rP   z,test_relational_arithmetic.<locals>.<lambda>  r   rR   c                      d z  S r   rK   r   s   rO   rP   z,test_relational_arithmetic.<locals>.<lambda>  s    !S& rR   c                       dz  S r   rK   r   s   rO   rP   z,test_relational_arithmetic.<locals>.<lambda>  s    #q& rR   c                      t        d       S r   r	   r   s   rO   rP   z,test_relational_arithmetic.<locals>.<lambda>      #a+ rR   c                      t        d       S r   r   r   s   rO   rP   z,test_relational_arithmetic.<locals>.<lambda>  r   rR   c                      t        d       S r   r   r   s   rO   rP   z,test_relational_arithmetic.<locals>.<lambda>  r   rR   c                      t         d      S r   r   r   s   rO   rP   z,test_relational_arithmetic.<locals>.<lambda>  s    #c1+ rR   )
r8   r=   r:   r9   r<   r;   rl   rm   r   r_   )clsr   s    @rO   test_relational_arithmeticr     s~    BBB' 	/!Qiy-(y-(y.)y.)y-.y-.y-.y-.	/rR   c                      t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                  &    t        t        dkD        S N   boolrl   rK   rR   rO   rP   z-test_relational_bool_output.<locals>.<lambda>      d1q5k rR   c                  &    t        t        dk\        S r   r   rK   rR   rO   rP   z-test_relational_bool_output.<locals>.<lambda>      d16l rR   c                  &    t        t        dk        S r   r   rK   rR   rO   rP   z-test_relational_bool_output.<locals>.<lambda>  r   rR   c                  &    t        t        dk        S r   r   rK   rR   rO   rP   z-test_relational_bool_output.<locals>.<lambda>  r   rR   c                  4    t        t        t        d            S r   )r   r8   rl   rK   rR   rO   rP   z-test_relational_bool_output.<locals>.<lambda>      d2a8n rR   c                  4    t        t        t        d            S r   )r   r=   rl   rK   rR   rO   rP   z-test_relational_bool_output.<locals>.<lambda>  r   rR   r   r_   rK   rR   rO   test_relational_bool_outputr     sD    
9)*
9*+
9)*
9*+
9,-
9,-rR   c                     t         t        k  t        t        k  z  t	        t         t        k  t        t        k        k(  sJ t         t        k  t        t        k  z  t        t         t        k  t        t        k        k(  sJ t         t        k   t        t         t        k        k(  sJ t         t        k  t        t        k  z	  t        t         t        k  t        t        k        k(  sJ t         t        k  t        t        k  z  t        t        t        k  t         t        k        k(  sJ t         t        k  t        t        k  z  t        t         t        k  t        t        k        k(  sJ t        t         t        k  t        t        k  z  t              sJ t        t         t        k  t        t        k  z  t
              sJ t        t         t        k   t              sJ t        t         t        k  t        t        k  z	  t              sJ t        t         t        k  t        t        k  z  t              sJ t        t         t        k  t        t        k  z  t
        t        f      sJ y rJ   )rl   rm   rx   tr(   r+   r*   r)   r,   ry   r3   rK   rR   rO   test_relational_logic_symbolsr    s   Ea!eAE1q5 1111Ea!e1q5!a% 0000U8s1q5z!!!Eq1uQA!6666Eq1uQA!6666Ea!eAE1q5 1111q1uQ'---q1uQ',,,Ah,,,q1u!a%('222q1u!a%('222q1uQ'"c333rR   c                     t         dkD  j                         t        dt        dd      k(  sJ t         dk\  j                         t        dt              k(  sJ t         dk  j                         t        t         ddd      k(  sJ t         dk  j                         t        t         d      k(  sJ t	        t         d      j                         t        d      k(  sJ t        t         d      j                         t        t         ddd      t        dt        dd      z   k(  sJ t         dz  dk\  j                         t        t         d      t        dt              z   k(  sJ y )Nr   TrW      )rl   as_setrD   r   r8   rE   r=   rK   rR   rO   !test_univariate_relational_as_setr    s"   E>>x2tT::::F??B///E>>xQd;;;;F??"a 0000a8??	!,,,a8??"at <Bd#!$ $ $ $ qDAI8RC#4x2#FFFFrR   c                      t         t        z  dk\  j                         t        dt              t        dt              z  t        t         d      t        t         d      z  z   k(  sJ y r   )rl   rm   r  rD   r   rK   rR   rO   #test_multivariate_relational_as_setr
    sW    aC1H(1b/(1b/"A"a2#q))#* * * *rR   c                  t   t        t        t        t                    t	        t        t              k(  sJ t        t	        t        t                    t        t        t              k(  sJ t        t        t        t                    t        t        t              k(  sJ t        t        t        t                    t        t        t              k(  sJ t        t        t        t                    t        t        t              k(  sJ t        t        t        t                    t        t        t              k(  sJ y rJ   )	r*   r1   rl   rm   r2   r5   r4   r6   r3   rK   rR   rO   test_Notr    s    x1~*Q"2222z!Q HQN222 A&'8Aq>999~a#$Aq(9999{1a !^Aq%9999x1~"3Aq"9999rR   c                     t        t        t        t        d            dk(  sJ t        t        t        d      j                         t        j
                  k(  sJ t        t        t        t        d            dk(  sJ t        t        t        d      j                         t        j                  k(  sJ t        t        t        t        d            dk(  sJ t        t        t        t        d            dk(  sJ t        t        t        t        d            dk(  sJ t        t        t        t        d            dk(  sJ y )	NFevaluatezEq(x, x)zNe(x, x)zx >= xzx <= xzx > xzx < x)strr8   rl   r   r   rn   r=   r|   r<   r:   r;   r9   rK   rR   rO   test_evaluater    s    r!Q'(J666aU#((*aff444r!Q'(J666aU#((*agg555r!Q'(H444r!Q'(H444r!Q'(G333r!Q'(G333rR   c                 H    t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       y )	Nc                       kD  S rJ   rK   rL   s   rO   rP   z1assert_all_ineq_raise_TypeError.<locals>.<lambda>      a!e rR   c                       k\  S rJ   rK   rL   s   rO   rP   z1assert_all_ineq_raise_TypeError.<locals>.<lambda>      a1f rR   c                       k  S rJ   rK   rL   s   rO   rP   z1assert_all_ineq_raise_TypeError.<locals>.<lambda>  r  rR   c                       k  S rJ   rK   rL   s   rO   rP   z1assert_all_ineq_raise_TypeError.<locals>.<lambda>  r  rR   c                       kD  S rJ   rK   rL   s   rO   rP   z1assert_all_ineq_raise_TypeError.<locals>.<lambda>  r  rR   c                       k\  S rJ   rK   rL   s   rO   rP   z1assert_all_ineq_raise_TypeError.<locals>.<lambda>  r  rR   c                       k  S rJ   rK   rL   s   rO   rP   z1assert_all_ineq_raise_TypeError.<locals>.<lambda>  r  rR   c                       k  S rJ   rK   rL   s   rO   rP   z1assert_all_ineq_raise_TypeError.<locals>.<lambda>  r  rR   r   rL   s   ``rO   assert_all_ineq_raise_TypeErrorr    sS    
9m$
9n%
9m$
9n%
9m$
9n%
9m$
9n%rR   c                     ddl m} t        | |kD  |      sJ t        | |k\  |      sJ t        | |k  |      sJ t        | |k  |      sJ t        || kD  |      sJ t        || k\  |      sJ t        || k  |      sJ t        || k  |      sJ y)zDAll inequality operations on `a` and `b` result in class Inequality.r   )_InequalityN)sympy.core.relationalr  ry   )rM   rN   
Inequalitys      rO   %assert_all_ineq_give_class_Inequalityr"    s    ?a!ej)))a1fj)))a!ej)))a1fj)))a!ej)))a1fj)))a!ej)))a1fj)))rR   c                  ,    t        t        t               y rJ   )r  r   rl   rK   rR   rO   'test_imaginary_compare_raises_TypeErrorr$    s    #Aq)rR   c                      t        dd      } t        ddd      }| |fD ]  }t        d|        t        d      }t        d	d
      }t        dd      }|||fD ]  }t        d|        y )Nrm   T	imaginaryrx   F)complexextended_realrW   r  rl   realr(  )r   r  r"  )rm   rx   r   r  rl   s        rO   test_complex_compare_not_realr-    s{    sd#AsD6AV .'1-. 	sAsAsD!AAY 4-a34rR   c                  `    t        dd      } t        t        |        t        t         |        y )Nrm   Tr&  )r   r  r   )rm   s    rO   /test_imaginary_and_inf_compare_raises_TypeErrorr/    s$    sd#A#B*#RC+rR   c                     t        t        d        t        ddd      } t        dd      }t        dd      }t        t        |       t        | z  }t        d	|       t         |z  }t        d	|       t        |z  }t        d	|       y )
Nc                  (    dt         z  dt         z  k  S )NrW   r   r   rK   rR   rO   rP   z4test_complex_pure_imag_not_ordered.<locals>.<lambda>  s    acAaCi rR   rl   T)r+  nonzerorm   r&  rx   r,  rW   )r   r_   r   r  r   r"  )rl   rm   rx   r  s       rO   "test_complex_pure_imag_not_orderedr4    sz    
9'( 	st,Asd#AsD!A#Aq)	!A#Aq)	
1A)!Q/	!A)!Q/rR   c                     t         dz   t         dz   t        t        fd       z
  dk  sJ t        d      t        t        fd       j                  j
                  z
  dk  sJ t        dd	
      } d| z   d| z   t        d      t        t        fd       j                  j
                  z
  dk  sJ t         dz   dt         z  dz   t        t        fd       t        t        fd       y)ze
    A consequence of pull request #7792 is that `x - y < 0` and `x < y`
    are not synonymous.
    rW   r   c                       k  S rJ   rK   rl   rm   s   rO   rP   z3test_x_minus_y_not_same_as_x_lt_y.<locals>.<lambda>.  r  rR   r   Fr  c                  $     j                         S rJ   r   ineqs   rO   rP   z3test_x_minus_y_not_same_as_x_lt_y.<locals>.<lambda>2      diik rR   r  Tr&  c                  $     j                         S rJ   r9  r:  s   rO   rP   z3test_x_minus_y_not_same_as_x_lt_y.<locals>.<lambda>9  r<  rR   c                       k  S rJ   rK   r7  s   rO   rP   z3test_x_minus_y_not_same_as_x_lt_y.<locals>.<lambda>?  r  rR   c                       z
  dk  S r   rK   r7  s   rO   rP   z3test_x_minus_y_not_same_as_x_lt_y.<locals>.<lambda>@  s    a!eai rR   N)r   r   r_   r9   rz   r{   r   )r  r;  rl   rm   s    @@@rO   !test_x_minus_y_not_same_as_x_lt_yr@  '  s    
 	
AA	AA
9m$q5199aU#D
9)*88dhh"""sd#A	AA	AAaU#D
9)*88dhh""" 	
AA	!aA
9m$
9'(rR   c                     dd l } t        t        t              t        j                  u sJ t        t        t              t        j                  u sJ t        t        j                  t        j                  dz  t        t        t         f}t        t        | j                  |            t        j                  u sJ t        | j                  |      t              t        j                  u sJ t        t        | j                  |            t        j                  u sJ t        | j                  |      t              t        j                  u sJ y )Nr   r   )randomr1   r   r   r|   r2   rn   rl   ZeroOner   r   choice)rB  As     rO   test_nan_equality_exceptionsrG  C  s    C(((c3166))) 
AFFAEE!GRbS)ACq)*agg555FMM!$c*agg555c6==+,666fmmA&,666rR   c            	          t         t        j                  t        d      t        j                  dz  t        t        d      t
        t
         t        f	D ]  } t        | t                y )N
   r   g?)rl   r   rC  rD  r   r   r   r  )qs    rO    test_nan_inequality_raise_errorsrK  Q  sF     2aQsVR"cB 0'3/0rR   c                  ^    t         t        t        dd      fD ]  } t        | t                y )Nrx   Tr&  )r   r   r   r  r   rs    rO   test_nan_complex_inequalitiesrO  X  s+     fSD12 0'3/0rR   c                      t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                      t         dkD  S r   r   rK   rR   rO   rP   z4test_complex_infinity_inequalities.<locals>.<lambda>`  
    cAg rR   c                      t         dk\  S r   rR  rK   rR   rO   rP   z4test_complex_infinity_inequalities.<locals>.<lambda>a  
    cQh rR   c                      t         dk  S r   rR  rK   rR   rO   rP   z4test_complex_infinity_inequalities.<locals>.<lambda>b  rS  rR   c                      t         dk  S r   rR  rK   rR   rO   rP   z4test_complex_infinity_inequalities.<locals>.<lambda>c  rU  rR   r   rK   rR   rO   "test_complex_infinity_inequalitiesrX  _  s,    
9o&
9&'
9o&
9&'rR   c                     t         t        t        j                  t        j                  dz  t
        t        t         f} | D ]Y  }| D ]R  }t        ||      ||kD  k(  sJ t        ||      ||k  k(  sJ t        ||      ||k\  k(  sJ t        ||      ||k  k(  rRJ  [ t        t        j                  t        j                  dz  t
        t        t         fD ]z  }t        t         |d      t         |kD  k(  sJ t        t         |d      t         |k  k(  sJ t        t         |d      t         |k\  k(  sJ t        t         |d      t         |k  k(  rzJ  t        t        j                  t        j                  dz  t
        t        t         fD ]z  }t        |t         d      |t         kD  k(  sJ t        |t         d      |t         k  k(  sJ t        |t         d      |t         k\  k(  sJ t        |t         d      |t         k  k(  rzJ  y)zAUsing the operator and functional forms should give same results.r   Fr  N)rl   rm   r   rC  rD  r   r   r;   r9   r<   r:   )rF  rM   rN   s      rO   "test_inequalities_symbol_name_samerZ  f  s    
AqvvquuQwB,A ( 	(Aa8A&&&a8A&&&a8Q'''a8Q'''		(( q"b2#. 4!Q'AE222!Q'AE222!Q'AF333!Q'AF333	4 q"b2#. 4!Q'AE222!Q'AE222!Q'AF333!Q'AF333	4rR   c            	          t         t        j                  t        j                  dz  t        t
        t        dd      fD ]   t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd       t        t         fd	       t        t         fd
        y)zUsing the operator and functional forms should give same results.
    With complex non-real numbers, both should raise errors.
    r   rH   c                  $    t         t              S rJ   r   rM   s   rO   rP   z<test_inequalities_symbol_name_same_complex.<locals>.<lambda>      "Q( rR   c                       t         kD  S rJ   r2  r]  s   rO   rP   z<test_inequalities_symbol_name_same_complex.<locals>.<lambda>      !a% rR   c                  $    t         t              S rJ   r   r]  s   rO   rP   z<test_inequalities_symbol_name_same_complex.<locals>.<lambda>  r^  rR   c                       t         k  S rJ   r2  r]  s   rO   rP   z<test_inequalities_symbol_name_same_complex.<locals>.<lambda>  r`  rR   c                  $    t         t              S rJ   r   r]  s   rO   rP   z<test_inequalities_symbol_name_same_complex.<locals>.<lambda>  r^  rR   c                       t         k\  S rJ   r2  r]  s   rO   rP   z<test_inequalities_symbol_name_same_complex.<locals>.<lambda>      !q& rR   c                  $    t         t              S rJ   r   r]  s   rO   rP   z<test_inequalities_symbol_name_same_complex.<locals>.<lambda>  r^  rR   c                       t         k  S rJ   r2  r]  s   rO   rP   z<test_inequalities_symbol_name_same_complex.<locals>.<lambda>  re  rR   N)	rl   r   rC  rD  r   r   r   r   r_   r]  s   @rO   *test_inequalities_symbol_name_same_complexrh    s    
 q"b(1a.9 *y*+y-(y*+y-(y*+y.)y*+y.)*rR   c                     ddl m} m}m}m} dt
        t        j                  t        j                  dz  t        t        t        t        t         t        t        dd      f
D ]"  || ||fD ]  t        t         fd        $ y )Nr   )r   r   r   r   foor   rH   c                              S rJ   rK   )rM   barr   s   rO   rP   z6test_inequalities_cant_sympify_other.<locals>.<lambda>  s    bCj rR   )operatorr   r   r   r   rl   r   rC  rD  r   r   r   r   r   r   r   r_   )r   r   r   r   rM   rl  r   s       @@@rO   $test_inequalities_cant_sympify_otherrn    si    ''
Cq"ab2#sHQNK 2r2r" 	2B901	22rR   c                  ^   ddl m}  t        d|       }t        t        |      t        t        |d      k(  sJ t        t        t              j                  t        |i      }|t        t        |d      k(  sJ t        t        |      j                         }|t        t        |d      k(  sJ y )Nr   )Wildri   )r   Fr  )
r   rp  r   r;   rl   r9   rm   rw   r<   r   )rp  ri   r}   s      rO    test_ineq_avoid_wild_symbol_fliprq    s     'Aa8r!Q////
1aq!fA1a%((((
1aA1a%((((rR   c                  6   t        d      } t        | | j                  d            sJ t        | | j                  d            sJ t        | | j                               sJ t        | d      t        t	        | j
                        d      t        t	        | j                        d      z  k(  sJ t        d      D ]8  }t        t        | |            }t        |      }|| k  t        |      | k  k(  r8J   |  k  t        |       |  k  k(  sJ t        | j
                  d      t        | j                  d      z  }|| k  sJ || k  rJ || k\  sJ || kD  rJ |dkD  sJ t        d      } t        t	        | j                  d                  }t        | |      sJ t        d      } t        t	        | j                  d	                  }t        | |      sJ t        t        t        d      dz  t        d      dz  z         d      t         j                  u sJ y )
Nz?6506833320952669167898688709329/5070602400912917605986812821504rI        r   r   rW         )r   rf   r   r   r  ri   rJ  rZ   r   r%   r8   r"   r&   r'   rn   )rM   re   rN  fisas        rO   test_issue_8245ry    s   	
KLAQB   QB   QB<5QSS2.uSXr/BBBBB2Y ,U1a[!!HA8A;?+++,
 B!G1"*+++
B-acc"
%C!8O8Qw;!8O8Qw;7N7QAQSSWAQ??QAQSSWAQ??c#a&!)c!fai'(!,666rR   c                      t        dd      } t        t         |       sJ t        t         |       t        j
                  u sJ t        t        |        sJ t        t        |        t        j
                  u sJ y )Nri   Tr   )r   r9   r   r<   r   r|   r;   r:   ro   s    rO   test_issue_8449r{    sb    s%Arc1::rc1:   b1"::b1":   rR   c                     t        t        t        dz   z  t        t        z  z
  t        z
  dz   t        k        t        dkD  k(  sJ t        t        t        dz   z  t        t        z  z
  t        z
  dz
  t        k        t        dkD  k(  sJ t        t        t        t        dz   z  t        t        z  z
  t        z
  dz   k        t        dk  k(  sJ t        d      \  } }|  |z   | |z
  z
  dk  j                         | |k\  k(  sJ t	        d      }||  |z   z  || |z
  z  z
  dk  j                         }|| |k\  k(  sJ t
        j                  t        k  }t        |      |j                  k(  sJ t        |d      |j                  k7  sJ t        dt        t        dd      z  z  dt        z  z   dt        z  z   ddt        dz  z  dt        z  z   dt        z  z  z  z   dk        t
        j                  u sJ t        t        t              j                         t        t        t              k(  sJ t        t        dz
  d      j                         t        t        d      k(  sJ t        t        dz
  t              j                         t
        j                  k(  sJ t        dt        z  dz
  t              j                         t        t        d      k(  sJ t        dt        z  d	      j                         t        t        d      k(  sJ t        d      dz  t        d      dz  z   dz
  }t        |t        z  d      j                         t
        j                  k(  sJ t        t        t              j                         t        t        t              k(  sJ t        t        dz
  d      j                         t        t        d      k(  sJ t        t        dz
  t              j                         t
        j                  k(  sJ t        dt        z  dz
  t              j                         t        t        d      k(  sJ t        dt        z  d	      j                         t        t        d      k(  sJ t        |t        z  d      j                         t
        j                  k(  sJ t!        t        t              j                         t#        t        t              k(  sJ t!        t        dz
  d      j                         t!        t        d      k(  sJ t!        t        dz
  t              j                         t
        j                  k(  sJ t!        dt        z  dz
  t              j                         t!        t        d      k(  sJ t!        dt        z  d	      j                         t!        t        d      k(  sJ t!        |t        z  d      j                         t
        j                  k(  sJ t!        t        d
      j                         t!        t        d
      k(  sJ t!        t         d
      j                         t#        t        d      k(  sJ t!        t        d      j                         t!        t        d      k(  sJ t!        t         d      j                         t#        t        d
      k(  sJ t#        t        t              j                         t!        t        t              k(  sJ t#        t        dz
  d      j                         t#        t        d      k(  sJ t#        t        dz
  t              j                         t
        j                  k(  sJ t#        dt        z  dz
  t              j                         t#        t        d      k(  sJ t#        dt        z  d	      j                         t#        t        d      k(  sJ t#        |t        z  d      j                         t
        j                  k(  sJ t#        t        d
      j                         t#        t        d
      k(  sJ t#        t         d
      j                         t!        t        d      k(  sJ t#        t        d      j                         t#        t        d      k(  sJ t#        t         d      j                         t!        t        d
      k(  sJ t%        t        t              j                         t'        t        t              k(  sJ t%        t        dz
  d      j                         t%        t        d      k(  sJ t%        t        dz
  t              j                         t
        j                  k(  sJ t%        dt        z  dz
  t              j                         t%        t        d      k(  sJ t%        dt        z  d	      j                         t%        t        d      k(  sJ t%        |t        z  d      j                         t
        j                  k(  sJ t%        t        d
      j                         t%        t        d
      k(  sJ t%        t         d
      j                         t'        t        d      k(  sJ t%        t        d      j                         t%        t        d      k(  sJ t%        t         d      j                         t'        t        d
      k(  sJ t'        t        t              j                         t%        t        t              k(  sJ t'        t        dz
  d      j                         t'        t        d      k(  sJ t'        t        dz
  t              j                         t
        j                  k(  sJ t'        dt        z  dz
  t              j                         t'        t        d      k(  sJ t'        dt        z  d	      j                         t'        t        d      k(  sJ t'        |t        z  d      j                         t
        j                  k(  sJ t'        t        d
      j                         t'        t        d
      k(  sJ t'        t         d
      j                         t%        t        d      k(  sJ t'        t        d      j                         t'        t        d      k(  sJ t'        t         d      j                         t%        t        d
      k(  sJ t)        d      t+        d      z
  }t        |t        z  dkD        t
        j                  u sJ t        |t        z  d|z  t        z  z   dkD        t
        j                  u sJ t        |t        z  t        z   dt        z   kD        t
        j                  u sJ y )NrH   r   zq rr   rW   )ratior      r  r  )r.   rl   rm   r   r%   r   rD  	canonicalr   r   r|   r8   r&   r'   rn   r=   r<   r:   r;   r9   r    r!   )rJ  rN  root2equationrx   ms         rO   test_simplify_relationalr    s)
   Aq1uI!Oa'!+a/0QU;;;Aq1uI!Oa'!+a/0QV<<<A1q5	AaC!+a//0QU;;;5>DAqb1fQA%//1a1f===GE1"q&!EQUO39CCEHQ		A A;!++%%%AQ1;;...
 a"Xa^+,q"u4"==q2a4y1b5(AbD112456 7:;''B B B a8"Q(***a!eQ<  "bAh...a!eQ<  "agg---acAgq>""$1a000ac1: Bq!H,,,A	CFAI!Aac1: AFF***a8"Q(***a!eQ<  "bAh...a!eQ<  "aff,,,acAgq>""$1a000ac1: Bq!H,,,ac1: AGG+++ a8"Q(***a!eQ<  "bAh...a!eQ<  "agg---acAgq>""$1a000ac1: Bq!H,,,ac1: AFF***a92a9,,,qb": Bq!H,,,a8"Q(***qb!92a9,,,a8"Q(***a!eQ<  "bAh...a!eQ<  "aff,,,acAgq>""$1a000ac1: Bq!H,,,ac1: AFF***a92a9,,,qb": Bq!H,,,a8"Q(***qb!92a9,,,a8"Q(***a!eQ<  "bAh...a!eQ<  "agg---acAgq>""$1a000ac1: Bq!H,,,ac1: AGG+++a92a9,,,qb": Bq!H,,,a8"Q(***qb!92a9,,,a8"Q(***a!eQ<  "bAh...a!eQ<  "aff,,,acAgq>""$1a000ac1: Bq!H,,,ac1: AGG+++a92a9,,,qb": Bq!H,,,a8"Q(***qb!92a9,,, 	A1AAaC!G'''AaC!A#a%K!O$///AaC!Ga!eO$///rR   c                     t        d      \  } }}}t        d      }t        |d      j                  t        ||dz   z  ||z  z
  |z
  dz   |            sJ t        ||      j                  ||k  d      dk(  sJ t        | |d            j                  t        | |d            d       |d       |d      z
  k(  sJ t         |d      |      j                  t         |d      |      d       |d       |d      z
  k(  sJ t        | |d            j                  t         |d      |      d       |d       |d      z
  k(  sJ t         |d      |      j                  t        | |d            d       |d       |d      z
  k(  sJ t        | |      j                  t        ||      d      dk(  sJ t         |d       |d            j                  t         |d       |d            d       |d       |d      z
  k(  sJ ||k  j                  ||kD  d      dk(  sJ ||k  j                  ||k\  d      dk(  sJ ||k  j                  ||k  d      dk(  sJ ||k  j                  ||k  d      dk(  sJ | |d      k  j                  | |d      k  d       |d       |d      z
  k(  sJ  |d      |k  j                   |d      |k  d       |d       |d      z
  k(  sJ y )	Nzw:zrw  rH   TFrW   r   r  )r   r   r8   equals)r   rl   rm   rx   rw  s        rO   test_equalsr  +  s   JAq!QAa8??2aQi!A#o1A5q9:::a8??1q5$'5000a1;bAaDk40AaD1Q4K???adA;b1qk40AaD1Q4K???a1;b1qk40AaD1Q4K???adA;bAaDk40AaD1Q4K???a8??2a8T*e333adAaD>  AaD!A$6!A$1+EEEE>>!a%&$...E>>!q&$'5000E>>!a%&%///E>>!a%&%///!HQ1Xt,!qt;;;aD1HQqTAXt,!qt;;;rR   c                      t         t        k  j                  t        t         kD  k(  sJ t         t        k  j                  t        t         k\  k(  sJ t        t         t        d      j                  t        t        t         d      k(  sJ t	        t         t        d      j                  t	        t        t         d      k(  sJ t         t        k\  j                  t        t         k  k(  sJ t         t        kD  j                  t        t         k  k(  sJ y )NFr  )rl   rm   reversedr8   r=   rK   rR   rO   test_reversedr  >  s    EA&&&Fa(((aU#,,1a%0HHHHaU#,,1a%0HHHHFa(((EA&&&rR   c            
         t         t        z   t        k  t         dz   dkD  t         dk  t        d      t         kD  t         dz  t          t        z  kD  t	        ddd      fD  cg c]  } | j
                   }} |D  cg c]  } | j
                   c} |k(  sJ |D  cg c]  } | j                  j
                   c} |k(  sJ t        d |D              rJ |D  cg c]>  } | j                  j                  | j                  | j                  d      j
                  @ }} |D  cg c]  } | j
                   c} |k(  sJ |D  cg c]  } | j                  j
                   c} |k(  sJ t        d |D              rJ t        t        t         k  t         t        kD        j
                  t        j                  u sJ y c c} w c c} w c c} w c c} w c c} w c c} w )NrW   r   Fr  c              3   z   K   | ]3  }|j                   j                  xr |j                  j                    5 y wrJ   rz   	is_Numberr{   r   re   s     rO   r   z!test_canonical.<locals>.<genexpr>R  +     Fq155??:155??'::F   9;c              3   z   K   | ]3  }|j                   j                  xr |j                  j                    5 y wrJ   r  r  s     rO   r   z!test_canonical.<locals>.<genexpr>W  r  r  )rl   rm   rx   r   r;   r  r  anyfuncr{   rz   r8   rn   )re   cs     rO   test_canonicalr  G  s   	A		A		A	!q	1r!t
1a% 
 	 	A 	 "##AAKK#q(((*+,QAJJ  ,111FAFFFFJKLQ	6	@	@LAL!"#AAKK#q(((*+,QAJJ  ,111FAFFFFa!eQU%%///!	 $, 	M#,s%    F59F:F?AGG	=Gc                      t        dd      } | t        k  | t         k\  cxk(  rdk(  sJ  J t        d      } | t        |       k\  sJ | t        |       k  dk(  sJ | t        |       k  sJ | t        |       kD  dk(  sJ y )Nrl   Tr*  F)r   r   r$   r#   rl   s    rO   test_issue_8444_nonworkingtestsr  [  s    $AGrc*d*****Aa==aLU"""
??
Nu$$$rR   c                     t        d      } t        | t        |             t        | t        |       d      k(  sJ t        | t        |             t        | t        |       d      k(  sJ t	        | t        |             t	        | t        |       d      k(  sJ t        | t        |             t        | t        |       d      k(  sJ t        dd      }|t        |      kD  dk(  sJ |t        |      k  dk(  sJ y )Nrl   Fr  re   Tinteger)r   r;   r$   r<   r9   r#   r:   )rl   re   s     rO   test_issue_8444_workingtestsr  g  s    Aaq?bE!Hu====aq?bE!Hu====a1gaj5 AAAAa1gaj5 AAAAT"AaLU"""
Nu$$$rR   c                      t        d      dz  t        d      dz  z   dz
  } | j                  du sJ d| t        z  z   }t	        t        |d            t        j                  u sJ y )NrH   rW   Fr   )r&   r'   is_comparabler   r.   r8   r   r|   )dr}   s     rO   test_issue_10304r  r  s]    A	CFAI!A??e###	AaCABq!H(((rR   c                      t        dd      t        dz  t        z  z   } t        t        t
        t        dz  z  | z        j                  t        dz  t              t        t        t
        t        z  | z        k(  sJ y )NrH   r~  r  r   )r   rx   rm   r8   rl   r   replace)r  s    rO   test_issue_18412r  y  s[    	!Q!a%!)	#AaadQ''1a0Bq"q&1*4EEEErR   c                     t        d      } t        dd      }t        dd      }t        dd      }t        ddd      }t        d	dd
      }t        ddd
      }t        ddd      }t        ddd      }t        ddd      }	t        dd      }
t        dd
d      }t        dd| z  dz   z  d      j                  t        u sJ t        dd| z  dz   z  d      j                  | t        j
                        t        j                  u sJ t        dd|z  dz   z  d      t        j                  u sJ t        j                  t        j                  }}t        ||      |u sJ t        ||      ||fvr||k7  sJ t        d|z   d|z         ||fvr||k7  sJ t        ||      |u sJ t        ||	      |u sJ t        dt        t        z  z   t        t        z        |u sJ t        t        t        z  dt        t        z  z         |u sJ t        dt        t        z  z   dt        t        z  z         |u sJ t        dt        t        z  z   dt        |z  z         |u sJ t        dt        t        z  z   d|z         |u sJ t        t        t        d      t        t        z  z         |u sJ t        t        t              |u sJ t        dd      }t        dd      }t        |t        z  |      ||fvsJ t        ||      |u sJ t        ||      ||fvr||k7  sJ t        t        t              |u sJ t        ||z  d      |u sJ t        ||z  d      |u sJ t        ||z  d      |u sJ t        |
|z  d      |u r|
|z  dk7  sJ t        t         k(  sJ t        t        t               |u sJ t        t        t               |u sJ t        ||       ||fvsJ t        ||dz   z  d      t        j                  u sJ t        dd      }t        |d|z        t        j                  u sJ t        dd      }t        ||dz
  z  d      |u sJ y ) Nrl   infT)finite)r   r   infx)r   r)  zinf~xFzinf~x2infp)r   r   infp1infn)r   r   rx   )zeronz)r  r  rH   rW   rN  r*  re   r&  r   o)oddri   rj   )r   r8   r  rw   r   ComplexInfinityrn   r|   r   r   r   r%   r   )rl   finr  r   r  infnxinfnx2r  r  r  r  r3  TFrN  re   r  ri   s                     rO   test_issue_10401r  ~  sF   A
%
%C
%$
'C6D)D6D=D Gd%@EXEBF6DDADGddCE6DDAD3T"Ddt4Ga1qk1""b(((a1qk1""1a&7&78AFFBBBa3mQ177***66177qAc3<1c4=A&3$;66a#gq4x A.3$;>>dE?adD>Qa!B$h""""adA"H"""a!B$hAbD!Q&&&a!B$hAdF
#q(((a!B$hD!Q&&&
 c47QrT>"a'''c2;!sAsd#Aac1:aV###dE?aeVQF*u>>c2;!c$h?ac#gq>Qc#gq>Qd7lA!#$w,1)<==3$;;cC4=Ab2#;!cC4=A&&&c37mQ177***Aa1:   d#AaQiq   rR   c                      t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ t        dd      dk(  sJ y )NTF)r8   rK   rR   rO   test_issue_10633r    sS    dE?e###eT?e###dD>T!!!eUt###rR   c                      t        d      } t        t        | t                    dk(  sJ t        t        | t                     dk(  sJ y )Nrl   z	Eq(x, oo)z
Eq(x, -oo))r   r  r8   r   r  s    rO   test_issue_10927r    s=    Ar!Ry>[(((r!bSz?l***rR   c                     t        d      } | t        k  t        j                  u sJ | t        kD  t        j                  u sJ t        d      }t        |      dt        ddt        d|z
        z  z
  d|z  dt        d|z
        z  dz
  z  z         z  z   }|dk\  t        j                  u sJ t        dd	      D cg c]Q  }t        t        j                  |            t        k  r*t        t        t        j                  |dz               k  r|S c}g d
k(  sJ dD ]D  }t        j                  |      }t        t        |      t              sJ t        |t              rDJ  t        t        j                  d      t        j                  d            sJ t        dd	      D cg c]9  }t        t        j                  |            t        j                  |      kD  s8|; c}g k(  sJ t        dd	      D cg c]9  }t        j                  |      t        t        j                  |            k  s8|; c}g k(  sJ y c c}w c c}w c c}w )Nz%905502432259640373/288230376151711744rW   rI     r  rH   r   rs  2   )rs        !   %   +   0   )rs     r     )	r   r   r   r|   rn   r%   rZ   r   rf   )rN  rc   uri   re   s        rO   test_issues_13081_12583_12534r    s   89AFqwwFqvvQAQ!DaQUm+ac1T!a%[=13D.EEFFFAFqvv R} *!bdd1g#(244A;''  *-IJ J J   DDG!b)))B  RTT"XrttBx((( R}D!a(9BDDG(CADJJJR}D!Q(24472C(CADJJJ!* EDs   9AH?$9II89I	2I	c                  R   ddl m}  t        t        t	        t              z  dt        t              z  z
  d      }|j                          | t        t        t        t	        t              z  dt        t              z  z
  d      t              k(  sJ t        t        dz  t        t        dz        z   t        t              z   d      }|j                          | t        t        t        d      t        t              z  t        dz  z   t        t              z   d      t              k(  sJ y )Nr   )ConditionSetr   rW   )	sympy.sets.conditionsetr  r8   rl   r&   r'   r  r-   r%   )r  result1result2s      rO   test_issue_18188r    s    43q6Ac!fH$a(G>>|Ar!CF(Qs1vX2Eq/I5QQQQAQqS	!CF*A.G>>|Ar$q'$q'/AqD2H3q62QST/UW\]]]]rR   c                  T   t         h} t        t        fD ]  }t        j                  t        j
                  fD ]I  } |t         t        j                        }|j                  | k(  sJ |j                  j                  | k(  rIJ   |t         d      j                  t               k(  rJ  y r   )	rl   r8   r=   r   rn   r|   binary_symbolsr  r^   )ansrw  r  r   s       rO   test_binary_symbolsr    s    #CV / 	5A1affB$$+++;;--444	5 Aw%%.../rR   c            	           dD ]f  t         j                  t        dk  t        t        t              fD ]5   dddt
        t         j                  fD ]  t        t         fd        7 h y )N)rv   rt   ru   rs   rH   皙?l        c                      t               S rJ   r   rN   r   rc   s   rO   rP   ztest_rel_args.<locals>.<lambda>  s    *Q2*> rR   )	r   rn   rl   r(   rm   r  rD  r   r_   r  s   @@@rO   test_rel_argsr    sg     % @&&!a%Q+ 	@A1eQ. @y">?@	@@rR   c                  F   t        dd      } t        dt        | dz         z  dt        | dz         t	        dd      z  z  z  d      j                         t        t        dt        | d      f| dz   dt        | dz   t	        d	d      z        z  z  dz  df      d      k(  sJ y )
NrN  Tr*  rW   r      r   r  )r   r8   r   r   r   r.   r   rM  s    rO   4test_nothing_happens_to_Eq_condition_during_simplifyr    s    $AaQUmQs1q5z8Aq>99:A 

(*9	
Bq"I!a%!CQ!Q(?$@"@A!CTJLMNPP P PrR   c                      t        t        t        t        z   z  t        dz  t        t        z  z         } t        |       dk(  sJ y )NrW   F)r=   rl   rm   r.   r]  s    rO   test_issue_15847r    s4    
1a!e9adQqSj!AA;%rR   c                  B   t        t        t              } | j                  t	        t        t              k(  sJ t	        t        t              } | j                  t        t        t              k(  sJ t        t        t        z   t        t        z
        } | j                  t        t        t        z   t        t        z
        k(  sJ t         t        t
        t        t        t        fD ];  } |t        t              j                  j                   |t        t              k(  r;J  y rJ   )	r8   rl   rm   negatedr=   r<   r9   r;   r:   r   rw  s     rO   test_negated_propertyr    s    	AqB::Aq!!!	AqB::Aq!!!	AE1q5	B::AE1q5))))"b"b"% 2Aw&&!Aq'1112rR   c                     t        t        t              } | j                  t        t         t               k(  sJ t	        t        t              } | j                  t	        t         t               k(  sJ t        t        t        z   t        t        z
        } | j                  t        t         t        z
  t        t        z
        k(  sJ t         t        t
        t        t        t        fD ];  } |t        t              j                  j                   |t        t              k(  r;J  t         t        t
        t        t        t        fD ]=  } |t         t              j                  j                   |t         t              k(  r=J  t         t        t
        t        t        t        fD ]=  } |t        t               j                  j                   |t        t               k(  r=J  t         t        t
        t        t        t        fD ]?  } |t         t               j                  j                   |t         t               k(  r?J  y rJ   )	r8   rl   rm   reversedsignr=   r<   r:   r;   r9   r  s     rO   test_reversedsign_propertyr  "  s   	AqB??b!aRj(((	AqB??b!aRj(((	AE1q5	B??b!aQ////"b"b"% <Aw##00AaG;;;< "b"b"% >!Qx$$11Qr1X===> "b"b"% >QBx$$11Qq1"X===> "b"b"% @!aRy%%22aQBi???@rR   c                     t         t        t        t        t        t
        fD ]O  }  | t        t              j                  j                   | t        t              j                  j                  k(  rOJ  t         t        t        t        t        t
        fD ]Q  }  | t         t              j                  j                   | t         t              j                  j                  k(  rQJ  t         t        t        t        t        t
        fD ]Q  }  | t        t               j                  j                   | t        t               j                  j                  k(  rQJ  t         t        t        t        t        t
        fD ]S  }  | t         t               j                  j                   | t         t               j                  j                  k(  rSJ  y rJ   )
r8   r=   r<   r;   r:   r9   rl   rm   r  r  )rw  s    rO   #test_reversed_reversedsign_propertyr  9  s]   "b"b"% NAw,,!Q0D0D0M0MMMMN "b"b"% P!Qx  --A2q1F1F1O1OOOOP "b"b"% PQBx  --1qb1F1F1O1OOOOP "b"b"% ,!aRy!!..qb1"I""++, 	, ,,rR   c            	         d } d } |  |t         t         kD                |  |t         t         k\                |  |t        t         t                             |  |t        t         t                             |  |t        t         k                |  |t        dt        z  z
  t          dt        dz  z  z   dz
  k               t        t         k\  j
                  t         t        k  k(  sJ y )Nc                 b    t        | d      D ]   \  }}|j                  |j                  k(  r J  y r   )rF   r  )listofformsform1form2s      rO   test_different_formsz5test_improved_canonical.<locals>.test_different_formsI  s2    (a8 	6LE5??eoo555	6rR   c                 ^    | | j                   | j                  | j                   j                  gS rJ   )r  r  )exprs    rO   generate_formsz/test_improved_canonical.<locals>.generate_formsM  s*    dmmT%6%6**, 	,rR   r  rW      )rl   rm   r8   r=   r   r  )r  r  s     rO   test_improved_canonicalr  H  s    6, QB/0aR011qb	231qb	23Q/0QqSA2!Q$;?(BCD!G17+++rR   c                     t        d      \  } }}t        t        | ||      t        ddd            }t        t        | ||      t        ddd            }|j                  |j
                  k(  sJ |j                  |j
                  k(  sJ y )Nza b crH   rW   r   r  r  r~  )r   r8   rE   r=   r  r  )rM   rN   r  rF  Bs        rO   test_set_equality_canonicalr  [  sz    gGAq!
9Q1yAq12A
9Q1yAq12A;;!**$$$;;!**$$$rR   c                     t        dt        z        t        dt        z        }} t        | |      }t	        |      |k(  sJ t	        t        | |z   t        d                  }t        |t              sJ |j                  t        t        dz        t        j                  u sJ t	        t        t        t              dz  t        t              dz  z   d            t        j                  u sJ y )NrW   r  rH   )r'   rl   r&   r8   r/   r%   ry   rw   r   r   rn   )sr  r   changeds       rO   test_trigsimpr  e  s    qs8S1XqA	AqBB<2 r!a%a)*Ggr"""<<2a4 AFF***Bs1vqy3q619,a01QVV;;;rR   c            	         t        dt        z  t        dz   z  dz   dt        z        j                         t        t        dz  t        dd             t	        t        dz   t        dd            fv sJ t	        dt        z  t        dz   z  dz    dt        z        j                         t        t        dz  t        dd             t	        t        dz   t        dd            fv sJ t        dz  dz   t        dz  dz
  z  dt        z  z   dt        dz  z  k\  j                         t        dz  dt        z  z   dk\  t        dz   dt        z  z
  dk  fv sJ y )Nr   rH   r  rW   r  )r<   rl   r.   r   r:   rK   rR   rO   'test_polynomial_relation_simplificationr  s  sC   ac1q5kAoqs#,,.2adXa]N3KRQRTUQUPUW_`acdWeMf2gggg!QUa "Q$'002r!Q$!A7OQSUVXYUYTY[cdegh[iQj6kkkkT!Vad1fac!Qq!tV+557QTAaCZ1_QRTUQUPUXYZ[X[P[_aPa;ccccrR   c                     t        t        t        z   t        t        z
        j                         t        t        d      k(  sJ t	        t         t        z   t         t        z
        j                         t	        t        d      k(  sJ t        dt        z  t        z   dt        z  t        z   dz
        j                         dk(  sJ dt        z  t        z   dt        z  t        z   dz
  kD  j                         dk(  sJ dt        z  t        z   dt        z  t        z   dz
  k  j                         dk(  sJ dt        z  t        z   dt        z  t        z   dz   k  j                         dk(  sJ t        d      \  } }}}}}}t        | |z   |z   d|z  z   d|z  |z
  |z         j                         t        | | |z
  |z   |z
  |z         k(  sJ y )Nr   rW   r   FTza b c d e f g)r<   rl   rm   r.   r:   r8   r   r9   )rM   rN   r  r  r}   rw  gs          rO   0test_multivariate_linear_function_simplificationr  y  s   a!eQU$$&"Q(222qb1fqb1f&&(Bq!H444acAgqsQw{#,,.%777aC!GacAgk!++-555aC!GacAgk!++-666aC!GacAgk!++-555!/2Aq!Q1aa!eai!A#oqsQw{+5572a!a!aRSAS;TTTTrR   c                      t        t        t              d      j                         t        t        t              d      k(  sJ y r   )r8   r&   rl   r.   rK   rR   rO   test_nonpolymonial_relationsr    s-    c!fa=!!#r#a&!}444rR   c                      t        t        d        t        t        d        t        t        d        t        t        d        y )Nc                  :    t        t               t                     S rJ   )r>   r   rK   rR   rO   rP   ztest_18778.<locals>.<lambda>      eEGUW5 rR   c                  :    t        t               t                     S rJ   )r?   r   rK   rR   rO   rP   ztest_18778.<locals>.<lambda>  r   rR   c                  :    t        t               t                     S rJ   )r@   r   rK   rR   rO   rP   ztest_18778.<locals>.<lambda>  r   rR   c                  :    t        t               t                     S rJ   )rA   r   rK   rR   rO   rP   ztest_18778.<locals>.<lambda>  r   rR   r   rK   rR   rO   
test_18778r    s.    
956
956
956
956rR   c                      ddl m}   G fdd|       t         dd       dd            sJ t         dd      t        d            J t	         dd       dd            sJ y)	zc

    This test exists to ensure backwards compatibility.
    The method to use is _eval_is_eq
    r   )r   c                   "    e Zd Z fdZ fdZy)test_EvalEq.<locals>.PowTestc                 V    t        j                  t        |      t        |            S rJ   r   __new__r   )r   baser    PowTests      rO   r
  z$test_EvalEq.<locals>.PowTest.__new__  s    ==(4.(3-HHrR   c                     t        |       k(  rOt        |      k(  r@| j                  d   |j                  d   k(  xr | j                  d   |j                  d   k(  S y y Nr   rH   )r\   argsrz   r{   r  s     rO   _eval_Eqz%test_EvalEq.<locals>.PowTest._eval_Eq  sW    CyG#S	W(<xx{chhqk1PchhqkSXXa[6PP )=#rR   N)__name__
__module____qualname__r
  r  )r  s   rO   r  r    s    	I	QrR   r  r   r  Nr  )sympy.core.exprr   rB   r   rC   )r   r  s    @rO   test_EvalEqr    sm     %Q$ Q A!---A,444'!Q-1...rR   c                  r   t        t        t        t        j                  t              t        j
                  t              z        du sJ t        t        t        t        j                  t              t        j                  t              z  t        j                  t              z  t        j                  t               z        du sJ t        t        t        t        j                  t              t        j                  t              z  t        j                  t              z  t        j                  t              z        du sJ t        t        t        z   t        t        z   t        j                  t              t        j
                  t              z        du sJ t        dt        t        z  z   dt        t        z  z   t        j                  t              t        j
                  t              z        du sJ t        t        t        d      t        j                  t                    sJ t        t        t        d      t        j                  t                     du sJ t        t        t        d      t        j                  t                    du sJ t        t        t        d      t        j                  t                    du sJ t        t        t        d      t        j                  t                     sJ t        t        t        d      t        j                  t                    sJ  G d dt              t              fd       } t         dd	       dd	            sJ t         dd	      t!        d	            J t         dd	       dd
            sJ y )NFrH   r   )assumptionsc                       e Zd Zd Zy)test_is_eq.<locals>.PowTestc                 T    t        j                  | t        |      t        |            S rJ   r	  r   r  r    s      rO   r
  z#test_is_eq.<locals>.PowTest.__new__      ==htnhsmDDrR   Nr  r  r  r
  rK   rR   rO   r  r        	ErR   r  c                     t        |       k(  rdt        |      k(  rUt        t        | j                  d   |j                  d         t        | j                  d   |j                  d         g      S y y r  )r\   r   rB   r  r  s     rO   _eval_is_eqztest_is_eq.<locals>._eval_is_eq  e    9DI$8eCHHQK!=uSXXa[RURZRZ[\R]?^_`` %9rR   r   r  r  )rB   rl   rm   r   r   r  r)  r   r   r   r   r  r3  rC   r   r   r   )r!  r  s    @rO   
test_is_eqr#    s   Aqzz!}qxx{23u<<<Aqzz!}qzz!}4qq7IIQ__]^M_L__`diiiiAqzz!}qzz!}4q7J7J17MMPQPcPcdePffgkpppp1ac1::a=188A;675@@@1Q3!A#qzz!}qxx{:;uDDDAaDaffQi000AaDqvvayj1U:::AaDaiil3u<<<!QqTqvvay1U:::!QqTq	z222!QqTqyy|444E$ E gwa  a A!---A,444'!Q-1...rR   c                      t        t        t        d      t        j                  t                    du sJ t        t        t        d      t        j
                  t                    du sJ  G d dt              t              fd       } t         dd       dd	            sJ t         dd       dd	            sJ t         dd	       dd            sJ t         dd	       dd            sJ y )
Nr   TFc                       e Zd Zd Zy)test_is_ge_le.<locals>.PowTestc                 T    t        j                  | t        |      t        |            S rJ   r	  r  s      rO   r
  z&test_is_ge_le.<locals>.PowTest.__new__  r  rR   Nr  rK   rR   rO   r  r&    r  rR   r  c                     t        |       k(  rdt        |      k(  rUt        t        | j                  d   |j                  d         t        | j                  d   |j                  d         g      S y y r  )r\   r   r@   r  r  s     rO   _eval_is_gez"test_is_ge_le.<locals>._eval_is_ge  r"  rR   r   	   rW   )r@   rl   r   r   r   r   r   r   r?   r>   rA   )r)  r  s    @rO   test_is_ge_ler+    s    AaD!--*+t333AaD!**Q-(E111E$ E gwa  a A!---A!---A!---A!---rR   c                     t         t        fD ]3  }  | t        d      }|j                  |j                  cxk(  r|k(  r0J  J  t        t        d      }|j                  t        t        d      k(  sJ |j                  |k(  sJ t        t        d      }|j                  t        t        d      k(  sJ |j                  |k(  sJ t        t        d      }|j                  t        t        d      k(  sJ |j                  |k(  sJ t        t        d      }|j                  t        t        d      k(  sJ |j                  |k(  sJ y r   )	r8   r=   rl   strictweakr;   r<   r9   r:   )r  r   s     rO   test_weak_strictr/    s   R *!QZyyBGG)r)))))* 
AqB77bAh99??	AqB77bAh99??	AqB991a   77b==	AqB991a   77b==rR   c                  0   t        dd      } t        t        | d      sJ t        t        | dz  d      sJ t        dd      }t        |d	      dk(  sJ t        t        |d
      sJ t        |d      dk(  sJ t        dd      }t        |d
      dk(  sJ y )Nre   Tr  g      ?rW   g      ?niFrH   r  nr)rational)r   r   r8   )re   r1  r2  s      rO   test_issue_23731r4    s    T"ARC   R1c"""	u	%Bb!9RR   b#;%		&Bb":rR   c                      ddl m}   |        5  t        t        t              j                  t              t        t        z
  k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr   warns_deprecated_sympy)rX   r7  r8   rl   rm   rewriter
   r6  s    rO   test_rewrite_Addr9    sC    ;		! .!Qx$A---. . .s   8AAN)sympy.core.logicr   sympy.core.sympifyr   sympy.multipledispatchr   rX   r   r   sympy.assumptions.askr   sympy.core.addr
   sympy.core.basicr   r  r   r   sympy.core.functionr   sympy.core.mulr   sympy.core.numbersr   r   r   r   r   r   r   sympy.core.powerr   sympy.core.singletonr   r   r   r   $sympy.functions.elementary.complexesr   r   $sympy.functions.elementary.piecewiser   &sympy.functions.elementary.exponentialr    r!   r"   #sympy.functions.elementary.integersr#   r$   (sympy.functions.elementary.miscellaneousr%   (sympy.functions.elementary.trigonometricr&   r'   sympy.logic.boolalgr(   r)   r*   r+   r,   
sympy.setsr-   sympy.simplify.simplifyr.   sympy.simplify.trigsimpr/   r   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   sympy.sets.setsrD   rE   	itertoolsrF   rl   rm   rx   r  rf   rp   r~   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r"  r$  r-  r/  r4  r@  rG  rK  rO  rX  rZ  rh  rn  rq  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r+  r/  r4  r9  rK   rR   rO   <module>rQ     s!   & ' + . #  " + (  E E E   " / : : H H @ 9 ? < <  , ,Z Z Z Z Z Z 0 "Y
1a:&#R".07 :).X)4 '&gKT
/.4"	G * *
:	4&
**
4,0&)8700(42* 2)7@!W0t<&'0( % %%)F
;!|$+ KD^/@P 
2@.,,&%<dU57/*/>.*$	.rR   