U
    —9%e  ã                   @   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¢t‚|jtd
ƒks¶t‚||ksÄt‚||ksÒt‚||ksàt‚|j
tddƒksöt‚|jdkst‚|jdkst‚|jtddƒks,t‚|jdks<t‚|j
tddƒksRt‚|j|ksbt‚|j| kstt‚|jtd| dƒksŽt‚|j|ksžt‚|j|ks®t‚|jtdd| ƒksÈt‚|jdksØt‚|jdksèt‚|jtddƒksþt‚|j|jkst‚|j|jks"t‚|j|jks4t‚| ¡ | ¡ ksJt‚|j|jks\t‚|j|jksnt‚|j|jks€t‚| ¡ | ¡ ks–t‚|j|j  krÂt| | d
 ƒd
 ksÈn t‚|jt|jd d d… Ž   krt| | t| | d
 ƒt| | ƒ d
  ƒksn t‚|j}|ttddƒtddƒƒksDt‚|jttddƒtd
dƒƒksft‚|j |¡tjd
 ks‚t‚|jdks’t‚| tt¡td d
 td d
  dt t d d
 d  ksÔt‚|jdtdƒ d ksðt‚|j
tddƒkst‚|jdtdƒ d ks"t‚|jttdƒd tdƒd ƒksHt‚|jdtdƒ d ksdt‚|j
ttdƒ d tdƒd ƒksŒt‚|jdtdƒ d ks¨t‚|jttdƒd tdƒd ƒksÎt‚d S )Nza br   é   é   é   é   é	   )Z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   úa/var/www/html/Darija-Ai-API/env/lib/python3.8/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   ó    é   éÿÿÿÿé   é   éþÿÿÿé
   é   éG   é   i÷ÿÿÿé5   )r   r   r
   r   r   ZHalfr   Zreflectr   Ú
ValueErrorZfocusÚAssertionErrorZambient_dimensionr   Zfocal_lengthZp_parameterZvertexZeccentricityZequationr   r   Zaxis_of_symmetryr   Zangle_betweenÚPir   r   )ÚaÚbÚp1Úp2Úp3Zp4Zp5Zd1Zd2Zd3Zd4Zd5Zd6ZhalfZpa1Zpa2Zpa3Zpa4Zpa5Zpa6Zpa7Zpa8Zpa9Zpa10Zpa11ÚdZpa12Zpa12rZaosr   r   r   Útest_parabola_geom   s˜    















2$"ÿ "B&(r3   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~t‚ˆ  t||ƒ¡tddƒtddƒgks¦t‚ˆ  t||ƒ¡tddƒgksÆt‚ˆ  ttddƒ| ƒ¡td	d
ƒgksìt‚ˆ  ttddƒ| ƒ¡tdd	ƒtdd	ƒgkst‚ˆ  t||ƒ¡g ks6t‚ˆ  |¡g ksJt‚ˆ  tddƒ¡tddƒgkslt‚ˆ  tddƒ¡tddƒgksŽt‚ˆ  t tddƒtddƒƒ¡tddƒtddƒgksÄt‚ˆ  t tddƒtddƒƒ¡tddƒgksòt‚ˆ  t tddƒtddƒƒ¡tddƒgks t‚tt‡ fdd„ƒ ˆ  tddƒ¡tddƒtddƒgks\t‚ˆ  tddƒ¡tddƒgks~t‚ˆ  tddƒ¡g ks˜t‚ˆ  t	ddƒ¡tddƒtddƒgksÂt‚ˆ  t	ddƒ¡tddt
dƒ  ddt
dƒ  ƒgksüt‚ˆ  t	ddƒ¡g kst‚ˆ  t|dƒ¡tddƒtddƒgks@t‚ˆ  t|dƒ¡tddƒgksbt‚ˆ  t|ddƒ¡tddƒgks†t‚ˆ  ttdd ƒd!d"ƒ¡g ks¨t‚ˆ  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 t‚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   ©Z	parabola1r   r   r   |   r   z,test_parabola_intersection.<locals>.<lambda>)r9   éûÿÿÿ)r   r   )r   r<   )r   r   )r5   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      r   )r
   r   r   r:   r+   r   r   Ú	TypeErrorr   r   r   r   r	   r   )Úl1Úl2Úl3r/   r0   r1   r   r;   r   Útest_parabola_intersectionc   sH    



( &0""6..*"*:*"$"ýrG   N)Zsympy.core.numbersr   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z$sympy.functions.elementary.complexesr   Z(sympy.functions.elementary.miscellaneousr   Zsympy.geometry.ellipser   r	   Zsympy.geometry.liner
   r   r   Zsympy.geometry.parabolar   Zsympy.geometry.pointr   r   Zsympy.testing.pytestr   Z	sympy.abcr   r   r3   rG   r   r   r   r   Ú<module>   s   U