o
    à8Va2  ã                   @   sp   d dl mZmZmZmZ d dl mZmZmZmZm	Z	m
Z
 d dl mZmZmZmZ d dlmZ dd„ Zdd„ Zd	S )
é    )ÚRationalÚooÚsqrtÚS)ÚLineÚPointÚPoint2DÚParabolaÚ	Segment2DÚRay2D)ÚCircleÚEllipseÚsymbolsÚsign)Úraisesc                  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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sJ ‚|jtd| dƒks&J ‚|j|ks.J ‚|j|ks6J ‚|jtdd| ƒksCJ ‚|jdksKJ ‚|jdksSJ ‚|jtddƒks^J ‚|j|jksgJ ‚|j|jkspJ ‚|j|jksyJ ‚| ¡ | ¡ ks„J ‚|j|jksJ ‚|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 ‚d S )Nza br   é   é   é   é   é	   )Zslope)Z	directrixc                   S   s$   t tdddƒttddƒtddƒƒƒS )Nr   é   r   r   ©r	   r   r   © r   r   úD/usr/lib/python3/dist-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   %   ó   "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   '   r   c                   S   s   t tddƒtddƒƒS )Nr   r   r   )r	   r   r   r   r   r   r   )   s    r   é   éÿÿÿÿé   é   )r   r   r   r   r   ZHalfr	   r   Ú
ValueErrorÚNotImplementedErrorZfocusZambient_dimensionr   Zfocal_lengthZp_parameterZvertexZeccentricityZequationr   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pa11r   r   r   Útest_parabola_geom   sx   















4$"ÿr(   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sJ ‚ˆ  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ƒtddƒgks®J ‚ˆ  t|ddƒ¡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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   é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   f   s     z,test_parabola_intersection.<locals>.<lambda>)r/   éûÿÿÿ)r   r   )r   r2   )r   r   )r+   i¿ÿÿÿ)é   i¼ÿÿÿ)r   r   )r   r3   r3   é9   éi   )r   r3   é   r   r   )r   r   é   é;   r   c                      s
   ˆ   d¡S )Nr   )r0   r   r1   r   r   r   w   s   
 )r   r   r	   r0   r   r   Ú	TypeErrorr
   r   r   r   r   r   )Úl1Úl2Úl3r%   r&   r'   r   r1   r   Útest_parabola_intersectionM   sD   



( &.  4,.*"*:**,"F
ÿr=   N)Zsympyr   r   r   r   r   r   r   r	   r
   r   r   r   r   r   Zsympy.testing.pytestr   r(   r=   r   r   r   r   Ú<module>   s     F