Ë
    7^(h‹L  ã                   ó€  — 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      úb/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/vector/tests/test_coordsysrect.pyÚtest_func_argsr-      s  € Ü�3‹€AØˆ1�3‰3�8‰8�Q—S‘S—X‘XÐ !§#¡#Ò%Ð%Ð%ØˆQ�S‰S‰5�1�Q—S‘S‘5‰=€DØˆ4�9‰9�d—i‘iÐ  DÒ(Ð(Ð(Øˆ1�3‰3�8‰8�Q—S‘S—X‘XÐ !§#¡#Ò%Ð%Ð%Ø	�‰ˆA�C‰C‰�!—#‘#�a—c‘c‘'Ñ˜AŸC™C §¡™GÑ#€AØˆ1�6‰6�1—6‘6ˆ?˜aÒÐÐØˆ1�8‰8�=‰=˜!Ÿ(™(Ÿ-™-Ð(¨A¯H©HÒ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Ø�Š7€Nˆ7Ü�3‹€AØ�Š6€M‰6r.   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Ü ¤ A§C¡CÓ(€MÜ ¤¤A¤q¨%Ó0€MÜ"¤1¤a¬¨EÓ2€NÜ#¤B¬¬B´Ó3€JØ×(Ñ(¨Ó+¬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£™¤s¬1£vÑ-Ñ	-ð	/ä”Q“´´Q³°¼¼A»±Ü”Q“œœA›‘ð	 ð6!ó /"ò "ð "ð "ð ×)Ñ)Ó+¬vÜ	ŒQ‹””A“‰œœA›œs¤1›v™¬c´!«f¨WÐ5Ü	ŒQ‹””A“‰”sœ1“vÑ	¤¤A£¤s¬1£v¡Ñ	-Ü	ŒQ‹””A“‰”sœ1“vÑ	¤¤A£¤s¬1£v¡Ñ	-¬s´1«v´c¼!³f©}ð	>ä	ŒQ‹””A“‰œœQ›¤¤A£™¤s¬1£vÑ-Ñ	-´´A³¨w´s¼1³v©~Ü	ŒQ‹””A“‰”sœ1“vÑ	ñ0Ü"¤1›v¤c¬!£f™}ð	.ð	7/ó 00ò 0ð 0ð 0ð ×%Ñ%Ó'¬6Ü	ˆQ‰”�Q‘‰œ˜Q™Ñ	¤ Q¡Ñ	&¨¬"©¬R©°!´B±$´r±'Ñ(9Ø	ŒB‰Œr‰�A”b‘Dœ‘GÑ	ð	à	ŒB‰Œr‰�A”b‘Dœ‘GÑ	œR ™U¤R¨¡U™]¬R°©UÑ2´R¸±UÑ:Ø	
Œ2‰Œb‰�1”R‘4œ‘7Ñ	ð	à	
Œ2‰Œb‰�1”R‘4œ‘7Ñ	Ø	ŒB‰Œr‰�A”b‘Dœ‘GÑ	œR ™U¤R¨¡U™]¬R°©UÑ2´R¸±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Ó7¸1¿3¹3Ò>Ð>Ð>Ü�a˜˜EÐ#6Ó7¸1¿3¹3Ò>Ð>Ð>Ü�a˜˜EÐ#6Ó7¸1¿3¹3Ò>Ð>Ð>Ü�a˜˜EÐ#6Ó7×@Ñ@ÓBÀaÇcÁcÇlÁlÃnÒTÐTÐTÜ�a—c‘cœ:Ô&Ü�a—c‘cœ:Ô&Ü�a—c‘cœ:Ô&ð'ð 'ð �3‰3ˆq�s‰s‰7�a—c‘c˜!Ÿ#™#‘gÒÐÐØ�<‰<˜‹?˜qŸs™s A§C¡C¨¯©¨a¯c©c°1·3±3¸¿¹Ð<Ò<Ð<Ð<Ø�3‰3�:‰:˜Š?Ðˆ?Ø�3‰3�8‰8�A—C‘C‹=˜AÒÐÐØ	×Ñ˜#œq !§#¡#Ó&€AØ�<‰<˜‹?˜qŸs™s A§C¡C¨¯©¨q¯s©s¨d´3´q³6©k¸A¿C¹CÄÄAÃ¹JÑ.FØ!"§¡ a§c¡c¬#¬a«&¡j°1·3±3´s¼1³v±:Ñ&=ð?ò ?ð ?ð ?à�<‰<˜‹?˜qŸs™s A§C¡C¬¬A«¡J°·±´S¼³V±Ñ$;Ø!"§¡ a§c¡c¬#¬a«&¡j°1·3±3´s¼1³v±:Ñ&=¸q¿s¹sÀAÇCÁCðIò Ið Ið Iä�1—3‘3˜ TÔ*¨a¯c©c´#´a³&©j¸1¿3¹3¼sÄ1»v¹:Ñ.EÒEÐEÐEÜ�1—3‘3˜ TÔ*¨q¯s©s¨d´3´q³6©k¸A¿C¹CÄÄAÃ¹JÑ.FÒFÐFÐFÜ�1—3‘3˜ TÔ*¨a¯c©cÒ1Ð1Ð1Ü”'˜!Ÿ#™#˜aŸc™c™' !§#¡#™+ q°DÔ9Ó:Ü�!—#‘#˜Ÿ™�tœC¤›F‘{ Q§S¡S¬¬Q«¡ZÑ/Ñ0°!·#±#´c¼!³f±*¸q¿s¹sÄ3ÄqÃ6¹zÑ2IÑJÓKòLð Lð Lä�1—3‘3�q—s‘s‘7˜QŸS™S §¡™WÑ$ q§s¡s¨1¯3©3¡wÑ.°Ó2Ø�C‰C””A“‰J˜Ÿ™œS¤›V™Ñ# Q§S¡SÑ(¨A¯C©C´´A³©JØ�3‰3Œs”1‹v‰:ñ-Ø—s‘sñ,ñ ØŸS™S §¡™Wñ%ò%ð %ð %ô ”G˜AŸC™C §¡™G a§c¡c¨!¯#©#¡gÑ-°·±°A·C±C±Ñ7¸Ø&*ô,ó -à�3‰3ˆq�s‰s‰7�Q—S‘S˜Ÿ™‘WÑ˜qŸs™s 1§3¡3™wÑ&ò'ð 'ð 'ô �1—3‘3�q—s‘s‘7˜QŸS™S §¡™WÑ$ q§s¡s¨1¯3©3¡wÑ.°Ó2Ø�C‰C””A“‰J˜Ÿ™œS¤›V™Ñ# Q§S¡SÑ(Ø�S‰SˆD””Q“‰K˜!Ÿ#™#œc¤!›f™*Ñ$ a§c¡cÑ)ñ*Ø,-¯C©C°·±©Gñ4ò4ð 4ð 4ô ”G˜AŸC™C §¡™G a§c¡c¨!¯#©#¡gÑ-°·±°A·C±C±Ñ7¸Ø&*ô,ó -à�3‰3ˆq�s‰s‰7�Q—S‘S˜Ÿ™‘WÑ˜qŸs™s 1§3¡3™wÑ&ò'ð 'ð 'ð 	
×Ñ˜#¤˜r 1§3¡3Ó'€AØ�<‰<˜‹?Ø�C‰C�—‘�a—c‘c˜1Ÿ3™3 §¡ Q§S¡SÐ)ò*ð *ð *à	×Ñ˜#œq !§#¡#¨¯©¡)¨a¯c©c¡/Ó2€AØ�l‰l˜1‹o€GØ�1—3‘3‰<×Ñ˜qŸs™s A¤c¬!£f¡H¨q¡LÑ1°!Ñ3ØŸC™C ¤C¬¬B¨q©D©£MÑ!1°AÑ!5Ñ6°qÑ8ñ 9àŸC™C ¤C¬¬B¨q©D©£MÑ!1°AÑ!5Ñ6°qÑ8ñ 9ô :ð :ð :ð �1—3‘3‰<×Ñ˜qŸs™s B¤s¬1¬r°!©t©8£}Ñ$4°qÑ$8Ñ9¸!Ñ;ØŸC™C ¤3¤q£6¡¨A¡Ñ.¨qÑ0ñ 1àŸC™C ¤C¬¬B¨q©D©£MÑ!1°AÑ!5Ñ6°qÑ8ñ 9ô :ð :ð :ð �1—3‘3‰<×Ñ˜qŸs™s B¤s¬1¬r°!©t©8£}Ñ$4°qÑ$8Ñ9¸!Ñ;ØŸC™C ¤C¬¬B¨q©D©£MÑ!1°AÑ!5Ñ6°qÑ8ñ 9àŸC™C ¤3¤q£6¡¨A¡Ñ.¨qÑ0ñ 1ô 2ð 2ð 2ð 	
�‰�Sœ!˜AŸC™C™%¤! A§C¡C¡%™-¬!¨A¯C©C©%Ñ/Ó0€AØ�<‰<˜‹?˜qŸs™s A§C¡C¬!¡G¨Q¯S©S°!·#±#¼±'¸1¿3¹3ÀÇÁÄaÁÐHÒHÐHÐHØ	×Ñ˜#œq !§#¡#¤q¨¯©¡u¬q°·±©u¡}´q¸¿¹±uÑ'<Ó=€AØ�<‰<˜‹?˜qŸs™s A§C¡C¬!¡GØ Ÿs™s A§C¡C¬¬A«¡J°·±´S¼³V±Ñ$;¼aÑ$?Ø Ÿs™s A§C¡C¬¬A«¡J°·±´S¼³V±Ñ$;¼aÑ$?ðAò Að Að Að �<‰<˜‹?˜qŸs™s Q§S¡S¬1¡W¬c´!«fÑ$4¸¿¹¼a¹ÄÄQÃÑ7GÑ$GØ Ÿs™s a§c¡c T¬A¡X¬s´1«vÑ$5¸¿¹¼q¹Ä#ÄaÃ&Ñ8HÑ$HØ Ÿs™s A§C¡C¬!¡Gð-ò -ð -ð -ð 	
�‰�Sœ&Ÿ+™+Ó&€AØ�<‰<˜‹?˜qŸs™s A§C¡C¨¯©¨a¯c©c°1·3±3¸¿¹Ð<Ò<Ð<Ñ<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Ø	×Ñ˜#œr 1§3¡3Ó'€AØ	×Ñ˜#œr 1§3¡3Ó'€AØ	×Ñ˜#œr 1§3¡3Ó'€AØ	×Ñ˜#œr 1§3¡3Ó'€AØ	×Ñ˜3¤¤B¬¨EÓ2€AØ	×Ñ ¤R¬¬R´Ó4€AØ	×Ñ˜#œr¤2¤r¨5Ó1€AØ×Ñ˜QÓ¤6ÜŒr‹7ˆ”Sœ“WÑ	œs¤2›wÑ	&¬¬R«´3´r³7Ñ):Ñ	:¼cÄ"»g¸IÜŒB‹ñ=Ü”R“œ3œr›7Ñ"¤S¬£WÑ,¬s´2«w¼¼R»Ñ/@Ñ@ð	Bä	ŒR‹”3”r“7Ñ	œS¤›W¤s¬2£wÑ.´´R³Ñ8Ñ	8Ü	ŒR‹”3”r“7Ñ	œC¤›G¤c¬"£gÑ-´´B³¼#¼b»'Ñ0AÜ	ŒR‹ñ1ñ ð	äœ"“g�I¤¤B£Ñ'¬¬R«´#´b³'¼CÄ»GÑ2CÐDð+Fó $Gò Gð Gð Gð × Ñ  Ó#¤fÜ
Œb‹'”Cœ“GÑ
œc¤"›gÑ
%¬¬B«´S¼³W°9¼sÄ2»wÑ3FÜŒB‹”#”b“'ÑœC¤›GÑ#ñ4$ñ )%ñ %Ü(+¬B« i´#´b³'Ñ&9¼CÄ»GÜ”‹Gñ=Üœ"“gñ=ñ 'Ü"¤2›w¬¬R«Ñ0´3´r³7Ñ:¼SÄ»WÜ”‹Wˆ9”sœ2“wÑ¤¤R£¬3¬r«7Ñ!2´S¼³WÑ!<Ñ<ñ>>ñ  >ð
?ô Œb‹'”Cœ“GÑ
œc¤"›g¬¬B«Ñ/´#´b³'Ñ9Ñ
9¼3¼r»7Ü
Œb‹'ñ<Ü”r“7œS¤›WÑ$¤s¬2£w´´R³Ñ'8¼3¼r»7Ñ'BÑBð
Dä
Œb‹'”Cœ“GÑ
œc¤"›gÑ
%¬¬B«´3´r³7¼SÄ»WÑ3DÜ36´r³7¼SÄ»WÑ3DÜ36´r³7ñ4;ñ4;ñ )<ñ <ä=@Ä»WÜ”B“ñ>Üœb›'¤C¬£GÑ+¬c´"«gÑ5ñ>6Ü7:¼2³wÜ
Œb‹'ñ8Üœ“Gñ8Ü!¤"›g¬¬R«´3´r³7Ñ):Ü),¬R«´3´r³7Ñ):¼SÄ»WÑ)Dñ*Eñ Fñ8Fð
Gð	Hó'Iñ I€Hð �?‰?Ó¤ a¨£Ò+Ð+Ð+Ø×Ñ˜QÓ¤6Ü
Œb‹'”#”b“'‰/œ3œr›7¤3¤r£7™?¬S´«W¨HÐ	5Ü	ŒR‹””R“‰œœR›Ñ	 ¤3¤r£7¬3¬r«7¡?Ñ	2Ü	ŒR‹””R“‰œœR›Ñ	 ¤3¤r£7¬3¬r«7¡?Ñ	2´C¼³G¼CÄ»G±Oð	Eä
Œb‹'”#”b“'‰/œC¤›G¤C¬£G™O¬C´«GÑ3Ñ
3Ü
Œb‹'ð6Ü”b“'ñ6Ü¤›G¤C¬£G™O¬C´«GÑ3ñ64Ü58¼³W¼SÄ»W±_ð
Fð	Gó$Hò Hð Hð Hð ×Ñ˜QÓ¤6Ü
ˆA‰”�A‘‰œ˜A™Ñ¤ A¡Ñ%Ø	Œ"‰ŒR‰�!”B‘$”r‘'Ñ˜2œb™5¤™8 a¬¡d¬2¡gÑ-ð,/à13´B±´r±¸A¼b¹DÄ¹GÑ1CÜ�‰E”B˜‘E‰MœB ™EÑ!¤B¨¡EÑ)¨1¬R©4´©7°Q´r±T¼"±WÑ+<ð0>à,-¬b©D´©G°a¼±d¼2±gÑ,=Ø,.¬r©E´"©H°q¼±t¼B±wÑ,>Ü " A¡¬¨A©¡´°A±Ñ 5¼¸A¹Ñ =ð,?ð	+@ó $Aò Að Að Að ×Ñ˜QÓ¤6ÜŒB‹””B“‰œ#œb›'¤#¤b£'™/¬#¬b«'Ñ1´C¼³G¼CÄ»G±OÑCÜŒB‹””B“‰œ#œb›'¤#¤b£'™/¬#¬b«'Ñ1Ñ1ð,3ô ”‹WˆH”Sœ“WÑœs¤2›w˜h¤s¬2£wÑ.¬s´2«wÑ6¼¼R»ÄÄRÃ¹ÑHÜ”‹G”Cœ“G‰Oœc¤"›g¤c¬"£g™o¬c´"«gÑ5Ñ5ð57ô ”B“œ#œb›'˜¤#¤b£'Ñ)¬3¬r«7´3´r³7©?ð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Ø	×Ñ˜#œr 1§3¡3Ó'€AØ	×Ñ˜#œr 1§3¡3Ó'€AØ	×Ñ˜#œr 1§3¡3Ó'€Aô 
ˆ1�3‰3‰”�1—3‘3‘‰œ˜1Ÿ3™3™Ñ	€BØ�<‰<˜‹?œf¬¬#¬b«'©	´A´c¼"³g±IÑ(=Ð&>Ü() r¬#¬b«'¡z´A´c¼"³g±IÑ'=Ð&>Ü<=Ð&>ð&@ó Aò Að Að Að
 �3‰3�7‰7�1—3‘3‹<œ3œr›7Ò"Ð"Ð"Ø�3‰3�7‰7�1—3‘3‹<œC¤›G˜8Ò#Ð#Ð#Ø�3‰3�7‰7�1—3‘3‹<˜1ÒÐÐØ�3‰3�7‰7�1—3‘3‹<œ3œr›7Ò"Ð"Ð"Ø�3‰3�7‰7�1—3‘3‹<œ3œr›7Ò"Ð"Ð"Ø�3‰3�7‰7�1—3‘3‹<˜1ÒÐÐØ�3‰3�7‰7�1—3‘3‹<˜1ÒÐÐØ�3‰3�7‰7�1—3‘3‹<˜1ÒÐÐØ�3‰3�7‰7�1—3‘3‹<˜1ÒÐÐà�3‰3�7‰7�1—3‘3˜Ÿ™‘9Ó¤#¤b£' ¬C´«GÑ!3ô  Ø�C‰C�!—#‘#‰I�?‰?˜1Ÿ3™3Óò ð  ñ  ð  ð  ð �3‰3�7‰7�1—3‘3‹<œ3œr›7Ò"Ð"Ð"Ø�3‰3�7‰7�1—3‘3‹<˜1ÒÐÐØ�3‰3�7‰7�1—3‘3‹<œ3œr›7Ò"Ð"Ð"Ø�3‰3�7‰7�1—3‘3‹<œ3œr›7¤3¤r£7™?Ò*Ð*Ð*Ø�3‰3�7‰7�1—3‘3‹<œ3œr›7Ò"Ð"Ð"Ø�3‰3�7‰7�1—3‘3‹<œC¤›G˜8¤C¬£GÑ+Ò+Ð+Ð+Ø�3‰3�7‰7�1—3‘3‹<œC¤›G˜8¤C¬£GÑ+Ò+Ð+Ð+Ø�3‰3�7‰7�1—3‘3‹<œ3œr›7Ò"Ð"Ð"Ø�3‰3�7‰7�1—3‘3‹<œ3œr›7¤3¤r£7™?Ò*Ð*Ð*ð �3‰3�9‰9�Q—S‘S‹>œS¤›W Q§S¡S™[Ò(Ð(Ð(Ø�3‰3�9‰9�Q—S‘S‹>œS¤›W Q§S¡S™[Ò(Ð(Ð(Ø�3‰3�9‰9�Q—S‘S‹>œc¤"›g˜X a§c¡c™\¬C´«G°A·C±C©KÑ7Ò7Ð7Ð7Ø�3‰3�9‰9�Q—S‘S‹>œc¤"›g˜X a§c¡c™\Ò)Ð)Ð)Ø�3‰3�9‰9�Q—S‘S‹>œS¤›W Q§S¡S™[Ò(Ð(Ð(Ø�3‰3�9‰9�Q—S‘S‹>œS¤›W Q§S¡S™[¬3¬r«7°1·3±3©;Ñ6Ò6Ð6Ð6Ø�3‰3�9‰9�Q—S‘S‹>˜QŸS™SÒ Ð Ð Ø�3‰3�9‰9�Q—S‘S‹>˜aŸc™c˜TÒ!Ð!Ð!Ø�3‰3�9‰9�Q—S‘S‹>œVŸ[™[Ò(Ð(Ð(à�3‰3�9‰9�Q—S‘S‹>œS¤›W Q§S¡S™[Ò(Ð(Ð(Ø�3‰3�9‰9�Q—S‘S‹>œS¤›W Q§S¡S™[Ò(Ð(Ð(Ø�3‰3�9‰9�Q—S‘S˜1Ÿ3™3‘YÓ¤3¤r£7¨1¯3©3¡;´´R³¸¿¹±Ñ#<Ò<Ð<Ð<Ø�C‰C�!—#‘#‰I×Ñ˜QŸS™SÓ!¤s¬2£w h´´R³Ñ&8¸!¿#¹#Ñ%=Ò=Ð=Ð=à�3‰3�9‰9�Q—S‘S‹>œS¤›W Q§S¡S™[Ò(Ð(Ð(Ø�3‰3�9‰9�Q—S‘S‹>œc¤"›g˜X a§c¡c™\¬C´«G°A·C±C©KÑ7Ò7Ð7Ð7Ø�3‰3�9‰9�Q—S‘S‹>œc¤"›g˜X a§c¡c™\Ò)Ð)Ð)Ø�3‰3�9‰9�Q—S‘S‹>œs¤2›w˜h¤s¬2£wÑ.°·±Ñ3Ü”‹WˆH”Sœ“WÑ˜aŸc™cÑ!ñ"ò "ð "ð "à�3‰3�9‰9�Q—S‘S‹>œc¤"›g q§s¡s™]¬s´2«w¨h¸¿¹©^Ñ;Ò;Ð;Ð;Ü�1—3‘3—9‘9˜QŸS™S“> 1Ó%×.Ñ.Ó0´C¼³G¸A¿C¹C±KÒ?Ð?Ñ?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¨%Ó0€IÜ"¤2¤r¬2¬rÓ2€IÜœR¤¤R¨Ó/€IØ	�‰�S˜9˜-Ó(€AØ	�‰�S˜9˜-Ó(€AØ	�‰�S˜9˜-Ó(€AØ	�‰�S˜9˜-Ó(€AØ�×!Ñ! #¤r¨1¯3©3Ó/Ò/Ð/Ð/Ø�×"Ñ" 3¬¬B´°EÓ:Ò:Ð:Ð:Ø�×'Ñ'¨¬R´´R¼Ó<Ò<Ð<Ð<Ø�×!Ñ! #¤r¬2¬r°5Ó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Ü�a—h‘h¤Ô&Ð&Ð&Ü	ˆ!�#‰#‰”�!—#‘#‘‰œ˜!Ÿ#™#™Ñ€AØ	�‰�S˜!Ó€AØ�8‰8× Ñ  Ó#Ø�>‰>˜!Óô0à�8‰8× Ñ  §¡Ó*ô0à./ò0ð 0ñ 0ð 0ð 0ð �8‰8× Ñ  Ó#Ø�>‰>˜!Óô1à�8‰8× Ñ  §¡Ó*ô1à/0¨bò1ð 1ñ 1ð 1ð 1ð �8‰8×'Ñ'¨Ó*´¨r´A°2¼°r¨lÒ:Ð:Ð:Ø	�‰×Ñ˜C ! Ó$€AØ× Ñ  Ó#¬¨¬Q¨B´° |Ò3Ð3Ð3Ø�>‰>˜!Ÿ(™(Ó# q§~¡~°aÓ'8ô Ø�‰6òð ñ ð ð à	
�‰�d˜A˜a™CÓ	 €BØ�?‰?˜1Ÿ8™8Ó$¬¯©Ò3Ð3Ð3Ø×!Ñ! !Ó$¨	Ò1Ð1Ð1Ø	
�‰�d˜AŸC™CÓ	 €BØ�?‰?˜2Ó ! A¡#¨¯©¡)Ò+Ð+Ð+Ø×!Ñ! !Ó$¨¬A©°©°2´a±4¸¼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¨ˆÓ5€AØ�9‰9˜Š>Ðˆ>Ø×%Ñ%Ó'Ø�C‰C”�A—G‘G“ÑœS §¡›ZÑ'¨¯©¬S°·±«\Ñ)9¼#¸a¿e¹e»*Ñ)DÀaÇcÁcÌ#ÈaÏgÉgË,ÑFVÐWòXð Xð Xà×'Ñ'Ó)Ü�—‘�a‘˜!Ÿ#™#˜q™&‘ 1§3¡3¨¡6Ñ)Ó*¬D°·±´T¸!¿#¹#¸q¹&À1Ç3Á3ÈÁ6¹/ÈAÏCÉCÐQRÉFÑ:RÓ5SÑ1SÓ,TÔV[Ð\]×\_Ñ\_Ðab×adÑadÓVeÐ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Ø�3‰3‹5�A—G‘G“IÒÐÐØ�7‰7œ˜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¨¯©¨Q KÒ/Ð/Ñ/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  ó   ø€  1§3¡3€ 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   € ¨¨A¨q¨	€ 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Ñ/DÀaÌÈEË
ÁlÔSVÐWZÓS[ÑF[Ð]^Ô_bÐchÓ_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!   € Ø	
Œ3ˆu‹:‰�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¨Ø	ˆ1ŒS�‹V‰8”C˜“F‰?˜A˜a¤ A£™h¤s¨1£v™o¨q°1´S¸³V±8ð>=ô >€ 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Ó�G€A€qˆ!ä�3 {Ú"7ô	9€Aà—N‘NÓ$�M€A€uˆcà�—‘Š8€Oˆ8Ø�A—G‘GÒÐÐØ�!—%‘%Š<Ðˆ<ä
Œ>›;Ô'Ü
Œ>›;Ô'Ü
Œ>›;Ô'à×%Ñ%Ó'Ø	Œ#ˆe‹*‰”S˜“XÑØ	Œ#ˆe‹*‰”S˜“XÑØ	Œ#ˆe‹*‰ð,ò ð ð ð
 ×ÑÓ  Q¨¨1¬S°«Z©<Ð$8Ò8Ð8Ð8Ø2ˆ1×0Ñ0Ó2°1°a¸Ó;ÜˆQ�!‰V�a˜1‘f‰_˜q A™vÑ%Ó&Üˆa”4˜˜1™˜q !™t™ a¨¡dÑ*Ó+Ñ+Ó,Üˆa�‹ð@ò ð ð ô
 	�3 }Ú"5ô	7€Aà—.‘.Ó"�K€A€uˆaØ×%Ñ%Ó'Ø	Œ#ˆe‹*‰Ø	Œ#ˆe‹*‰Ø	ð,ò ð ð ð
 ×ÑÓ  Q¨¯©¨Q KÒ/Ð/Ð/Ø2ˆ1×0Ñ0Ó2°1°a¸Ó;ÄÀQÈÁTÈAÈqÉDÁ[Ó@QÜ! ! Q›K¨ð@,ò ,ð ,ð ,ô 	�3˜Ó$€AØ×%Ñ%Ó'¨A¯C©C°·±°a·c±c¨?Ò:Ð:Ð:Ø×ÑÓ  IÒ-Ð-Ð-Ø2ˆ1×0Ñ0Ó2°1°a¸Ó;ÀÀ1Àa¸yÒHÐHÐHô
 �gÓ�G€A€qˆ!Ü�3˜!˜Q ˜ Q¨¨1 IÐ.Ó/€AØ×$Ñ$Ô&Ø×%Ñ%Ó'¨A¯D©D°!·$±$¸¿¹Ð+=Ò=Ð=Ð=Ø×ÑÓ  IÒ-Ð-Ð-Ø2ˆ1×0Ñ0Ó2°1°a¸Ó;ÀÀ1Àa¸yÒHÐHÐHÜ˜+Ó&�K€A€uˆaô 	�3˜!˜U A˜¨¬3¨u«:©°q¼¸U»±|ÀQÐ(GÐHÚ"5ô	7€Aà—.‘.Ó"�K€A€uˆaØ×%Ñ%Ó'Ø	Œ#ˆe‹*‰�aœ˜E›
‘l Að,ò ð ð ð ×ÑÓ ÜŒS�‹Z˜‰]œS ›Z¨™]Ñ*Ó+ÜˆQ�‰T”#�e“*˜a‘-Ñ ! Q¡$¤s¨5£z°1¡}Ñ"4Ñ4Ó5Ø	ð%ò ð ð ô 	�3Ñ1Ó2€AØ×%Ñ%Ó'¨A¯D©D°!·$±$¸¿¹Ð+=Ò=Ð=Ð=Ø×ÑÓ  IÒ-Ð-Ð-Ø×$Ñ$Ô&Ø2ˆ1×0Ñ0Ó2°1°a¸Ó;ÀÀ1Àa¸yÒHÐHÐHô 	�3ÑjÚ"7ô	9€Aà—N‘NÓ$�M€A€uˆcØ×%Ñ%Ó'Ø	Œ#ˆe‹*‰”S˜“XÑ˜q¤ S£™z¬#¨e«*Ñ4°a¼¸E»
±lð,ò ð ð ð ×ÑÓ ÜŒS�‹X�q‰[œ˜U› Q™Ñ&¬¨U«°Q©´s¸3³xÀ±{Ñ)BÑBÄSÈÃZÐQRÁ]ÑRÓSÜˆQ�‰T”#�c“(˜A‘+Ñœc %›j¨!™mÑ+¨a°©d´3°u³:¸q±=Ñ.@Ñ@À1ÀaÁ4ÌÈCËÐRSÉÑCSÔTWÐX]ÓT^Ð`aÑTaÑCaÑaÓbÜˆQ�‰T”#�c“(˜A‘+Ñœc %›j¨!™mÑ+¨a°©d´3°u³:¸q±=Ñ.@ÄÀSÃÈ1ÁÑ.LÑLÓMð%ò ð ð ô 	�3ñ (â*ô	€Að —.‘.Ó"�K€A€uˆaØ×%Ñ%Ó'¨A¬c°%«j©L¸!¼CÀ»J¹,ÈÐ+JÒJÐJÐJØ×ÑÓ ÜŒS�‹Z˜‰]œS ›Z¨™]Ñ*Ó+ÜˆQ�‰T”#�e“*˜a‘-Ñ ! Q¡$¤s¨5£z°1¡}Ñ"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¨#ÀÀ1Àa¸yÈ1ÈaÐQRÈ)Ð>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¨#Ø	
ˆAˆqˆ	�A”c˜!˜A™#“h‘Jœs 1›vÑ% 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Ó�G€A€qˆ!Ü
�&‹/�C€A€aÜ�3¨¨A¨q¨	°A´c¸!³f±H¼SÀ»V±OÀQÄsÈ1ÃvÁXÌcÐRSËfÁ_ÐVWÔX[Ð\]ÓX^ÑV^Ð3_Ð'`Ôa€AØ×!Ñ! !×"3Ñ"3Ó4¸Ñ<Ð<Ð<Ü�3¨¨A¨q¨	°A¼¸A»±JÀÄCÈÃFÁ
ÈAÐ3NÐ'OÔP€AØ×!Ñ! !×"3Ñ"3Ó4¸Ñ<Ð<Ð<Ü�3¨¨A¨q¨	´D¸³G¼cÀ!»fÑ4DÄdÈ1ÃgÔPSÐTUÓPVÑFVÐXYÐ3ZÐ'[Ô\€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ÓSÐXY×X[ÑX[Ð]^×]`Ñ]`Ðbc×beÑbeÐWfÒfÐfÐfØ×&Ñ& q×'AÑ'AÓ'CÀQÇ^Á^ÓEUÓVÐ[\×[^Ñ[^Ð`a×`cÑ`cÐef×ehÑehÐZiÒiÐiÐiØ	×Ñ˜#˜q 1§3¡3 $Ó'€AØ×&Ñ& q×'@Ñ'@À!Ç.Á.ÓBRÓSÐXY×X[ÑX[Ð]^×]`Ñ]`Ðbc×beÑbeÐWfÒfÐfÐfØ×&Ñ& q×'AÑ'AÓ'CÀQÇ^Á^ÓEUÓVÐ[\×[^Ñ[^Ð`a×`cÑ`cÐef×ehÑehÐZiÒiÐiÐiØ	×Ñ˜#˜r A§C¡C 4Ó(€AØ×&Ñ& q×'@Ñ'@À!Ç.Á.ÓBRÓSÜ�‹WˆH�q—s‘s‰NœS ›W q§s¡s™]Ñ*¬C°«G°a·c±c©M¼CÀ»GÀaÇcÁc¹MÑ,IÈ1Ï3É3ÐOòPð Pð Pà×&Ñ& q×'AÑ'AÓ'CÀQÇ^Á^ÓEUÓVÜ�‹G�a—c‘c‰MœC ›G a§c¡c™MÑ)¬C°«G¨8°a·c±c©>¼CÀ»GÀaÇcÁc¹MÑ+IÈ1Ï3É3Ð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ñ �'Ó
�€€1€aÙ�YÓ�
€€1€aˆÙ˜Ó'�€€BˆˆBò5òò>ò@@=òF/>òd>@òB:ò ?ò6gò7ò0òh?òVEóPr.   