
    Qi                         d dl mZmZmZmZ d dlmZmZmZ d dl	m
Z
mZmZ d dlmZmZ d dlmZmZmZmZ d dlmZ d Zd Zd	 Zd
 ZdS )    )R2R2_pR2_rR3_r)intcurve_seriesDifferentialWedgeProduct)symbolsFunction
Derivative)trigsimpsimplify)sqrtatan2sincos)Matrixc            	      L   t          dd          \  } }}}t          dd          \  }}t          d          }t          j        t	          j        | |g                    t          t          | dz  |dz  z             t          ||           g          k    sJ t	          j        t          j        ||g                    t          |t          |          z  |t          |          z  g          k    sJ t          j        t          ||g          t          t          |          | t          |          z  gt          |          |t          |          z  gg          k    sJ  |t          j        t          j                  }t	          j        | |g          }t          j        t          | dz  |dz  z             t          ||           g          }	|                    |           || |          k    sJ |                    |	           || |          k    sJ t	          j        | |g          }
t          j        ||g          }t          j        |
          | k    sJ t          j        |          |t          |          z  k    sJ t          j        |          |k    sJ t          j        |
          t          | dz  |dz  z             k    sJ t          j        |
          t          ||           k    sJ t          j        t          j        dz  z  t          j        dz  z   }|                    |
          | | dz  |dz  z   z  |dz  z   k    sJ |                    |          |dz  t          |          dz  z  |dz  t          |          z  z   k    sJ d S )Nzx0, y0, r0, theta0Trealzx, yf      )r
   r   r   point_to_coordsr   pointr   r   r   r   r   jacobianr   xyrcallrtheta)x0y0r0theta0r   r   r   field
p1_in_rectp1_in_polarp_rp_phs                /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/diffgeom/tests/test_function_diffgeom_book.pytest_functional_diffgeom_ch2r-      s^    !5DAAABB6%%%DAqA RH!5!5664AA&&b"6778 8 8 8 RL!9!9::2c&kk>2c&kk>2334 4 4 4 =F|,,
f++s3v;;	'#f++r#f++~)FG1I 1I I I I I AbdBDMMERH%%J*d2q52q5=115R==ABBK;;z""aaBii////;;{##qqRyy0000
*b"X

C
*b&\
"
"C499????4993v;;&&&&499????499RURU]++++++8C==E"bMM))))
RT1WrtQwA773<<2r1ur1u}-A55555773<<2q5Va/"a%F2CCCCCCCC    c            	         t          dd          \  } }t          dd          \  }}t          d          }t          d          }t          d          }t          j        | |g          } |t          j        t          j                  } |t          j                  t          j        z   |t          j                  t          j        z  z   }	|		                    |          	                    |          
                                 ||           t           || |          |           z   ||          t           || |          |          z  z   k    sJ t	          j        t          j        dz            	                    |          d| z  k    sJ t          j        dt          j        z  z   }
t          j        dz  d	t          j        z  z   }|
	                    |          	                    |          
                                d| z  d
|z  z   d	z   k    sJ t          j         t          j        z  t          j        t          j        z  z   }t          |t          j        ddg          d          }t          | \  }}t          fdt!          |          D                       sJ t          fdt!          |          D                       sJ d S )Nzx0, y0Tr   zx, y, tr   b1b2r   r         r   )coeffsc              3   l   K   | ].\  }}|t                                        |          k    V  /d S N)r   taylor_term.0itermts      r,   	<genexpr>z/test_functional_diffgeom_ch3.<locals>.<genexpr>G   [       M M-4QA""1a(((M M M M M Mr.   c              3   l   K   | ].\  }}|t                                        |          k    V  /d S r6   )r   r7   r8   s      r,   r=   z/test_functional_diffgeom_ch3.<locals>.<genexpr>I   r>   r.   )r
   r   r   r   r   r   r   e_xe_yr   doitr   r    r   zipall	enumerate)r"   r#   r   r   r   r0   r1   r)   s_fieldv_fieldvscircseriesseries_xseries_yr<   s                   @r,   test_functional_diffgeom_ch3rN   2   s   XD)))FBid+++GAq!A	$B	$B
*b"X

CabdmmGbhhrvo24/G==!!'',,1133rr
8 8qqRyy"%%8&(*2z!!B))R/H/H(H8I I I I I 6"$'??  %%2----
26A
a!BD&A771::C  %%''1R4!B$;?::::D5<"$rv+%DT1dj!Q&8&8FFFFfHh M M M M8A(8K8KM M M M M M M M M M M M8A(8K8KM M M M M M M M M Mr.   c            	         t          dd          \  } }}t          dd          \  }}}}t          dd          }t          d          }t          d          }	t          d	          }
t          j        | |g          }t	          j        ||g          } |	t
          j        t
          j                  t
          j        z   |
t
          j        t
          j                  t
          j	        z  z   }|
                    t
          j                  
                    |           |	| |          k    sJ |
                    t
          j                  
                    |           |
| |          k    sJ  |t
          j        t
          j                  }t          |          } |t
          j                  
                    |                                          t           || |          |           k    sJ  |t
          j                  
                    |                                          t           || |          |          k    sJ  |t
          j        t
          j                  }t          |          }t%           |t
          j                  
                    |                                                    t'          |          t           |||          |          z  t)          |          t           |||          |          z  |z  z
  k    sJ t%           |t
          j                  
                    |                                                    t)          |          t           |||          |          z  t'          |          t           |||          |          z  |z  z   k    sJ t          j        t
          j                  
                    |          d
k    sJ t          j        t
          j                  d
k    sJ t          j        t
          j                  
                    |          dk    sJ t          j        t
          j                  dk    sJ t
          j         t
          j        z  t
          j        t
          j        z  z   }t          j        |          
                    |                                          | k    sJ t          j	        |          
                    |          | k    sJ t          j        |          
                    |          dk    sJ t-          t          j        |          
                    |                    d
k    sJ |t
          j        z
  
                    |          
                    |          dk    sJ d S )Nzx0, y0, theta0Tr   zx, y, r, thetar$   )positiver   r0   r1   r3   r   )r
   r   r   r   r   r   r   r   dxdyr   r@   rA   r   rB   r   r    r!   r   r   r   drr   dthetae_theta)r"   r#   r%   r   r   r    r!   r$   r   r0   r1   r)   r*   f_field	s_field_rdf	s_field_prJ   s                     r,   test_functional_diffgeom_ch4rZ   M   s   -D999NBF-D999NAq!U		%	%	%BA	$B	$B
*b"X

C
*b&\
"
"CbrtnnRU"RRbd^^BE%99G==  &&s++rr"bzz9999==  &&s++rr"bzz9999"$I	i	 	 B2bf::C  %%'':aaBii+D+DDDDD2bf::C  %%'':aaBii+D+DDDDD"$!!I	i	 	 BBBrvJJ$$S))..0011FJqqV}}b111FJqqV}}f555b8	9: : : : BBrvJJ$$S))..0011FJqqV}}b111FJqqV}}f555b8	9: : : : 5==s##q((((5==A5==s##q((((5==AD5<"$rv+%D5;;S!!&&((RC////5;;S!!R''''5;;S!!Q&&&&BIdOO))#..//144442:$$Y//55c::a??????r.   c                  :   t          dd          \	  } }}}}}}}}| t          j        z  |t          j        z  z   }	|t          j        z  |t          j        z  z   }
t	          t          j        t          j                  } ||	|
          | |z  ||z  z
  k    sJ | t          j        z  |t          j        z  z   |t          j        z  z   }	|t          j        z  |t          j        z  z   |t          j        z  z   }
|t          j        z  |t          j        z  z   |t          j        z  z   }t	          t          j        t          j        t          j	                  } ||	|
|          t          dd| ||||||||g	                                          k    sJ t          dt                    \  }}} |t          j        t          j        t          j                  } |t          j        t          j        t          j                  } |t          j        t          j        t          j                  }|t          j        z  |t          j        z  z   |t          j	        z  z   }t!          |          }t!          |          }t!          |          }t!          |          }|t	          |t          j                  z
  t	          |t          j                  z
  t	          |t          j	                  z
  }|                    t          j        t          j                  dk    sJ d S )Nzu0:3, v0:3, w0:3Tr   r   za, b, c)clsr   )r
   r   r@   rA   r	   rQ   rR   r   e_zdzr   detr   r   r   zr   r   )u0u1u2v0v1v2w0w1w2urH   wpwabca_fb_fc_fr!   rT   dadbdcexprs                            r,   test_functional_diffgeom_ch6rw   w   s   )01C$)O)O)O&BBBBB
26	BrvIA
26	BrvIA	beRU	#	#B2a88r"ur"u}$$$$
48bk!BtxK/A
48bk!BtxK/A
48bk!BtxK/A	dgtw	0	0B2	1a 1a"b"b"b"b"!EFFJJLLM M M M iX...GAq!
!DFDFDF
#
#C
!DFDFDF
#
#C
!DFDFDF
#
#CK#dg+%DG3E%  F	c		B	c		B	c		BL
DG  #B0013?DG3L3LMD::dh))Q......r.   N)sympy.diffgeom.rnr   r   r   r   sympy.diffgeomr   r   r	   
sympy.corer
   r   r   sympy.simplifyr   r   sympy.functionsr   r   r   r   sympy.matricesr   r-   rN   rZ   rw    r.   r,   <module>r      s   2 2 2 2 2 2 2 2 2 2 2 2 F F F F F F F F F F 4 4 4 4 4 4 4 4 4 4 - - - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 ! ! ! ! ! !D D D@M M M6'@ '@ '@T/ / / / /r.   