a
    kº”hj,  ã                   @   s   d dl mZ d dlmZmZmZmZmZmZm	Z	 d dl
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 d dlmZmZ d d	lmZ d d
lmZmZ d dl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+m,Z, edƒZ-edƒZ.edƒZ/edƒZ0edƒZ1dd„ Z2dd„ Z3dd„ Z4dd„ Z5dd „ Z6d!d"„ Z7d#d$„ Z8d%d&„ Z9d'd(„ Z:d)d*„ Z;d+d,„ Z<d-d.„ Z=d/d0„ Z>d1d2„ Z?d3d4„ Z@d5S )6é    )Ú	unchanged)ÚConditionSetÚIntersectionÚ	FiniteSetÚEmptySetÚUnionÚContainsÚImageSet)ÚSetKind)ÚFunctionÚLambda)ÚMod)Ú
NumberKind)ÚooÚpi)ÚEqÚNe)ÚS)ÚSymbolÚsymbols)ÚAbs)ÚasinÚsin)ÚAnd)ÚMatrix)ÚMatrixSymbol)ÚInterval)ÚraisesÚwarns_deprecated_sympyÚwÚxÚyÚzÚfc                     sŽ  t ttttƒdƒtddt ddƒƒ} t| v s0J ‚td | vs@J ‚dt | vsPJ ‚t| vs\J ‚dt ttd dktjƒv szJ ‚dt ttd dktjƒvs˜J ‚dt tt	dktdd	ƒƒvs¶J ‚t
td
d„ ƒ tdddƒ}t |t|tddgddggƒ |ƒƒ}tddgddggƒ}| |¡ ¡ tju s"J ‚tddgddggƒ}| |¡ ¡ tju sPJ ‚tt ttdk tt	hƒjtƒsrJ ‚t
tdd„ ƒ t
tdd„ ƒ tj‰tj‰t ‰ ˆ tdˆƒtju s¶J ‚ˆ tdˆƒˆu sÌJ ‚ˆ ttdk ˆ ttdk ˆƒƒˆ ttdk tdk @ ˆƒksJ ‚ˆ t	t	dk ˆ tt	dk ˆƒƒˆ ttdk t	dk @ ˆƒks\J ˆ t	t	dk ˆ tt	dk ˆƒƒƒ‚ˆ t	t	dk ˆ ttdk ˆƒƒˆ t	t	dk t	dk @ ˆƒks–J ‚ˆ t	t	dk ˆ tt	tk ˆƒƒˆ ttdk t	tk @ ˆƒksÐJ ‚tˆ t	tdk ˆ tt	tk ˆƒƒsôJ ‚t ttdk ƒjˆu sJ ‚t tftdk ƒjˆu s*J ‚t tt	ftt	k ˆd ƒ}d|v sPJ ‚dtf|vsbJ ‚t
t‡ ‡fdd„ƒ t
t‡ ‡fdd„ƒ d S )Nr   é   FTé   é   é   é   é   c                   S   s   dt ttdktddƒƒv S ©Né   r&   r(   r)   ©r   r    r!   r   © r-   r-   úP/var/www/auris/lib/python3.9/site-packages/sympy/sets/tests/test_conditionset.pyÚ<lambda>.   s   ÿztest_CondSet.<locals>.<lambda>ÚXc                   S   s   t ttd tthƒS ©Nr(   )r   r    r!   r-   r-   r-   r.   r/   :   ó    c                   S   s   t ttdƒS r1   ©r   r    r-   r-   r-   r.   r/   ;   r2   ©r(   r$   c                      s$   ˆ t t dkˆ t tft dkˆd ƒƒS ©Nr(   r$   ©r    r!   r-   )ÚCÚIr-   r.   r/   T   r2   c                      s   ˆ t tft t dk ˆˆƒS )Nr$   r6   r-   )r7   ÚUr-   r.   r/   V   r2   )r   r    r   r   r   r   r   r   ÚRealsr!   r   Ú	TypeErrorr   r   ÚcontainsZdoitÚtrueÚfalseÚ
isinstanceZbase_setr   ÚIntegersZUniversalSetr   r   )Zsin_sols_principalr0   Z
matrix_setÚYÚZÚcr-   )r7   r8   r9   r.   Útest_CondSet   sb    ÿ$ÿ
ÿ
ÿÿÿ
ÿ
$rD   c                  C   s`   t ttd dktddddƒƒ} tddddƒ}t ttd dktddddƒƒ}t| |ƒ|ks\J ‚d S )Nr$   r'   r(   Fr   r%   )r   r    r   r   )Zinput_conditionsetZother_domainZoutput_conditionsetr-   r-   r.   Útest_CondSet_intersectY   s    ÿÿÿrE   c                   C   sH   t ttttƒtjƒtju sJ ‚t tttttƒƒdƒtjƒtjksDJ ‚d S )Néÿÿÿÿ)r   r    r   r   ZNaturalsr   r   r   r-   r-   r-   r.   Útest_issue_9849c   s    ÿÿrG   c               	   C   s
  t tttdk tdkƒtdddƒƒtdƒks.J ‚t ttdk tdddƒƒtksNJ ‚t tttdk ƒtƒtksjJ ‚tdƒ} t tttdkƒtddd| ƒƒttdƒt tttdkƒt| ƒƒƒks¶J ‚t ttttdƒdƒtddd| ƒƒttddƒt ttttdƒdƒt| ƒƒƒksJ ‚d S )	Nr(   éýÿÿÿr   r$   r!   rF   r%   r'   )	r   r    r   r   r   r   r   r   r   )r!   r-   r-   r.   Ú$test_simplified_FiniteSet_in_CondSetj   s     ÿ  ÿ ÿÿrI   c                   C   s    t tttdƒttƒƒjtthks$J ‚t tttdƒttƒƒjthksFJ ‚t tttdƒtttƒƒjtthkslJ ‚t tttdƒttttd ƒt	j
ƒƒjtƒ ksœJ ‚d S ©Nr   r$   )r   r    r   r!   r   r"   Zfree_symbolsr	   r   r   r@   Úsetr-   r-   r-   r.   Útest_free_symbolsw   s    ÿÿÿÿÿrL   c                   C   s¢   t tttdƒttƒƒjtgks"J ‚t tttdƒtttƒƒjtgksFJ ‚t ttdk ttttd ƒt	j
ƒƒjtgkstJ ‚t ttdk t ttdkt	j
ƒƒjtgksžJ ‚d S )Nr   é
   r$   r(   )r   r    r   r!   r   r"   Úbound_symbolsr	   r   r   r@   r-   r-   r-   r.   Útest_bound_symbols‚   s    ÿÿ"ÿÿrO   c               	   C   sD  t dƒ\} }tttdk tttƒƒ ¡ t| | dk tttƒƒks@J ‚tttdk tttƒƒ ¡ t| | dk tttƒƒkstJ ‚tttdk ttttd ƒt	j
ƒƒ ¡ t| | dk tt| | d ƒt	j
ƒƒksÀJ ‚tttfttkt	jd ƒ}|jttgksìJ ‚| ¡ t| |f| |kt	jd ƒksJ ‚| ¡ tttfttkt	jd ƒ ¡ ks@J ‚d S )Nz_0 _1r(   r$   )r   r   r    r   r!   r   Zas_dummyr	   r   r   r@   r:   rN   )Z_0Z_1Úer-   r-   r.   Útest_as_dummy   s     ÿÿ$ÿÿ(rQ   c                     s¦  t ttƒ} tttdk | ƒ}| tt¡|ks.J ‚| tt¡tttdk t tƒƒksRJ ‚| tti¡tttdk | ƒkstJ ‚ttttk | ƒ tt¡ttttk |  tt¡ƒks¨J ‚tddd‰ tˆ dˆ k t	j
ƒt	ju sÐJ ‚tddd}tˆ ˆ tk t	j
ƒ ˆ t¡tˆ ˆ tk t	j
ƒksJ ‚ttdd	„ ƒ t|ˆ tk td
dƒƒ t|¡td
dƒkshJ t|ˆ tk td
dƒƒ t|¡ƒ‚tˆ ˆ tk tt dƒƒ t|¡tt dƒksšJ ‚tttƒttƒdk tthƒ ttƒt¡tttƒttƒdk tthƒksäJ ‚tdƒ}tt|d| t ttƒ ƒt	j
ƒ}tt|d| t tt	jd ƒ ƒt	j
ƒ}tttttddƒƒ|ƒ tt	jd ¡ |¡shJ ‚dtttftt dk t	j
d ƒv sJ ‚tt‡ fdd	„ƒ d S )Nr$   ÚnT)Únegativer   Úp)Zpositivec                   S   s   t td tdk tjƒS r1   )r   r    r   r@   r-   r-   r-   r.   r/   ­   s   ÿz#test_subs_CondSet.<locals>.<lambda>éûÿÿÿr&   r(   Úkr%   rF   ©r   r(   c                      s   t ˆ ˆ dk tddƒƒS )Niöÿÿÿr   rM   )r   r   r-   ©rR   r-   r.   r/   Â   r2   )r   r"   r!   r   r    ÚsubsZxreplacer   r   r   r@   r   r   Ú
ValueErrorr   r   r#   r	   r   r   r   ZOner   Údummy_eqr;   )ÚsrC   rT   rV   Zimg1Zimg2r-   rX   r.   Útest_subs_CondSet   st    
$"ÿÿÿÿ
ÿÿÿÿÿÿÿÿ
þ
ÿÿ
"(
ÿÿ
ÿÿ
(r]   c                   C   s~   t ƒ d tttftd tt htjd ƒtttfttd dƒttt dƒ@ tjd ƒks\J ‚W d   ƒ n1 sp0    Y  d S )Nr(   r$   r   )r   r   r    r!   r   r:   r   r-   r-   r-   r.   Útest_subs_CondSet_tebrÅ   s     ,ÿr^   c                  C   s¶  t } tj}| ttdk |ƒ}| | ttdk |ƒ¡s4J ‚| d¡dksFJ ‚| | ttdk tjƒ¡dksfJ ‚t ttfttd dƒttt dƒ@ tjd ƒ}t ttfttd dƒttt dƒ@ tjd ƒ}t ttfttd dƒttt dƒ@ tjd ƒ}| |¡sþJ ‚| |¡du sJ ‚| |¡du s&J ‚| |¡du s:J ‚t	dƒ}t	dƒ}t	dƒ}t
t||t ƒtjƒ}	t
t||t ƒtjƒ}
t tt|dƒ|	ƒ}t tt|dƒ|
ƒ}| |¡s²J ‚d S )Nr(   Fr   r$   ÚmrR   Úa)r   r   r@   r    r[   r!   r:   r   Z	Complexesr   r	   r   r   r   )r7   r8   rC   Zc1Úc2Úc3r_   rR   r`   Úd1Zd2r-   r-   r.   Útest_dummy_eqË   s*     ...rd   c                  C   sô  dt ttdktddƒƒv sJ ‚dt ttdktddƒƒv du s@J ‚ttdd„ ƒ ttd	d„ ƒ t ttdktddƒƒ d¡tdkks„J ‚t ttdktddƒƒ d¡tju sªJ ‚t ttdktddƒƒ t	¡t
tt	tddƒƒtdkƒksäJ ‚t tdt d
ktjƒ d
¡td
t tdt d
ktjƒddks&J ‚t ttftt dktjd ƒ} |  d¡rTJ ‚|  d¡sdJ ‚|  d¡rtJ ‚t t	ttfft	t t dktjtjd  ƒ} |  d¡r°J ‚|  d¡rÀJ ‚|  d¡rÐJ ‚|  d¡ràJ ‚|  d¡sðJ ‚d S )Nr+   r&   r(   r)   é   Fc                   S   s   dt ttdktddƒƒv S r*   r,   r-   r-   r-   r.   r/   ì   r2   ztest_contains.<locals>.<lambda>c                   S   s   dt tdt dktjƒv S )Nr   r(   )r   r    r   r:   r-   r-   r-   r.   r/   ï   r2   r   )Úevaluater$   )r$   r(   rW   r4   )r4   r%   )r4   ©r%   r'   )r(   rg   )r   r    r   r!   r   r;   r<   r   r>   r   r   r   r:   r@   )rC   r-   r-   r.   Útest_containsæ   sD    "ÿÿÿÿÿÿÿÿ
,rh   c                   C   s|   t ttftdktjd ƒ ttf¡tdktttjƒ@ tttjƒ@ ksHJ ‚t ttdktjƒ t¡tttjƒtdk@ ksxJ ‚d S r5   )r   r    r!   r   r@   Zas_relationalr   r-   r-   r-   r.   Útest_as_relational  s    "ÿÿri   c                  C   sø   t tttƒt dkƒ} t ttt| ƒtjƒ}|t tttƒt dktjƒksLJ ‚t tttƒt dkƒ} t ttt| ƒtjƒ}|t tttƒt dktjƒks˜J ‚t tttƒt dkƒ tddƒ¡} t ttt| ƒtjƒ}|t tttƒt dktddƒƒksôJ ‚dS )z4Tests whether there is basic denesting functionalityr   rF   r(   N)	r   r    r   r   r   r:   r!   Z	intersectr   )ÚinnerÚouterr-   r-   r.   Útest_flatten  s    """rl   c                     s*   ddl m}  tdƒ‰ t| ‡ fdd„ƒ d S )Nr   ©ÚBadSignatureErrorza,ac                      s   t ˆ tdk ƒS )Nr   r3   r-   ©Údupr-   r.   r/   !  r2   z test_duplicate.<locals>.<lambda>)Úsympy.core.functionrn   r   r   rm   r-   ro   r.   Útest_duplicate  s    rr   c                   C   sN   t ttttƒdƒtddt ƒƒjttƒu s.J ‚t ttdk ƒjttƒu sJJ ‚d S rJ   )	r   r    r   r   r   r   Úkindr
   r   r-   r-   r-   r.   Útest_SetKind_ConditionSet$  s    .rt   N)AZsympy.core.exprr   Z
sympy.setsr   r   r   r   r   r   r	   Zsympy.sets.setsr
   rq   r   r   Zsympy.core.modr   Zsympy.core.kindr   Zsympy.core.numbersr   r   Zsympy.core.relationalr   r   Zsympy.core.singletonr   Zsympy.core.symbolr   r   Z$sympy.functions.elementary.complexesr   Z(sympy.functions.elementary.trigonometricr   r   Zsympy.logic.boolalgr   Zsympy.matrices.denser   Z"sympy.matrices.expressions.matexprr   r   Zsympy.testing.pytestr   r   r   r    r!   r"   r#   rD   rE   rG   rI   rL   rO   rQ   r]   r^   rd   rh   ri   rl   rr   rt   r-   r-   r-   r.   Ú<module>   sH   $=
(!