o
    Ί₯g  γ                   @   sΖ   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mZ edd	d
\ZZZdd Zdd Zdd Zdd Zdd Zdd Zedd Zdd Zedd ZdS )ι    )Ϊ
lra_satask)ΪUnhandledInput)ΪQΪask)ΪsymbolsΪSymbol)ΪMatrixSymbol)ΪI)ΪraisesΪXFAILzx y zT©Ϊrealc                      sp  t dddtt td‘t td‘ du sJ tt td‘t td‘ du s*J tt td‘ t td‘du s<J tt td‘ t td‘du sNJ tt td‘t td‘du s_J tt tt‘du skJ tt tt‘du swJ tt td‘t td‘du sJ tt td‘dd u sJ ttdd sJ tt	fd	d t
d
dd tt	 fdd d S )NΪimT)Ϊ	imaginaryι   r   Fc                   S   s   t t td‘dS )Nr   F)r   r   ΪgtΪx© r   r   ϊ_/var/www/visachat/venv/lib/python3.10/site-packages/sympy/assumptions/tests/test_rel_queries.pyΪ<lambda>   s    z!test_lra_satask.<locals>.<lambda>c                      s"   t t  t d‘t  t d‘S )Nr   )r   r   r   r	   r   )r   r   r   r   !   s   " ΪXι   c                      σ   t t  d‘t  d‘@ S ©Nr   ι   ©r   r   Ϊltr   r   ©r   r   r   r   %   σ    )r   r   r   Ϊeqr   Ϊner   r
   Ϊ
ValueErrorr   r   r   r   )r   r   r   Ϊtest_lra_satask   s   $$$$""r"   c                      sz  t d tt fdd t dddd tt fdd t dddd tt fd	d t dddd
 tt fdd t dddd tt fdd t dddd tt fdd t dddd tt fdd t dddd tt fdd t dddd tt  d‘du sJ tt  d‘du sJ t dddd tt  d‘du s―J tt  d‘du s»J t dddd tt 	 d‘du sΞJ tt 
 d‘du sΪJ t dddd tt 
 d‘du sνJ tt 	 d‘d u sωJ t dddd tt  d‘du sJ tt  d‘du sJ t dddd tt  d‘du s.J tt  d‘du s;J d S )NΪwc                      r   r   r   r   ©r#   r   r   r   +   r   z&test_old_assumptions.<locals>.<lambda>FT)Ϊrationalr   c                      r   r   r   r   r$   r   r   r   -   r   )Ϊoddr   c                      r   r   r   r   r$   r   r   r   /   r   )Ϊevenr   c                      r   r   r   r   r$   r   r   r   1   r   )Ϊprimer   c                      r   r   r   r   r$   r   r   r   3   r   )Ϊ	compositer   c                      r   r   r   r   r$   r   r   r   5   r   )Ϊintegerr   c                      r   r   r   r   r$   r   r   r   7   r   c                      r   r   r   r   r$   r   r   r   9   r   )Ϊpositiver   r   )Ϊnegativer   )Ϊzeror   )Ϊnonzeror   r   )Ϊnonpositiver   )Ϊnonnegativer   )r   r
   r   r   r   Ϊler   r   Ϊger   r    r   r   r$   r   Ϊtest_old_assumptions(   sD   r3   c                   C   s   t t td‘t td‘@ du sJ t t tt ‘ttkttk@ du s&J t tt dktdk tdk @ du s9J t ttkttkttk@ du sJJ d S )Nr   r   FTr   )r   r   r   r   r   r+   ΪzΪyr   r   r   r   Ϊtest_rel_queriesP   s   $(&&r6   c                  C   s4   t ddd} tt | d‘t | d‘@ d u sJ d S )Nr   r   r   )r   r   r   r   r   r   r   r   r   Ϊtest_unhandled_queriesW   s   (r7   c                   C   s   t t t‘tdkdu sJ t t t‘du sJ t t t‘du s$J ttdd  ttdd  ttdd  ttdd  ttd	d  d S )
Nr   TFc                   S   σ   t tdktdkt t‘@ S ©Nr   r   )r   r   r   r(   r   r   r   r   r   c   r   ztest_all_pred.<locals>.<lambda>c                   S   r8   r9   )r   r   r   r)   r   r   r   r   r   d   r   c                   S   r8   r9   )r   r   r   r&   r   r   r   r   r   e   r   c                   S   r8   r9   )r   r   r   r'   r   r   r   r   r   f   r   c                   S   r8   r9   )r   r   r   r*   r   r   r   r   r   g   r   )r   r   Ϊextended_positiver   Ϊpositive_infiniteΪnegative_infiniter
   r   r   r   r   r   Ϊtest_all_pred\   s   r=   c                  C   sΐ   t ddd\} }}t| |k| |k||k@ du sJ t| |k | |k||k @ du s+J t| |k | |k ||k@ du s<J t| | || k| |kdu sMJ t| | || k| |kdu s^J d S )Nϊa b cTr   )r   r   ©ΪaΪbΪcr   r   r   Ϊtest_number_line_propertiesj   s   """"&rC   c                  C   sx  t ddd\} }}t| | || k| |k|dk@ t |‘ @ du s$J t| | || k| |k|dk@ t |‘ @ du s?J t| | || k| |k|dk @ t |‘ @ du sZJ t| | || k| |k|dk @ t |‘ @ du suJ t|  | k| |kdu sJ td|  d| k| |kt t‘@ t |‘@ du sJ td|  d| k| |kt t‘@ t |‘@ du sΊJ d S )Nr>   Tr   r   r   )r   r   r   r-   r+   r   r,   r?   r   r   r   Ϊ#test_failing_number_line_properties~   s   66666:rD   c                   C   s   t t tt‘du sJ t t tt‘t tt‘du sJ t t tt‘t tt‘ t tt‘B du s5J t t tt‘t tt‘t tt‘@ du sLJ d S ©NT)r   r   r   r   r5   r4   r   r   r   r   Ϊtest_equality   s   "02rF   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‘t t‘@ du s?J d S rE   )r   r   r(   r   r   r5   r   r   r   r   r   r   Ϊtest_equality_failing’   s   **.rG   N)Ϊsympy.assumptions.lra_sataskr   Ϊ!sympy.logic.algorithms.lra_theoryr   Ϊsympy.assumptions.askr   r   Ϊ
sympy.corer   r   Ϊ"sympy.matrices.expressions.matexprr   Ϊsympy.core.numbersr	   Ϊsympy.testing.pytestr
   r   r   r5   r4   r"   r3   r6   r7   r=   rC   rD   rF   rG   r   r   r   r   Ϊ<module>   s&    (

