
    \h                         S SK r S SKJr  S SKJrJr  S SKJr  S SKJ	r	  S SK
JrJrJrJrJrJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJr  S S	K J!r!J"r"J#r#J$r$J%r%  S S
K&J'r'  S SK(J)r)  S r*S r+S r,S r-S r.S r/g)    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                     [        SSS9n [        SSS9n[        SSS9n[        S5      n[        S5      nU S-  US-  -   S	-
  nS
U -  U S-  US-  -  S-   -  US-  -  nU[        XQU S5      :X  d   [        XQU S5      5       eU[        XQ/U S5      :X  d   e[        XQU S5      U:X  d   eSU -  [        U S-  * S	-   5      S-  -  nUR	                  U[        XQ5      S   5      R                  U5      (       d   eS[        XQ5       Vs/ s H#  oR                  U S5      R                  U5      PM%     sn;   d   e[        X-   U-   X/U 5      [        X 5      * S-
  :X  d   e[        U" U 5      [        U" U 5      5      -  U [        U 5      -  -
  U" U 5      U 5      U S-   [        U 5      -  [        U" U 5      * 5      -  U" U 5      S-   -  :X  d   e[        U" U 5      U[        U 5      -  -
  U" U 5      U/U 5      U[        X5      -   [        U 5      -  :X  d   e[        U" U 5      U[        U 5      -  -
  X" U 5      /U 5      U* [        U" U 5      U 5      [        U * 5      -  -   :X  d   e[        U" U 5      U" U 5      -
  U" U 5      U" U 5      /U 5      [        U" U 5      U 5      :X  d   eUS[        U 5      * SU -  -   S-  -  [        U 5      S-  -   S[        U S-  5      -  -   -
  n	[        XU 5      S[        U 5      -  [        U 5      -  S[        U 5      S-  -  -   S[        U 5      -  -   [        U S-  5      S-  -   S[        U 5      -  U -  -   S[        U 5      -  U S-  -  -
  SU S-  -  -   :X  d   eg s  snf )NxT)realytfg                  r   i
   i   )r   r   r   r   subsr    equalsdiffr   r   r
   r   r   r	   r   )
r#   r%   r&   r'   r(   circansexplicitsolfxys
             V/var/www/auris/envauris/lib/python3.13/site-packages/sympy/geometry/tests/test_util.py
test_idiffr;      s   sAsAsAAAa4!Q$;?D
Q$1QT	A
q!t
#C%A&&<dq!(<<&%c1a((((!Q3&&&1T1a4%!)_a''H88AuT~a()00::::uT~N~HHQN))(3~NNNNQFA&:a+;*;a*????1AaD	!AAJ.!a8QUCFN3PQRSPTu:<UWXYZW[^_W_<````1CF
"QqT1Iq1a*Q:J6JCPQF5RRRR1CF
"Q!Iq1aR*QqT1:McSTRTg:U5UUUU1!qtQqTlA.*QqT12EEEE
sSVGacMA%%A	1Ad1R4jL@
ACs3q6z#a&01SVQY;>	#a& ":a<  "$SV)A+ .023q6	!Q$ ?ACAqD I I I I Os   *M,c            
      b   [        [        SS5      5      / :X  d   e[        [        S 5        [        [	        SS5      [	        SS5      [        SS5      SS	9[        SS5      [	        SS5      /:X  d   e[        [        SS5      [	        SS5      [	        SS5      SS	9[        SS5      [	        SS5      /:X  d   e[        [        SS5      [	        SS5      [	        SS5      [        SS
S9SS	9[        SS5      [	        SS5      /:X  d   eSn [        [        [        SS5      [        SS5      5      [        [        SS5      U SS9SS	9S   R                  nU[        R                  " [        SSSS9R                  5      :X  d   e[        SS5      n [        [        [        SS5      [        SS5      5      [        [        SS5      U SS9SS	9S   R                  nU[        R                  " [        SSSS9R                  5      :X  d   eUS   R                  S:X  d   eUS   R                  S:X  d   eg )Nr   c                  .    [        [        SS5      S5      $ Nr   r-   )r   r        r:   <lambda>#test_intersection.<locals>.<lambda>+   s    l5A;:r@   r   r   r)   r   )r   )r,   r   )r   r,   T)pairwiser,   )slopeg      @gMbP?rE   g-C6J?g333333g       @)centerhradiusvradiusgj6gG?gpF)evaluater*   r/   5   r1   )r   r   r!   	TypeErrorr   r   r   r   r   coordinatespytestapproxr   _prec)Rcc2s      r:   test_intersectionrU   )   sz   a$***
9:;FF#GV$ 41 	aWVV,5.. . .
  FF#GV$t5 	aWVV,9.. . .
  FF#GV$q!D	2
 	aWVV,6.	. . . 	Ar"FD!#71a=!SAD	R ST	U VaU`  (*;eLXXZ Z Z Z 	aA	r"FD!#71a=!SAD
R ST
U VaU`  (*;eLXXZ Z Z ZQ4::a5;;"r@   c                      [        [        S 5        / SQn [        U 0 SS0D6[        SS5      [        SS5      [        S	S5      [        S
S5      /[        SS5      [        S
S5      /4:X  d   eg )Nc                  .    [        [        SS5      S5      $ r>   )r   r   r?   r@   r:   rA   "test_convex_hull.<locals>.<lambda>P   s    k%1+q9r@   )r,   rE   )r,   )r-   rE   )rZ   )   polygonFr[   rZ   r,   rE   r-   r\   r]   )r!   rM   r   r   )pointss    r:   test_convex_hullr`   O   sp    
99:<F59e"45	R'!R.'!R.'"b/J	R'"b/*:, , , ,r@   c                     [        SSS5      n U R                  SS5      n[        X5      [        SS5      S-  :X  d   e[	        SS5      n [	        SS	5      n[        X5      [        S
[        S5      * S-   5      :X  d   e[        [        SS5      [        SS5      5      [        SS5      S-  :X  d   e[        [        SS5      [        SS5      [        SS5      5      [        SS5      S-  :X  d   eg )NrC   )r0   r   )r0   r0   r   r1   (   r-   rD   )r)   r)   r,   r)   )r   	translater   r   r   r   )pqs     r:   test_centroidrf   W   s    *A	ArAA>U2r]1_,,,AAA>U1tAwhl3333E!QKq!-q!Q>>>E!QKq!eAqk:eAqk!mKKKr@   c            
      >  ^ SSK Jn   SSKJn  [        [
        4 GHZ  nU[        :X  a  [        mO[        m[        [        U4S j5        [        SS5      [        SS5      [        SS5      /n[        SS5      [        SS5      [        SS5      /n[        SS5      [        SS5      [        SS5      /n[        SS5      [        SS5      [        S	S5      /n[        SS5      [        SS5      [        S
S5      /n[        SS5      [        SS5      [        SS5      [        S
S5      /n[        SSS9n	U	S4U	S-   S4U	S-   S44 V
s/ s H  n
[        U
5      PM     nn
X4XVXxU4 H_  nU" S U" [        U5      S5       5       5      n[        T" U6 5      S   =nu  pU
R                  U5      U:X  d   eU[        U5      :X  a  M_   e   [        5       n[!        U5      S:w  a:  UR#                  [        U " SS5      U " SS5      5      5        [!        U5      S:w  a  M:  [        U5      nU" S U" US5       5       5      n[        T" U6 5      S   =nu  pU
R                  U5      U:X  d   eU[        U5      :X  a  GM[   e   [        SS5      [        SS5      [        [$        R&                  [)        S5      S-  5      npU" XU4S5       VVs1 s H  u  nn[        UU45      iM     nnn[        UUU
5      U:X  d   e[        UUU
5      U:X  d   e/ SQn[        U6 [        SS5      [        SS	5      41:X  d   e/ SQn[        U6 [        SS5      [        SS5      41:X  d   e[        SS5      [        SS5      [        SS5      41:X  d   e[        [        S 5        g s  sn
f s  snnf )Nr   )randint)subsetsc                  >   > T " [        SS5      [        SS5      5      $ )Nr   )r   )funcs   r:   rA   5test_farthest_points_closest_points.<locals>.<lambda>l   s    41wq!}#Er@   r-   r,   r)   r0   r*   rE   r#   T)positivec              3   H   #    U  H  u  pUR                  U5      v   M     g 7fNdistance.0ijs      r:   	<genexpr>6test_farthest_points_closest_points.<locals>.<genexpr>   s     F.EdaAJJqMM.E    "   d   c              3   H   #    U  H  u  pUR                  U5      v   M     g 7fro   rp   rr   s      r:   rv   rw      s     =*<$!

1*<rx   )r,   r,   )r,   r)   )r-   r,   )r[   r)   )r\   r*   r[   r\   rY   rZ   r]   r|   rC   c                      [        S5      $ )Nr|   )r   r?   r@   r:   rA   rl      s	    v6r@   )sympy.core.randomrh   sympy.utilities.iterablesri   minmaxr   r   r!   
ValueErrorr   r   setlistrq   r   lenaddr   Halfr   )rh   ri   howp1p2p3p4p5dupr#   asr_   dr6   brS   rt   ru   rk   s                      @r:   #test_farthest_points_closest_pointsr   b   s   )1Sz#:!D"DzEF amWQ]GAqM:amWQ]GAqM:amWQ]GArN;amWQ]GAqM:amWQ]GBN;q!}gamWQ]GBNK3&#$a&1q5!*q1uaj!AB!AAWQZ!ABrr2FFgc&k1.EFFAdFm,Q//C$!::a=A%%%/#....	 3 &kQJJwwq#3@A &kQf='&!*<==$-(++dazz!}!!!oc****O V 	1wq!}gaffd1gai&@ q Q1Iq)+)DAq Aq6")  +!Q"c)))1a#s*** 8FF#	QQ((* * * *<FF#	R'"b/*(, , , ,66*	A1&/( ( ( (
:67I C,+s   NNc                  V   [        [        SSS5      [        SSS5      5      n [        [        SSS5      [        SSS5      5      n[        [        SSS5      [        SSS5      5      n[        [        SS5      [        SS5      5      n[	        XU5      S:X  d   e[	        X5      S:X  d   eg )	Nr/   r   r,   rE   rZ   r-   	   F)r   r   r   r   r   )r   r   rS   r   s       r:   test_are_coplanarr      s    wq!QB!23Awq"a '!Q"23Awq"a '!R"34AWQ]GAqM*Aa E)))&&&r@   )0rO   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;   rU   r`   rf   r   r   r?   r@   r:   <module>r      s_     $ 6 " $ : : 9: : : : e e ' 'I4#L,L>8B'r@   