o
    o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 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 sJ tddgddgg}|| tju sJ tt ttdk tt	hjtsJ t
tdd  t
tdd  tjtjt   tdtju sJ  tdu sJ  ttdk  ttdk  ttdk tdk @ ksJ  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 sJ t tftdk ju sJ t tt	ftt	k d }d|v sJ dtf|vsJ 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.   v/var/www/html/construction_image-detection-poc/venv/lib/python3.10/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/   r0   :   s    c                   S   s   t ttdS r2   r   r    r.   r.   r.   r/   r0   ;   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/   r0   T   s   $ c                      s    t tft t dk S )Nr$   r6   r.   )r7   Ur.   r/   r0   V       )r   r    r   r   r   r   r   r   Realsr!   r   	TypeErrorr   r   containsdoittruefalse
isinstancebase_setr   IntegersUniversalSetr   r   )sin_sols_principalr1   
matrix_setYZcr.   )r7   r8   r9   r/   test_CondSet   sb   $

$rJ   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   )input_conditionsetother_domainoutput_conditionsetr.   r.   r/   test_CondSet_intersectY   s   rN   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   Naturalsr   r   r   r.   r.   r.   r/   test_issue_9849c   s   rQ   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sJ d S )	Nr(   r   r$   r!   rO   r%   r'   )	r   r    r   r   r   r   r   r   r   )r!   r.   r.   r/   $test_simplified_FiniteSet_in_CondSetj   s       rS   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"   free_symbolsr	   r   r   rC   setr.   r.   r.   r/   test_free_symbolsw   s   rW   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   rC   r.   r.   r.   r/   test_bound_symbols   s    rZ   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sJ | tttfttkt	jd  ksJ d S )Nz_0 _1r(   r$   )r   r   r    r   r!   r   as_dummyr	   r   r   rC   r;   rY   )_0_1er.   r.   r/   test_as_dummy   s$    &r_   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sJ ttdd	  t| tk td
dt|td
dksJ t| tk td
dt|t  tk tt dt|tt dksJ tttttdk tthttttttttdk tthksJ 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)positivec                   S   s   t td tdk tjS r2   )r   r    r   rC   r.   r.   r.   r/   r0      s    z#test_subs_CondSet.<locals>.<lambda>r&   r(   kr%   rO   r   r(   c                      s   t   dk tddS )Nir   rX   )r   r   r.   r`   r.   r/   r0      s    )r   r"   r!   r   r    subsxreplacer   r   r   rC   r   r   
ValueErrorr   r   r#   r	   r   r   r   Oner   dummy_eqr<   )srI   rb   re   img1img2r.   rg   r/   test_subs_CondSet   s\   
$"
&"(
(rp   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   r;   r   r.   r.   r.   r/   test_subs_CondSet_tebr   s
    ,
"rq   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 sJ ||du sJ ||du sJ t	d}t	d}t	d}t
t||t tj}	t
t||t tj}
t tt|d|	}t tt|d|
}||sJ d S )Nr(   Fr   r$   mr`   a)r   r   rC   r    rl   r!   r;   r   	Complexesr   r	   r   r   r   )r7   r8   rI   c1c2c3rr   r`   rs   d1d2r.   r.   r/   test_dummy_eq   s*    ...rz   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sJ t ttftt dktjd } | drJ | dsJ | drJ t t	ttfft	t t dktjtjd  } | drJ | drJ | drJ | drJ | dsJ d S )Nr,   r&   r(   r)      Fc                   S   r*   r+   r-   r.   r.   r.   r/   r0      r:   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/   r0      r:   r   )evaluater$   )r$   r(   rf   r4   )r4   r%   )r4   r%   r'   )r(   r}   )r   r    r   r!   r   r<   r=   r   r@   r   r   r   r;   rC   )rI   r.   r.   r/   test_contains   s8   "
,r~   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s$J t ttdktjttttjtdk@ ks<J d S r5   )r   r    r!   r   rC   as_relationalr   r.   r.   r.   r/   test_as_relational  s   "r   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   rO   r(   N)	r   r    r   r   r   r;   r!   	intersectr   )innerouterr.   r.   r/   test_flatten  s   """*r   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/   r0   !  s    z test_duplicate.<locals>.<lambda>)sympy.core.functionr   r   r   r   r.   r   r/   test_duplicate  s   r   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 s%J d S rT   )	r   r    r   r   r   r   kindr
   r   r.   r.   r.   r/   test_SetKind_ConditionSet$  s   . r   N)Asympy.core.exprr   
sympy.setsr   r   r   r   r   r   r	   sympy.sets.setsr
   r   r   r   sympy.core.modr   sympy.core.kindr   sympy.core.numbersr   r   sympy.core.relationalr   r   sympy.core.singletonr   sympy.core.symbolr   r   $sympy.functions.elementary.complexesr   (sympy.functions.elementary.trigonometricr   r   sympy.logic.boolalgr   sympy.matrices.denser   "sympy.matrices.expressions.matexprr   r   sympy.testing.pytestr   r   r   r    r!   r"   r#   rJ   rN   rQ   rS   rW   rZ   r_   rp   rq   rz   r~   r   r   r   r   r.   r.   r.   r/   <module>   sJ    $=
(!