U
    —9%e}=  ã                   @   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st‚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/Darija-Ai-API/env/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   )ÚexprsZfactsr   r   r   Útest_get_relevant_clsfactsj  s*    ....þþÿöÿrO   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   rO   r   r   r   r   Ú<module>   s@   	
	&	

	<