o
    oÇh}=  ã                   @   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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   úw/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-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_positiveB   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_powO   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   Ú
invertible)r'   r(   r   r   r   Útest_invertibleX   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_primeb   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_assumpk   s<   r4   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$ÿ
ÿ$ÿ
ÿ$ÿ
ÿ$ÿÿr8   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    Fr9   T)r   r   r;   r   r   r:   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   ÚHalfr   r   r7   r5   r6   r   r   r   r   Útest_integerÒ   sB   ,".$
ÿÿ&
ÿÿ2,,".0$
ÿ
ÿ&
ÿ
ÿ42rA   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   r3   r<   r   r   r   r   r   r   r   r   Útest_absî   s   $$"$&rB   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rD   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   r7   rC   r   r   r   r   Ú	test_real  s   ,,:0::4rE   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   r1   r   r   r   r   r   Útest_pos_neg  s     ,,,0rF   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    TFr9   éþÿÿÿ)r   r   r3   r   r   r2   r1   r   r   r   r   r   Útest_pow_pos_neg  sZ   """""""""""""""$$$$$$$$$$$$$$$$$$$$$$$$$$$$$(rH   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   Ú	compositer.   r   r   r   r   r   Útest_prime_compositeP  s     4rK   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   Ú	from_propr   r   r
   r   r   r   r   r   r7   )ÚpropsÚassumpÚcontextr   r   r   Útest_extract_predargs]  s   & $(rP   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   ÚclausesÚ	frozensetr   r   r;   r   r:   r   )ÚexprsÚfactsr   r   r   Útest_get_relevant_clsfactsj  s*   ....þþÿöÿrU   N)4Úsympy.assumptions.askr   Úsympy.assumptions.assumer   Úsympy.core.numbersr   r   Úsympy.core.relationalr   r   Úsympy.core.singletonr   Úsympy.core.symbolr	   Ú$sympy.functions.elementary.complexesr
   Úsympy.logic.boolalgr   Ú"sympy.matrices.expressions.matexprr   Úsympy.assumptions.cnfr   r   Úsympy.assumptions.sataskr   r   r   Úsympy.testing.pytestr   r   r   r   r7   r   r!   r$   r&   r*   r/   r4   r8   r=   r?   rA   rB   rD   rE   rF   rH   rK   rP   rU   r   r   r   r   Ú<module>   sB    	
	&	

	<