o
    FZh  γ                   @   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   ϊW/var/www/auris/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)Z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   )Znonzeror   r   )Ϊnonpositiver   )Znonnegativer   )r   r
   r   r   r   Ϊler   r   Ϊger   r    r   r   r$   r   Ϊtest_old_assumptions(   sD   r0   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   $(&&r3   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   (r4   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   r5   r6   )r   r   r   r(   r   r   r   r   r   d   r   c                   S   r5   r6   )r   r   r   r%   r   r   r   r   r   e   r   c                   S   r5   r6   )r   r   r   r&   r   r   r   r   r   f   r   c                   S   r5   r6   )r   r   r   r)   r   r   r   r   r   g   r   )r   r   Zextended_positiver   Zpositive_infiniteZnegative_infiniter
   r   r   r   r   r   Ϊtest_all_pred\   s   r7   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   """"&r=   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 )Nr8   Tr   r   r   )r   r   r   r,   r*   r   r+   r9   r   r   r   Ϊ#test_failing_number_line_properties~   s   66666:r>   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   r2   r1   r   r   r   r   Ϊtest_equality   s   "02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‘t t‘@ du s?J d S r?   )r   r   r'   r   r   r2   r   r   r   r   r   r   Ϊtest_equality_failing’   s   **.rA   N)Zsympy.assumptions.lra_sataskr   Z!sympy.logic.algorithms.lra_theoryr   Zsympy.assumptions.askr   r   Z
sympy.corer   r   Z"sympy.matrices.expressions.matexprr   Zsympy.core.numbersr	   Zsympy.testing.pytestr
   r   r   r2   r1   r"   r0   r3   r4   r7   r=   r>   r@   rA   r   r   r   r   Ϊ<module>   s&    (

