o
    oĒh  ć                   @   s°   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 d dl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mZ dd Zdd ZdS )é    )ŚRationalŚoo)ŚS)Śsymbols)Śsign)Śsqrt)ŚCircleŚEllipse)ŚLineŚRay2DŚ	Segment2D)ŚParabola)ŚPointŚPoint2D)Śraises)ŚxŚyc                  C   sČ  t d\} }tdd}tdd}tdd}tdd}t| | }ttddtdd}ttddtdd}ttddtd}	ttdddd}
tt|| td}tt| |dd}tj}td |}t|d	}t||}t||}t||
}t||}t||}t||}t||	}t||}t||}ttddtd
d}ttdd|}ttdd |”|}tt	dd  tt	dd  tt	dd  |j
tddksŠJ |jtd
ksŁJ ||ksßJ ||ksåJ ||ksėJ |j
tddksõJ |jdksüJ |jdksJ |jtddksJ |jdksJ |j
tddks"J |j|ks*J |j| ks3J |jtd| dks@J |j|ksHJ |j|ksPJ |jtdd| ks]J |jdkseJ |jdksmJ |jtddksxJ |j|jksJ |j|jksJ |j|jksJ | ” | ” ksJ |j|jks§J |j|jks°J |j|jks¹J | ” | ” ksÄJ |j|j  krŪt| | d
 d
 ksŽJ  J |jt|jd d d    krt| | t| | d
 t| |  d
  ks
J  J |j}|ttddtddksJ |jttddtd
dks.J |j |”tjd
 ks<J |jdksDJ | tt”td d
 td d
  dt t d d
 d  kseJ |jdtd d kssJ |j
tddks~J |jdtd d ksJ |jttdd tdd ksJ |jdtd d ks­J |j
ttd d tdd ksĮJ |jdtd d ksĻJ |jttdd tdd ksāJ d S )Nza br   é   é   é   é   é	   )Śslope)Ś	directrixé   é   c                   S   s$   t tdddttddtddS )Nr   r   r   r   ©r   r   r
   © r   r   śv/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/geometry/tests/test_parabola.pyŚ<lambda>-   s   $z$test_parabola_geom.<locals>.<lambda>c                   S   s"   t tddttddtddS )Nr   r   r   r   r   r   r   r   r   r   /   s   "c                   S   s   t tddtddS )Nr   r   r   )r   r   r   r   r   r   r   1   s    é   é’’’’é   é   éž’’’é
   é   éG   é   i÷’’’é5   )r   r   r
   r   r   ŚHalfr   Śreflectr   Ś
ValueErrorŚfocusŚambient_dimensionr   Śfocal_lengthŚp_parameterŚvertexŚeccentricityŚequationr   r   Śaxis_of_symmetryr   Śangle_betweenŚPir   r   )ŚaŚbŚp1Śp2Śp3Śp4Śp5Śd1Śd2Śd3Śd4Śd5Śd6ŚhalfŚpa1Śpa2Śpa3Śpa4Śpa5Śpa6Śpa7Śpa8Śpa9Śpa10Śpa11ŚdŚpa12Śpa12rŚaosr   r   r   Śtest_parabola_geom   s   















4$"’ "B&(*rT   c                     s  t tddtdd} t tddtdd}t tddtdd}tdd}tdd}tdd}t||     ” gks?J   t||”tddtddgksSJ   t||”tddgkscJ   ttdd| ”td	d
gksvJ   ttdd| ”tdd	tdd	gksJ   t||”g ksJ   |”g ks¢J   tdd”tddgks²J   tdd”tddgksĀJ   t tddtdd”tddtddgksÜJ   t tddtdd”tddgksņJ   t tddtdd”tddgks	J tt fdd   tdd”tddtddgks'J   tdd”tddgks8J   tdd”g ksEJ   tdd”tddtddgksZJ   tdd”tddt	d  ddt	d  gkswJ   tdd”g ksJ   t
|d”tddtddgksJ   t
|d”tddgksŖJ   t|dd”tddgks¼J   ttdd d!d"”g ksĶJ   td#dd”tddtdt	d$ d td%d&tdt	d$ d td%d&gksłJ tt fd'd d S )(Nr    r$   r!   r   r   éx   éō’’’é   r   é   iś’’’r   r   r   ił’’’é   éü’’’c                      s       ttdddtddd”S )Nr   r    )Śintersectionr
   r   r   ©Ś	parabola1r   r   r   |   s     z,test_parabola_intersection.<locals>.<lambda>)rZ   éū’’’)r   r   )r   r^   )r   r   )rV   iæ’’’)é   i¼’’’)r   r   )r    r_   r_   é9   éi   )r   r_   é   r"   r   )r   r   é   é;   r   c                      s
      d”S )Nr   )r[   r   r\   r   r   r      s   
 )r
   r   r   r[   r   r   Ś	TypeErrorr   r   r   r   r	   r   )Śl1Śl2Śl3r9   r:   r;   r   r\   r   Śtest_parabola_intersectionc   sH   



( &.  4,.*"*:*"$"żri   N)Śsympy.core.numbersr   r   Śsympy.core.singletonr   Śsympy.core.symbolr   Ś$sympy.functions.elementary.complexesr   Ś(sympy.functions.elementary.miscellaneousr   Śsympy.geometry.ellipser   r	   Śsympy.geometry.liner
   r   r   Śsympy.geometry.parabolar   Śsympy.geometry.pointr   r   Śsympy.testing.pytestr   Ś	sympy.abcr   r   rT   ri   r   r   r   r   Ś<module>   s    U