§
    OŠtj„  ã                   óþ   — d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ d d	l m!Z!m"Z"m#Z#m$Z$m%Z% d d
l&m'Z' d dl(m)Z) d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/dS )é    N)ÚFloat)Ú
DerivativeÚFunction)ÚS)ÚSymbol)ÚexpÚcosÚsinÚtanÚcoshÚsinh)Úsqrt)ÚPointÚPoint2DÚLineÚPolygonÚSegmentÚconvex_hullÚintersectionÚcentroidÚPoint3DÚLine3DÚRayÚEllipse)ÚidiffÚclosest_pointsÚfarthest_pointsÚ_ordered_pointsÚare_coplanar)Úsolve)Úraisesc                  ól  ‡‡— t          dd¬¦  «        Št          dd¬¦  «        } t          dd¬¦  «        }t          d¦  «        }t          d¦  «        }‰dz  | dz  z   d	z
  }d
‰z  ‰dz  | dz  z  dz   z  | dz  z  }|t          || ‰d¦  «        k    sJ t          || ‰d¦  «        ¦   «         ‚|t          || g‰d¦  «        k    sJ ‚t          || ‰d¦  «        |k    sJ ‚d‰z  t          ‰dz   d	z   ¦  «        dz  z  Š|                     | t          || ¦  «        d         ¦  «                             ‰¦  «        sJ ‚dˆˆfd„t          || ¦  «        D ¦   «         v sJ ‚t          ‰|z   | z   | |g‰¦  «        t          |‰¦  «         dz
  k    sJ ‚t           |‰¦  «        t           |‰¦  «        ¦  «        z  ‰t          ‰¦  «        z  z
   |‰¦  «        ‰¦  «        ‰dz   t          ‰¦  «        z  t           |‰¦  «         ¦  «        z   |‰¦  «        dz   z  k    sJ ‚t           |‰¦  «        | t          ‰¦  «        z  z
   |‰¦  «        | g‰¦  «        | t          | ‰¦  «        z   t          ‰¦  «        z  k    sJ ‚t           |‰¦  «        | t          ‰¦  «        z  z
  |  |‰¦  «        g‰¦  «        |  t           |‰¦  «        ‰¦  «        t          ‰ ¦  «        z  z   k    sJ ‚t           |‰¦  «         |‰¦  «        z
   |‰¦  «         |‰¦  «        g‰¦  «        t           |‰¦  «        ‰¦  «        k    sJ ‚| dt          ‰¦  «         d‰z  z   dz  z  t          ‰¦  «        dz  z   dt          ‰dz  ¦  «        z  z   z
  }t          || ‰¦  «        dt          ‰¦  «        z  t          ‰¦  «        z  dt          ‰¦  «        dz  z  z   dt          ‰¦  «        z  z   t          ‰dz  ¦  «        dz  z   dt          ‰¦  «        z  ‰z  z   dt          ‰¦  «        z  ‰dz  z  z
  d‰dz  z  z   k    sJ ‚d S )NÚxT)ÚrealÚyÚtÚfÚgé   é   éýÿÿÿé   é   é   é   r   c                 ób   •— g | ]+}|                      ‰d ¦  «                             ‰¦  «        ‘Œ,S )r-   )ÚdiffÚequals)Ú.0ÚsolÚexplicitr#   s     €€ú\/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/geometry/tests/test_util.pyú
<listcomp>ztest_idiff.<locals>.<listcomp>   s3   ø€ ÐNÐNÐN¸�C—H’H˜Q ‘N”N×)Ò)¨(Ñ3Ô3ÐNÐNÐNó    iöÿÿÿé
   iìÿÿÿé   )r   r   r   r   Úsubsr    r2   r   r   r
   r   r   r	   r   )	r%   r&   r'   r(   ÚcircÚansÚfxyr5   r#   s	          @@r6   Ú
test_idiffr?      sz  øø€ Ýˆs˜ÐÑÔ€AÝˆs˜ÐÑÔ€AÝˆs˜ÐÑÔ€AÝ�‰Œ€AÝ�‰Œ€Aàˆa‰4�!�Q‘$‰;˜‰?€DØ
ˆQ‰$��1‘�Q˜‘T‘	˜A‘Ñ
˜q !™tÑ
#€CØ•%˜˜a  AÑ&Ô&Ò&Ð&Ð&­¨d°A°q¸!Ñ(<Ô(<Ñ&Ô&Ð&Ø•%˜˜q˜c 1 aÑ(Ô(Ò(Ð(Ð(Ð(Ý��q˜!˜QÑÔ 3Ò&Ð&Ð&Ð&Ø�1‘•T˜1˜a™4˜% !™)‘_”_ aÑ'Ñ'€HØ�8Š8�A•u˜T 1‘~”~ aÔ(Ñ)Ô)×0Ò0°Ñ:Ô:Ð:Ð:Ð:ØÐNÐNÐNÐNÐN½uÀTÈ1¹~¼~ÐNÑNÔNÐNÐNÐNÐNÝ��Q‘˜‘˜Q ˜F AÑ&Ô&­:°a¸Ñ+;Ô+;Ð*;¸aÑ*?Ò?Ð?Ð?Ð?Ý���1‘”�˜A˜A˜a™DœD™	œ	Ñ! A­¨A©¬¡JÑ.°°°!±´°aÑ8Ô8¸QÀ¹UÅCÈÁFÄF¹NÍ3ÐPQÐPQÐRSÑPTÔPTÈuÉ:Ì:Ñ<UÐWXÐWXÐYZÑW[ÔW[Ð^_ÑW_Ñ<`Ò`Ð`Ð`Ð`Ý���1‘”˜�C ™FœF™
Ñ" Q Q q¡T¤T¨1 I¨qÑ1Ô1°a½*ÀQÈÑ:JÔ:JÑ6JÍCÐPQÉFÌFÑ5RÒRÐRÐRÐRÝ���1‘”˜�C ™FœF™
Ñ" Q¨¨¨!©¬ I¨qÑ1Ô1°a°R½*ÀQÀQÀqÁTÄTÈ1Ñ:MÔ:MÍcÐSTÐRTÉgÌgÑ:UÑ5UÒUÐUÐUÐUÝ���1‘”˜˜˜!™œ‘˜q˜q ™tœt Q Q q¡T¤T˜l¨AÑ.Ô.µ*¸Q¸Q¸q¹T¼TÀ1Ñ2EÔ2EÒEÐEÐEÐEà
ˆs•S˜‘V”V�G˜a ™c‘M AÑ%Ñ%­¨A©¬°©	Ñ1°Aµd¸1¸R¹4±j´j±LÑ@Ñ
A€CÝ��a˜ÑÔ˜s¥3 q¡6¤6™z­#¨a©&¬&Ñ0°1µS¸±V´V¸Q±Y±;Ñ>Ø	�#ˆa‰&Œ&‰ñ Ý˜˜"™‘:”:˜a‘<ñ  Ø"$¥S¨¡V¤V¡)¨A¡+ñ .Ø02µ3°q±6´6±	¸!¸Q¹$±ñ ?ØACÀAÀqÁDÁñ Iò Ið Ið Ið Ið Ið Ir8   c            	      óž  — t          t          dd¦  «        ¦  «        g k    sJ ‚t          t          d„ ¦  «         t          t	          dd¦  «        t	          dd¦  «        t          dd¦  «        d¬	¦  «        t          dd¦  «        t	          dd¦  «        gk    sJ ‚t          t          dd¦  «        t	          dd¦  «        t	          dd¦  «        d¬	¦  «        t          dd¦  «        t	          dd¦  «        gk    sJ ‚t          t          dd¦  «        t	          dd¦  «        t	          dd¦  «        t          dd
¬¦  «        d¬	¦  «        t          dd¦  «        t	          dd¦  «        gk    sJ ‚d} t          t          t          dd¦  «        t          dd¦  «        ¦  «        t          t          dd¦  «        | d¬¦  «        d¬	¦  «        d         j	        }|t          j        t          ddd¬¦  «        j	        ¦  «        k    sJ ‚t          dd¦  «        } t          t          t          dd¦  «        t          dd¦  «        ¦  «        t          t          dd¦  «        | d¬¦  «        d¬	¦  «        d         j	        }|t          j        t          ddd¬¦  «        j	        ¦  «        k    sJ ‚|d         j        dk    sJ ‚|d         j        dk    sJ ‚d S )Nr   c                  ó>   — t          t          dd¦  «        d¦  «        S ©Nr   r-   )r   r   © r8   r6   ú<lambda>z#test_intersection.<locals>.<lambda>+   s   € �l­5°°A©;¬;¸Ñ:Ô:€ r8   ©r   r   ©r)   r   )éÿÿÿÿr   )r,   r   )r   r,   T)Úpairwiser,   )Úslopeg      @gü©ñÒMbP?rG   g-Cëâ6J?g333333û¿g       @)ÚcenterÚhradiusÚvradiusgjä6éÜgG?g˜°p÷ÿÿÿ¿F)Úevaluater*   r/   é5   r:   )r   r   r!   Ú	TypeErrorr   r   r   r   r   ÚcoordinatesÚpytestÚapproxr   Ú_prec)ÚRÚcÚc2s      r6   Útest_intersectionrW   )   sD  € Ý�˜a ™œÑ$Ô$¨Ò*Ð*Ð*Ð*Ý
�9Ð:Ð:Ñ;Ô;Ð;ÝÝ�F˜FÑ#Ô#Ý�G˜VÑ$Ô$Ý�˜Ñ Ô ¨4ð1ñ 1ô 1õ 	ˆa�‰Œ•W˜V VÑ,Ô,ð5.ò.ð .ð .ð .õ
 Ý�˜Ñ Ô Ý�F˜FÑ#Ô#Ý�G˜VÑ$Ô$¨tð5ñ 5ô 5õ 	ˆa�‰Œ•W˜V VÑ,Ô,ð9.ò.ð .ð .ð .õ
 Ý�˜Ñ Ô Ý�F˜FÑ#Ô#Ý�G˜VÑ$Ô$Ý�˜qÐ!Ñ!Ô!¨Dð	2ñ 2ô 2õ
 	ˆa�‰Œ•W˜V VÑ,Ô,ð6.ò	.ð .ð .ð .ð 	€AÝÝ•˜˜rÑ"Ô"Ý�F˜DÑ!Ô!ñ#ô #å�7 1 a™=œ=°!¸SÐAÑAÔAÈDð	Rñ 	Rô 	Rð STô	Uô Vað ð •”ÝÐ(Ð*;ÀeÐLÑLÔLÔXñZô Zò Zð Zð Zð Zõ 	ˆa�‰Œ€AÝ	Ý•˜˜rÑ"Ô"Ý�F˜DÑ!Ô!ñ#ô #å�7 1 a™=œ=°!¸SÐAÑAÔAÈDð
Rñ 
Rô 
Rð STô
Uô Vað ð •”ÝÐ(Ð*;ÀeÐLÑLÔLÔXñZô Zò Zð Zð Zð ZàˆQŒ4Œ:˜ÒÐÐÐØˆaŒ5Œ;˜"ÒÐÐÐÐÐr8   c                  ó  — t          t          d„ ¦  «         g d¢} t          | i ddi¤Žt          dd¦  «        t          dd¦  «        t          d	d¦  «        t          d
d¦  «        gt          dd¦  «        t          d
d¦  «        gfk    sJ ‚d S )Nc                  ó>   — t          t          dd¦  «        d¦  «        S rB   )r   r   rC   r8   r6   rD   z"test_convex_hull.<locals>.<lambda>P   s   € �k­%°°1©+¬+°qÑ9Ô9€ r8   ©)r,   rG   )r,   éþÿÿÿ)r-   rG   )éûÿÿÿr[   )é   éüÿÿÿÚpolygonFr\   r[   r,   rG   r-   r]   r^   )r!   rO   r   r   )Úpointss    r6   Útest_convex_hullra   O   s�   € Ý
�9Ð9Ð9Ñ:Ô:Ð:Ø<Ð<Ð<€FÝ˜Ð5 9¨eÐ"4Ð5Ð5Ý	��R‰Œ�' ! R™.œ.­'°!°R©.¬.½'À"Àb¹/¼/ÐJÝ	��R‰Œ�' " b™/œ/Ð*ð:,ò ,ð ,ð ,ð ,ð ,ð ,r8   c                  óv  — t          ddd¦  «        } |                      dd¦  «        }t          | |¦  «        t          dd¦  «        dz  k    sJ ‚t	          dd¦  «        } t	          dd	¦  «        }t          | |¦  «        t          d
t          d¦  «         dz   ¦  «        k    sJ ‚t          t          dd¦  «        t          dd¦  «        ¦  «        t          dd¦  «        dz  k    sJ ‚t          t          dd¦  «        t          dd¦  «        t          dd¦  «        ¦  «        t          dd¦  «        dz  k    sJ ‚d S )NrE   )r9   r   )r9   r9   r   r:   é(   r-   rF   )r)   r)   r,   r)   )r   Ú	translater   r   r   r   )ÚpÚqs     r6   Útest_centroidrg   W   s  € Ý�˜ Ñ*Ô*€AØ	�Š�A�rÑÔ€AÝ�A�q‰>Œ>�U 2 r™]œ]¨1™_Ò,Ð,Ð,Ð,Ý�˜ÑÔ€AÝ�˜ÑÔ€AÝ�A�q‰>Œ>�U 1¥t¨A¡w¤w h°¡lÑ3Ô3Ò3Ð3Ð3Ð3Ý•E˜!˜Q‘K”K¥ q¨!¡¤Ñ-Ô-µ°q¸!±´¸Q±Ò>Ð>Ð>Ð>Ý•E˜!˜Q‘K”K¥ q¨!¡¤­e°A°q©k¬kÑ:Ô:½eÀAÀq¹k¼kÈ!¹mÒKÐKÐKÐKÐKÐKr8   c            
      óª  ‡— ddl m}  ddlm} t          t
          fD �]õ}|t          k    rt          Šnt          Št          t          ˆfd„¦  «         t          dd¦  «        t          dd¦  «        t          dd¦  «        g}t          dd¦  «        t          dd¦  «        t          dd¦  «        g}t          dd¦  «        t          dd¦  «        t          dd¦  «        g}t          dd¦  «        t          dd¦  «        t          d	d¦  «        g}t          dd¦  «        t          dd¦  «        t          d
d¦  «        g}t          dd¦  «        t          dd¦  «        t          dd¦  «        t          d
d¦  «        g}t          dd¬¦  «        }	d„ |	df|	dz   df|	dz   dffD ¦   «         }
|||||||
fD ]{} |d„  |t          |¦  «        d¦  «        D ¦   «         ¦  «        }t           ‰|Ž ¦  «        d         x}\  }}|                     |¦  «        |k    sJ ‚|t          |¦  «        k    sJ ‚Œ|t          ¦   «         }t!          |¦  «        dk    rJ|                     t           | dd¦  «         | dd¦  «        ¦  «        ¦  «         t!          |¦  «        dk    °Jt          |¦  «        } |d„  ||d¦  «        D ¦   «         ¦  «        }t           ‰|Ž ¦  «        d         x}\  }}|                     |¦  «        |k    sJ ‚|t          |¦  «        k    sJ ‚�Œ÷t          dd¦  «        t          dd¦  «        t          t$          j        t)          d¦  «        dz  ¦  «        }}}d„  ||||fd¦  «        D ¦   «         }t          |||¦  «        |k    sJ ‚t          |||¦  «        |k    sJ ‚g d¢}t          |Ž t          dd¦  «        t          dd	¦  «        fhk    sJ ‚g d¢}t          |Ž t          dd¦  «        t          dd¦  «        fhk    sJ ‚t          dd¦  «        t          dd¦  «        t          dd¦  «        fhk    sJ ‚t          t          d„ ¦  «         d S )Nr   )Úrandint)Úsubsetsc                  óT   •—  ‰ t          dd¦  «        t          dd¦  «        ¦  «        S )Nr   ©r   )Úfuncs   €r6   rD   z5test_farthest_points_closest_points.<locals>.<lambda>l   s#   ø€  4 4­°°1©¬µw¸qÀ!±}´}Ñ#EÔ#E€ r8   r-   r,   r)   r9   r*   rG   r#   T)Úpositivec                 ó,   — g | ]}t          |¦  «        ‘ŒS rC   rl   )r3   Úas     r6   r7   z7test_farthest_points_closest_points.<locals>.<listcomp>|   s   € ÐBÐBÐB˜A�W�Q‰ZŒZÐBÐBÐBr8   c              3   óF   K  — | ]\  }}|                      |¦  «        V — Œd S ©N©Údistance©r3   ÚiÚjs      r6   ú	<genexpr>z6test_farthest_points_closest_points.<locals>.<genexpr>   s0   è è € ÐFÐF¡d a¨�A—J’J˜q‘M”MÐFÐFÐFÐFÐFÐFr8   é   éd   c              3   óF   K  — | ]\  }}|                      |¦  «        V — Œd S rr   rs   ru   s      r6   rx   z6test_farthest_points_closest_points.<locals>.<genexpr>Š   s0   è è € Ð=Ð=¡$ ! Q�—
’
˜1‘”Ð=Ð=Ð=Ð=Ð=Ð=r8   c                 ó6   — h | ]\  }}t          ||f¦  «        ’ŒS rC   )r   ru   s      r6   ú	<setcomp>z6test_farthest_points_closest_points.<locals>.<setcomp>’   s8   € ð +ð +ð +ÙˆAˆqõ ˜A˜q˜6Ñ"Ô"ð +ð +ð +r8   )©r,   r,   )r,   r)   )r-   r,   )r\   r)   )r]   r*   r\   r]   rZ   r[   r^   r~   rE   c                  ó    — t          d¦  «        S )Nr~   )r   rC   r8   r6   rD   z5test_farthest_points_closest_points.<locals>.<lambda>    s   € �¨vÑ6Ô6€ r8   )Úsympy.core.randomri   Úsympy.utilities.iterablesrj   ÚminÚmaxr   r   r!   Ú
ValueErrorr   r   ÚsetÚlistrt   r   ÚlenÚaddr   ÚHalfr   )ri   rj   ÚhowÚp1Úp2Úp3Úp4Úp5Údupr#   Úsr`   Údr=   rp   ÚbrU   rm   s                    @r6   Ú#test_farthest_points_closest_pointsr”   b   s£  ø€ Ø)Ð)Ð)Ð)Ð)Ð)Ø1Ð1Ð1Ð1Ð1Ð1å•Sˆzð '+ñ '+ˆØ•#Š:ˆ:Ý!ˆDˆDå"ˆDå�zÐEÐEÐEÐEÑFÔFÐFõ �a˜‰mŒm�W Q¨™]œ]­G°A°q©M¬MÐ:ˆå�a˜‰mŒm�W Q¨™]œ]­G°A°q©M¬MÐ:ˆå�a˜‰mŒm�W Q¨™]œ]­G°A°r©N¬NÐ;ˆå�a˜‰mŒm�W Q¨™]œ]­G°A°q©M¬MÐ:ˆå�a˜‰mŒm�W Q¨™]œ]­G°B¸©N¬NÐ;ˆå�q˜!‰}Œ}�g a¨™mœm­W°Q¸©]¬]½GÀBÈ¹N¼NÐKˆå�3 Ð&Ñ&Ô&ˆØBÐB 1 a &¨1¨q©5°!¨*°q¸1±u¸a°jÐ!AÐBÑBÔBˆà˜2˜r 2 r¨3°Ð2ð 	/ð 	/ˆFØ�ÐFÐF¨g¨gµc¸&±k´kÀ1Ñ.EÔ.EÐFÑFÔFÑFÔFˆAÝ˜d˜d F˜mÑ,Ô,¨QÔ/Ð/ˆC‘$�!�QØ—:’:˜a‘=”= AÒ%Ð%Ð%Ð%Ø�/¨#Ñ.Ô.Ò.Ð.Ð.Ð.Ð.õ ‘”ˆÝ�&‰kŒk˜QÒÐØ�JŠJ•w˜w˜w q¨#™œ°°¸¸3±´Ñ@Ô@ÑAÔAÐAõ �&‰kŒk˜QÒÐå�f‘”ˆØˆCÐ=Ð=¨'¨'°&¸!Ñ*<Ô*<Ð=Ñ=Ô=Ñ=Ô=ˆÝ˜$˜$ ˜-Ñ(Ô(¨Ô+Ð+ˆ‰dˆa�Ø�zŠz˜!‰}Œ} Ò!Ð!Ð!Ð!Ø•o cÑ*Ô*Ò*Ð*Ð*Ð*Ñ*õ 	��1‰Œ•w˜q !‘}”}¥g­a¬fµd¸1±g´g¸a±iÑ&@Ô&@ð €q€Að+ð +Ø�G˜Q  1˜I qÑ)Ô)ð+ñ +ô +€Cå˜!˜Q Ñ"Ô" cÒ)Ð)Ð)Ð)Ý˜1˜a Ñ#Ô# sÒ*Ð*Ð*Ð*ð 8Ð7Ð7€FÝ˜FÐ#Ý	��Q‰Œ�  Q™œÐ(ð(*ò *ð *ð *ð *à<Ð<Ð<€FÝ˜FÐ#Ý	��R‰Œ�' " b™/œ/Ð*ð(,ò ,ð ,ð ,ð ,å˜6 6Ñ*Ô*Ý	��A‰Œ�  1™œÐ&ð/(ò (ð (ð (ð (å
�:Ð6Ð6Ñ7Ô7Ð7Ð7Ð7r8   c                  óÌ  — t          t          ddd¦  «        t          ddd¦  «        ¦  «        } t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t          t          ddd¦  «        t          ddd¦  «        ¦  «        }t          t          dd¦  «        t          dd¦  «        ¦  «        }t	          | ||¦  «        dk    sJ ‚t	          | |¦  «        dk    sJ ‚d S )	Nr/   r   r,   rG   r[   r-   é	   F)r   r   r   r   r   )rp   r“   rU   r’   s       r6   Útest_are_coplanarr—   £   sÔ   € Ý�w�q˜!˜QÑÔ¥¨¨B°Ñ!2Ô!2Ñ3Ô3€AÝ�w�q˜"˜aÑ Ô ¥'¨!¨Q°Ñ"2Ô"2Ñ3Ô3€AÝ�w�q˜"˜aÑ Ô ¥'¨!¨R°Ñ"3Ô"3Ñ4Ô4€AÝ�W�Q˜‰]Œ]�G A q™MœMÑ*Ô*€Aå˜˜1˜aÑ Ô  EÒ)Ð)Ð)Ð)Ý˜˜1ÑÔ Ò&Ð&Ð&Ð&Ð&Ð&r8   )0rQ   Úsympy.core.numbersr   Úsympy.core.functionr   r   Úsympy.core.singletonr   Úsympy.core.symbolr   Úsympy.functionsr   r	   r
   r   r   r   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.geometryr   r   r   r   r   r   r   r   r   r   r   r   Úsympy.geometry.utilr   r   r   r   r   Úsympy.solvers.solversr    Úsympy.testing.pytestr!   r?   rW   ra   rg   r”   r—   rC   r8   r6   ú<module>r¢      sä  ðØ €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø "Ð "Ð "Ð "Ð "Ð "Ø $Ð $Ð $Ð $Ð $Ð $Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9ð:ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :ð :à eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eÐ eØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðIð Ið Ið4#ð #ð #ðL,ð ,ð ,ðLð Lð Lð>8ð >8ð >8ðB'ð 'ð 'ð 'ð 'r8   