a
    ¬<bJ  ã                   @   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„ Zdd„ ZdS )é    )ÚRationalÚoo)ÚS)Úsymbols)Úsign)Úsqrt)ÚCircleÚEllipse)ÚLineÚRay2DÚ	Segment2D)ÚParabola)ÚPointÚPoint2D)Ú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stJ ‚|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s4J ‚|j| ksFJ ‚|jtd| dƒks`J ‚|j|kspJ ‚|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sJ ‚| ¡ | ¡ ksJ ‚|j|jks.J ‚|j|jks@J ‚|j|jksRJ ‚| ¡ | ¡ kshJ ‚|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 ‚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   úr/Users/vegardjervell/Documents/master/model/venv/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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   /   ó    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    















2$"ÿ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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ƒtddƒgksjJ ‚ˆ  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   l   r   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   }   r   )r
   r   r   r0   r   r   Ú	TypeErrorr   r   r   r   r	   r   )Úl1Úl2Úl3r%   r&   r'   r   r1   r   Útest_parabola_intersectionS   sD    



( &0""6..*"*:**,"Fÿ
r=   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   r(   r=   r   r   r   r   Ú<module>   s   F