U
    ZÊ¹j}=  ã                   @   sV  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 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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-„ Z0d.d/„ Z1d0d1„ Z2d2d3„ Z3d4S )5é    )ÚQ)Úassuming)ÚIÚpi)ÚEqÚGt)ÚS)Úsymbols)ÚAbs)ÚImplies)ÚMatrixSymbol)ÚCNFÚLiteral)ÚsataskÚextract_predargsÚget_relevant_clsfacts)ÚraisesÚXFAILzx y zc                	   C   sà  t t t¡t t¡ƒdkst‚t t t¡t t¡ ƒdks>t‚t t t¡ƒd ksTt‚t t t¡t t¡ƒdksrt‚t t t¡t t¡ƒd ks�t‚t t t¡t t¡ ƒd ks°t‚t t t¡t t¡ ƒdksÐt‚ttdd„ ƒ tt t¡ƒ�F t t t¡ƒdk�st‚t t t¡ ƒdk�s t‚ttdd„ ƒ W 5 Q R X t t 	t¡t 
t¡ƒdk�sXt‚t t t¡t 	t¡ƒdk�sxt‚t t t¡t 	t¡ƒdk�s˜t‚t t 	t¡t 	tt ¡ƒd k�s¼t‚t t 	tt ¡t 	t¡ƒ�sÜt‚d S )NTFc                   S   s"   t t t¡t t¡t t¡ @ ƒS ©N)r   r   ÚrealÚx© r   r   úb/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/assumptions/tests/test_satask.pyÚ<lambda>   ó    ztest_satask.<locals>.<lambda>c                   S   s   t t t¡t t¡ ƒS r   )r   r   r   r   Úpositiver   r   r   r   r   $   r   )r   r   r   r   ÚAssertionErrorr   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ks,t‚t t tt ¡t t¡t t¡B ƒdksXt‚t tt t¡t tt ¡ƒƒdks~t‚t t t¡t t¡B t tt ¡ƒdksªt‚t t t¡t td ¡ƒdksÌt‚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   r   Ú	test_zero-   s
    ,,&,r#   c                   C   sP  t t tt ¡t t¡t t¡@ ƒdks,t‚t t t¡t t¡@ t tt ¡ƒdksXt‚t t tt ¡t t¡t t¡@ ƒdks„t‚t t t¡t t¡@ t tt ¡ƒd ks°t‚t t ttt  ¡t t¡t t¡@ ƒdksàt‚t t tt t d ¡t t¡t t¡@ ƒdk�st‚t t tt t d ¡t t¡t t¡@ ƒd k�sLt‚d S )NFTé   é   )	r   r   r   r   r    r   r   r   r   r   r   r   r   Útest_zero_positiveB   s    ,,,,06r&   c                   C   s    t t tt ¡t t¡t t¡@ ƒdks,t‚t t tt ¡t t¡t t¡@ ƒdksXt‚t t t¡t tt ¡ƒdkszt‚t t tt ¡t t¡ƒd ksœt‚d S ©NTF)r   r   r   r   r    r   r   r   r   r   r   r   Útest_zero_powO   s    ,,"r(   c                  C   s–   t dddƒ} t dddƒ}tt | | ¡t | ¡t |¡@ ƒdksDt‚tt | ¡t | | ¡ƒdksft‚tt | ¡t |¡@ t | | ¡ƒdks’t‚d S )NÚAr%   ÚBT)r   r   r   Z
invertibler   )r)   r*   r   r   r   Útest_invertibleX   s
    ,"r+   c                   C   sž   t t d¡ƒdkst‚t t d¡ƒdks,t‚t t d¡ƒdksBt‚t t tt ¡t t¡t t¡@ ƒd ksnt‚t t tt ¡t t¡t t¡@ ƒdksšt‚d S )Nr%   Té   Féûÿÿÿ)r   r   Úprimer   r   r    Úintegerr   r   r   r   Ú
test_primeb   s
    ,r0   c                   C   s¾  t t d¡ƒdkst‚t t d¡ƒdks,t‚t t d¡ƒdksBt‚t t t¡ƒdksXt‚t t t¡ƒdksnt‚t t d¡ƒdks„t‚t t d¡ƒdksšt‚t t d¡ƒdks°t‚t t t¡ƒdksÆt‚t t t¡ƒdksÜt‚t t d¡ƒdksòt‚t t d¡ƒdk�s
t‚t t d¡ƒdk�s"t‚t t t¡ƒdk�s:t‚t t t¡ƒdk�sRt‚t t d¡ƒdk�sjt‚t t d¡ƒdk�s‚t‚t t d¡ƒdk�sšt‚t t t¡ƒdk�s²t‚t t t¡ƒdk�sÊt‚t t 	d¡ƒdk�sât‚t t 	d¡ƒdk�sút‚t t 	d¡ƒdk�st‚t t 	t¡ƒdk�s*t‚t t 	t¡ƒdk�sBt‚t t 
d¡ƒdk�sZt‚t t 
d¡ƒdk�srt‚t t 
d¡ƒdk�sŠt‚t t 
t¡ƒdk�s¢t‚t t 
t¡ƒdk�sºt‚d S )Nr$   TéÿÿÿÿFr   )r   r   r   r   r   r   Únegativer   r   ÚnonpositiveÚnonnegativer   r   r   r   Útest_old_assumpk   s<    r5   c                   C   sÈ  t t d¡ƒdkst‚t t d¡ƒdks,t‚t t t¡ƒdksBt‚t t t¡ƒdksXt‚t t t¡ƒdksnt‚t t t¡ƒdks„t‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒd ks¾t‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdksøt‚t t tt t ¡t t¡t t¡@ ƒdk�s*t‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒd k�sft‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdk�s¢t‚t t tt t ¡t t¡t t¡@ ƒdk�sÔt‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdk�st‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdk�sLt‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdk�sˆt‚t t tt t	 ¡t t¡t t¡@ t t	¡@ ƒdk�sÄt‚d S )Nr"   FT)
r   r   Ú
irrationalr   Úrationalr   r   r   r    Úzr   r   r   r   Útest_rational_irrational‘   s`    $ÿÿ$ÿÿ2$ÿÿ
$ÿÿ
2$ÿÿ
$ÿÿ
$ÿÿ
$ÿÿr9   c                   C   sÊ  t t d¡ƒdkst‚t t d¡ƒdks,t‚t t tt ¡t t¡t t¡@ ƒdksXt‚t t tt ¡t t¡t t¡@ ƒdks„t‚t t tt ¡t t¡t t¡@ ƒdks°t‚t t tt ¡t t¡t t¡@ ƒdksÜt‚t t tt ¡t t¡ƒd ksþt‚t t tt ¡t t¡t t¡@ ƒd k�s,t‚t t tt ¡t t¡t t¡@ ƒdk�sZt‚t t ttƒ¡t t¡ƒdk�s~t‚t t ttƒ¡t t¡ƒdk�s¢t‚t t t¡t ttƒ¡ƒd k�sÆt‚d S )Nr"   Té   F)	r   r   Úevenr   r   r    Úoddr/   Úabsr   r   r   r   Útest_even_satask°   s    ,,,,"..$$r>   c                   C   sÊ  t t d¡ƒdkst‚t t d¡ƒdks,t‚t t tt ¡t t¡t t¡@ ƒdksXt‚t t tt ¡t t¡t t¡@ ƒdks„t‚t t tt ¡t t¡t t¡@ ƒdks°t‚t t tt ¡t t¡t t¡@ ƒdksÜt‚t t tt ¡t t¡ƒd ksþt‚t t tt ¡t t¡t t¡@ ƒd k�s,t‚t t tt ¡t t¡t t¡@ ƒdk�sZt‚t t ttƒ¡t t¡ƒdk�s~t‚t t ttƒ¡t t¡ƒdk�s¢t‚t t t¡t ttƒ¡ƒd k�sÆt‚d S )Nr"   Fr:   T)	r   r   r<   r   r   r    r;   r/   r=   r   r   r   r   Útest_odd_sataskÁ   s    ,,,,"..$$r?   c                   C   s  t t d¡ƒdkst‚t t tj¡ƒdks.t‚t t tt ¡t t¡t t¡@ ƒdksZt‚t t tt ¡t t¡ƒd ks|t‚t t tt ¡t t¡t t¡ @ ƒdksªt‚t t tt t ¡t t¡t t¡@ t t¡ @ ƒdksæt‚t t tt t ¡t t¡t t¡ @ t t¡ @ ƒd k�s&t‚t t tt t ¡t t¡t t¡ @ ƒd k�sZt‚t t tt ¡t t¡t 	t¡@ ƒdk�sˆt‚t t tt ¡t t¡t t¡@ ƒdk�s¶t‚t t tt ¡t t¡ƒd k�sÚt‚t t tt ¡t t¡t t¡ @ ƒd k�s
t‚t t tt ¡t t¡t 
t¡ @ ƒdk�s:t‚t t tt t ¡t t¡t t¡@ t 
t¡ @ ƒdk�sxt‚t t tt t ¡t t¡t 
t¡ @ t 
t¡ @ ƒd k�s¸t‚t t tt t ¡t t¡t 
t¡ @ ƒd k�sìt‚t t tt ¡t t¡t 	t¡@ ƒdk�st‚d S )Nr$   TF)r   r   r/   r   r   ZHalfr   r    r8   r6   r7   r   r   r   r   Útest_integerÒ   sB    ,".$
ÿÿ&
ÿÿ
4..$00$
ÿÿ
&
ÿÿ
4r@   c                   C   sÎ   t t ttƒ¡ƒdkst‚t t ttƒ¡t t¡ ƒdks>t‚t t t¡t ttƒ¡ ƒdksbt‚t t t¡t ttƒ¡ƒdks„t‚t t t¡t ttƒ¡ ƒd ks¨t‚t t ttƒ¡t t¡ƒdksÊt‚d S r'   )	r   r   r4   r=   r   r   r   r   r   r   r   r   r   Útest_absî   s    $$"$rA   c                   C   sø   t t dt ¡ƒdkst‚t t tt ¡t t¡ƒd ks<t‚t t tt ¡t t¡t t¡@ ƒdksht‚t t t¡t t¡ƒdks†t‚t t d¡ƒdksœt‚t t tt ¡t t¡t t¡@ ƒdksÈt‚t t tt ¡t t¡t t¡@ ƒdksôt‚d S )Nr"   TFr$   )r   r   Ú	imaginaryr   r   r   r    r   r   r   r   r   Útest_imaginary÷   s    ",,rC   c                   C   sn  t t tt ¡t t¡t t¡@ ƒdks,t‚t t tt ¡t t¡t t¡@ ƒdksXt‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdks’t‚t t tt t ¡t t¡t t¡@ ƒd ksÂt‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdksüt‚t t tt t ¡t t¡t t¡@ t t¡@ ƒdk�s8t‚t t tt t ¡t t¡t t¡@ ƒd k�sjt‚d S r'   )r   r   r   r   r    r   r8   rB   r   r   r   r   Ú	test_real  s    ,,:0:<rD   c                   C   sô   t t t¡ t t¡ƒdks t‚t t t¡ t t¡ƒdks@t‚t t tt ¡t t¡t t¡@ ƒdkslt‚t t tt ¡t t¡t t¡@ ƒdks˜t‚t t tt ¡t t¡t t¡@ ƒdksÄt‚t t tt ¡t t¡t t¡@ ƒdksðt‚d S r'   )r   r   r   r   r2   r   r    r   r   r   r   Útest_pos_neg  s      ,,,rE   c                   C   sJ  t t td ¡t t¡ƒdks"t‚t t td ¡t t¡ƒdksDt‚t t td ¡t t¡ƒdksft‚t t td ¡t t¡ƒdksˆt‚t t td ¡t t¡ƒdksªt‚t t td ¡t t¡ƒdksÌt‚t t td ¡t t¡ƒdksît‚t t td ¡t t¡ƒdk�st‚t t td ¡t t¡ƒdk�s6t‚t t td ¡t t¡ƒdk�sZt‚t t td ¡t t¡ƒdk�s~t‚t t td ¡t t¡ƒd k�s¢t‚t t td ¡t t¡ƒd k�sÆt‚t t td ¡t t¡ƒdk�sêt‚t t td ¡t t¡ƒdk�st‚t t td ¡t t¡ƒdk�s2t‚t t td ¡t t¡ƒd k�sVt‚t t td ¡t t¡ƒd k�szt‚t t td ¡t t¡ƒdk�sžt‚t t td ¡t t¡ƒdk�sÂt‚t t td ¡t t¡ƒdk�sæt‚t t td ¡t t¡ƒdk�s
t‚t t td ¡t t¡ƒdk�s.t‚t t td ¡t t¡ƒdk�sRt‚t t td ¡t t¡ƒdk�svt‚t t td ¡t t¡ƒdk�sšt‚t t td ¡t t¡ƒdk�s¾t‚t t td ¡t t¡ƒdk�sât‚t t td ¡t t¡ƒdk�st‚t t td ¡t t¡ƒdk�s*t‚t t td ¡t t¡ƒdk�sNt‚t t td ¡t t¡ƒd k�srt‚t t td ¡t t¡ƒd k�s–t‚t t td ¡t t¡ƒdk�sºt‚t t td ¡t t¡ƒdk�sÞt‚t t td ¡t t¡ƒd k�st‚t t td ¡t t¡ƒdk�s&t‚t t td ¡t t¡ƒdk�sJt‚t t td ¡t t¡ƒd k�snt‚t t td ¡t t¡ƒdk�s’t‚t t td ¡t t¡ƒd k�s¶t‚t t td ¡t t¡ƒd k�sÚt‚t t td ¡t t¡ƒd k�sþt‚t t td ¡t t¡ƒd k�s"t‚t t td ¡t t¡ƒd k�sFt‚d S )Nr"   TFr:   éþÿÿÿ)	r   r   r4   r   r   r   r3   r2   r   r   r   r   r   Útest_pow_pos_neg  sZ    """""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$rG   c                   C   s  t t t¡t t¡ƒdkst‚t t t¡t t¡ƒdks<t‚t t t¡t t¡ ƒd ks\t‚t t t¡t t¡ ƒd ks|t‚t t t¡t t¡t t¡@ t t¡ @ ƒd ks°t‚t t d¡ƒdksÆt‚t t d¡ƒdksÜt‚t t d¡ƒdksòt‚t t d¡ƒdk�s
t‚d S )NFr"   Té   r$   )r   r   r.   r   Z	compositer   r/   r   r   r   r   r   Útest_prime_compositeP  s      4rI   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sft‚t| |ƒttt ƒtt thksŠt‚t| ||ƒttt ƒtt tthks²t‚t  t	ttƒ¡} t  t
ttƒ¡}t| |ƒttthksêt‚d S r   )r   Z	from_propr   r   r
   r   r    r   r   r   r   r8   )ÚpropsZassumpÚcontextr   r   r   Útest_extract_predargs]  s    & $(rL   c                  C   s²  t tt ƒh} t| ƒ\} }| tt hks,t‚|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®t‚d S )NFT)r
   r   r    r   r   ZclausesÚ	frozensetr   r   r<   r   r;   r   )ZexprsZfactsr   r   r   Útest_get_relevant_clsfactsj  s*    ....þþÿöÿrN   N)4Zsympy.assumptions.askr   Zsympy.assumptions.assumer   Zsympy.core.numbersr   r   Zsympy.core.relationalr   r   Zsympy.core.singletonr   Zsympy.core.symbolr	   Z$sympy.functions.elementary.complexesr
   Zsympy.logic.boolalgr   Z"sympy.matrices.expressions.matexprr   Zsympy.assumptions.cnfr   r   Zsympy.assumptions.sataskr   r   r   Zsympy.testing.pytestr   r   r   r    r8   r!   r#   r&   r(   r+   r0   r5   r9   r>   r?   r@   rA   rC   rD   rE   rG   rI   rL   rN   r   r   r   r   Ú<module>   s@   	
	&	

	<