a
    kΊ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                      sv  t dddtt td‘t td‘ du s0J tt td‘t td‘ du sTJ tt td‘ t td‘du sxJ 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t‘du sΦJ tt tt‘du sξJ tt td‘t td‘du sJ tt td‘dd u s.J ttdd sBJ 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   ϊV/var/www/auris/lib/python3.9/site-packages/sympy/assumptions/tests/test_rel_queries.pyΪ<lambda>   σ    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   !   r   ΪXι   c                      s   t t  d‘t  d‘@ S ©Nr   ι   ©r   r   Ϊltr   r   ©r   r   r   r   %   r   )r   r   r   Ϊeqr   Ϊner   r
   Ϊ
ValueErrorr   r   r   r   )r   r   r   Ϊtest_lra_satask   s    $$$$"$r!   c                      s  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 sdJ 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 sDJ t dddd tt  d‘du slJ tt  d‘du sJ d S )NΪwc                      s   t t  d‘t  d‘@ S r   r   r   ©r"   r   r   r   +   r   z&test_old_assumptions.<locals>.<lambda>FT)Zrationalr   c                      s   t t  d‘t  d‘@ S r   r   r   r#   r   r   r   -   r   )Ϊoddr   c                      s   t t  d‘t  d‘@ S r   r   r   r#   r   r   r   /   r   )Ϊevenr   c                      s   t t  d‘t  d‘@ S r   r   r   r#   r   r   r   1   r   )Ϊprimer   c                      s   t t  d‘t  d‘@ S r   r   r   r#   r   r   r   3   r   )Ϊ	compositer   c                      s   t t  d‘t  d‘@ S r   r   r   r#   r   r   r   5   r   )Ϊintegerr   c                      s   t t  d‘t  d‘@ S r   r   r   r#   r   r   r   7   r   c                      s   t t  d‘t  d‘@ S 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    r/   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 sLJ t tt dktdk tdk @ du srJ t ttkttkttk@ du sJ d S )Nr   r   FTr   )r   r   r   r   r   r)   ΪzΪyr   r   r   r   Ϊtest_rel_queriesP   s    $(&r2   c                  C   s4   t ddd} tt | d‘t | d‘@ d u s0J d S )Nr   r   r   )r   r   r   r   r   r   r   r   r   Ϊtest_unhandled_queriesW   s    r3   c                   C   s   t t t‘tdkdu sJ t t t‘du s2J t t t‘du sHJ 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   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   s   t tdktdkt t‘@ S r4   )r   r   r   r'   r   r   r   r   r   d   r   c                   S   s   t tdktdkt t‘@ S r4   )r   r   r   r$   r   r   r   r   r   e   r   c                   S   s   t tdktdkt t‘@ S r4   )r   r   r   r%   r   r   r   r   r   f   r   c                   S   s   t tdktdkt t‘@ S r4   )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    r5   c                  C   sΐ   t ddd\} }}t| |k| |k||k@ du s4J t| |k | |k||k @ du sVJ t| |k | |k ||k@ du sxJ t| | || k| |kdu sJ 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   s~  t ddd\} }}t| | || k| |k|dk@ t |‘ @ du sHJ 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 sκJ t|  | k| |kdu s
J td|  d| k| |kt t‘@ t |‘@ du sBJ td|  d| k| |kt t‘@ t |‘@ du szJ d S )Nr6   Tr   r   r   )r   r   r   r+   r)   r   r*   r7   r   r   r   Ϊ#test_failing_number_line_properties~   s    6666 8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 sjJ t t tt‘t tt‘t tt‘@ du sJ d S ©NT)r   r   r   r   r1   r0   r   r   r   r   Ϊtest_equality   s    "0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 sTJ t t t‘t tt‘t t‘@ du s~J d S r=   )r   r   r&   r   r   r1   r   r   r   r   r   r   Ϊtest_equality_failing’   s    **r?   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   r1   r0   r!   r/   r2   r3   r5   r;   r<   r>   r?   r   r   r   r   Ϊ<module>   s$   (

