a
    kº”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sRJ ‚|j|ksbJ ‚|j| kstJ ‚|jtd| dƒksŽJ ‚|j|ksžJ ‚|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|jksJ ‚|j|jks"J ‚|j|jks4J ‚| ¡ | ¡ ksJJ ‚|j|jks\J ‚|j|jksnJ ‚|j|jks€J ‚| ¡ | ¡ ks–J ‚|j|j  krÂt| | d
 ƒd
 ksÈn J ‚|jt|jd d d… Ž   krt| | t| | d
 ƒt| | ƒ d
  ƒksn J ‚|j}|ttddƒtddƒƒksDJ ‚|jttddƒtd
dƒƒksfJ ‚|j |¡tjd
 ks‚J ‚|jdks’J ‚| tt¡td d
 td d
  dt t d d
 d  ksÔJ ‚|jdtdƒ d ksðJ ‚|j
tddƒksJ ‚|jdtdƒ d ks"J ‚|jttdƒd tdƒd ƒksHJ ‚|jdtdƒ d ksdJ ‚|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   é   é   é   é   é	   )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   úP/var/www/auris/lib/python3.9/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focusZ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p5Ú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~J ‚ˆ  t||ƒ¡tddƒtddƒgks¦J ‚ˆ  t||ƒ¡tddƒgksÆJ ‚ˆ  t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||ƒ¡g ks6J ‚ˆ  |¡g ksJJ ‚ˆ  tddƒ¡tddƒgkslJ ‚ˆ  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s~J ‚ˆ  tddƒ¡g ks˜J ‚ˆ  tddƒ¡tddƒtddƒgksÂJ ‚ˆ  tddƒ¡tddt	dƒ  ddt	dƒ  ƒgksüJ ‚ˆ  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sbJ ‚ˆ  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   ©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   Ú	TypeErrorr   r   r   r   r	   r   )Úl1Úl2Úl3r.   r/   r0   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