o
    GZŽ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sJ ‚|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   é   é   é   é   é	   )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   úQ/var/www/auris/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   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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˜   















4$"ÿ "B&(*r1   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ƒ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   ©Z	parabola1r   r   r   |   s     z,test_parabola_intersection.<locals>.<lambda>)r7   éûÿÿÿ)r   r   )r   r:   )r   r   )r3   i¿ÿÿÿ)é   i¼ÿÿÿ)r   r   )r   r;   r;   é9   éi   )r   r;   é   r!   r   )r   r   é   é;   r   c                      s
   ˆ   d¡S )Nr   )r8   r   r9   r   r   r      s   
 )r
   r   r   r8   r   r   Ú	TypeErrorr   r   r   r   r	   r   )Úl1Úl2Úl3r-   r.   r/   r   r9   r   Útest_parabola_intersectionc   sH   



( &.  4,.*"*:*"$"ýrE   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   r1   rE   r   r   r   r   Ú<module>   s    U