o
    ą8Va½)  ć                   @   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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mZ d dlmZmZ edZedZ edZ!ed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# Z0d$d% Z1d&S )'é    )Ś	unchanged)ŚConditionSetŚIntersectionŚ	FiniteSetŚEmptySetŚUnionŚContainsŚImageSet)ŚSymbolŚEqŚNeŚSŚAbsŚsinŚasinŚpiŚIntervalŚAndŚModŚooŚFunctionŚLambdaŚsymbolsŚMatrixŚMatrixSymbol)ŚraisesŚwarns_deprecated_sympyŚwŚxŚyŚzŚfc                     s  t ttttdtddt dd} t| v sJ td | vs J dt | vs(J t| vs.J dt ttd dktjv s=J dt ttd dktjvsLJ 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 s¦J tt ttdk tt	hjts¶J 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sEJ  t	t	dk  tt	tk  ttdk t	tk @ ksbJ t t	tdk  tt	tk stJ 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 s¢J dtf|vs«J t
t fdd t
t fdd d S )Nr   é   FTé   é   é   é   é   c                   S   ó   dt ttdktddv S ©Né   r$   r&   r'   ©r   r   r   r   © r,   r,   śD/usr/lib/python3/dist-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.   .   s    c                   S   s   t ttdS r0   ©r   r   r,   r,   r,   r-   r.   /   s    ©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.   H   s   $ c                      s    t tft t dk S )Nr"   r4   r,   )r5   ŚUr,   r-   r.   J   ó    )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_principalr/   Z
matrix_setŚYŚZŚcr,   )r5   r6   r7   r-   Śtest_CondSet   sb   ’$’’’’
’
’$rC   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_intersectM   s   ’’’rD   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s"J d S )Né’’’’)r   r   r   r   ZNaturalsr   r   r   r,   r,   r,   r-   Śtest_issue_9849W   s   ’’rF   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s'J t tttdk ttks5J 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   rE   r#   r%   )	r   r   r   r   r   r
   r   r   r   )r   r,   r,   r-   Ś$test_simplified_FiniteSet_in_CondSet^   s    ’  ’ ’’rH   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s#J t tttdtttjtthks6J t tttdttttd t	j
jt ksNJ d S )Nr   r"   )r   r   r   r   r   r    Zfree_symbolsr	   r   r   r?   Śsetr,   r,   r,   r-   Śtest_free_symbolsk   s   ’’’’’rJ   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s#J t ttdk ttttd t	j
jtgks:J t ttdk t ttdkt	j
jtgksOJ d S )Nr   é
   r"   r&   )r   r   r   r   r   r    Śbound_symbolsr	   r   r   r?   r,   r,   r,   r-   Śtest_bound_symbolsv   s   ’’ ’’rM   c               	   C   s@  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s:J 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svJ | ” 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?   r9   rL   )Z_0Z_1Śer,   r,   r-   Śtest_as_dummy   s$   ’’ ’’&’rO   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s)J | tti”tttdk | ks:J ttttk |  tt”ttttk |  tt”ksTJ tddd t d k t	j
t	ju shJ 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s²J 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 ” |”s0J dtttftt dk t	j
d v sDJ tt fdd	 d S )Nr"   ŚnT)Śnegativer   Śp)Zpositivec                   S   s   t td tdk tjS r0   )r   r   r   r?   r,   r,   r,   r-   r.   ”   s    ’z#test_subs_CondSet.<locals>.<lambda>éū’’’r$   r&   Śkr#   rE   ©r   r&   c                      s   t   dk tddS )Niö’’’r   rK   )r   r   r,   ©rP   r,   r-   r.   ¶   s    )r   r    r   r   r   ZsubsZxreplacer   r
   r   r?   r   r   Ś
ValueErrorr   r   r!   r	   r   r   r   ZOner   Śdummy_eqr:   )ŚsrB   rR   rT   Zimg1Zimg2r,   rV   r-   Śtest_subs_CondSet   s\   
$"’’’’’ž’
ž&’"(
’’’(rZ   c                   C   s   t  3 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    d S 1 s9w   Y  d S )Nr&   r"   r   )r   r   r   r   r   r9   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 |”sJ | d”dks#J | | ttdk tj”dks3J 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"   ŚmrP   Śa)r   r   r?   r   rX   r   r9   r   Z	Complexesr
   r	   r   r   r   )r5   r6   rB   Zc1Zc2Zc3r\   rP   r]   Zd1Zd2r,   r,   r-   Śtest_dummy_eqæ   s*    ...r^   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sBJ t ttdktdd d”tju sUJ t ttdktdd t	”t
tt	tddtdkksrJ 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”rØJ |  d”sÆJ |  d”r¶J 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   r(   r)   r+   r,   r,   r,   r-   r.   ą   r8   ztest_contains.<locals>.<lambda>c                   S   s   dt tdt dktjv S )Nr   r&   )r   r   r   r9   r,   r,   r,   r-   r.   ć   r8   r   )Zevaluater"   )r"   r&   rU   r2   )r2   r#   )r2   ©r#   r%   )r&   r`   )r   r   r   r   r   r:   r;   r   r=   r   r   r   r9   r?   )rB   r,   r,   r-   Śtest_containsŚ   s8   "’’
’’’,ra   c                   C   sx   t ttftdktjd  ttf”tdktttftjd @ ks"J t ttdktj t”tttjtdk@ ks:J d S r3   )r   r   r   r   r?   Zas_relationalr   r,   r,   r,   r-   Śtest_as_relationalū   s   "’’rb   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s&J 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dd”} t ttt| tj}|t tttt dktddkszJ dS )z4Tests whether there is basic denesting functionalityr   rE   r&   N)	r   r   r   r   r   r9   r   Z	intersectr   )ŚinnerZouterr,   r,   r-   Śtest_flatten  s   """*rd   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   r1   r,   ©Śdupr,   r-   r.     s    z test_duplicate.<locals>.<lambda>)Zsympy.core.functionrf   r   r   re   r,   rg   r-   Śtest_duplicate  s   ri   N)2Zsympy.core.exprr   Z
sympy.setsr   r   r   r   r   r   r	   Zsympyr
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Zsympy.testing.pytestr   r   r   r   r   r    r!   rC   rD   rF   rH   rJ   rM   rO   rZ   r[   r^   ra   rb   rd   ri   r,   r,   r,   r-   Ś<module>   s.    $L=
(!