
    sgg                     |   d dl mZ d dlmZmZmZ d dlm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 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mZmZm Z m!Z!m"Z" d dl#m$Z$m%Z% d dl&m'Z' d dl(m)Z) d dlm*Z* d Z+d Z,e%d        Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5e%d        Z6d Z7d Z8d Z9d Z:d  Z;d! Z<d" Z=d# Z>y$)%    )expand)Rationaloopi)Eq)S)Symbolsymbols)Abs)sqrt)sec)	Segment2D)Point2D)CircleEllipseGeometryErrorLinePointPolygonRayRegularPolygonSegmentTriangleintersection)raisesslow)	integrate)
elliptic_e)Maxc                  L   ddl m} m} t        t	        dd      dd      }t        |j                  d            t        |  |z   dz   dz  dz  | |z   dz
  dz  dz  z   dz
        k(  sJ t        t	        dd      d	d      }t        |j                  d            t        |  |z   dz  dz  | |z   dz  d
z  z   dz
        k(  sJ t        t	        dd      dd      }t        |j                  d            t        d| z  |z   dz
  dz  dz  | d|z  z   dz
  dz  dz  z   dz
        k(  sJ y )Nr   xy         )_slope                            )	sympy.abcr"   r#   r   r   strequation)r"   r#   e1e2e3s        T/var/www/html/venv/lib/python3.12/site-packages/sympy/geometry/tests/test_ellipse.py!test_ellipse_equation_using_sloper9      s7   	q!a	#Br{{!{$%qb1fqj1_Q->!a%!)aPRAR-RUV-V)WWWW	q!a	#Br{{!{$%qb1fq[]a!eaZ]-JQ-N)OOOO	q!a	#Br{{!{$%bdQhlQ->r-AQ1Wr\TUDUVYDY-Y\]-])^^^^    c            
         ddl mmmmm} m}m} t        dz  dz  z   dz  z   dz  z   dz
        t        t        t        d      dz  d      t        d	      dz        k(  sJ t        dz  dz  z   d
z  z   dz  z   dz         t        t        dd      d      k(  sJ t        dz  dz  z   d
z  z   dz  z   dz   dd      t        t        dd      d      k(  sJ t        dz  dz  z   dz
        t        t        dd      d      k(  sJ t        dz  dz  z         t        t        dd      d      k(  sJ t        dz  dz  z   dd      t        t        dd      d      k(  sJ t        dz  dz  z   d
z  z   dz         t        t        dd      d      k(  sJ t        dz  dz  z   d
z  z   dz         t        t        dd      d      k(  sJ t        dz
  dz  dz  z   dz
        t        t        dd      d      k(  sJ t        d
dz  z  d
dz  z  z   d
z  z   dz  z   dz
        t        t        t        dd      t        dd            dt        d      z  d
z        k(  sJ t        t        dz  dz  z   d      d      t        t        dd      d      k(  sJ t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t        fd       t        t         fd       t#        dd      \  dz  z  dz  z  z   | z  z   |z  z   |z   }t%        t        |      j'                         z        |k(  sJ y )Nr   )r"   r#   abcder&   r%   r*   r(   r.   9   r-      r<   r=   r!   r,   r$   	      c                  J    t         dz  dz  z   d z  z   dz  z   dz         S )Nr&   r%   r*      r   r!   s   r8   <lambda>z+test_object_from_equation.<locals>.<lambda>.   s/    &A1qs):QqS)@2)E"F r:   c                  2    t         dz  dz  z   dz         S )Nr&   rC   rJ   r!   s   r8   rK   z+test_object_from_equation.<locals>.<lambda>/   s    &A1r)9": r:   c                  8    t         dz  dz  z   dz   dd      S )Nr&   rC   r<   r=   r!   rJ   r<   r=   s   r8   rK   z+test_object_from_equation.<locals>.<lambda>0   s!    &A1r)9SC"H r:   c                  2    t         dz  dz  z   dz         S )Nr&   r-   r(   rJ   r!   s   r8   rK   z+test_object_from_equation.<locals>.<lambda>1   s    &A!a"8 r:   c                  V    t        d dz  z  ddz  z  z   d z  z   dz  z   dz         S )Nr-   r&   r*   r(   rC   rJ   r!   s   r8   rK   z+test_object_from_equation.<locals>.<lambda>2   s8    &AFaAh)>1)Dqs)JR)O"P r:   c                  J    t         dz  dz  z   d z  z   dz  z   dz
        S )Nr&   r%   r*   r(   rJ   rN   s   r8   rK   z+test_object_from_equation.<locals>.<lambda>3   s/    vadQTkAaC&7!A#&=&AB r:   zx yTreal)r2   r"   r#   r<   r=   r>   r?   r@   r   r   r   r   r   r   r   r   
ValueErrorr
   r   r4   )r>   r?   r@   eqr<   r=   r"   r#   s       @@@@r8   test_object_from_equationrV   !   sy   ---!Q$A+!#ac)A-.&2B9OQUVXQY\]Q]2^^^^!Q$A+!#ac)B./6'"b/13MMMM!Q$A+!#ac)B.#=PRTVYZA[[[[!Q$A+"#vgamQ'????!Q$A+&A"::::!Q$A+,wq!}a0HHHH!Q$A+!#a'(F72q>1,EEEE!Q$A+!#a'(F71b>1,EEEE1q51*q!t#a'(F71a=!,DDDD!QT(Q1X%!+ac1B676'(SUWX/[cdfhi[jBkmnostuovmvwxmx;yyyy"QTAqD["%2fWQ]A6NNNN
=FG
=:;
=HI
=89
=PQ
:BC5t$DAq	
1a4!AqD&1Q3	1	$q	(B&*%%')*b000r:   c                  ;  *+,-. t        dd      -t        dd      .t        dd      } t        dd      }t        j                  }t        dd      }t        dd      }t        dd      }t	        |dd      }t	        ||d      +t	        |||      }t        |d      }t        |d      }	t        t        t        d	      t        d	            d      }
t        ||      }t        d
|z  d	      d|z  }}t        t        dd      t        d
d      t        dd            t        ||      k(  sJ t        t        dd      t        dd      t        d	d	            t        t        dd      t        d	d	            k(  sJ t        t        d        t        t        d        t        t        d        t        t        d        t	        d dd      j                  t        dd      k(  sJ ||k(  sJ |+k7  sJ ||k7  sJ ||v sJ ||v sJ ++v sJ d+vsJ |+vsJ |j                  t        k(  sJ +j                  t        d	z  k(  sJ |j                  t        |z  t!        |      z  k(  sJ |j                  |j                  k(  sJ |j"                  |j"                  k(  sJ |j"                  d	t        z  |z  k(  sJ |j%                         +j%                         cxk(  r| t         t        gk(  sJ  J |j%                  -      +j%                  -      cxk(  r-t         t        gk(  sJ  J |j&                  dk(  sJ |j(                  dk(  sJ |j*                  dk(  sJ |j,                  dk(  sJ t	        ddd      t        dd      k(  sJ t	        ddd      t/        t        dd      t        d	d            k(  sJ t	        ddd      t/        t        dd      t        dd	            k(  sJ t1        |      t1        t        t        dd      t        dd      t        dd                  k(  sJ ||v sJ t        ||      |v du sJ |j3                  |      dk(  sJ |j3                  t        dd            dkD  sJ |j5                  t/        t        dd      t        dd                  du sJ |j5                  t        ||            du sJ |j5                  t7        ||            du sJ |j5                  |      du sJ |j5                  t9        t        dd      t        dd      t        dd                  du sJ |j5                  t;        |dd
            du sJ |j5                  t;        |dd
            du sJ |j5                  t;        |dd
            du sJ +j=                         +v sJ t        t        -.fd       t        t        d      d      t        t        d       d      }}t	        t        dd      dd	      }|j>                  ||f||ffv sJ t        d	      d	z  }t        ||      }|t        |d      z   }|t        dd      z   }|jA                  |      |jA                  |      k(  sJ +jA                  |      t        t        tC        d
d	      d      t        tC        d
d	      t        j                              gk(  sJ +jA                  |      t        t        dd	      t        tC        dd      d	            gk(  sJ |jA                  |      t        |t        dt        d	                  gk7  sJ |jA                  |      g k(  sJ +jE                  t        ||t        |d      z               sJ +jE                  t        ||t        |d      z               sJ |jE                  t        |t        dt        d	                        sJ |jE                  t        t        dd      t        dd                  du sJ |jE                  |      du sJ |jE                  t	        t        d	d      dd            du sJ |jE                  t9        t        dd      t        dd      t        d	d                  du sJ |jE                  t9        t        dd      t        dd      t        d	d                  du sJ t        t        dd      d
      jE                  t        t        dd      d            du sJ t	        t        dd      d	d      jA                  t        dd            t        t        dd      t        tC        dd      tC        dd                  t        t        dd      t        tC        dd      tC        dd                  gk(  sJ t	        t        dd      d	d      jA                  t        d
d            t        t        d
d      t        dd            t        t        d
d      t        d
d            gk(  sJ t        t        dd      d	      jA                  t        d
d
            t        t        d
d
      t        dd
            t        t        d
d
      t        d
d            gk(  sJ t        t        dd      d	      jA                  t        dd	t        d	      z  z
  d            t        t        dd	t        d	      z  z
  d      t        dt        d	      z
  dt        d	      z
              t        t        dd	t        d	      z  z
  d      t        dt        d	      z
  dt        d	      z               gk(  sJ t        t        dd      d      jA                  t        dd            t        t        dd      t        tC        dd      tC        dd                  t        t        dd      t        dd            gk(  sJ t        t        dd      d      jA                  t        dd            t        t        dd      t        dd             t        t        dd      t        tC        dd      tC        d!d                  gk(  sJ d" ,,fd#}t	        t        dd      d	d      **jG                  t        dd            t        t        dd      t        dd            t        t        dd      t        dd            gk(  sJ *jG                  t        dd            t        t        dd      t        dd            gk(  sJ *jG                  d$      t        t        dd      t        dd            gk(  sJ  |*jG                  t        dd      d	      t        t        tC        d%d&      tC        dd            t        tC        d'd&      tC        d(d)                  t        t        tC        d*d+      tC        d,d-            t        tC        d.d+      tC        d/d	                  gd	      sJ t        t        d
      t        j                        }|*v sJ  |*jG                  |d	      t        t        tC        d0d1      tC        dd            t        tC        d2d1      tC        dd3                  t        t        tC        d&d4      tC        dd	            t        tC        d5d4      tC        d6d&                  gd	      sJ t	        d7d	d	t        d
      z  d
z        * |*jG                  dd	      t        t        tC        d8d      tC        d9d:            t        tC        d;d      tC        d	d                  t        t        dd      t        d	d<            gd	      sJ t	        d7-d      **jG                  -dz   df      t        t        dd      t        dd            gk(  sJ t        tH        *-fd=       d
}d}t	        |||      }|jJ                  t        |d	z  |d	z  z
        k(  sJ |jJ                  |z  }|jL                  |k(  sJ |jN                  |d|z
  z  k(  sJ |jP                  |d|z   z  k(  sJ |jR                  |d|d	z  z
  z  k(  sJ t	        |||      }|jJ                  t        |d	z  |d	z  z
        k(  sJ |jJ                  |z  }|jL                  |k(  sJ |jN                  |d|z
  z  k(  sJ |jP                  |d|z   z  k(  sJ t        t        dd>      t        dd            }t        t        d>d      t        dd            }t        t        dd      t        dd            }t        t        d?d      t        dd@            }t        t        d	      d	z  t        d	      d	z        t        t        d	       d	z  t        d	       d	z        g}tU        +|      g k(  sJ tU        |t        dd            t        dd      gk(  sJ tU        ||      t        dd      gk(  sJ tU        ||      t        dd      gk(  sJ tU        ||      ||d   |d   gfv sJ tU        ||	      t        dd      t        dd      gk(  sJ tU        ||
      t        t        d	      d	z  t        d	      d	z        gk(  sJ |jU                  |      t        dd      gk(  sJ +jU                  |      g k(  sJ |jU                  t        t        dd	      d            t        dd      gk(  sJ |jU                  t        t        dd      d            g k(  sJ |jU                  t	        t        d	d      dd            t        dd      gk(  sJ |jU                  t	        t        dd      dd            g k(  sJ |jU                  t        d	d            g k(  sJ |jU                  |      |k(  sJ tU        t	        t        dd      d	d      t	        t        d
d      dd	            t        d	d      gk(  sJ tU        t        t        dd      d	      t        t        d
d      d            t        d	d      gk(  sJ tU        t        t        dd      d	      t        t        d d      d            g k(  sJ tU        t	        t        dd      dd(      t	        t        dd      ddA            t        dBddC      gk(  sJ tU        t	        t        dd      dd(      t	        t        dd      dDdA            g k(  sJ t        d7t        j                        jU                  tW        dEdFd$            t        tC        dd	      d      t        t        j                  d      gk(  sJ t        tX        +fdG       t        tX        +fdH       t        tX        +fdI       t        |d
      }t        |d      } t        t        dd      d      }!|jU                  |       g k(  sJ |jU                  |!      g k(  sJ |jU                  |      |k(  sJ t        d	      }tW        t        d|      t        d|       t        |d            }"tU        |"|      }#t[        |#      dk(  sJ t        dd      |#v sJ t        dd      |#v sJ t        |d	z  |d	z        |#v sJ t        |d	z  | d	z        |#v sJ t        t        dd      d      }$t	        t        dd      ddJ      }%tU        |$|%      t        dd      t        d>d      gt        d>d      t        dd      gfv sJ |%jA                  t        dd            g k(  sJ t	        t        dd      d
d	      }%|%jA                  t        d
d            t        t        d
d      t        d
dK            gk(  sJ t	        t        dd      dd@      }t	        t        d	d      dd-      +tC        dLd(      }&d	t        dM      z  d(z  }'t        |&|'d-z  z
  |&d	z  |'z         t        |&|'d-z  z   |&d	z  |'z
        g}(|jU                  +      |(k(  sJ t	        t        -.      dd-      +t        dM      }'t        |' dNz  |&z   |'tC        d	d(      z  |&d	z  z         t        |'dNz  |&z   |'tC        dOd(      z  |&d	z  z         g}(|jU                  +      D cg c]  }|j]                  -d	.di       c}|(k(  sJ |jE                  |jA                  |t        |d      z         d         sJ t	        dPd
d	      **jA                  t        d@d            t        t        d@d      t        dd            t        t        d@d      t        tC        dQd      tC        dRd                  gk(  sJ t	        d7dd	      **j_                  *j                        sJ *j_                  *j                  t        d*j,                  tC        dd@      z
        z         sJ *j_                  *j                  t        *j*                  tC        dd@      z
  d      z         sJ *j_                  *j                  t        *j*                  d      z         du sJ *j_                  *j                  t        *j*                  tC        dd@      z   d      z         du sJ t	        d7d	d      **j_                  *j                        sJ *j_                  *j                  t        d*j,                  tC        dd@      z
        z         sJ *j_                  *j                  t        *j*                  tC        dd@      z
  d      z         sJ *j_                  *j                  t        *j*                  d      z         du sJ *j_                  *j                  t        *j*                  tC        dd@      z   d      z         du sJ |j_                  t        dd            du sJ |j_                  t        dSdT            du sJ *ja                  d	d
      t	        d7dd
      k(  sJ *ja                  d
d      t	        d7dd      k(  sJ *jc                  t              *k(  sJ *jc                  t        dP      t	        t        d	d      d	d      k(  sJ t        tH        *fdU       t        t        dd      d      })|)jc                  t        d	z        t        t        dd      d      k(  sJ |)jc                  t        d
z        t        t        t        j                  t        d
      d	z        d      k(  sJ |)jc                  t        d
z  t        dd            t        t        dd      d      k(  sJ |)jc                  t        d
z  t        dd            t        t        t        j                  t        d
      d	z  z   t        j                  t        d
      d	z  z         d      k(  sJ y c c}w )VNr"   TrR   r#   ty1r   r$   r&   r%   r,   r*   c                      t        d d d d      S Nr$   r    r:   r8   rK   z#test_ellipse_geom.<locals>.<lambda>R   s    wtT4; r:   c                      t               S Nr\   r]   r:   r8   rK   z#test_ellipse_geom.<locals>.<lambda>S   s    wy r:   c                  ,    t        t        dd            S Nr   r   r   r]   r:   r8   rK   z#test_ellipse_geom.<locals>.<lambda>T   s    &q!"5 r:   c                  B    t        t        d      t        d      z        S )Nr"   r#   )r   r	   r]   r:   r8   rK   z#test_ellipse_geom.<locals>.<lambda>U   s    &VC[)@"A r:   r$   r$   rF   F      g      ?c                  R    t        t               dd      j                  d      S )Nr$   r"   )	parameter)r   r   arbitrary_pointr!   s   r8   rK   z#test_ellipse_geom.<locals>.<lambda>   s%    wuQ{Aq9IITWIX r:      M   rC      !      (      r-   rG   Z   c                     t        | j                  |j                  z
        d| z  k  xr) t        | j                  |j                  z
        d| z  k  S )zF tests whether l1 and 12 are within 10**(-prec)
        of each other 
   )absp1p2)l1l2precs      r8   lines_closez&test_ellipse_geom.<locals>.lines_close   sG     255255=!B$K/TC4Fte4TTr:   c                 D    t        fdt        | |      D              S )Nc              3   8   K   | ]  \  }} ||        y wr_   r]   ).0rv   rw   ry   rx   s      r8   	<genexpr>z=test_ellipse_geom.<locals>.line_list_close.<locals>.<genexpr>   s     IR;r2t,Is   )allzip)ll1ll2rx   ry   s     `r8   line_list_closez*test_ellipse_geom.<locals>.line_list_close   s    I3sC=IIIr:   r   r$   irI   i   S         r(   rB   i   iV@      )   ir   r   iG   irD   c                  0     j                  dz   df      S r[   )normal_lines)r@   r"   s   r8   rK   z#test_ellipse_geom.<locals>.<lambda>   s    Aqz(B r:   rr   g?g      @evaluateg+?)rF   r   r$   r   c                  0    t         t        dd            S )N)r   r   r   )r   r   r$   )r   r   r6   s   r8   rK   z#test_ellipse_geom.<locals>.<lambda>  s    l2tIy/IJ r:   c                  .    t         t        d            S )Nri   )r   r   r   s   r8   rK   z#test_ellipse_geom.<locals>.<lambda>  s    l2x|< r:   c                  0    t        j                   d      S r[   )r   r   r   s   r8   rK   z#test_ellipse_geom.<locals>.<lambda>	  s    g222q9 r:   r/   5   i  D   r.   r$   r&      r)   g333333?g?c                  4     j                  t        dz        S )Nr%   )rotater   )r@   s   r8   rK   z#test_ellipse_geom.<locals>.<lambda>P  s    A r:   )2r	   r   Halfr   r   r   r   r   r   r   r   rT   r   centerarear   rs   circumferenceplot_intervalminormajorhradiusvradiusr   hash__cmp__enclosesr   r   r   rh   focitangent_linesr   
is_tangentr   NotImplementedErrorfocus_distanceeccentricity	periapsisapoapsissemilatus_rectumr   r   	TypeErrorlensubsencloses_pointscaler   )/rX   rY   halfrt   ru   p4r5   r7   c1c2c3rv   cenradf1f2efvp1_1p1_2p1_3r   pr   r   e4eccrw   l3l4	pts_c1_l3csmallcbigcoutt1pointscircelipr<   r>   anscirr@   r6   ry   r"   r#   s/                                             @@@@@r8   test_ellipse_geomr   :   st   sAsAsA	4	 B66D	q!B	q!B	q!B	Q	B	T1	B	R	B	AB	AB	d1gtAw'	+B	b"B QtVQ4C%1+uQ{E!QK8F3<LLLL%1+uQ{E!QK8IgaQRmU\]^`aUb<cccc
:;<
:()
=56
=AB 4A%%q!4448O88O88O88O88O88O8B;;R<<77b==77bd??77beCGm###77bggr/////qtBw&&&!1!1!3CB3|CCCCCA""2"21"5E!bS"EEEEE88q==88q==::??::??61a E!QK///61a GE!QKq!$EEEE61a GE!QKq!$EEEE 8tF5A;aU1b\JKKKK8O8RLB5(((::b>Q::eAqk"Q&&& ;;wuT40%S/BCtKKK;;tB|$---;;s2r{#u,,,;;r?e###;;dD!5s#3U3_EGJNO O O;;~b#q12d:::;;~b!Q/0E999;;~b!Q/0E9992%%%
:XY 48QRy!!4B	q!a	#B77Bx"b**** 	Q!AA;DdADaDB2#3#3B#7777D!d5!Q+CU8TUWX>[\[a[aEb&c%ddddD!d5A;hq!na8P&Q%RRRRD!d4q$q'1B&C%DDDDB2%%%==dBtQ$78999==dBtQ$78999==dE!T!W$56777==eAqk5A;78EAAA==$$$==q!a34<<<==aU1b\5A;79<AB B B==aU1a[%1+68;@A A A%1+q!,,VE!QK-CDMMM5A;1%33E!QK@	eAqk5"b!18C3DE	F	%1+uXb!_hr1o>?	AA A A 5A;1%33E!QK@	eAqk5A;	'eAqk5A;)GHI I I%1+q!//a<	eAqk5A;	'eAqk5A;)GHI I I%1+q!//a!DG)mQ0GH	eA$q'	M1%uQa[!d1g+'F	G	%Ad1gIq
!5T!Wa$q'k#BC	GG G G %1+q!//a<	eAqk5"b!18Ar?C	D	%1+uQ{#	%% % % %1+q!//a<	eAqk5A;	'U1a[%B"b1ABC	EE E EUJ 	aQ"A>>%1+&	eAqk5A;	'eAqk5A;)GHI I I>>%1+&	eAqk5A;	'() ) )>>&!	eAqk5A;	'() ) )1>>%1+q9U8C$hr1o6hsB>OQYZ\^`Qa8bcU8B#Xb!_5uXb"=MxXZ\]7_`<bcdf f f 	d1gqvvA6M61>>!Q/U8D#&R(895$PSATV^_`bdVe;fgU8B#Xb!_5uXb"=MxX[]_O`7ab2defh h h 	1T!W9Q;'A1>>&!4U8C$hsB&78%b@QS[\]_aSb:cdU1b\5B<(7*+,. . . 	1A>>1q5!*%$uQ{E!QK*H)IIII
 BCEE	UE	"BUAXq%8 9999


e
#C??c!!!<<5!c'?***;;%S/)))%SAX"6666	UE	"BUAXq%8 9999


e
#C??c!!!<<5!c'?***;;%S/))) 
eArlE!QK	(B	eBmU1b\	*B	eBmU1a[	)B	eCmU1b\	*BtAwqy$q'!),eT!WHQJa
.KLIB2%%%E!QK(U1a[M999BE!QK=000BE!RL>111BI	!il/K#LLLLBE!QKq!#====BE$q'!)T!WQY$?#@@@@??25A;-///??2"$$$??6%1+q12uQ{mCCC??6%1+q12b888??75A;1565A;-GGG??75A;156"<<<??5A;'2---??2"$$$aQ2GE!QKA4NOTYZ[]^T_S````uQ{A.uQ{A0FGERSUVK=XXXuQ{A.uQ{A0FG2MMMaQ3WU1a[!S5Q 
CU+,- - -aQ3WU1a[%QT5UVZ\\\\&!&&!..&&)+hr1oq!5#3/55 5 5 9JK
9<=
99:B]F"a=D%1+q!Dt$***t$***v&&000QA	%1+uQ|U1a[	9B"b!Fv;!A;&   B<6!!!1ac?f$$$1qbdv%%%%1+q!D5A;2&Dd#
1+uR|	$uR|U1a[&ABC C CeAqk*b0005A;1%DeAqk*	eAqk5C=	)*+ + + 
q!a	$B	q!a	#BRA	$t*RAQqS!A#'"E!ac'1Q37$;
<C??2#%%%	q!a	#BT
A!BAhq"o-!34eAbD1HaQSUWHXFX[\]^[^F^6_
`C)+)<=AAFFAq!A;=DDD ==))"uR|*;<Q?@@@1A??5Q<(	eBlE!QK	(U2q\5"a(2q/BC	EE E E
 	1AAHH%%%AHHuQ		HQO0K'LLMMMAHHuQYY!R-H!'LLMMMAHHuQYY'::;uDDD	5Xa_4a88:=BC C C1AAHH%%%AHHuQ		HQO0K'LLMMMAHHuQYY!R-H!'LLMMMAHHuQYY'::;uDDD	5Xa_4a88:=BC C CU1a[)U222U3_-555771a=GFAq1111771a=GFAq111188B<188B75A;1#====
 67 q!a
 C::bdveAqk15555::bdveAFFDGAI&>BBBB::bdE!QK(F5A;,BBBB::bdE!QK(F5$q'!)9KQVVVZ[\V]^_V_M_3`bc,ddddQ >s   b7Aw:c                  ^   t        ddd       } | j                  t        d      dz  k(  sJ t        dd t        d      dz        }|j                  dk(  sJ t        d dt        d      dz        }|j                  dk(  sJ t        t        dd      dd      }|j                  dk(  sJ t        t        d        t        t        d        t        t        d	        t        d dd d      j                  dk(  sJ t        t        d
        t        t        d        t        t        d        y )Nr&   r$   )r   r   r   r%   r   r   r   c                  J    t        t        dd      dt        d      dz        S Nr%   r$   r&   r   )r   r   r   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>k  s"    '%1+qQRSTQUVWQW"X r:   c                  D    t        t        dd      dt        d            S )Nr%   r$   r,   r   )r   r   r   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>l  s    '%1+qsSTv"V r:   c                  f    t        t        dd      dt        j                  t        d      z
        S r   )r   r   r   Pir]   r:   r8   rK   z#test_construction.<locals>.<lambda>m  s$    '%1+qqttTUVWTXy"Y r:   c                       t        d d dd      S )Nr$   )r   r\   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>s  s    '$a"J r:   c                  2    t        t        dd      dd      S )Nr%   r$   rA   r   r   r   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>v  s    '%1+qQS"T r:   c                  2    t        t        dd      dd      S )Nr%   r$   re   r   r   r]   r:   r8   rK   z#test_construction.<locals>.<lambda>w  s    '%1+qQU"V r:   )	r   r   r   r   r   r   r   r   length)r5   r6   r7   r   s       r8   test_constructionr   [  s   	AD	9B??d1gai'''	DtAwqy	AB::??	qtAwqy	AB::?? 
q!aa	8B::?? =XY
=VW
=YZ 4D!$++q000
=JK =TU
=VWr:   c                     t        dd      } t        t        dd      | |       }t        d      t        d      }}t        dd      D ]Z  }|j	                         }|j                  ||      j                  t        ||f|j                              j                  d      rZJ  |j	                  d	      }|j                  ||      j                  t        ||f|j                              j                  d      sJ y )
NrY   TrR   r   rxryr,   r$   )seed)
r	   r   r   rangerandom_pointr4   r   r   argsequals)rY   r7   r   r   indrs         r8   test_ellipse_random_pointr   y  s    	4	 B	q!b"	%BD\6$<BQ{ IOO{{2r"''RHaff(=>EEaHHHI
 	QA;;r2##CR!&&$9:AA!DDDr:   c                  8    t        t        dd            dk(  sJ y )Nr   r&   zCircle(Point2D(0, 1), 2))reprr   r]   r:   r8   	test_reprr     s    vq!"&@@@@r:   c                     t        dd      } | j                  d      t        dd      k(  sJ | j                  d      t        dd      k(  sJ | j                  d      t        ddd      k(  sJ t        d	dd
      j                  dd
d      t        t        dd      dd      k(  sJ t        d	d      j                  dd
d      t        t        dd      dd      k(  sJ t        d	dd
      j                  d
d
d      t        t        dd      dd      k(  sJ t        d	d      j                  d
d
d      t        t        dd      d      k(  sJ t        t        dd      d      j                  t	        dd
      t	        dd
      d      t        d	d      k(  sJ t        d	d      j                  dd      t        dd      k(  sJ t        d	d      j                  d
d
      t        d	d      k(  sJ y )Nrd   r&   rF   )rF   r$   )r#   )r$   rF   )r&   r$   r*   r   r%   )r*   r,   rD   r   rE   r-   ir$   r,   )r   r   r   r   r   	translate)r>   s    r8   test_transformr     s   vqA772;&!,,,,77R7=F7A....771:A....61a &&q!V4b#1%& & &&!""1a0b#1%& & &61a &&q!V4b#1%& & &&!""1a0uR~q!" " "%C.!$**8Aq>8Aq>6Rvq  &!&&q!,vq  &!""1a(vq  r:   c                  j   t        t        dd      dd      } t        t        dd      dd      }t        t        dd      d      }t        t        dd      t        dd      t        dd            }| j                  dk(  sJ |j                  dk(  sJ |j                  dk(  sJ |j                  d	k(  sJ y )
Nr   r%   r,   r&   r.   rG   )rA   r   r%   r,   )r   r   rE   r,   )r.   r.   r&   r&   )r   r   r   bounds)r5   r6   r   r   s       r8   test_boundsr     s    	q!a	#B	q"q!	$B	aa	 B	b!eAqk5A;	7B99&&&99&&&99&&&99&&&r:   c                  `   t        d      } t        d      t        d| f      }t        ddd      }|j                  |j	                  |      j                   k(  sJ t        ddd	      j                  j	                  t        dd            j                   k(  sJ j                  j	                  t        dt                    j                   k(  sJ t        t        fd
       t        dd      j	                  t        dd            t        t        dd      d      k(  sJ y )Nr=   mr   sloper   r   )r&   r%   r$   r&   c                  <     j                  t        d            S )Nr   r   )reflectr   )r@   r   s   r8   rK   ztest_reflect.<locals>.<lambda>  s    		$vQ2G(H r:   r   rd   rF   )r	   r   r   r   r  r   r   r   r   r   r   )r=   lr   r@   r   s      @@r8   test_reflectr    s    sAsAaV1A	&&&	)B77rzz!}))))))1A66aiiV1 56;;;;;;66aiiV2 67<<<<<<
 HI&!$$T&&%9:fWQPQ]TV>WWWWr:   c                     t        t        dd      dd      t        t        dd      d      } j                  t        dd            du sJ j                  t        dd            du sJ j                        du sJ j                  t        d	d
d            du sJ j                  t        d	dd            du sJ | j                  t        ddd
            du sJ | j                  t        dd            du sJ | j                  t        dd            du sJ | j                  t	        dd            du sJ | j                  t	        dd            du sJ | j                  t	        dd            du sJ | j                  t	        dd            du sJ | j                  t	        dd            du sJ | j                  t        dd            du sJ j                  t        dd            du sJ j                  t        d	d            du sJ | j                  t        d	d            du sJ j                  t        dd            du sJ j                  t        dd            du sJ j                  t        dd            du sJ j                  t        dd            du sJ j                  t        dd             du sJ j                  t        d	d!            du sJ j                  t        dd"            du sJ j                  t        dd#            du sJ j                  t        d	d$d%            du sJ j                  t        d&d'd(            du sJ j                  t        ddd)            du sJ j                  t        ddd*            du sJ j                  t        dd+dd*            du sJ j                  t        d,ddd-            du sJ | j                  t        d,ddd-            du sJ j                  t        d	dd.d*            du sJ j                  t        d/d0d1            du sJ j                  t        d/d0d+d*            du sJ j                  t        dd2d3            du sJ | j                  t        d	d            du sJ j                  t        dd            du sJ j                  t        dd            du sJ j                  t        d	d$d%            du sJ j                  t        d&d'd(            du sJ j                  t        d,ddd-            du sJ | j                  t        d,ddd-            du sJ j                  t        d/d0d+d*            du sJ j                  t        dd2d3            du sJ t        t        fd4       t        t        fd5       y )6Nr   r%   r,   r&   r.   rG   FTr   r$   )r&   r.   )r0   r.   )rG   r.   )r   r.   )ir   )rA   r.   )rA   i)r   r/   )rE   r/   )rE   r   )r&   r,   )rE   r,   r&   r&   )r   rG   r   r%   r   )ri   ri   )rA   r   )rA   r,   )r%   r,   )rr   r   )rr   rr   rd   )gQgMbP)rA   r$   )r,   r,   )r,   r   )ii)ii)iir   )r   r,   )r   r   )rA   r   )r%   r   )rG   rG   )r%   ri   )r%   r   )r-   r,   )r,   rG   )r-   r   c                  <     j                  t        ddd            S ra   )r   r   r5   s   r8   rK   z!test_is_tangent.<locals>.<lambda>  s    bmmE!QN; r:   c                  8     j                  t        d            S )Nr,   )r   r   r  s   r8   rK   z!test_is_tangent.<locals>.<lambda>  s    bmmHQK8 r:   )
r   r   r   r   r   r   r   r   r   r   )r   r5   s    @r8   test_is_tangentr
    s   	q!a	#B	aa	 B==q!%...==q!%...==$$$==A./5888==A./4777==!Q/0D888==!,-555==+,444==Xz23u<<<==Xz23u<<<==Y12e;;;==Wh/0D888==VV,-555==01T999==12e;;;==01U:::==23u<<<==23u<<<==623u<<<==&12e;;;==&12d:::==gx01U:::==ff-.%777==g78EAAA==gw/0D888==9:eCCC==k:FG5PPP==&&9:eCCC==&&9:eCCC=='66BCuLLL==7FGDEMMM==7FGDENNN==@AUJJJ==(F;<EEE==(GVDENNN==9:eCCC==23u<<<==&12e;;;==&12d:::==9:eCCC==k:FG5PPP==7FGDEMMM==7FGDENNN==(GVDENNN==9:eCCC
9;<
989r:   c                       t        d      t        t        dd      dd        j                  d      dik(  sJ t	        t
         fd       y )NrX   r   r%   r,   r  c                  (     j                  d      S )N)r*   r   )parameter_valuer@   rX   s   r8   rK   z&test_parameter_value.<locals>.<lambda>  s    q00; r:   )r	   r   r   r  r   rT   r  s   @@r8   test_parameter_valuer    sJ    sAaQ"AVQ'Aq6111
:;<r:   c                  l   t        d      \  } }t        t        dd      dd      }dt        t	        d| dz  z
        | dz  z  | ddf      z  dz  }d	t        t	        d
|dz  z
        |dz  z  |ddf      z  dz  }dt	        d| dz  dz  z
        z  }t        t        ||| |f      | z  | ddf      }||j                         d   k(  sJ ||j                         d   k(  sJ ||j                         d   k(  sJ |j                  t        dd            }dt        z  dt        z  dt        z  f}||k(  sJ y )Nzx, yr   r,   r*   r(   rC   r&   r   rr      rD   r%   r$   r-   iD  iM  iX  )r
   r   r   r   r   second_moment_of_arear   )	r"   r#   r@   I_yyI_xxYI_xyr   t2s	            r8   test_second_moment_of_arear    sS   6?DAqaQ"Ayb1a4iA-2qz::1<Dyb1a4iA-2qz::1<D	$q1a49}
AYq1qb!*-a/!R<D1**,Q////1**,Q////1**,Q////	
	 	 q	,B
b&#b&#b&	!Br6M6r:   c                  j   t        dd      } t        dd      }|j                         dt        z  k(  sJ |j	                         dt        z  dt        z  fk(  sJ t        d| d	z        }|j                         t        | d
z  z  t        |       z  dz  t        | z  t        |       d
z  z  dz  z   k(  sJ |j	                         t        | d
z  z  t        d      z  t        | d
z  z  t        d      z  fk(  sJ t        dd      \  }}t        d||      }|j	                         t        |z  |d	z  z  t        d      z  t        |d	z  z  |z  t        d      z  fk(  sJ |j                         t        |d
z  z  |z  t        d      z  t        |z  |d
z  z  t        d      z  z   k(  sJ |j                  t        d	z        }|j	                         t        |d	z  z  |z  t        d      z  t        |z  |d	z  z  t        d      z  fk(  sJ |j                         t        |d
z  z  |z  t        d      z  t        |z  |d
z  z  t        d      z  z   k(  sJ t        ||fd	d      }|j	                         dt        z  dt        z  fk(  sJ |j                         dt        z  k(  sJ t        t        dd      d	d	      }|j	                         d	t        z  d	t        z  fk(  sJ |j	                  t        d	d	            d	t        z  d	t        z  fk(  sJ |j	                  d      d	t        z  d	t        z  fk(  sJ y )Nr?   T)positive)r%   rG   r(   i      )r&   rE   r&   r%   r   r+   za, b)r*   r-   r*   r-   r)   x   r   r  )r	   r   polar_second_moment_of_arear   section_modulusr   r   r
   r   r   r   )r?   r>   r<   r=   r@   s        r8   4test_section_modulus_and_polar_second_moment_of_arear    s   sT"AvqA((*d2g5553r63r6"2222vqsA((*bAgc!fnR.?"Q$s1vqy.QSBS.SSSS2ad71R5="QT'!B%-"@@@@6D)DAq1A2a419QqT>2ad719QqT>"BBBB((*bAgai!nr!tAqDy1~.MMMM	AA2ad719QqT>2a419QqT>"BBBB((*bAgai!nr!tAqDy1~.MMMMA1A2b5!B$-///((*c"f444aQ"A1R42,...U1a[)adAbD\999V$2qt444r:   c                     t        d      } t        d      }t        t        dd      | |      j                  d| z  t	        | dz  |dz  z
  | dz  z        z  k(  sJ t        t        dd      dd      j                  dt	        t        d      d	z        z  k(  sJ t        d d
d d      j                  dt        z  k(  sJ t        t        d dd      j                  j                  d      dz
        dk  sJ y )NMr   r   r*   r&   r,   r/   rE   rC   r$   r%   )r   r   r  gRe9@g|=)	r	   r   r   r   r   r   r   rs   evalf)r!  r   s     r8   test_circumferencer#    s    sAsA5A;1%33q1uz1PQ6TUYZTZ?^_ab^bJb?c7cccc5A;1%33rJqtby<Q7QQQQ 4D!$22ad::: wtQ2@@FFrJM^^_bggggr:   c                  :    t        dd      t        dd      k(  sJ y )Nr   r   r$   r&   rb   r]   r:   r8   test_issue_15259r%  -  s    &!a+++r:   c                     d} d}t        dd      }t        ||       }|j                  |j                  |      d         dk(  sJ |j                  j
                  j                  sJ |j                  j                  j                  sJ |j                  j                  sJ t        || d      }|j                  j
                  j                  sJ |j                  j                  j                  sJ |j                  j                  sJ y )Ng'F̴?)gmi$?gTF\?r   g?TFr   )
r   r   r   r   r   r"   is_Rationalr#   radiusis_Float)RiCiAr>   us        r8   test_issue_15797_equalsr.  1  s    	B	1Ba#$Ar2A<<*1-.$66688::!!!!88::!!!!88r2&A88::88::88r:   c                      t        d      \  } }}}t        | |f||      }|j                         t        | |ft	        ||            k(  sJ t        dd      j                         t        dd      k(  sJ y )Nx y a br%   r*   r(   )r
   r   auxiliary_circler   r   r"   r#   r<   r=   r@   s        r8   test_auxiliary_circler4  @  ss    #JAq!QA1A61a&#a)#<<<<&!--/6&!3DDDDr:   c            	         t        d      \  } }}}t        | |f||      }|j                         t        | |ft	        |dz  |dz  z               k(  sJ t        dd      j                         t        ddt	        d      z        k(  sJ y )Nr0  r&   r1  r(   )r
   r   director_circler   r   r3  s        r8   test_director_circler7  I  s    #JAq!QA1A&!QadQTk1B"CCCC&!,,.&472KKKKr:   c                     t        dd      \  } }}}t        d      \  }}t        t        ||      ||      }|j                  | |j                  j
                  z
  z  t        dd      z  }|j                  ||j                  j                  z
  z  t        dd      z  }||z   |j                  dz  |j                  dz  z
  t        dd      z  z
  }	|j                         |	k(  sJ t        t        dd      dd      }d| dz
  z  t        dd      z  }d|dz
  z  t        dd      z  }||z   d	t        dd      z  z
  }	|j                         |	k(  sJ y )
Nzx y h kTrR   za br&   r%   r$   r-      )
r
   r   r   r   r   r"   r   r   r#   evolute)
r"   r#   hkr<   r=   r@   r   r  Es
             r8   test_evoluter>  R  s4   $/JAq!Q5>DAqaQ"A
))Q^
$x1~	5B
))Q^
$x1~	5B
R199a<!))Q,.!Q??A99;!aQ"A
QU)hq!n	$B
QU)hq!n	$B
R2A&&A99;!r:   c                  `    t        t        dd      dd      } | j                  dd      dk(  sJ y )Nr$   r   r%   r&   z#FFAAFFz<ellipse fill="#FFAAFF" stroke="#555555" stroke-width="4.0" opacity="0.6" cx="1.00000000000000" cy="0" rx="3.00000000000000" ry="2.00000000000000"/>)r   r   _svgr  s    r8   test_svgrA  c  s<    	q!a	#B771i   %{  {  {  {r:   N)?
sympy.corer   sympy.core.numbersr   r   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr	   r
   $sympy.functions.elementary.complexesr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympy.geometry.liner   sympy.geometry.pointr   sympy.geometryr   r   r   r   r   r   r   r   r   r   r   sympy.testing.pytestr   r   sympy.integrals.integralsr   *sympy.functions.special.elliptic_integralsr   r   r9   rV   r   r   r   r   r   r   r  r
  r  r  r  r#  r%  r.  r4  r7  r>  rA  r]   r:   r8   <module>rP     s     1 1 $ " / 4 9 8 ) (4 4 4 4 . / A 8
_12 ]e ]e@	X<
EA,'
X1:h=   56h,EL"{r:   