
    QiL                        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@d"S )#    )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 d S )NA      )
r   xfuncargsyijzkorigin)r   exprvs      |/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/vector/tests/test_coordsysrect.pytest_func_argsr-      s    3A138QSX!#%%%%QS51QS5=D49di D((((138QSX!#%%%%	AC!#ac'ACG#A1616?a18=!(-(AH444444    c                      t          d          } t          d          }|| k    sJ t          d          }| |k    sJ d S )Nr   Br   )r   A1r0   s      r,   test_coordsys3d_equivalencer2   $   sA    3A	CB77773A666666r.   c                     t          d          } t          t          | j                  }t	          t          t
          t          d          }t          t          t
          t          d          }t          t          t          t          t                    }|                    |           t          t          t                    t!          t                    dgt!          t                     t          t                    dgg dg          k    s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 |                                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 |                                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 d S )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 AC((M Aq%00M"1aE22N#BB33J((++v
a&&#a&&!
a&&#a&&!7 0 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s1vv-	-	/QQAQA	 6! /" /" " " " " ))++v	QAAs1vvc!ffW5	QAs1vv	As1vv	-	QAs1vv	As1vv	-s1vvc!ff}	>	QAQAs1vv-	-Aws1vv~	QAs1vv	0"1vvc!ff}	.	7/ 00 00 0 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                  0   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                                        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        ik    sJ | j        j        | k    sJ | j        	                    | j                  dk    sJ | 
                    dt          | 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        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 |
                    dt           |j                  }|                    |           |j        | j        |j        | j        |j        | j        ik    sJ | 
                    dt          | j        | j        z   | j        z             }|                     |          }|| 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        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        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 |                     dt.          | j        z  t0          | j        z  z   t2          | j        z  z             }|                    |           |j        | j        t2          z
  |j        | j        t.          z
  |j        | j        t0          z
  ik    sJ | 
                    dt.          | j        t.          | j        z  t0          | j        z  z   t2          | j        z  z             }|                     |          | 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        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 |                     dt4          j                  }|                     |          | j        |j        | j        |j        | j        |j        ik    sJ dS )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   s
   
 	3AaE#67713>>>>aE#67713>>>>aE#67713>>>>aE#677@@BBacllnnTTTTac:&& 'ac:&&'ac:&&' ' ' 3qs7ac!#g<<??qsACac13<<<<<3:????388AC==A	#q!#&&A<<??qsACqsd3q66kACAJ.F!"ac#a&&j13s1vv:&=? ? ? ? ?<<??qsACAJSVV$;!"ac#a&&j13s1vv:&=qsACI I I I I13T***ac#a&&j13s1vv:.EEEEE13T***qsd3q66kACAJ.FFFFF13T***ac1111'!#ac'!#+qD999::!#tCFF{QSQZ/0!#c!ff*qs3q66z2IJKKL L L L13qs7QSW$qs13w.22CAJSVV#QS(ACAJ3s1vv:-s, SW%% % % % GACGac!#g-AC7&*, , , - -3qs7QSWqs13w&' ' ' ' 13qs7QSW$qs13w.22CAJSVV#QS(SDQK!#c!ff*$ac)*,-CG44 4 4 4 GACGac!#g-AC7&*, , , - -3qs7QSWqs13w&' ' ' ' 	
#r13''A<<??Cac13QS)* * * *	#q!#)ac/22All1ooG13<qsAc!ffHqL1!3CCBqDMM!1A!56q8 9CCBqDMM!1A!56q8 9 : : : : : 13<qsBs1r!t8}}$4q$89!;C3q66A.q0 1CCBqDMM!1A!56q8 9 : : : : : 13<qsBs1r!t8}}$4q$89!;CCBqDMM!1A!56q8 9C3q66A.q0 1 2 2 2 2 2 	
S!AC%!AC%-!AC%/00A<<??qsAC!GQS!#'13aHHHHH	#q!#ququ}qu'<==A<<??qsAC!G sACAJSVV$;a$? sACAJSVV$;a$?A A A A A <<??qsQS1Wc!ff$4aQ7G$G sacTAXs1vv$5q#a&&8H$H sAC!G- - - - - 	
S&+&&A<<??qsACac13<<<<<<<r.   c                     t          d          } |                     dt          | j                  }|                    dt          |j                  }|                    dt          |j                  }|                     dt          | j                  }| 	                    dt          t          t          d          }| 
                    dt          t          t          t                    }|                     d	t          t          t          d          }|                     |          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 |                    |          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
  }|                                t#          d
d
          k    s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 |                    |           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 |                    |           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 d S )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	#r13''A	#r13''A	#r13''A	#r13''A	3BE22A	RR44A	#r2r511AQ6r77SWW	s2ww	&R3r77):	:c"ggIB=R3r77"SWW,s2wwR/@@	B	R3r77	SWWs2ww.R8	8	R3r77	CGGc"gg-B#b''0A	R1 	"ggIB'R#b''CGG2CD+F $G $G G G G G   ##f
b''CGG
c"gg
%BSWW9s2ww3FB#b''CGG#4$ )% %(+Bi#b''&9CGGGG="gg= '"2wwR03r77:SWWWW9s2wwR3r77!2SWW!<<>>  >
? b''CGG
c"ggB/#b''9
93r77
b''<r77SWW$s2wwR'83r77'BB
D
b''CGG
c"gg
%B3r77SWW3D36r77SWW3D36r774;4; )< <=@WWB>b''CGG+c"gg5>67:2ww
b''8GG8!"ggR3r77):),R3r77):SWW)D*E F8F
G	H'I 'I IH ??a++++Q6
b''#b''/3r773r77?SWWH	5	RRR	 3r773r77?	2	RRR	 3r773r77?	2CGGCGGO	E
b''#b''/CGGCGGOCGG3
3
b''6b''6GGCGGOCGG36458WWSWW_
F	G$H $H 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 A A Q6BB#b''#b''/#b''1CGGCGGOCBB#b''#b''/#b''11,3 WWHSWWs2wwhs2ww.s2ww6RRHGGCGGOc"ggc"ggoc"gg5557 B#b''#b'')3r773r77?8<	+= $> $> > > > > > >r.   c            	      V   t          d          } |                     dt          | j                  }|                    dt          |j                  }|                    dt          |j                  }t          | j        z  t          | j        z  z   t          | j        z  z   }|                    |          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                  t          t                    k    sJ | j                            |j                  t          t                     k    sJ | j                            |j                  dk    sJ | j                            |j                  t          t                    k    sJ | j                            |j                  t          t                    k    sJ | j                            |j                  dk    sJ | j                            |j                  dk    sJ | j                            |j                  dk    sJ | j                            |j                  dk    sJ | j                            |j        |j        z             t          t                     t          t                    z   cxk    r+|j        |j        z                       | j                  k    sn J |j                            |j                  t          t                    k    sJ |j                            |j                  dk    sJ |j                            |j                  t          t                    k    sJ |j                            |j                  t          t                    t          t                    z  k    sJ |j                            |j                  t          t                    k    sJ |j                            |j                  t          t                     t          t                    z  k    sJ |j                            |j                  t          t                     t          t                    z  k    sJ |j                            |j                  t          t                    k    sJ |j                            |j                  t          t                    t          t                    z  k    sJ | j                            |j                  t          t                    |j        z  k    sJ | j                            |j                  t          t                    |j        z  k    sJ | j                            |j                  t          t                     |j        z  t          t                    |j        z  z
  k    sJ | j                            |j                  t          t                     |j        z  k    sJ | j                            |j                  t          t                    |j        z  k    sJ | j                            |j                  t          t                    |j        z  t          t                    |j        z  z
  k    sJ | j                            |j                  |j        k    sJ | j                            |j                  |j         k    sJ | j                            |j                  t"          j        k    sJ | j                            |j                  t          t                    |j        z  k    sJ | j                            |j                  t          t                    |j        z  k    sJ | j                            |j        |j        z             t          t                    |j        z  t          t                    |j        z  z   k    sJ |j        |j        z                       | j                  t          t                     t          t                    z
  | j        z  k    sJ |j                            |j                  t          t                    |j        z  k    sJ |j                            |j                  t          t                     |j        z  t          t                    |j        z  z   k    sJ |j                            |j                  t          t                     |j        z  k    sJ |j                            |j                  t          t                     t          t                    z  |j        z  t          t                     t          t                    z  |j        z  z   k    sJ |j                            |j                  t          t                    |j        z  t          t                     |j        z  z   k    sJ t'          |j                            |j                  |                                          t          t                    |j        z  k    sJ dS )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	#r13''A	#r13''A	#r13''A 
131313	B<<??f#b''	Ac"ggI(=&>()r#b''zAc"ggI'=&><=&>&@ A A A A A A
 37713<<3r77""""37713<<CGG8####37713<<137713<<3r77""""37713<<3r77""""37713<<137713<<137713<<137713<<1377139#b''CGG!3        C!#I??13            37713<<3r77""""37713<<137713<<3r77""""37713<<3r773r77?****37713<<3r77""""37713<<CGG8CGG+++++37713<<CGG8CGG+++++37713<<3r77""""37713<<3r773r77?**** 399QS>>SWWQS[((((399QS>>SWWQS[((((399QS>>c"ggXac\CGGACK77777399QS>>c"ggXac\))))399QS>>SWWQS[((((399QS>>SWWQS[3r7713;66666399QS>>QS    399QS>>acT!!!!399QS>>V[((((399QS>>SWWQS[((((399QS>>SWWQS[((((399QS13Y3r7713;R#<<<<<C!#IQS!!s2wwhR&8!#%=====399QS>>SWWQS[((((399QS>>c"ggXac\CGGACK77777399QS>>c"ggXac\))))399QS>>s2wwhs2ww.3WWHSWWac!" " " " "399QS>>c"ggqs]s2wwh^;;;;;1399QS>>1%%..00CGGACK??????r.   c                  L   t          d          } t          t          | j                  }t	          t
          t          t          d          }t          t
          t          t          t                    }t          t
          t          t          d          }| 
                    d|f          }| 
                    d|f          }| 
                    d|f          }| 
                    d|f          }||                     dt          | j                  k    sJ ||                     dt
          t          t          d          k    sJ ||                     dt
          t          t          t                    k    sJ ||                     dt
          t          t          d          k    sJ d S )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     sK   3AR%%Ib"b%00I"2r2r22IRR//I	S9-((A	S9-((A	S9-((A	S9-((A!!#r13//////""3BE::::::''RR<<<<<<!!#r2r599999999r.   c                     t          d          } t          | j        t                    sJ t          | j        z  t          | j        z  z   t          | j	        z  z   }| 
                    d|          }|j                            |           |                    |           cxk    r*|j                            | j                  cxk    r|k    sn J | j                            |          |                     |          cxk    r+| j                            |j                  cxk    r| k    sn J | j                            |          t           t           t           fk    sJ | j        
                    d|           }|                    |           t           t           t           fk    sJ |                    |j                  |                    |          cxk    r	d|z  k    sn J |
                    dd|z            }|                    |j                  t          j        k    sJ |                    |          dk    sJ |
                    d| j                  }|                    |          d|z  | j        z
  k    sJ |                    |          dt          z  d	z   dt          z  dt          z  fk    sJ d
S )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     s    	3Aah&&&&&	!#!#!#A	S!A8  ##>>!0 0 0 08  **0 0 0 0./0 0 0 0 0 0 8  ##>>!1 1 1 18  **1 1 1 1/0b1 1 1 1 1 1 8''**rA2rl::::	C!$$A  ##QB|3333>>!(##q~~a'8'8    6     	
dAaC	 	 B??18$$3333!!!$$	1111	
dAC	 	 B??2!A#)++++!!!$$A2a4A(>>>>>>>r.   c            
         t          d          } |                     dd          }|j        | k    sJ |                                |j        t          |j                  z  t          |j                  z  |j        t          |j                  z  t          |j                  z  |j        t          |j                  z  fk    s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 d S )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   -  sO   3A	S55A9>>>>%%''CAGSZZ'S\\)9#ae**)Dac#ag,,FVWX X X X''))a!#q&136)**DT!#q&136/ACQRF:R5S5S1S,T,TV[\]\_abadVeVefg g g g g gr.   c                  b   t          d          } d| j        z  d| j        z  z   t          | j        z  z   }|                                |                                k    sJ |                    t          di          |                    t          d                                          k    sJ d S )Nr   r   r    r5   )subs)r   r%   r&   r8   r(   nevalfr   )r   r+   s     r,   
test_evalfr   7  s    3A	!#!#!#A3355AGGII7717!&&A,,"4"4"6"6666666r.   c                     t          dd          } |                                 d| j        t          | j                  | j        z  fk    sJ t          d          } |                                 dk    sJ t          dd          } |                                 dk    sJ t          dd          } |                                 d| j        dfk    sJ d S )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            
      2   t          d          \  t          ddg d                                          \  } }}| j        k    sJ |j        k    sJ |j        k    sJ t          t          fd           t          t          fd           t          t          fd                                           | t          |          z  t          |          z  | t          |          z  t          |          z  | t          |          z  fk    sJ                                 d	| | t          |          z  fk    s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                                          \  } }                                | t          |          z  | t          |          z  fk    sJ                                 d	j        d	fk    sJ                                            t          d
z  d
z  z             t                    fk    sJ t          dd                                          j        j        j        fk    sJ                                 dk    sJ                                            fk    sJ t          d          \  t          dfff                                                                           j        j        j        fk    sJ                                 dk    sJ                                            fk    sJ t          d          \  } }t          d| |f| t          |          z  | t          |          z  fgg d                                          \  } }                                | t          |          z  | t          |          z  fk    s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        fk    sJ                                 dk    sJ                                                                             fk    sJ t          dd g d                                          \  } }}                                | t          |          z  t          |          z  | t          |          z  t          |          z  | t          |          z  fk    s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                                          \  } }                                | t          |          z  | t          |          z  fk    s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           d S )Nr   r8   rz   r   r   r   )r|   variable_namesc                       j         S N)r!   r   s   r,   <lambda>z/test_transformation_equations.<locals>.<lambda>U  	    13 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>  sK    qU|CHH/DaE

lSVWZS[S[F[]^_bch_i_i]i.j r.   c                 L    | 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>  s\    j	1SVV8CFF?AaAhs1vvoq1SVV8>= > > > 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  s$	   gGAq!3{"7"7"7	9 	9 	9ANN$$MAuc8888AG!%<<<<
>;;;;'''
>;;;;'''
>;;;;'''%%''	#e**SXX	#e**SXX	#e**,    
   Q1SZZ<$888882100221a;;Q!Va1f_qAv%&&a41q!tad*+++,,a@    
 	3}"5"5"5	7 	7 	7A..""KAua%%''	#e**	#e**	,    
   QQK////2100221a;;QTAqD[@Q@Q!!QKK@, , , , , 	3$$A%%''ACac?::::  I----2100221a;;1ayHHHH
 gGAq!3!QQ1I.//A$$&&&%%''AD!$+=====  I----2100221a;;1ayHHHH+&&KAua 	3!UA3u::qU|Q(GH"5"5"5	7 	7 	7A..""KAua%%''	#e**aE

lA,       SZZ]SZZ]*++QT#e**a-!Q$s5zz1}"4455	%     	31122A%%''AD!$+=====  I----$$&&&2100221a;;1ayHHHH 	3jj"7"7"7	9 	9 	9ANN$$MAuc%%''	#e**SXXqSz#e**4aE

l,       SXXq[UQ&UQs3xx{)BBSZZQR]RSSQT#c((A+c%jj!m+ad3u::q=.@@1a4CRSCSTWX]T^T^`aTaCaabbQT#c((A+c%jj!m+ad3u::q=.@S1.LLMM%     	3 ( (***	 	 	A ..""KAua%%''Ac%jjL!CJJ,+JJJJJ  SZZ]SZZ]*++QT#e**a-!Q$s5zz1}"4455	%     9 > > > > > > ? ? ? ? ?r.   c            
      \   t          d          \  t          d          \  } }t          dft                    z  t                    z  t                    z  t                    z  t                    z  ff          }|                    |j                  du sJ t          dft                    z  t                    z  ff          }|                    |j                  du sJ t          d| |ft          |           t          |          z  t          |           t          |          z  ff          }|                    |j                  du sJ t          t          fd           t          t          fd           d S )Nr   zu, vr8   r{   Tc                  6    t          d f  ff          S r   r   r   s   r,   r   z*test_check_orthogonality.<locals>.<lambda>  s&    z#1ay1aQR)>TUU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>  sj    z#	
Aq	Ac!A#hhJs1vv%qQxA#a&&A?C  D  D  D r.   )
r
   r   r   r   _check_orthogonality_transformationr   r   r   
ValueError)ur+   r8   r!   r$   r'   s      @@@r,   test_check_orthogonalityr     s   gGAq!
&//CAa3Aq	Ac!ffHSVVOQs1vvXcRSff_VWX[\]X^X^V^3_'`aaaA!!!"344<<<<3Aq	AAJCFF
A3N'OPPPA!!!"344<<<<3Aq	DGGc!ff4Dd1ggPSTUPVPVFVXY3Z'[\\\A!!!"344<<<<
:UUUUUUVVV
: D D D D D D E E E E Er.   c                     t          d          } ddlm}  |d          }|                     | j        |                                           | j        | j        | j        fk    sJ |                     | 	                                |                                           | j        | j        | j        fk    sJ | 
                    dd| j                   }|                    |j        |                                          |j        |j        |j        fk    sJ |                    |	                                |                                          |j        |j        |j        fk    sJ | 
                    d|| j                   }|                    |j        |                                          t          |           |j        z  t          |          |j        z  z   t          |          |j        z  t          |          |j        z  z   |j        fk    sJ |                    |	                                |                                          t          |          |j        z  t          |          |j        z  z   t          |           |j        z  t          |          |j        z  z   |j        fk    sJ d S )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     s   3A))))))	B&&q'@!..BRBRSSXYX[]^]`bcbeWfffff&&q'A'A'C'CQ^^EUEUVV[\[^`a`cefehZiiiii	#q13$''A&&q'@!..BRBRSSXYX[]^]`bcbeWfffff&&q'A'A'C'CQ^^EUEUVV[\[^`a`cefehZiiiii	#rAC4((A&&q'@!..BRBRSSWWHqsNSWWqs]*CGGacMCGGacM,I13OP P P P&&q'A'A'C'CQ^^EUEUVVGGacMCGGacM)CGG8ac>CGGacM+I13OP P P 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 0 0 0 0 0 * * * * * * & & & & & & ! ! ! ! ! ! % % % % % % > > > > > > > > 9 9 9 9 9 9 L L L L L L L L L L L L & & & & & & C C C C C C , , , , , , * * * * * * $ $ $ $ $ $ & & & & & &G G G G G G G G G G G G ''

1aWY
1a''BB5 5 5  > > >@@= @= @=F/> /> />d>@ >@ >@B: : : ? ? ?6g g g7 7 70 0 0h? h? h?VE E EP P P P Pr.   