U
    ZÊ¹j  ã                   @   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/bwave/python/venv/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