o
    à8VaR<  ã                   @   s  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZ d dlmZmZ d dlmZmZmZ d dlmZmZ edƒ\ZZZdd„ Zdd	„ Zd
d„ Zdd„ Zedd„ ƒZdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%d d!„ Z&d"d#„ Z'd$d%„ Z(d&d'„ Z)d(d)„ Z*d*d+„ Z+d,S )-é    )ÚSÚsymbolsÚQÚassumingÚImpliesÚMatrixSymbolÚIÚpiÚAbsÚEqÚGt)ÚCNFÚLiteral)ÚsataskÚextract_predargsÚget_relevant_clsfacts)ÚraisesÚXFAILzx y zc                   C   sæ  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒdu sJ ‚t t t¡ƒd u s*J ‚t t t¡t t¡ƒdu s9J ‚t t t¡t t¡ƒd u sHJ ‚t t t¡t t¡ ƒd u sXJ ‚t t t¡t t¡ ƒdu shJ ‚ttdd„ ƒ tt t¡ƒ& t t t¡ƒdu s‚J ‚t t t¡ ƒdu sŽJ ‚ttdd„ ƒ W d   ƒ n1 sŸw   Y  t t t¡t 	t¡ƒdu s³J ‚t t t¡t t¡ƒdu sÂJ ‚t t t¡t t¡ƒdu sÑJ ‚t t t¡t tt
 ¡ƒd u sâJ ‚t t tt
 ¡t t¡ƒsñJ ‚d S )NTFc                   S   s"   t t t¡t t¡t t¡ @ ƒS ©N)r   r   ÚrealÚx© r   r   úE/usr/lib/python3/dist-packages/sympy/assumptions/tests/test_satask.pyÚ<lambda>   s   " ztest_satask.<locals>.<lambda>c                   S   s   t t t¡t t¡ ƒS r   )r   r   r   r   Úpositiver   r   r   r   r      s    )r   r   r   r   r   r   Ú
ValueErrorr   ÚzeroÚnonzeroÚyr   r   r   r   Útest_satask   s$      ý""r   c                   C   sÐ   t t t¡t t¡B t tt ¡ƒdu sJ ‚t t tt ¡t t¡t t¡B ƒdu s,J ‚t tt t¡t tt ¡ƒƒdu s?J ‚t t t¡t t¡B t tt ¡ƒdu sUJ ‚t t t¡t td ¡ƒdu sfJ ‚dS )z£
    Everything in this test doesn't work with the ask handlers, and most
    things would be very difficult or impossible to make work under that
    model.

    TFé   N)r   r   r   r   r   r   r   r   r   r   r   Ú	test_zero&   s
   ,,&,&r!   c                   C   sL  t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t t¡t t¡@ t tt ¡ƒdu s,J ‚t t tt ¡t t¡t t¡@ ƒdu sBJ ‚t t t¡t t¡@ t tt ¡ƒd u sXJ ‚t t ttt  ¡t t¡t t¡@ ƒdu spJ ‚t t tt t d ¡t t¡t t¡@ ƒdu sŠJ ‚t t tt t d ¡t t¡t t¡@ ƒd u s¤J ‚d S )NFTé   é   )r   r   r   r   r   r   r   r	   r   r   r   r   Útest_zero_positive;   s   ,,,,048r$   c                   C   s    t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s,J ‚t t t¡t tt ¡ƒdu s=J ‚t t tt ¡t t¡ƒd u sNJ ‚d S ©NTF)r   r   r   r   r   r   r   r   r   r   r   Útest_zero_powH   s   ,,"&r&   c                  C   s–   t dddƒ} t dddƒ}tt | | ¡t | ¡t |¡@ ƒdu s"J ‚tt | ¡t | | ¡ƒdu s3J ‚tt | ¡t |¡@ t | | ¡ƒdu sIJ ‚d S )NÚAr#   ÚBT)r   r   r   Z
invertible)r'   r(   r   r   r   Útest_invertibleQ   s
   ,"0r)   c                   C   sž   t t d¡ƒdu sJ ‚t t d¡ƒdu sJ ‚t t d¡ƒdu s!J ‚t t tt ¡t t¡t t¡@ ƒd u s7J ‚t t tt ¡t t¡t t¡@ ƒdu sMJ ‚d S )Nr#   Té   Féûÿÿÿ)r   r   Úprimer   r   Úintegerr   r   r   r   Ú
test_prime[   s
   ,0r.   c                   C   s¦  t t d¡ƒdu sJ ‚t t d¡ƒdu sJ ‚t t d¡ƒdu s!J ‚t t t¡ƒdu s,J ‚t t t¡ƒdu s7J ‚t t d¡ƒdu sBJ ‚t t d¡ƒdu sMJ ‚t t d¡ƒdu sXJ ‚t t t¡ƒdu scJ ‚t t t¡ƒdu snJ ‚t t d¡ƒdu syJ ‚t t d¡ƒdu s„J ‚t t d¡ƒdu sJ ‚t t t¡ƒdu sšJ ‚t t t¡ƒdu s¥J ‚t t d¡ƒdu s°J ‚t t d¡ƒdu s»J ‚t t d¡ƒdu sÆJ ‚t t t¡ƒdu sÑJ ‚t t t¡ƒdu sÜJ ‚t t d¡ƒdu sçJ ‚t t d¡ƒdu sòJ ‚t t d¡ƒdu sýJ ‚t t t¡ƒdu s	J ‚t t t¡ƒdu sJ ‚t t 	d¡ƒdu s!J ‚t t 	d¡ƒdu s-J ‚t t 	d¡ƒdu s9J ‚t t 	t¡ƒdu sEJ ‚t t 	t¡ƒdu sQJ ‚d S )Nr"   TéÿÿÿÿFr   )
r   r   r   r   r	   Únegativer   r   ÚnonpositiveÚnonnegativer   r   r   r   Útest_old_assumpd   s<   r3   c                   C   sÀ  t t d¡ƒdu sJ ‚t t d¡ƒdu sJ ‚t t t¡ƒdu s!J ‚t t t¡ƒdu s,J ‚t t t¡ƒdu s7J ‚t t t¡ƒdu sBJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u s_J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s|J ‚t t tt t ¡t t¡t t¡@ ƒdu s”J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒd u s±J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sÎJ ‚t t tt t ¡t t¡t t¡@ ƒdu sæJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s"J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s@J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s^J ‚d S )Nr    FT)	r   r   Ú
irrationalÚrationalr	   r   r   r   Úzr   r   r   r   Útest_rational_irrationalŠ   s`   $ÿÿ$ÿÿ0$ÿÿ$ÿÿ0$ÿ
ÿ$ÿ
ÿ$ÿ
ÿ$ÿÿr7   c                   C   sÀ  t t d¡ƒdu sJ ‚t t d¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s,J ‚t t tt ¡t t¡t t¡@ ƒdu sBJ ‚t t tt ¡t t¡t t¡@ ƒdu sXJ ‚t t tt ¡t t¡t t¡@ ƒdu snJ ‚t t tt ¡t t¡ƒd u sJ ‚t t tt ¡t t¡t t¡@ ƒd u s•J ‚t t tt ¡t t¡t t¡@ ƒdu s«J ‚t t ttƒ¡t t¡ƒdu s¼J ‚t t ttƒ¡t t¡ƒdu sÍJ ‚t t t¡t ttƒ¡ƒd u sÞJ ‚d S )Nr    Té   F)r   r   Úevenr   r   Úoddr-   Úabsr   r   r   r   Útest_even_satask©   ó   ,,,,",,""&r<   c                   C   sÀ  t t d¡ƒdu sJ ‚t t d¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s,J ‚t t tt ¡t t¡t t¡@ ƒdu sBJ ‚t t tt ¡t t¡t t¡@ ƒdu sXJ ‚t t tt ¡t t¡t t¡@ ƒdu snJ ‚t t tt ¡t t¡ƒd u sJ ‚t t tt ¡t t¡t t¡@ ƒd u s•J ‚t t tt ¡t t¡t t¡@ ƒdu s«J ‚t t ttƒ¡t t¡ƒdu s¼J ‚t t ttƒ¡t t¡ƒdu sÍJ ‚t t t¡t ttƒ¡ƒd u sÞJ ‚d S )Nr    Fr8   T)r   r   r:   r   r   r9   r-   r;   r   r   r   r   Útest_odd_sataskº   r=   r>   c                   C   s  t t d¡ƒdu sJ ‚t t tj¡ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s-J ‚t t tt ¡t t¡ƒd u s>J ‚t t tt ¡t t¡t t¡ @ ƒdu sUJ ‚t t tt t ¡t t¡t t¡@ t t¡ @ ƒdu ssJ ‚t t tt t ¡t t¡t t¡ @ t t¡ @ ƒd u s’J ‚t t tt t ¡t t¡t t¡ @ ƒd u s«J ‚t t tt ¡t t¡t t¡@ ƒdu sÁJ ‚t t tt ¡t t¡t t¡@ ƒdu s×J ‚t t tt ¡t t¡ƒd u sèJ ‚t t tt ¡t t¡t t¡ @ ƒd u sÿJ ‚t t tt ¡t t¡t 	t¡ @ ƒdu sJ ‚t t tt t ¡t t¡t t¡@ t 	t¡ @ ƒdu s6J ‚t t tt t ¡t t¡t 	t¡ @ t 	t¡ @ ƒd u sVJ ‚t t tt t ¡t t¡t 	t¡ @ ƒd u spJ ‚t t tt ¡t t¡t t¡@ ƒdu s‡J ‚d S )Nr"   TF)
r   r   r-   r   ZHalfr   r   r6   r4   r5   r   r   r   r   Útest_integerË   sB   ,".$
ÿÿ&
ÿÿ2,,".0$
ÿ
ÿ&
ÿ
ÿ42r?   c                   C   sÎ   t t ttƒ¡ƒdu sJ ‚t t ttƒ¡t t¡ ƒdu sJ ‚t t t¡t ttƒ¡ ƒdu s1J ‚t t t¡t ttƒ¡ƒdu sBJ ‚t t t¡t ttƒ¡ ƒd u sTJ ‚t t ttƒ¡t t¡ƒdu seJ ‚d S r%   )r   r   r2   r;   r   r   r   r   r   r   r   r   Útest_absç   s   $$"$&r@   c                   C   sø   t t dt ¡ƒdu sJ ‚t t tt ¡t t¡ƒd u sJ ‚t t tt ¡t t¡t t¡@ ƒdu s4J ‚t t t¡t t¡ƒdu sCJ ‚t t d¡ƒdu sNJ ‚t t tt ¡t t¡t t¡@ ƒdu sdJ ‚t t tt ¡t t¡t t¡@ ƒdu szJ ‚d S )Nr    TFr"   )r   r   Ú	imaginaryr   r   r   r   r   r   r   r   Útest_imaginaryð   s   ",,0rB   c                   C   sj  t t tt ¡t t¡t t¡@ ƒdu sJ ‚t t tt ¡t t¡t t¡@ ƒdu s,J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu sIJ ‚t t tt t ¡t t¡t t¡@ ƒd u saJ ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s~J ‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdu s›J ‚t t tt t ¡t t¡t t¡@ ƒd u s³J ‚d S r%   )r   r   r   r   r   r6   rA   r   r   r   r   Ú	test_realú   s   ,,:0::4rC   c                   C   sô   t t t¡ t t¡ƒdu sJ ‚t t t¡ t t¡ƒdu s J ‚t t tt ¡t t¡t t¡@ ƒdu s6J ‚t t tt ¡t t¡t t¡@ ƒdu sLJ ‚t t tt ¡t t¡t t¡@ ƒdu sbJ ‚t t tt ¡t t¡t t¡@ ƒdu sxJ ‚d S r%   )r   r   r   r   r0   r   r   r   r   r   Útest_pos_neg  s     ,,,0rD   c                   C   s:  t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s"J ‚t t td ¡t t¡ƒdu s3J ‚t t td ¡t t¡ƒdu sDJ ‚t t td ¡t t¡ƒdu sUJ ‚t t td ¡t t¡ƒdu sfJ ‚t t td ¡t t¡ƒdu swJ ‚t t td ¡t t¡ƒdu sˆJ ‚t t td ¡t t¡ƒdu s™J ‚t t td ¡t t¡ƒdu sªJ ‚t t td ¡t t¡ƒdu s»J ‚t t td ¡t t¡ƒd u sÌJ ‚t t td ¡t t¡ƒd u sÝJ ‚t t td ¡t t¡ƒdu sîJ ‚t t td ¡t t¡ƒdu sÿJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒd u s#J ‚t t td ¡t t¡ƒd u s5J ‚t t td ¡t t¡ƒdu sGJ ‚t t td ¡t t¡ƒdu sYJ ‚t t td ¡t t¡ƒdu skJ ‚t t td ¡t t¡ƒdu s}J ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu s¡J ‚t t td ¡t t¡ƒdu s³J ‚t t td ¡t t¡ƒdu sÅJ ‚t t td ¡t t¡ƒdu s×J ‚t t td ¡t t¡ƒdu séJ ‚t t td ¡t t¡ƒdu sûJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒd u s1J ‚t t td ¡t t¡ƒd u sCJ ‚t t td ¡t t¡ƒdu sUJ ‚t t td ¡t t¡ƒdu sgJ ‚t t td ¡t t¡ƒd u syJ ‚t t td ¡t t¡ƒdu s‹J ‚t t td ¡t t¡ƒdu sJ ‚t t td ¡t t¡ƒd u s¯J ‚t t td ¡t t¡ƒdu sÁJ ‚t t td ¡t t¡ƒd u sÓJ ‚t t td ¡t t¡ƒd u såJ ‚t t td ¡t t¡ƒd u s÷J ‚t t td ¡t t¡ƒd u s	J ‚t t td ¡t t¡ƒd u sJ ‚d S )Nr    TFr8   éþÿÿÿ)r   r   r2   r   r   r1   r0   r   r   r   r   r   Útest_pow_pos_neg  sZ   """""""""""""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$(rF   c                   C   s  t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ƒdu sJ ‚t t t¡t t¡ ƒd u s.J ‚t t t¡t t¡ ƒd u s>J ‚t t t¡t t¡t t¡@ t t¡ @ ƒd u sXJ ‚t t d¡ƒdu scJ ‚t t d¡ƒdu snJ ‚t t d¡ƒdu syJ ‚t t d¡ƒdu s„J ‚d S )NFr    Té   r"   )r   r   r,   r   Z	compositer-   r   r   r   r   r   Útest_prime_compositeI  s     4rH   c                  C   sî   t  t ttt ƒ¡t tt ¡@ ¡} t  t t¡¡}t  t t¡¡}t| ƒttt ƒtt hks3J ‚t| |ƒttt ƒtt thksEJ ‚t| ||ƒttt ƒtt tthksYJ ‚t  tttƒ¡} t  t	tt
ƒ¡}t| |ƒttt
hksuJ ‚d S r   )r   Z	from_propr   r   r
   r   r   r   r   r   r6   )ZpropsZassumpÚcontextr   r   r   Útest_extract_predargsV  s   & $(rJ   c                  C   s°  t tt ƒh} t| ƒ\} }| tt hksJ ‚|jttt t tt ƒ¡dƒtt tt ¡dƒhƒttt 	t tt ƒ¡dƒtt 	tt ¡dƒhƒttt 
t tt ƒ¡dƒtt 
tt ¡dƒhƒttt 	t tt ƒ¡dƒtt 	tt ¡dƒhƒttt 
t tt ƒ¡dƒtt t tt ƒ¡dƒtt tt ¡dƒhƒttt 
t tt ƒ¡dƒtt 
tt ¡dƒtt t tt ƒ¡dƒhƒttt t tt ƒ¡dƒtt 	t tt ƒ¡dƒhƒhksÖJ ‚d S )NFT)r
   r   r   r   ZclausesÚ	frozensetr   r   r:   r   r9   r   )ZexprsZfactsr   r   r   Útest_get_relevant_clsfactsc  s*   ....þþÿöÿrL   N),Zsympyr   r   r   r   r   r   r   r	   r
   r   r   Zsympy.assumptions.cnfr   r   Zsympy.assumptions.sataskr   r   r   Zsympy.testing.pytestr   r   r   r   r6   r   r!   r$   r&   r)   r.   r3   r7   r<   r>   r?   r@   rB   rC   rD   rF   rH   rJ   rL   r   r   r   r   Ú<module>   s2   4 	
	&	

	<