o
    à8Va—8  ã                   @   sü   d dl mZ d dlmZmZmZmZmZ d dlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ edƒ\ZZe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„ Z%dd„ Z&dd„ Z'd d!„ Z(d"d#„ Z)d$S )%é    )ÚSetExpr)ÚIntervalÚ	FiniteSetÚIntersectionÚImageSetÚUnion)ÚExprÚSetÚexpÚlogÚcosÚSymbolÚMinÚMaxÚSÚooÚIÚsymbolsÚLambdaÚDummyÚRationalza, xÚdc                  C   s0   t tddƒƒ} t| jtƒsJ ‚t| tƒsJ ‚d S )Nr   é   )r   r   Ú
isinstanceÚsetr	   r   )Úse© r   ú?/usr/lib/python3/dist-packages/sympy/sets/tests/test_setexpr.pyÚtest_setexpr   s   r   c                  C   sœ   t tddƒƒjtddƒksJ ‚tdddtddd} }d\} }ttfD ]'}|t t| |ƒƒƒ}|j}tt|| ƒ||ƒƒt|| ƒ||ƒƒƒ}||ksKJ ‚q$d S )Nr   r   ÚaT)ÚrealÚb)r   é   )r   r   r   r   r
   r   r   r   )r   r!   ÚfZinput_seÚoutputZexpectedr   r   r   Útest_scalar_funcs   s   &ür%   c                   C   sH   t tddƒƒd jtddƒksJ ‚t tddƒƒd jtddƒks"J ‚d S ©Nr   r   r"   ©r   r   r   r   r   r   r   Útest_Add_Mul   s   "&r(   c                   C   s&   t tddƒƒd jtddƒksJ ‚d S )Nr   r"   é   r'   r   r   r   r   Útest_Pow#   s   &r*   c                   C   s6   t ttddƒƒd d ƒjtt dƒt dƒƒksJ ‚d S )Nr   r   r"   é   )r
   r   r   r   r   r   r   r   Útest_compound'   s   ÿr,   c                   C   s\   t tddƒƒt tddƒƒ jtddƒksJ ‚t tddƒƒt tddƒƒ jtddƒks,J ‚d S )Nr   r"   é
   é   é   é   é(   r'   r   r   r   r   Útest_Interval_Interval,   s   ÿÿr2   c                   C   sj   t tdddƒƒt tddƒƒ jtddddƒksJ ‚t tdddƒƒt tddƒƒ jtdddddƒks3J ‚d S )Nr   r"   r+   r)   é   é   ©r   r   r   r   r   r   r   Útest_FiniteSet_FiniteSet3   s   ÿÿr6   c                   C   s0   t tddƒƒt tddƒƒ jtddƒksJ ‚d S )Nr   r"   r   r-   é   )r   r   r   r   r   r   r   r   Útest_Interval_FiniteSet:   s   ÿr8   c                   C   s@   t tddƒƒt tddƒƒ t tdddƒƒ jtddƒksJ ‚d S )	Nr   r   r"   r+   r-   r/   r7   é   )r   r   r   r   r   r   r   r   Útest_Many_Sets?   s   ÿþ
þr:   c                  C   s:   t tddƒƒ} t tddƒƒ}| | jtdddƒksJ ‚d S r&   r5   )r   r!   r   r   r   Ú$test_same_setexprs_are_not_identicalE   s   r;   c                  C   sV
  t tddƒƒ} t t dd¡ƒ}t t dd¡ƒ}t t dd¡ƒ}t tddƒƒ}t t dd¡ƒ}t t dd¡ƒ}t t dd¡ƒ}t tddƒƒ}| |  t tddƒƒksRJ ‚| |  t tddƒƒks_J ‚| |  t tddƒƒkslJ ‚| |  t ttjdƒƒkszJ ‚| d t tddƒƒks‡J ‚| d t tddƒƒks”J ‚|| t t dd¡ƒks¢J ‚|| t t dd¡ƒks°J ‚|| t t dd¡ƒks¾J ‚|| t t tjd¡ƒksÍJ ‚|| t t dd¡ƒksÛJ ‚|| t t dd¡ƒkséJ ‚|| t t dd¡ƒks÷J ‚|| t t tjd¡ƒksJ ‚||  t t dd¡ƒksJ ‚||  t t dd¡ƒks%J ‚||  t t dd¡ƒks4J ‚||  t t tjd¡ƒksDJ ‚|| t t dd¡ƒksSJ ‚|| t t dd¡ƒksbJ ‚|| t t dd¡ƒksqJ ‚|| t t tjd¡ƒksJ ‚|d t t dd¡ƒksJ ‚|d t t dd¡ƒksŸJ ‚|| t t dd¡ƒks®J ‚|| t t dd¡ƒks½J ‚|| t t dd¡ƒksÌJ ‚|| t t tjd¡ƒksÜJ ‚||  t t dd¡ƒksëJ ‚||  t t dd¡ƒksúJ ‚||  t t dd¡ƒks	J ‚||  t t tjd¡ƒksJ ‚|| t t dd¡ƒks(J ‚|| t t dd¡ƒks7J ‚|| t t dd¡ƒksFJ ‚|| t t tjd¡ƒksVJ ‚|d t t dd¡ƒkseJ ‚|d t t dd¡ƒkstJ ‚|| t t dd¡ƒksƒJ ‚|| t t dd¡ƒks’J ‚|| t t dd¡ƒks¡J ‚|| t t tjd¡ƒks±J ‚|| t t dd¡ƒksÀJ ‚|| t t dd¡ƒksÏJ ‚|| t t dd¡ƒksÞJ ‚|| t t tjd¡ƒksîJ ‚||  t t dd¡ƒksýJ ‚||  t t dd¡ƒksJ ‚||  t t dd¡ƒksJ ‚||  t t tjd¡ƒks+J ‚|d t t dd¡ƒks:J ‚|d t t dd¡ƒksIJ ‚|| t td	d
ƒƒksWJ ‚|| t tddƒƒkseJ ‚|| t tddƒƒkssJ ‚|| t t t t¡ƒksƒJ ‚|| t t d	d
¡ƒks’J ‚|| t t dd¡ƒks¡J ‚|| t t dd¡ƒks°J ‚|| t t t t¡ƒksÀJ ‚|| t t d	d
¡ƒksÏJ ‚|| t t dd¡ƒksÞJ ‚|| t tddƒƒksìJ ‚|| t t t t¡ƒksüJ ‚|| t t d	d
¡ƒksJ ‚|| t t dd¡ƒksJ ‚|| t t dd¡ƒks)J ‚|| t t t t¡ƒks9J ‚|d t tddƒƒksGJ ‚|d t tddƒƒksUJ ‚t tddƒƒ}	t t dd¡ƒ}
t t dd¡ƒ}|	|
 t t dd¡ƒks{J ‚|	|	 t tddƒƒks‰J ‚|
|	 t t dd¡ƒks˜J ‚|	| t tddƒƒks¦J ‚|
| t t dd¡ƒksµJ ‚|	|
 t t t t¡ƒksÅJ ‚| |
 t t t t¡ƒksÕJ ‚|d t tddƒƒksãJ ‚|d t tddƒƒksñJ ‚||  t tddƒƒksÿJ ‚||  t td	dƒƒksJ ‚||  t td	d
ƒƒksJ ‚||  t tddƒƒks)J ‚d S )Nr   r"   éþÿÿÿr+   éýÿÿÿr)   éÿÿÿÿé   éüÿÿÿr4   éûÿÿÿr3   iúÿÿÿé	   r   iøÿÿÿé   iåÿÿÿ)r   r   ZLopenZRopenÚopenr   ÚHalfr   )Zi12ccZi12loZi12roZi12oZn23ccZn23loZn23roZn23oZn3n2ccZn32ccZn32loZn32ror   r   r   Útest_Interval_arithmeticN   s¾                   rF   c                  C   s”   t dƒ\} }}}t| |ƒ}t||ƒ}t||ƒ}t|ƒ}t|ƒjttt| t| ƒƒ|ƒtt| t| ƒƒ|ƒƒks7J ‚t|ƒjtt| t| ƒƒ|ƒksHJ ‚d S )Nzx y z w)	r   r   r   r   r
   r   r   r   r   )ÚxÚyÚzÚwZset1Zset2Zinterr   r   r   r   Útest_SetExpr_Intersection½   s   




þ&rK   c                   C   sà  t tddƒƒt tddƒƒ t tt tƒƒksJ ‚t tddƒƒt tddƒƒ t tt tƒƒks0J ‚t tddƒƒt tddƒƒ t tt tddƒƒƒksKJ ‚t tddƒƒt tddƒƒ t tt tddƒƒƒksfJ ‚t tddƒƒt tddƒƒ t ttddƒtƒƒks€J ‚t tddƒƒt tddƒƒ t tt tƒƒks˜J ‚dt tddƒƒ t ttt dƒttjtƒƒƒks²J ‚dt tddƒƒ t ttjtƒƒksÅJ ‚dt tddƒƒ t tt tddƒƒƒksÛJ ‚dt tddƒƒ t tt dƒƒksîJ ‚d S )	Nr=   r<   r   r"   r+   r   r)   r>   )r   r   r   r   r   r   rE   r   r   r   r   Útest_SetExpr_Interval_divÉ   s   0066404&,*rL   c                   C   sò  t tddƒƒd t tddƒƒksJ ‚t tddƒƒd t tddƒƒks$J ‚t tddƒƒd t tddƒƒks6J ‚t tddƒƒd t tddƒƒksHJ ‚t tddƒƒd t tdƒƒksYJ ‚t tddƒƒd	 t ttdd
ƒdƒƒksnJ ‚t tddƒƒd	 t tdtƒƒks€J ‚t tddƒƒd	 t ttddƒtƒƒks•J ‚t tddƒƒd t ttt dƒttddƒtƒƒƒks±J ‚t tdd	ƒƒd t ttddƒtddƒƒƒksÉJ ‚t tdd	ƒƒd	 t ttddƒtddƒƒƒksáJ ‚t tt dƒƒd	 t t dt¡ƒksõJ ‚t td	dƒƒd	 t ttddƒtƒƒksJ ‚t ttddƒtjƒƒt t tdƒƒks!J ‚t tdtjƒƒt t tdƒƒks4J ‚t ttjdƒƒt t tdtƒƒksHJ ‚t tddƒƒt t tdtƒƒks[J ‚t tddƒƒt t ttƒƒksmJ ‚t tddƒƒt t tdtƒƒks€J ‚t ttjdƒƒt t tdtƒƒks”J ‚t ttddƒtddƒƒƒt t tdƒƒks¬J ‚t tdtddƒƒƒt t tt tƒƒksÃJ ‚t tdd	ƒƒt t tt tƒƒks×J ‚t td	dƒƒt t tt tƒƒksëJ ‚t td	tddƒƒƒt t tt tƒƒksJ ‚t ttddƒtjƒƒt t tdƒƒksJ ‚t ttddƒdƒƒt t tdtƒƒks.J ‚t ttd	dƒdƒƒt t tdtƒƒksDJ ‚t tddƒƒt t tt tƒƒksXJ ‚t tdtjƒƒt t tt tƒƒksmJ ‚t tddƒƒt t tt tƒƒksJ ‚t td	tjƒƒt t tt tƒƒks–J ‚t tddƒƒt	  
t ttttt	 ƒtddƒƒƒ¡s²J ‚t tddƒƒt  t tdƒƒksÅJ ‚t tddƒƒt  t tdtƒƒksÙJ ‚t tddƒƒt   
t ttttt  ƒtddƒƒƒ¡s÷J ‚d S )Nr   r"   r)   r>   r   r+   r?   r3   r<   é   r=   rC   rB   )r   r   r   r   r   r   rD   r   rE   rG   Údummy_eqr   r   Ú_dr   r   r   r   Útest_SetExpr_Interval_powï   sH   $$$$"*$*800(,,&(&$&(0.((.,,,(*(*8&(@rP   c                
   C   sJ  t tjƒd t tjƒksJ ‚t tjƒt  t ttttt ƒtjƒƒ¡s%J ‚t tjƒd t tjƒks3J ‚t tjƒd  t tttdt ƒtjƒƒ¡sJJ ‚t tjƒt  t ttttt ƒtjƒƒ¡saJ ‚t tjƒ tt	tt	 d ƒ¡ t ttttt d ƒtjƒƒ¡s‚J ‚t tjƒt d  t ttt	t	d ƒttttt ƒtjƒƒƒ¡s£J ‚d S )Nr   r>   r"   )
r   r   ZIntegersr   rN   r   r   rO   Z
_eval_funcrG   r   r   r   r   Útest_SetExpr_Integers*  s&   ÿÿÿÿÿÿrQ   N)*Zsympy.sets.setexprr   Z
sympy.setsr   r   r   r   r   Zsympyr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   rG   rO   r   r%   r(   r*   r,   r2   r6   r8   r:   r;   rF   rK   rL   rP   rQ   r   r   r   r   Ú<module>   s(    D	o&;