
    g@                     $   d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZ d d	lmZmZmZmZ d d
lmZ d dlmZm Z m!Z! d dl"m#Z# d dl$m%Z%m&Z& d Z'd Z(d Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3dS )    )Basic)IRationalpievaluate)S)Symbol)sympify)sqrt)LinePointPoint2DPoint3DLine3DPlane)rotatescale	translateGeometryEntity)Matrix)subsetspermutationscartes)Undecidable)raiseswarnsc                  >   t          dd          } t          dd          }t          dd          }t          dd          }t          dd          }t          dd          }t          j        }t          ||          t          ||          }t          d	d	          t          d
d
          }t          d	d
          }	t	          t          d
d	          d
          v sJ |vsJ |j        |k    sJ |z   |k    sJ |z
  t          ||z
  ||z
            k    sJ | t          | |           k    sJ t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          dt          d                    t          t          dd          t          d                    k    sJ t          j        |          t          ||          k    sJ t          j        |          t          |||z  z   |||z  z             k    sJ t          j        ||          |k    sJ |                    |          |k    sJ j        t          d	d	          k    sJ t          j        |          t          d          k    sJ t          j                  d	k    sJ t          j        |          t          |j        dz  |j        dz  z             k    sJ t          t          fd           t          t          fd                                                                       k    sJ |                                                  |          k    sJ t          j        |          dk    sJ t          j        ||	          d
k    sJ t          t          fd           t          ||          t          ||          }
t          |d
z   |          }t          j                  sJ t%          t&          d          5  t          j        t          d                    sJ 	 d d d            n# 1 swxY w Y                                   sJ t          j        |          sJ t          j        ||
          sJ t          j        ||          du sJ t          j        ||	          du sJ t          t          fd           t          t          fd                               t          d	d	                    gk    sJ                     |          g k    sJ                               g k    sJ t%          t&          d          5  t          j        t          d	d	d	          t          d	d	                    t          d	d	d	          gk    sJ 	 d d d            n# 1 swxY w Y   t          dd          }t          |d	          }t          d	|          }t          | d	          }t          d	|           }t          |d           }t          j        |          sJ t          j        ||          sJ t          j        ||||          sJ t-          ||||f          D ]}t          j        | du sJ t          j        ||dz  |dz            du sJ t          d	d	                              d!d"d#          du sJ t          j        t          d	d	d	d	          t          d
d	d	d	          t          d
d
d	d	          t          d
d
d
d	                    du sJ                               sJ                     dz            sJ                     |          rJ t          j        t          d
d
          d$          sJ t          j        t          d	d	          d%          sJ t          t0          d&            t          d	d
          j        t          d
d	          k    sJ t          d
d	          j        t          d	d
          k    sJ j        J j        sJ |j        du sJ j        J j        du sJ |j        sJ |                    dd          t          dd          k    sJ                     dd          k    sJ |                    t<          t          d'd'                    k    sJ                     |                              |                              dd          k    sJ                       |                              |                              dd          k    sJ |d z  t          d d           k    sJ |d z  t          d(d(          k    sJ d |z  t          d d           k    sJ t          t          d)            t          | | d
z
  z  |          t          | dz  | z
  |d
z             z
  t          d	d*          k    sJ t          j        t          d
d          }}t          ||          !                    d          t          |"                    d          |"                    d          d+          k    sJ t          t          d,            t          j#        d-d.          t          d	d	          k    sJ t          j#        d!d.          t          d
d	          k    sJ t          t          fd/           t          d
d	                              t<          dz            t          d	d
          k    sJ                     t<          dz            k    sJ t          d
d
                              dd          t          dd          k    sJ $                    d
d          t          dd          k    sJ $                    d
          t          dd
          k    sJ $                    d
0          t          d
d          k    sJ  j$        j%         t          dd          k    sJ t          t          fd1           t          t          fd2           d	t          d	d	d	d	          v sJ d
t          d	d	d	d	          vsJ t          j&                    d*k    sJ d S )3NxTrealyx1x2y1y2r      )slopec                       t          d          S Nr'   r        [/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/geometry/tests/test_point.py<lambda>ztest_point.<locals>.<lambda>%   s    eAhh r-   c                  "    t          dg          S r*   r+   r,   r-   r.   r/   ztest_point.<locals>.<lambda>&   s    uaSzz r-   c                  ,    t          dt                    S N   r   r   r,   r-   r.   r/   ztest_point.<locals>.<lambda>'   s    uQ{{ r-   c                  <    t          dt          z  t                    S )N   r4   r,   r-   r.   r/   ztest_point.<locals>.<lambda>(   s    uQqS!}} r-   c                  <    t          dt          z   t                    S r2   r4   r,   r-   r.   r/   ztest_point.<locals>.<lambda>)   s    uQUA r-   fffffA@r3        r6   c                  .    t          j         d          S Nr   )r   distancep1s   r.   r/   ztest_point.<locals>.<lambda>5   s    enR33 r-   c                  F    t          j         t                                S N)r   r=   r   r>   s   r.   r/   ztest_point.<locals>.<lambda>6   s    enR1A1ABB r-   c                  .    t          j                    S rA   )r   canberra_distancep3s   r.   r/   ztest_point.<locals>.<lambda>?   s    u6r2>> r-   Ftest_stacklevel   )dimc                  ,    t          j                   S rA   )r   is_collinear)lines   r.   r/   ztest_point.<locals>.<lambda>N   s    e066 r-   c                  .                                    S rA   )rK   )rL   p1_1s   r.   r/   ztest_point.<locals>.<lambda>O   s    d//55 r-   )positive   r'   r'   )r6   r6   )r6   r'   )rR   )r   rR   c                      t          j        t          t          d          t          d                    t          dd                    S )Nzx1%y1zx2%y2r   r'   )r   is_scalar_multipler   r,   r-   r.   r/   ztest_point.<locals>.<lambda>l   s<     8ww?O?OQXY`QaQa9b9bdijkmndodo p p r-   g      ?皙?c                  (    t          dd          dz   S Nr   
   r+   r,   r-   r.   r/   ztest_point.<locals>.<lambda>   s    uQ{{R/ r-   rR   r   c                  (    t          dd          dz   S Nr'   r6   r+   r,   r-   r.   r/   ztest_point.<locals>.<lambda>   s    uQ{{Q r-   )r   r'   )r'   r   c                  J    t          j         t          dd                    S r<   )r   projectr>   s   r.   r/   ztest_point.<locals>.<lambda>   s    u}Rq!== r-   )r"   c                  .                                     S rA   	transformrD   s   r.   r/   ztest_point.<locals>.<lambda>   s    r||B// r-   c                  T                          t          ddgddgg                    S Nr'   r   r_   r   ps   r.   r/   ztest_point.<locals>.<lambda>   (    q{{6Aq6Aq62B+C+CDD r-   )'r
   r	   Halfr   r   r"   r   	TypeError
ValueErrorr   r   midpointoriginr=   r   taxicab_distancerC   rK   r   UserWarningintersectionis_concyclicr   rT   r   orthogonal_directionis_zero
is_nonzeror   r   r   __radd____rsub__evalfnr\   r   argsaffine_rank)r   r"   r#   r$   r%   r&   halfp2p4p5p1_2p1_3x_posp2_1p2_2p2_3p2_4p2_5ptsabrL   rd   r?   rN   rE   s                        @@@@@r.   
test_pointr      s   sAsA	4	 	 	 B	4	 	 	 B	4	 	 	 B	4	 	 	 B6D	r2B	r2B	q!B	q!B	q!Ba1%%%D8888R<<<<42::::G????Gb2grBw//////3%bS//!!!!
9&&'''
:))***
:**+++
:,,---
:..///Q  E(3*;*;T!WW$E$EEEEE>"b!!U4%6%66666>"b!!U4$r'>4$r'>%J%JJJJJ>"b!!R'''';;r??b    9a####>"b!!T!WW,,,,>"b!!Q&&&&>"b!!T"$'BD!G*;%<%<<<<<
93333444
9BBBBCCC ;;tb 1 11111;;tb 1 11111!"b))Q...."2r**a////
:>>>>???R==DR==DaDb!!!!!	{E	2	2	2 8 8!"eBA&6&6&67777778 8 8 8 8 8 8 8 8 8 8 8 8 8 8??b"%%%%%b"dD11111b"dD11U::::b"b"--6666
96666777
955555666??5A;;''B4////??2"$$$$??4  B&&&&	{E	2	2	2 S S!%1a..%1++>>5Aq>>BRRRRRRS S S S S S S S S S S S S S S 3&&&E??DE??D%DUFD??Dd#####dD)))))dD$55555T4t455 1 1!3'500000b"q&"q&11U::::A;;##FFF;;uDDDDeAq!Q//q!Q1B1BE!QPQSTDUDUW\]^`acdfgWhWhiimrrrrr  $$$$$  2&&&&&$$R(((((#E!QKK:::::#E!QKK99999
;ppqqqA;;+uQ{{::::A;;+uQ{{:::::::=   =E!!!!=88Aq>>U1a[[((((88Aq>>R99RsC))R////;;r??bkk"oo33Aq999999C>>"R!6!6q!!<!<<<<<6U1a[[    6U3__$$$$r6U1a[[    
://000 AEAq!taxQ!7!775B<<GGGG68Aq>>qAA;;Qacc!ffacc!ffu---. . . .
:../// =((E!QKK7777=((E!QKK7777
:====>>> 	aA88BqD>>U1a[[((((88BqD!!!!!aA771a==E!QKK'''';;q!a++++;;q>>U1a[[((((;;;uQ{{****1;5A;;.... :////000
:DDDDEEE aAq!!!!!!E!Q1%%%%%% "$$$$$$s%   #'RRRA	XX"Xc            	         t          dd          t          dd          } t          dd          }t          dd          }t          dd          }t          dd          }t          d	d          }t          d
d          }t          j        }t          |||          }t          |||          }	t          ddd          }
t          ddd          }t          ddd          }||v sJ ||	vsJ |	j        |k    sJ |
|z   |k    sJ |	|z
  t          ||z
  ||z
  ||z
            k    sJ |	 t          | | |           k    sJ t          dt          d                    t          t          dd          t          d                    k    sJ t          j        |
|          t          |||          k    sJ t          j        ||          t          |||z  z   |||z  z   |||z  z             k    sJ t          j        |	|	          |	k    sJ |	                    |	          |	k    sJ t          j	        |
|          t          d          k    sJ t          j	        ||          dk    sJ t          j	        |
|	          t          |	j
        dz  |	j        dz  z   |	j        dz  z             k    sJ t          |||          }t          |||          }t          |dz   ||          }t          j        |
           t          j        |
|          sJ t          j        |
|||          sJ t          j        |
|||          du sJ t          j        |
|
||          du sJ |
                    t          ddd                    |
gk    sJ |
                    |          g k    sJ |dz  t          ddd          k    sJ |dz  t          ddd          k    sJ d|z  t          ddd          k    sJ t          t          d            |j        |||fk    sJ |	j        |||fk    sJ |
j        dk    sJ |j        dk    sJ |j        dk    sJ |j
        dk    sJ |j        dk    sJ |j        dk    sJ t          dz
  z  | d          t          dz  z
  | dz   d          z
  t          ddd          k    sJ t          j        t          dd          t          dd          }}}t          |||                              d          t          |                    d          |                    d          |                    d          d          k    sJ t          t          d            t          ddd                              dd          t          ddd          k    sJ                     dd          t          ddd          k    sJ                     d          t          ddd          k    sJ                     d          t          ddd          k    sJ  j        j         t          ddd          k    sJ t          dddd           j        d         j        sJ j        dk    sJ |j        dk    sJ |j        dk    sJ t          t0          fd!           t          j                    sJ t          j        d"d"d#          sJ t          j        d"d$          sJ t5          t6          d%          5  t          t          d&            d d d            n# 1 swxY w Y   t          j        d"d$          sJ t          j        dd'dd(          du sJ t          ddd          }t          ddd          }t          j        ||          dk    sJ t          j        |||
          dk    sJ t          j        |          sJ t          ddd          }t          ddd          }t          j        ||          sJ t9          d(d)d*          t          j        fd+t;          d          D              sJ t          j        t          |           t          | z             t          | dz                       du sJ |                    t=          |                    t          ddd          gk    sJ |                    ddd          |k    sJ |                    ddd|          t          ddd          k    sJ |                    ddd|
          |k    sJ t?          g d,g d-g d.g d/g          }                     |          k    sJ t?          g d0g d1g d2g d/g          }                     |          t          ddd          k    sJ t          t          fd3           t          t          fd4           !                    |          dk    sJ t          dddd          }t5          t6          d%          5  |z
  t          dddd          k    sJ 	 d d d            n# 1 swxY w Y   t          dddd          }t5          t6          d%          5  |z
  t          dddd          k    sJ 	 d d d            d S # 1 swxY w Y   d S )5Nr   Tr    r"   r#   r$   x3r%   r&   y3r   r'   r6   r8   r3   r9   r:   FrP   rU   c                  *    t          ddd          dz   S rW   r   r,   r-   r.   r/   ztest_point3D.<locals>.<lambda>   s    wq!Q//"4 r-   )r   r   r   )r'   r'   r'   )r   r'   r6   rR   rH   r   c                  *    t          ddd          dz   S )Nr'   r6   r3   r   r,   r-   r.   r/   ztest_point3D.<locals>.<lambda>   s    wq!Q//!3 r-   )z皙?ignore)r   on_morphc                  .    t          j                   S rA   r   are_collinear)rd   r   s   r.   r/   ztest_point3D.<locals>.<lambda>  s    g3Aq99 r-   )r'   r6   r   )r'   r3   r   r'   r6   r3   rF   c                  ,    t          j        dd          S )Nr'   r6   r   )r   are_coplanarr,   r-   r.   r/   ztest_point3D.<locals>.<lambda>	  s    7#7	#J#J r-   )r'   r'   r   )r'   r6   r'   )r6   r'   r   )r3   r'   r6   c                 D    g | ]}                     d |z  |f          S )rR   )
projection).0iplanes     r.   
<listcomp>z test_point3D.<locals>.<listcomp>  s/    QQQ1 0 02'1 > >QQQr-   )r'   r   r   r   )r   r'   r   r   )r   r   r'   r   )r   r   r   r'   )r'   r   r   r'   )r   r'   r   r'   )r   r   r'   r'   c                  .                                     S rA   r^   rc   s   r.   r/   ztest_point3D.<locals>.<lambda>'  s    q{{1~~ r-   c                  T                          t          ddgddgg                    S ra   rb   rc   s   r.   r/   ztest_point3D.<locals>.<lambda>(  re   r-   )"r
   r	   rf   r   r"   r   r   r   ri   r=   r   r   r   rm   r   rh   coordinatesrt   ru   r   r   rv   is_Floatlengthrg   r   r   rl   r   ranger   r   r_   equals)r"   r#   r$   r   r%   r&   r   rx   r?   ry   rE   rz   r{   rN   r|   r}   r   r   cplanar2planar3identitytransp_4dp_4d3drd   r   r   s                            @@@r.   test_point3Dr      s   sAsA	4	 	 	 B	4	 	 	 B	4	 	 	 B	4	 	 	 B	4	 	 	 B	4	 	 	 B6D	R		B	R		B	Aq		B	Aq		B	Aq		B8888R<<<<42::::G????GRb"r'::::::3'2#sRC((((((Q  E(3*;*;T!WW$E$EEEEEB##wtT4'@'@@@@@B##wtd2g~td2g~)-R(9 (9 9 9 9 9B##r))));;r??b    B##tAww....B##q((((B##tBD!GbdAg,=a,G'H'HHHHH2r2D2r2D262r""D" R((((( Rt44444 Rt44==== RR00E9999??71a++,,4444??2"$$$$ 6WQ1%%%%%%6WS#s++++++r6WQ1%%%%%%
:44555 >b"b\))))>b"b\))))>Y&&&&>Y&&&&>Y&&&&419999419999419999 1a!e9a##gadQhAq&A&AA2q    fhq!nnhq!nn!qA1a!!!$$acc!ffacc!ffacc!ffu5556 6 6 6
:33444 	1aA771a==GAq!,,,,,,;;q!1a 0 00000;;q>>WQ1------;;;wq!Q//////1;71a#3#33333 3eh???DQGPPPP 8q====;!;! 999999::: iI>>>>>i33333	{E	2	2	2 L LzJJKKKL L L L L L L L L L L L L L L	955555iIyIIURRRRaQGb!QG7G44<<<<7GR88EAAAAa)))))aAGaAG7G44444)Y	22EQQQQaQQQRRRR eAqkk5AE??E!QUOOLLPTTTTT q' 2 2331a8H8H7IIIII ==Aq!!W,,,,==Aq'**gaA.>.>>>>>==Aq"%%0000 |||\\\<<<NOOH;;x  A%%%%LLL,,,lllKLLE;;uAq!1!11111
:----...
:DDDDEEE 88B<<5     Aq!D	{E	2	2	2 . .4x5Aq"-------. . . . . . . . . . . . . . .1aAF	{E	2	2	2 / /6zU1aA......./ / / / / / / / / / / / / / / / / /s6   $]]]i,,i03i0k		kkc                     t          dd          } t          dd          }d}|                     |          t          d          dz  k    sJ |                    |          t          d          dz  k    sJ | j        dk    sJ | j        dk    sJ |j        dk    sJ |j        t          d          dz  k    sJ | j        d	k    sJ |j        dt          d          dz  fk    sJ | j        d
k    sJ d S )Nr'   rP   rH   g      @)   r3   =   r6      )r'   rP   )r'   rP   r'   rP   )r   r=   r   r   r"   r	   r   boundsr?   ry   rE   s      r.   test_Point2Dr   6  s    
AB	CB	B;;r??d2hhqj((((;;r??d2hhqj(((( 41999941999941999941Q446>>>>>V####>a1a[(((( 9$$$$$$r-   c                      t          ddd          } t          ddd          }t          ddd          }t          j        | ||          du sJ d S )	NrH   r   r'   r6   r3      Fr   r   s      r.   test_issue_9214r   J  s[    	B		B	Aq		B	Aq		B R,,555555r-   c                      t          ddd          } t          dd          }t          t          d          5  |                     |          t          d          k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr'   r   r6   FrF   rP   )r   r   r   rl   r=   r   r?   ry   s     r.   test_issue_11617r   R  s    	1QB	1B	{E	2	2	2 * *{{2$q'')))))* * * * * * * * * * * * * * * * * *s   )A//A36A3c                  `   t          dd          } |                     t          t          dz                      t          dd          k    sJ |                     t	          dd                    t          dd          k    sJ |                     t          dd                    t          dd          k    sJ t          dd                              ddd          t          dd          k    sJ t          dd                              dd	          t          d	d
          k    sJ d S )Nr'   r6   rR   r3   )rH   rP   r   irH   rP   r   )r   r_   r   r   r   r   rc   s    r.   test_transformr   Z  s   aA;;vbd||$$b!4444;;uQ{{##uQ{{2222;;yA''5A;;6666A;;Q6**b"   A;;  A&&a     r-   c                      t          dd          t          dd          }} t          dd          t          dd          }}t          j        | ||          sJ t          j        | |||          rJ d S )NrR   r   r'   r6   )r   rn   )r?   ry   rE   rz   s       r.   test_concyclic_doctest_bugr   e  sr    2q\\5A;;B1a[[%A,,Bb"b)))))!"b"b1111111r-   c                  n   dddgt          dd          f} dddgt          dd          f}t          | |          }t          dd          }dg dt          ddd          f}t          |d          }t	          ddd          }dg dt          dddd          f}t          |d          }t          dddd          }	g d	}
d
dg}| D ]}t          |           |
D ] }| D ]} t          ||          |           !|D ]}|D ]} t          ||          |  dg}|D ]}t	          |           |
D ] }|D ]} t          ||          |           !|D ]}|D ]} t          ||          |  dg}|D ]}t          |           |
D ] }|D ]} t          |	|          |           !|D ]}|D ]} t          |	|          |  t          d          }t          dd          }|d|fz   t          dd|z   d          k    sJ t          dd          }|dz  t          ddd          k    sJ t          dd          }|dz  t          ddd          k    sJ t          ddd          }t          |dd          }|j        dk    sJ t          d |j        dd         D                       sJ t          d t          |          j        D                       sJ t          dd          sJ t          t          d            t          t          d            t          t          d            dS )zFunctions accepting `Point` objects in `geometry`
    should also accept tuples and lists and
    automatically convert them to points.r   r'   r6   )r'   r3   r3   r   )r'   r6   r3   rH   rH   )	r=   rT   rk   ri   rm   dotr   __add____sub__rn   rK   r   r   r   Fr   g      $@g        rU   r   rI   r   )r   rU   r   r   c              3   $   K   | ]}|j         V  d S rA   r   r   r   s     r.   	<genexpr>z!test_arguments.<locals>.<genexpr>  s$      //aqz//////r-   Nc              3   $   K   | ]}|j         V  d S rA   r   r   s     r.   r   z!test_arguments.<locals>.<genexpr>  s$      11aqz111111r-   errorc                  (    t          dddd          S )Nr'   r3   r   r   r+   r,   r-   r.   r/   z test_arguments.<locals>.<lambda>  s    uQq7CCC r-   c                  (    t          dddd          S )Nr'   r3   unknownr   r+   r,   r-   r.   r/   z test_arguments.<locals>.<lambda>  s    uQq9EEE r-   c                  R    t          t                      t                                S rA   )r   r   r,   r-   r.   r/   z test_arguments.<locals>.<lambda>  s    eEGGUWW55 r-   )r   r   r   r   r   getattrr
   rv   allr   rh   rg   )	singles2d
singles2d2	doubles2dp2d	singles3d	doubles3dp3d	singles4d	doubles4dp4dtest_singletest_doublerd   funcr   r   uu4s                     r.   test_argumentsr   l  s]   
 1uQqzz*I!Aa

+Jy*--I
!A,,C'''51Q<<0I	1%%I
!Aa..CIIIuQq1~~6I	1%%I
!Aa..C L  L  LK!>2K  



 " " 	" 	"AGCq!!!!	" # # 	# 	#AGC"""	# ""K  



 " " 	" 	"AGCq!!!!	" # # 	# 	#AGC"""	# ""K  a " " 	" 	"AGCq!!!!	" # # 	# 	#AGC"""	# 	sAaAQx<5a!ee<<<<<<<aAT6U1cE2222222aAT6U3u5555555 	b"u%%%A	qa(	+	+	+B7n$$$$//272A2;////////11588=11111111 Q)))))) :CCDDD
:EEFFF
95566666r-   c                      t          dd          j        t          t          d          dz  t          d          dz            k    sJ d S rZ   )r   unitr   r,   r-   r.   	test_unitr     sB    A;;uT!WWQYQ	::::::::r-   c                  2    t          t          d            d S )Nc                  d    t          dd                              t          dd                    S )Nr'   r6   )r   r   rQ   )r   r   r   r,   r-   r.   r/   ztest_dot.<locals>.<lambda>  s$    eAqkkood66.B.BCC r-   )r   rg   r,   r-   r.   test_dotr     s    
9CCDDDDDr-   c                  d   t          j        t          dd          t          dd                    t          dd          t          dd          gk    sJ t          j        t          dd          t          ddd          d          t          ddd          t          ddd          gk    sJ d S )Nr'   r6   r3   rH   r   r   )r   )r   _normalize_dimensionr,   r-   r.   test__normalize_dimensionr     s    %eAqkk5A;;??aU1a[[D" " " " "%aU1a^^h8 8 8aAaA<(( ( ( ( ( (r-   c                  v    t          d          5  t          dd           d d d            d S # 1 swxY w Y   d S )NFr'   r6   )r   r   r,   r-   r.   test_issue_22684r     s    	%  a                 s   .22c                  (   t          ddd          } t          ddd          }|                     t          ddd                    g dk    sJ |                     t          ddd                    g dk    sJ |                     t          ddt                              g dk    sJ |                     t          ddd                    g dk    sJ |                     t          dt          d          d                    g dk    sJ |                     t          ddd                    g dk    sJ |                     t          ddd                    t          d	          d	z  t          d	          d	z  dgk    sJ |                     t          ddd                    t          d          dz  t          d          dz  t          d          dz  gk    sJ |                     t          d
d                    dt          d          z  dz  dt          d          z  dz  dgk    sJ |                    t          ddd                    t          d           dz  t          d           dz  t          d           dz  gk    sJ |                    t          ddd                    g dk    sJ |                    t          ddd                    t          d	          d	z  dt          d	          d	z  gk    sJ d S )Nr   r'   )r'   r   r   )r   r'   r   )r   r   r'   rP   r3   g333333@r6   ii)      )r   direction_cosiner   r   r   s     r.   test_direction_cosiner     s   	Aq		B	Aq		Bwq!Q//00III====wq!Q//00III====wq!R0011YYY>>>>wq!Q//00III====wq$q''15566)))CCCCwq!Q//00III====wsC3344aDGGAIq8QQQQQwq!Q//00T!WWq[$q''A+tTUwwYZ{4[[[[[wsE2233488B4PR88TVXY7ZZZZZwq!Q//00d1ggX\DGG8a<RVWXRYRYQY\]Q]4^^^^^wq!R0011YYY>>>>wr1b1122tAww{AtAwwQR{6SSSSSSSr-   N)4sympy.core.basicr   sympy.core.numbersr   r   r   sympy.core.parametersr   sympy.core.singletonr	   sympy.core.symbolr
   sympy.core.sympifyr   (sympy.functions.elementary.miscellaneousr   sympy.geometryr   r   r   r   r   r   sympy.geometry.entityr   r   r   r   sympy.matricesr   sympy.utilities.iterablesr   r   r   sympy.utilities.miscr   sympy.testing.pytestr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r,   r-   r.   <module>r      s   " " " " " " 0 0 0 0 0 0 0 0 0 0 * * * * * * " " " " " " $ $ $ $ $ $ & & & & & & 9 9 9 9 9 9 G G G G G G G G G G G G G G G G J J J J J J J J J J J J ! ! ! ! ! ! C C C C C C C C C C , , , , , , . . . . . . . .V% V% V%rJ/ J/ J/Z% % %(6 6 6* * *  2 2 2K7 K7 K7Z; ; ;E E E( ( (  T T T T Tr-   