
    IR-e                        d dl Zd dl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 ej                            ddd	d
ddej        ddddf         g          d             Zej                            ddej        z  dej        z  fdej        z  dej        z  fg          d             Zd Zd Zd Zej                            dddej        z  dej        z  dej        z  fdej        z                      ej                  dej        z                      ej                  dej        z                      ej                  fg          d             Zd ZdS )    N)assert_allclose)units)models)assert_quantity_allclose)wcsinp)r   r   )i  g(\4)g     F33333F@r   Z   )r   i      c                    t          j                    }ddg}||j         _        ddg|j         _        d}t	          j                    }t	          j        |d         t          j        z  |d         t          j        z  |t          j        z            }t	          j	        |d         t          j        z  |d         t          j        z  |t          j        z            }||z  }||j
        z  }|                    | d         | d         d          }	|                    |	d         |	d         d          }
t           ||  |	d	           t           ||	 |
d	           d S )
Ng90oOi@gXLjG@zRA---TANzDEC--TAN   r      -q=atol)r   WCScrvalctyper   Pix2Sky_TANRotateNative2CelestialudegRotateCelestial2Nativeinversewcs_pix2worldwcs_world2pixr   )r   wr   lonpoletann2cc2nmminvradecxys              Plib/python3.11/site-packages/astropy/modeling/tests/test_quantities_rotations.pytest_against_wcslibr)      s<   
 			A+&EAEKz*AEKG



C

'a15%(QU*GaeO C 
'a15%(QU*GaeO C 	c	ADOOCFCFA..E	
q58Q	/	/BAAsGU////DD%L"5111111    (   gv/g     5@r	   c                    dt           j        z  dt           j        z                      t           j                  dt           j        z                      t           j                  }}}t          j        |||          }t          j        |||          }t           |j	         ||   | dt           j        z             t           |j	         ||   | dt           j        z             d S )N*   +   ,   gvIh%<=r   )
r   r   toarcsecradr   r   r   r   r   )r   lonlatlon_poler"   r#   s         r(   test_roundtrip_sky_rotationr6   *   s     aeb15j__QX%>%>aePQPU@V@VhC

'S(
;
;C

'S(
;
;C[S[##s)4cNNNN[S[##s)4cNNNNNNr*   c                     t          j        dt          j        z            } dt          j        z  dt          j        z  }} | ||          \  }}t	          ||gdt          j        z  dt          j        z  gdt          j        z             d S )Nr   angler   r   绽|=r   )r   
Rotation2Dr   r   r   )modelabxys        r(   test_Rotation2DrA   5   sy    BJ///Equ9a!%iqA5A;;DAqaVa!%iQU%;%!%-PPPPPPr*   c                  &   t          j        dt          j        z            }  | j         | dt          j        z  dt          j        z             \  }}t          ||gdt          j        z  dt          j        z  gdt          j        z             d S )Ng䠄Gm@r8   r   r   r:   r   )r   r;   r   r   r   r   )r<   r?   r@   s      r(   test_Rotation2D_inverserC   <   s|    I$5666E5=%%AE	1qu9556DAqaVa!%iQU%;%!%-PPPPPPr*   c                     dt           j        z  dt           j        z  f} d}d}t          j        dt           j        z  t
          j        dz  t           j        z  dt           j        z  d          }t           || |d           t          j        dt           j        z  dt           j        z  dt           j        z  d          }t           ||t           j        z   | dt           j        z             d S )	Nr   r   )r   r   r
      zxzr   r   )	r   r   r   EulerAngleRotationr2   nppir   r   )ydegr@   zr<   s       r(   test_euler_angle_rotationsrL   B   s    JAE	"DAA %a!%iQU1BAIuUUEEE1Iqw////%a!%iaeQYNNEUUQY0$Wqu_MMMMMMr*   params)<   
      rN   rO   rP   c                 <   dt           j        z  }dt           j        z  }| \  }}}t          j        |||d          } ||j        |j                  \  }}t          ||fd            |||          \  }}t          ||fdt           j        z  dt           j        z  f            ||                    t           j                  |                    t           j                            \  }}t          ||fdt           j        z  dt           j        z  f           d S )Nr   xyz)
axes_order)fM7wg3C#@rT   rU   )	r   r   r   rG   valuer   r   r0   r2   )	rM   r?   r@   phithetapsiurotr=   r>   s	            r(   test_euler_rotations_with_unitsr[   N   s    	
AE	A	AE	AOC$S%GGGD4!!DAqQFDEEE41::DAq	
A$qu,.?!%.GH   4QUQTT!%[[))DAq	
A$qu,.?!%.GH    r*   c                     t          j        dt          j        z  dt          j        z  t
          j        t          j        z            } t          | j	        j
        d           t          | j	        j        d           t          | j        j
        d           t          | j        j        d           t          | j        j
        t
          j                   t          | j        j        t
          j                   | j        j        t          j        d          u sJ | j        j        t          j        d          u sJ | j	        j        t          j        d          u sJ | j	        j        t          j        d          u sJ | j        j        t          j        d          u sJ | j        j        t          j        d          u sJ d S )Ni0N  g33333Rgi_ˡ0gm.׸?r1   r2   r   )r   r   r   r1   r   rH   rI   r2   r   r4   rV   
_raw_valuer3   r5   unitUnitinternal_unit)r"   s    r(   test_attributesra   h   si   

'(8%!%-QRQV
W
WCCGM5)))CG&(;<<<CGM5)))CG&(;<<<CL&...CL+RU3337<16(++++++7 AF5MM11117<16%==((((7 AF5MM1111<u----<%666666r*   )numpyrH   pytestnumpy.testingr   astropyr   r   astropy.modelingr   astropy.tests.helperr   astropy.wcsr   markparametrizemgridr)   r   r2   r1   r6   rA   rC   rL   r0   r[   ra    r*   r(   <module>rm      s        ) ) ) ) ) )       # # # # # # 9 9 9 9 9 9       	^_gx"(2A2rPQr6BRT 2 2	 20 	R!%Z!%(4!(?D15L*IJ O O OQ Q QQ Q Q	N 	N 	N 	aeR!%Zae,
qu*		"qu*!7!7"qu*9O9OP   $7 7 7 7 7r*   