
    sgL                        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 d dlmZmZ d dlmZ d d	lmZmZ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" d dl#m$Z$m%Z%m&Z&m'Z'  ed      \  Z(Z)Z* ed      \  Z+Z,Z-Z. ed      \  Z/Z0Z1Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d Z<d Z=d Z>d  Z?d! Z@y")#    )raises
CoordSys3D)
BaseScalar)expand)pisymbols)coshsinh)sqrt)acosatan2cossin)zeros)ImmutableDenseMatrix)simplify)express)Point)Vector)AxisOrienterBodyOrienterSpaceOrienterQuaternionOrienterx y zza b c qzq1 q2 q3 q4c                     t        d      }  | j                  j                  | j                  j                   | j                  k(  sJ d| j                  z  d| j                  z  z   } |j                  |j                   |k(  sJ  | j
                  j                  | j
                  j                   | j
                  k(  sJ | j                  | j
                  z  | j                  | j                  z  z   | j                  | j                  z  z   } |j                  |j                   |k(  sJ  | j                  j                  | j                  j                   | j                  k(  sJ y )NA      )
r   xfuncargsyijzkorigin)r   exprvs      W/var/www/html/venv/lib/python3.12/site-packages/sympy/vector/tests/test_coordsysrect.pytest_func_argsr-      s   3A13388QSSXX!##%%%QSS51QSS5=D499dii D(((13388QSSXX!##%%%	ACC!##acc'ACCG#A166166?a188==!((--(AHH444    c                  b    t        d      } t        d      }|| k(  sJ t        d      }| |k7  sJ y )Nr   Br   )r   A1r0   s      r,   test_coordsys3d_equivalencer2   $   s3    3A	CB7N73A6M6r.   c                     t        d      } t        t        | j                        }t	        t        t
        t        d      }t        t        t
        t        d      }t        t        t        t        t              }|j                  |       t        t        t              t!        t              dgt!        t               t        t              dgg dg      k(  sJ |j                         t        t        t
              t        t              z  t!        t              t!        t
              z  t        t              z  t!        t              t        t              z  z   t!        t              t!        t              z  t!        t
              t        t              z  t        t              z  z
  gt!        t               t        t
              z  t!        t               t!        t
              z  t!        t              z  t        t              t        t              z  z   t!        t              t        t              z  t!        t
              t!        t              z  t        t              z  z   gt!        t
              t!        t               t        t
              z  t        t              t        t
              z  gg      k(  sJ |j                         t        t        t
              t        t              z  t!        t              t        t
              z  t!        t
               gt!        t              t!        t
              z  t        t              z  t!        t              t        t              z  z
  t!        t              t!        t
              z  t!        t              z  t        t              t        t              z  z   t!        t              t        t
              z  gt!        t              t!        t              z  t!        t
              t        t              z  t        t              z  z   t!        t               t        t              z  t!        t
              t!        t              z  t        t              z  z   t        t              t        t
              z  gg      k(  sJ |j                         t        t        dz  t        dz  z   t        dz  z
  t        dz  z
  dt        z  t        z  dt        z  t        z  z   dt        z  t        z  dt        z  t        z  z   gdt        z  t        z  dt        z  t        z  z   t        dz  t        dz  z
  t        dz  z   t        dz  z
  dt        z  t        z  dt        z  t        z  z   gdt        z  t        z  dt        z  t        z  z   dt        z  t        z  dt        z  t        z  z   t        dz  t        dz  z
  t        dz  z
  t        dz  z   gg      k(  sJ y )Nr   123r   )r   r         )r   r   ar(   r   bcr   r   q1q2q3q4rotation_matrixMatrixr   r   )r   axis_orienterbody_orienterspace_orienter
q_orienters        r,   test_orientersrE   ,   s   3A ACC(M Aq%0M"1aE2N#BB3J((+v
a&#a&!
a&#a&!7 0    ((*f
a&Q-#a&Q-A.QA>
a&Q-#a&Q-A.
.	0
a&Q#a&QA.QA>	QAQAs1v-	-	/QQAQA	 6! /" " " " ))+v	QAAs1vc!fW5	QAs1v	As1v	-	QAs1v	As1v	-s1vc!f}	>	QAQAs1v-	-Aws1v~	QAs1v	0"1vc!f}	.	7/ 00 0 0 0 %%'6	QQQ	Q	&"R!B$r'(9	BrAbDG			BrAbDG	RURU]RU2RU:	
2b1R47			
2b1R47		BrAbDG	RURU]RU2RU:	<3= ,> > > >r.   c                  6   t        d      } t        d| dd      | j                  k(  sJ t        d| dd      | j                  k(  sJ t        d| d	d
      | j                  k(  sJ t        d| dd      j                         | j                  j                         k(  sJ t        | j                  t              r4t        | j                  t              rt        | j                  t              sJ | j                  | j                  z  | j                  | j                  z  k(  sJ | j                  |       | j                  | j                  | j                  | j                  | j                  | j                  ik(  sJ | j                  j                  | k(  sJ | j                  j                  | j                        dk(  sJ | j                  dt        | j                        }|j                  |       |j                  | j                  |j                  | j                   t        t              z  | j                  t        t              z  z   |j                  | j                  t        t              z  | j                  t        t              z  z   ik(  sJ | j                  |      | j                  |j                  t        t              z  |j                  t        t              z  z
  | j                  |j                  t        t              z  |j                  t        t              z  z   | j                  |j                  ik(  sJ t        |j                  | d      | j                  t        t              z  | j                  t        t              z  z   k(  sJ t        |j                  | d      | j                   t        t              z  | j                  t        t              z  z   k(  sJ t        |j                  | d      | j                  k(  sJ t!        t        |j                  |j                  z  |j                  z  | d            t!        | j                  | j                   t        t              z  | j                  t        t              z  z   z  | j                  t        t              z  | j                  t        t              z  z   z        k(  sJ t        |j                  |j"                  z  |j                  |j$                  z  z   |j                  |j                  z  z   |       |j                  t        t              z  |j                  t        t              z  z
  | j"                  z  |j                  t        t              z  |j                  t        t              z  z   | j$                  z  z   |j                  | j                  z  z   k(  sJ t'        t        |j                  |j"                  z  |j                  |j$                  z  z   |j                  |j                  z  z   | d            | j                  | j"                  z  | j                  | j$                  z  z   | j                  | j                  z  z   k(  sJ t        | j                  | j"                  z  | j                  | j$                  z  z   | j                  | j                  z  z   |      | j                  t        t              z  | j                  t        t              z  z   |j"                  z  | j                   t        t              z  | j                  t        t              z  z   |j$                  z  z   | j                  |j                  z  z   k(  sJ t'        t        | j                  | j"                  z  | j                  | j$                  z  z   | j                  | j                  z  z   |d            |j                  |j"                  z  |j                  |j$                  z  z   |j                  |j                  z  z   k(  sJ |j                  dt         |j                        }|j                  |       |j                  | j                  |j                  | j                  |j                  | j                  ik(  sJ | j                  dt        | j"                  | j$                  z   | j                  z         }| j                  |      }|| j                     j)                  |j                  dt        t              z  dz   z  dz  |j                  dt        t        t*        dz  z         z  dz   z  dz  z   |j                  dt        t        t*        dz  z         z  dz   z  dz  z         sJ || j                     j)                  |j                  dt        t        t*        dz  z         z  dz   z  dz  |j                  dt        t              z  dz   z  dz  z   |j                  dt        t        t*        dz  z         z  dz   z  dz  z         sJ || j                     j)                  |j                  dt        t        t*        dz  z         z  dz   z  dz  |j                  dt        t        t*        dz  z         z  dz   z  dz  z   |j                  dt        t              z  dz   z  dz  z         sJ | j-                  dt.        | j"                  z  t0        | j$                  z  z   t2        | j                  z  z         }|j                  |       |j                  | j                  t2        z
  |j                  | j                  t.        z
  |j                  | j                  t0        z
  ik(  sJ | j                  dt.        | j                  t.        | j"                  z  t0        | j$                  z  z   t2        | j                  z  z         }| j                  |      | j                  |j                  t2        z   | j                  |j                  t        t.              z  |j                  t        t.              z  z
  t.        z   | j                  |j                  t        t.              z  |j                  t        t.              z  z   t0        z   ik(  sJ |j                  |       |j                  | j                  t.        z
  t        t.              z  | j                  t0        z
  t        t.              z  z   |j                  | j                   t.        z   t        t.              z  | j                  t0        z
  t        t.              z  z   |j                  | j                  t2        z
  ik(  sJ | j-                  dt4        j6                        }| j                  |      | j                  |j                  | j                  |j                  | j                  |j                  ik(  sJ y)zo
    Tests the coordinate variables functionality with respect to
    reorientation of coordinate systems.
    r   r   A_xz\mathbf{{x}_{A}}r5   A_yz\mathbf{{y}_{A}}r6   A_zz\mathbf{{z}_{A}}r0   T)	variablesNCr   r7      DEFN)r   r   r!   r$   r'   __hash__
isinstance
scalar_mapsystemdifforient_new_axisqr(   r   r   r   r   r%   r&   r   equalsr   
locate_newr8   r9   r:   r   zero)r   r0   rK   rL   mappingrN   rO   rP   s           r,   test_coordinate_varsr\   L   so
   
 	3AaE#67133>>>aE#67133>>>aE#67133>>>aE#67@@BaccllnTTTacc:&acc:&acc:&' ' 33qss7acc!##g<<?qssACCacc133<<<<33::??3388ACC=A	#q!##&A<<?qssACCqssd3q6kACCAJ.F!"acc#a&j133s1v:&=? ? ? ?<<?qssACCAJSV$;!"acc#a&j133s1v:&=qssACCI I I I133T*acc#a&j133s1v:.EEEE133T*qssd3q6kACCAJ.FFFF133T*acc111'!##acc'!##+qD9:!##tCF{QSSQZ/0!##c!f*qss3q6z2IJKL L L133qss7QSSW$qss133w.2CCAJSV#QSS(ACCAJ33s1v:-ss, SSW%% % % GACCGacc!##g-ACC7&*, -33qss7QSSWqss133w&' ' ' 133qss7QSSW$qss133w.2CCAJSV#QSS(SSDQK!##c!f*$acc)*,-CCG44 4 4 GACCGacc!##g-ACC7&*, -33qss7QSSWqss133w&' ' ' 	
#r133'A<<?CCacc133QSS)* * *	#q!##)acc/2All1oG133<qssAc!fHqL1!3CCCBqDM!1A!56q8 9CCCBqDM!1A!56q8 9 : : : 133<qssBs1r!t8}$4q$89!;CC3q6A.q0 1CCCBqDM!1A!56q8 9 : : : 133<qssBs1r!t8}$4q$89!;CCCBqDM!1A!56q8 9CC3q6A.q0 1 2 2 2 	
S!ACC%!ACC%-!ACC%/0A<<?qssACC!GQSS!##'133aHHHH	#q!##ququ}qu'<=A<<?qssACC!G ssACCAJSV$;a$? ssACCAJSV$;a$?A A A A <<?qssQSS1Wc!f$4aQ7G$G ssaccTAXs1v$5q#a&8H$H ssACC!G- - - - 	
S&++&A<<?qssACCacc133<<<<r.   c                     t        d      } | j                  dt        | j                        }|j                  dt        |j
                        }|j                  dt        |j                        }| j                  dt        | j                        }| j                  dt        t        t        d      }| j                  dt        t        t        t              }| j                  d	t        t        t        d      }| j                  |      t        t        t               t        t              z  t        t              z  t        t              t        t              z  z   t        t               t        t              z  t        t              t        t              z  t        t              z  t        t              t        t              z  z   gt        t              t        t              z  t        t              t        t              z  t        t              z  z   t        t              t        t              z  t        t              t        t              z  t        t              t        t              z  t        t              z  z
  gt        t               t        t              z  t        t              t        t              t        t              z  gg      k(  sJ |j                  |      t        t        t              t        t              z  t        t              z  t        t              t        t               t        t              z  t        t              t        t              z  t        t              z  z   z  z
  t        t               t        t              z  t        t              t        t              z  t        t              z  z
  t        t              t        t              z  t        t              z  t        t              t        t               t        t              z  t        t              t        t              z  t        t              z  z   z  z   gt        t              t        t              z  t        t              t        t              z  t        t              z  z   t        t              t        t              z  t        t              t        t              z  t        t              t        t              z  t        t              z  z
  gt        t              t        t              z  t        t              z  t        t              t        t              t        t              z  t        t              t        t              z  t        t              z  z   z  z
  t        t              t        t              z  t        t              t        t              z  t        t              z  z
  t        t              t        t              z  t        t              z  t        t              t        t              t        t              z  t        t              t        t              z  t        t              z  z   z  z   gg      z
  }|j!                         t#        d
d
      k(  sJ |j                  |       t        t        t              t        t              z  t        t              t        t              z  t        t               gt        t              t        t              z  t        t              z  t        t              t        t              z  z
  t        t              t        t              z  t        t              z  t        t              t        t              z  z   t        t              t        t              z  gt        t              t        t              z  t        t              t        t              z  t        t              z  z   t        t               t        t              z  t        t              t        t              z  t        t              z  z   t        t              t        t              z  gg      k(  sJ |j                  |       t        t        dz  t        dz  z   t        dz  z
  t        dz  z
  dt        z  t        z  dt        z  t        z  z   dt        z  t        z  dt        z  t        z  z   gdt        z  t        z  dt        z  t        z  z   t        dz  t        dz  z
  t        dz  z   t        dz  z
  dt        z  t        z  dt        z  t        z  z   gdt        z  t        z  dt        z  t        z  z   dt        z  t        z  dt        z  t        z  z   t        dz  t        dz  z
  t        dz  z
  t        dz  z   gg      k(  sJ |j                  |       t        t        t              t        t              z  t        t              t        t              z  t        t              z  t        t              t        t              z  z   t        t              t        t              z  t        t              t        t              z  t        t              z  z
  gt        t               t        t              z  t        t               t        t              z  t        t              z  t        t              t        t              z  z   t        t              t        t              z  t        t              t        t              z  t        t              z  z   gt        t              t        t               t        t              z  t        t              t        t              z  gg      k(  sJ y )NrK   r   r0   rL   rN   rO   r4   rP   Gr   r6   r7   )r   rV   r;   r(   r<   r%   r=   r&   r>   orient_new_spaceorient_new_quaternionorient_new_bodyr?   r@   r   r   r   r   )	rK   r   r0   rL   rN   rO   rP   r^   test_mats	            r,   test_rotation_matrixrc      s    3A	#r133'A	#r133'A	#r133'A	#r133'A	3BE2A	RR4A	#r2r51AQ6r7SW	s2w	&R3r7):	:c"gIB=R3r7"SW,s2wR/@@	B	R3r7	SWs2w.R8	8	R3r7	CGc"g-B#b'0A	R1 	"gIB'R#b'CG2CD+F $G G G G   #f
b'CG
c"g
%BSW9s2w3FB#b'CG#4$ )% %(+Bi#b'&9CGG="g= '"2wR03r7:SWW9s2wR3r7!2SW!<<>>  >
? b'CG
c"gB/#b'9
93r7
b'<r7SW$s2wR'83r7'BB
D
b'CG
c"g
%B3r7SW3D36r7SW3D36r74;4; )< <=@WB>b'CG+c"g5>67:2w
b'8G8!"gR3r7):),R3r7):SW)D*E F8F
G	H'I IH ??a+++Q6
b'#b'/3r73r7?SWH	5	RRR	 3r73r7?	2	RRR	 3r73r7?	2CGCGO	E
b'#b'/CGCGOCG3
3
b'6b'6GCGOCG36458WSW_
F	G$H H H H Q6
AAAA%	"R!B$r'2b58ad2g-,/13BrAbDG1CEBEMBE!BE)1R47QrT"W+<0>,-bDGad2g,=,.rE"HqtBw,> "AAA 5A =,?	+@ $A A A A Q6BB#b'#b'/#b'1CGCGOCBB#b'#b'/#b'11,3 WHSWs2whs2w.s2w6RRHGCGOc"gc"goc"g5557 B#b'#b')3r73r7?8<	+= $> > > >r.   c            	      
   t        d      } | j                  dt        | j                        }|j                  dt        |j
                        }|j                  dt        |j                        }t        | j
                  z  t        | j                  z  z   t        | j                  z  z   }|j                  |      t        t        t        t              z  t        t        t              z  z   gt         t        t              z  t        t        t              z  z   gt        gg      k(  sJ | j
                  j                  |j
                        t        t              k(  sJ | j
                  j                  |j                        t        t               k(  sJ | j
                  j                  |j                        dk(  sJ | j                  j                  |j
                        t        t              k(  sJ | j                  j                  |j                        t        t              k(  sJ | j                  j                  |j                        dk(  sJ | j                  j                  |j
                        dk(  sJ | j                  j                  |j                        dk(  sJ | j                  j                  |j                        dk(  sJ | j
                  j                  |j
                  |j                  z         t        t               t        t              z   cxk(  r6|j
                  |j                  z   j                  | j
                        k(  sJ  J |j
                  j                  |j
                        t        t              k(  sJ |j
                  j                  |j                        dk(  sJ |j
                  j                  |j                        t        t              k(  sJ |j                  j                  |j
                        t        t              t        t              z  k(  sJ |j                  j                  |j                        t        t              k(  sJ |j                  j                  |j                        t        t               t        t              z  k(  sJ |j                  j                  |j
                        t        t               t        t              z  k(  sJ |j                  j                  |j                        t        t              k(  sJ |j                  j                  |j                        t        t              t        t              z  k(  sJ | j
                  j!                  |j
                        t        t              |j                  z  k(  sJ | j
                  j!                  |j                        t        t              |j                  z  k(  sJ | j
                  j!                  |j                        t        t               |j
                  z  t        t              |j                  z  z
  k(  sJ | j                  j!                  |j
                        t        t               |j                  z  k(  sJ | j                  j!                  |j                        t        t              |j                  z  k(  sJ | j                  j!                  |j                        t        t              |j
                  z  t        t              |j                  z  z
  k(  sJ | j                  j!                  |j
                        |j                  k(  sJ | j                  j!                  |j                        |j
                   k(  sJ | j                  j!                  |j                        t"        j$                  k(  sJ | j
                  j!                  |j
                        t        t              |j                  z  k(  sJ | j
                  j!                  |j                        t        t              |j                  z  k(  sJ | j
                  j!                  |j
                  |j                  z         t        t              |j                  z  t        t              |j                  z  z   k(  sJ |j
                  |j                  z   j!                  | j
                        t        t               t        t              z
  | j                  z  k(  sJ |j
                  j!                  |j
                        t        t              |j                  z  k(  sJ |j
                  j!                  |j                        t        t               |j
                  z  t        t              |j                  z  z   k(  sJ |j
                  j!                  |j                        t        t               |j                  z  k(  sJ |j
                  j!                  |j
                        t        t               t        t              z  |j                  z  t        t               t        t              z  |j                  z  z   k(  sJ |j                  j!                  |j
                        t        t              |j                  z  t        t               |j                  z  z   k(  sJ t'        |j                  j!                  |j
                        |      j)                         t        t              |j                  z  k(  sJ y)z`
    Tests the effects of orientation of coordinate systems on
    basic vector operations.
    rK   r   r0   rL   r   r5   N)r   rV   r;   r(   r<   r%   r=   r&   r8   r9   r:   	to_matrixr@   r   r   dotcrossr   rZ   r   trigsimp)rK   r   r0   rL   v1s        r,   test_vector_with_orientationrj      s   
 	3A	#r133'A	#r133'A	#r133'A 
133133133	B<<?f#b'	Ac"gI(=&>()r#b'zAc"gI'=&><=&>&@ A A A A
 3377133<3r7"""3377133<CG8###3377133<13377133<3r7"""3377133<3r7"""3377133<13377133<13377133<13377133<133771339#b'CG!3  CC!##I??133          3377133<3r7"""3377133<13377133<3r7"""3377133<3r73r7?***3377133<3r7"""3377133<CG8CG++++3377133<CG8CG++++3377133<3r7"""3377133<3r73r7?*** 3399QSS>SWQSS[(((3399QSS>SWQSS[(((3399QSS>c"gXacc\CGACCK77773399QSS>c"gXacc\)))3399QSS>SWQSS[(((3399QSS>SWQSS[3r7133;66663399QSS>QSS   3399QSS>accT!!!3399QSS>V[[(((3399QSS>SWQSS[(((3399QSS>SWQSS[(((3399QSS133Y3r7133;R#<<<<CC!##IQSS!s2whR&8!##%====3399QSS>SWQSS[(((3399QSS>c"gXacc\CGACCK77773399QSS>c"gXacc\)))3399QSS>s2whs2w.3WHSWacc!" " " "3399QSS>c"gqss]s2wh^;;;;13399QSS>1%..0CGACCK???r.   c                     t        d      } t        t        | j                        }t	        t
        t        t        d      }t        t
        t        t        t              }t        t
        t        t        d      }| j                  d|f      }| j                  d|f      }| j                  d|f      }| j                  d|f      }|| j                  dt        | j                        k(  sJ || j                  dt
        t        t        d      k(  sJ || j                  dt
        t        t        t              k(  sJ || j                  dt
        t        t        d      k(  sJ y )NrK   r4   rN   rO   rP   r^   )r   r   r>   r&   r   r;   r<   r=   r   r   
orient_newrV   r_   r`   ra   )	rK   	orienter1	orienter2	orienter3	orienter4rN   rO   rP   r^   s	            r,   test_orient_new_methodsrq     s   3AR%Ib"b%0I"2r2r2IRR/I	S9-(A	S9-(A	S9-(A	S9-(A!!#r133////""3BE::::''RR<<<<!!#r2r59999r.   c                  n   t        d      } t        | j                  t              sJ t        | j
                  z  t        | j                  z  z   t        | j                  z  z   }| j                  d|      }|j                  j                  |       |j                  |       cxk(  r/|j                  j                  | j                        cxk(  r|k(  sJ  J | j                  j                  |      | j                  |      cxk(  r0| j                  j                  |j                        cxk(  r| k(  sJ  J | j                  j                  |      t         t         t         fk(  sJ | j                  j                  d|       }|j                  |       t         t         t         fk(  sJ |j                  |j                        |j                  |      cxk(  r	d|z  k(  sJ  J |j                  dd|z        }|j                  |j                        t        j                  k(  sJ |j                  |      dk(  sJ |j                  d| j
                        }|j                  |      d|z  | j
                  z
  k(  sJ |j                  |      dt        z  d	z   dt        z  dt        z  fk(  sJ y
)zA
    Tests Point class, and locate_new method in CoordSys3D.
    r   rL   pr7   p1r6   )r   r   r   p2r5   N)r   rR   r)   r   r8   r%   r9   r&   r:   r(   rY   position_wrtexpress_coordinatesr   rZ   )r   r+   rL   rs   rt   ru   s         r,   test_locatenew_pointrx     sj    	3Aahh&&&	!##!##!##A	S!A88  #>>!088  *0./0 0 0 0 0 88  #>>!188  *1/0b1 1 1 1 1 88''*rA2rl:::	C!$A  #QB|333>>!((#q~~a'8 6    	
dAaC	 B??188$333!!!$	111	
dACC	 B??2!A#)+++!!!$A2a4A(>>>>r.   c            
         t        d      } | j                  dd      }|j                  | k(  sJ |j                         |j                  t        |j                        z  t        |j                        z  |j                  t        |j                        z  t        |j                        z  |j                  t        |j                        z  fk(  sJ |j                         t        | j                  dz  | j                  dz  z   | j                  dz  z         t        | j                  t        | j                  dz  | j                  dz  z   | j                  dz  z         z        t        | j                  | j                        fk(  sJ y )Nr8   r:   	sphericaltransformationr6   )r   
create_new_parenttransformation_to_parentrr   thetar   phitransformation_from_parentr   r!   r$   r'   r   r   )r8   r:   s     r,   test_create_newr   -  s;   3A	S5A99>>%%'CCAGGSZ'S\)9#aee*)Dacc#agg,FVWX X X'')a!##q&1336)*DT!##q&1336/ACCQRF:R5S1S,TV[\]\_\_abadadVefg g gr.   c                  D   t        d      } d| j                  z  d| j                  z  z   t        | j                  z  z   }|j                         |j                         k(  sJ |j                  t        di      |j                  t        d      j                         k(  sJ y )Nr   r   r    r5   )subs)r   r%   r&   r8   r(   nevalfr   )r   r+   s     r,   
test_evalfr   7  s{    3A	!##!##!##A335AGGI7717!&&A,"4"4"6666r.   c                  ~   t        dd      } | j                         d| j                  t        | j                        | j                  z  fk(  sJ t        d      } | j                         dk(  sJ t        dd      } | j                         dk(  sJ t        dd      } | j                         d| j                  dfk(  sJ y )Nr8   rz   r5   r5   r5   r5   	cartesiancylindrical)r   lame_coefficientsr   r   r   r8   s    r,   test_lame_coefficientsr   >  s    3$A QS\!##-=$>>>>3A I---3$A I---3&A QQK///r.   c            
      T   t        d      \  t        ddg d      j                         \  } }}| j                  k(  sJ |j                  k(  sJ |j
                  k(  sJ t        t        fd       t        t        fd       t        t        fd       j                         | t        |      z  t        |      z  | t        |      z  t        |      z  | t        |      z  fk(  sJ j                         d	| | t        |      z  fk(  sJ  j                               t        d
z  d
z  z   d
z  z         t        t        d
z  d
z  z   d
z  z         z        t              fk(  sJ t        ddg d      j                         \  } }j                         | t        |      z  | t        |      z  fk(  sJ j                         d	j                  d	fk(  sJ  j                               t        d
z  d
z  z         t              fk(  sJ t        dd      j                         j                   j"                  j$                  fk(  sJ j                         dk(  sJ  j                               fk(  sJ t        d      \  t        dfff      j'                          j                         j(                  j*                  j,                  fk(  sJ j                         dk(  sJ  j                               fk(  sJ t        d      \  } }t        d| |f| t        |      z  | t        |      z  fgg d      j                         \  } }j                         | t        |      z  | t        |      z  fk(  sJ j                         t        t        |      d
z  t        |      d
z  z         t        | d
z  t        |      d
z  z  | d
z  t        |      d
z  z  z         d	fk(  sJ t        dd       j                         j(                  j*                  j,                  fk(  sJ j                         dk(  sJ j'                           j                               fk(  sJ t        dd g d      j                         \  } }}j                         | t        |      z  t        |      z  | t        |      z  t        |      z  | t        |      z  fk(  sJ j                         t        t        |      d
z  t        |      d
z  z  t        |      d
z  t        |      d
z  z  z   t        |      d
z  z         t        | d
z  t        |      d
z  z  t        |      d
z  z  | d
z  t        |      d
z  z  z   | d
z  t        |      d
z  z  t        |      d
z  z  z         t        | d
z  t        |      d
z  z  t        |      d
z  z  | d
z  t        |      d
z  z  t        |      d
z  z  z         fk(  sJ t        dd g d      j                         \  } }j                         | t        |      z  | t        |      z  fk(  sJ j                         t        t        |      d
z  t        |      d
z  z         t        | d
z  t        |      d
z  z  | d
z  t        |      d
z  z  z         d	fk(  sJ t        t.        fd       y )Nr   r8   rz   r   r   r   )r|   variable_namesc                       j                   S N)r!   r   s   r,   <lambda>z/test_transformation_equations.<locals>.<lambda>U      133 r.   c                       j                   S r   )r$   r   s   r,   r   z/test_transformation_equations.<locals>.<lambda>V  r   r.   c                       j                   S r   )r'   r   s   r,   r   z/test_transformation_equations.<locals>.<lambda>W  r   r.   r5   r6   r   r   r   r'   r   r   z	r theta z)r   c                     | ||fS r    r!   r$   r'   s      r,   r   z/test_transformation_equations.<locals>.<lambda>  s    Aq	 r.   c                     | t        |      z  t        |      z  | t        |      z  t        |      z  | t        |      z  fS r   )r   r   r   s      r,   r   z/test_transformation_equations.<locals>.<lambda>  s?    qU|CH/DaE
lSVWZS[F[]^_bch_i]i.j r.   c                 <    | t        |      z  | t        |      z  |fS r   )r   r   r   s      r,   r   z/test_transformation_equations.<locals>.<lambda>  s!    	
3u:qU|Q' r.   c                      t        d  t              z  t              z   t              z  t              z   t              z  i      S Nr8   r{   r   r   r   r   s   r,   r   z/test_transformation_equations.<locals>.<lambda>  sH    j	1SV8CF?AaAhs1voq1SV8>= > r.   )r
   r   base_scalarsr   r   r   r   AttributeErrorr   r   r   r   #transformation_from_parent_functionr   r   r   r!   r$   r'   _calculate_inv_trans_equationsx1x2x3	TypeError)r   r   r   r8   r!   r$   r'   s      @@@@r,   test_transformation_equationsr   I  sE   gGAq!3{"7	9ANN$MAuc8O8AGG!%%<<
>;'
>;'
>;'%%'	#e*SX	#e*SX	#e*,   
  Q1SZ<$8888210021a;Q!Va1f_qAv%&a41q!tad*++,a@   
 	3}"5	7A.."KAua%%'	#e*	#e*	,   
  QQK///210021a;QTAqD[@Q!!QK@, , , , 	3$A%%'ACCacc?::: I---210021a;1ayHHH
 gGAq!3!QQ1I./A$$&%%'ADD!$$+==== I---210021a;1ayHHH+&KAua 	3!UA3u:qU|Q(GH"5	7A.."KAua%%'	#e*aE
lA,     SZ]SZ]*+QT#e*a-!Q$s5z1}"445	%    	312A%%'ADD!$$+==== I---$$&210021a;1ayHHH 	3j"7	9ANN$MAuc%%'	#e*SXqSz#e*4aE
l,     SXq[UQ&UQs3x{)BBSZQR]RSQT#c(A+c%j!m+ad3u:q=.@@1a4CRSCSTWX]T^`aTaCaabQT#c(A+c%j!m+ad3u:q=.@S1.LLM%    	3 (*	A .."KAua%%'Ac%jL!CJ,+JJJJ SZ]SZ]*+QT#e*a-!Q$s5z1}"445	%    9 > ?r.   c            
         t        d      \  t        d      \  } }t        dft              z  t              z  t              z  t              z  t              z  ff      }|j	                  |j
                        du sJ t        dft              z  t              z  ff      }|j	                  |j
                        du sJ t        d| |ft        |       t        |      z  t        |       t        |      z  ff      }|j	                  |j
                        du sJ t        t        fd       t        t        fd       y )Nr   zu, vr8   r{   Tc                  .    t        d f  ff      S r   r   r   s   r,   r   z*test_check_orthogonality.<locals>.<lambda>  s     z#1ay1aQR)>TU r.   c            
          t        d f t        dz        z  t              z   t              z  t              z   t              z  ff      S )Nr8   r6   r{   r   r   s   r,   r   z*test_check_orthogonality.<locals>.<lambda>  sT    z#	
Aq	Ac!A#hJs1v%qQxA#a&A?C  D r.   )
r
   r   r   r   _check_orthogonality_transformationr   r   r   
ValueError)ur+   r8   r!   r$   r'   s      @@@r,   test_check_orthogonalityr     sO   gGAq!
&/CAa3Aq	Ac!fHSVOQs1vXcRSf_VWX[\]X^V^3_'`aA!!!"3"34<<<3Aq	AAJCF
A3N'OPA!!!"3"34<<<3Aq	DGc!f4Dd1gPSTUPVFVXY3Z'[\A!!!"3"34<<<
:UV
: D Er.   c                     t        d      } ddlm}  |d      }| j                  | j                  | j                               | j                  | j                  | j                  fk(  sJ | j                  | j                         | j                               | j                  | j                  | j                  fk(  sJ | j                  dd| j                         }|j                  |j                  |j                               |j                  |j                  |j                  fk(  sJ |j                  |j                         |j                               |j                  |j                  |j                  fk(  sJ | j                  d|| j                         }|j                  |j                  |j                               t        |       |j                  z  t        |      |j                  z  z   t        |      |j                  z  t        |      |j                  z  z   |j                  fk(  sJ |j                  |j                         |j                               t        |      |j                  z  t        |      |j                  z  z   t        |       |j                  z  t        |      |j                  z  z   |j                  fk(  sJ y )Nr8   r   r	   q0r9   r:   )r   sympy.core.symbolr
   _rotation_trans_equations_parent_rotation_matrixr   r!   r$   r'   _inverse_rotation_matrixrV   r(   r   r   )r8   r
   r   r9   r:   s        r,   test_rotation_trans_equationsr     sV   3A)	B&&q'@'@!..BRSXYX[X[]^]`]`bcbebeWffff&&q'A'A'CQ^^EUV[\[^[^`a`c`cefehehZiiii	#q133$'A&&q'@'@!..BRSXYX[X[]^]`]`bcbebeWffff&&q'A'A'CQ^^EUV[\[^[^`a`c`cefehehZiiii	#rACC4(A&&q'@'@!..BRSWHqssNSWqss]*CGaccMCGaccM,I133OP P P&&q'A'A'CQ^^EUVGaccMCGaccM)CG8acc>CGaccM+I133OP P Pr.   N)Asympy.testing.pytestr   sympy.vector.coordsysrectr   sympy.vector.scalarr   sympy.core.functionr   sympy.core.numbersr   r   r
   %sympy.functions.elementary.hyperbolicr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   r   r   sympy.matrices.denser   sympy.matrices.immutabler   r@   sympy.simplify.simplifyr   sympy.vector.functionsr   sympy.vector.pointr   sympy.vector.vectorr   sympy.vector.orientersr   r   r   r   r!   r$   r'   r8   r9   r:   rW   r;   r<   r=   r>   r-   r2   rE   r\   rc   rj   rq   rx   r   r   r   r   r   r   r   r.   r,   <module>r      s    ' 0 * & ! % > 9 L L & C , * $ &G G '
1aY
1a'BB5>@@=F/>d>@B: ?6g70h?VEPr.   