
    IR-e                     F   d dl mZ 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 dd	lmZ  eej                  Zd
 Zd Zej                            e ed          k     d          d             Zej                            e ed          k     d          d             Zej                            e ed          k     d          ej                             ed          ecxk    o ed          k     nc d          d                         ZdS )    )deepcopyN)Version)wcs)fits)get_pkg_data_filename)_wcs   )SimModelTABc                    | j         \  }}t          j                            d           d|dz   |dz   gt          j                            d          z  z   }|                     |d          }|                     |d          }t          j        t          j        |          j         }t          j	        ||         ||         dd          sJ d S )Nr	   RQ?Gz?d      r   Hz>rtolatol)
pixel_shapenprandomseedwcs_pix2worldwcs_world2pixlogical_andisfiniteTallclose)tab_wcs_2dinxnyxyrdxy_roundtrippedms          :lib/python3.11/site-packages/astropy/wcs/tests/test_tab.pytest_2d_spatial_tab_roundtripr'      s    $FBINN1	dBI&)9)9()C)CC	CB		"	"2q	)	)B!//A66O
_5579A;r!uoa0qtDDDDDDDD    c                     d} d}t          | |          }|j        }t          j        |d         j        |          }t
          j                            d           d| dz   |dz   gt
          j                            d          z  z   }|                    |d          }|	                    |          }t          j
        ||dd	
          sJ d S )N      )r    r!   r   r	   r   r   r   r   r   )r
   hdulistr   WCSheaderr   r   r   r   fwd_evalr   )r    r!   modelr,   wr"   r#   rd_models           r&   test_2d_spatial_tab_vs_modelr3      s    	B	B2"%%%E mG 	
!7++A INN1	dBI&)9)9()C)CC	CB	
Q		B~~b!!H;r8!$77777777r(   z7.6z>Only in WCSLIB 7.6 a 1D -TAB axis roundtrips unless first axis)reasonc            	         t          d          } t          j        |           5 }t          j        |d         j        |          }d d d            n# 1 swxY w Y   t          j                            d          g dgz  }t          j        ||	                    |
                    |d          d                    sJ d S )Ndata/tab-time-last-axis.fitsr   )
      )  r9      )r   r   openr   r-   r.   r   r   r   r   r   )filenamehdulr1   ptss       r&   &test_mixed_celest_and_1d_tab_roundtripr?   0   s     %%CDDH	8		 *GDGND))* * * * * * * * * * * * * * * )

7
#
#'8'8'8&9
9C;sAOOAOOC,C,CQGGHHHHHHHs   !AAAz7.8z6Requires WCSLIB >= 7.8 for swapping -TAB axes to work.c                  V   t          d          } t          j        |           5 }t          j        |d         j        |          }d|j        j        d<   |j                                         d d d            n# 1 swxY w Y   |                    dd          }t          |           d S )Nr6   r   FREQ-TABr   )
r   r   r;   r   r-   r.   ctypesetswapaxesr   )r<   r=   r1   wswps       r&   test_wcstab_swapaxesrG   ?   s     %%CDDH	8		 GDGND))$B			               ::aDTNNNNNs   A	A99A= A=z7.10zFRequires WCSLIB >= 7.10 for swapped -TAB axes to produce same results.c                     t          d          } g d}t          d |D                       }t          j        |           5 }t	          j        |d         j        |          }d|j        j        d<   |j                                         |	                    |          }d d d            n# 1 swxY w Y   t          j        g d          }||         }|                    |gd          d         }|                    |gd          d         }	t          j        ||         |	dd	          sJ t          j        |                    |gd          d         |dd	          sJ d S )
Nr6   )r8   r   r	   c              3       K   | ]	}|d z
  V  
dS )r	   N ).0is     r&   	<genexpr>z:test_wcstab_swapaxes_same_val_roundtrip.<locals>.<genexpr>[   s&      11q1u111111r(   r   rA   rB   )r8         g:0yE>r   )r   listr   r;   r   r-   r.   rC   rD   subr   arrayr   r   r   )
r<   
axes_orderaxes_order0r=   r1   wsimcoordimcoordsval_refval_swappeds
             r&   'test_wcstab_swapaxes_same_val_roundtriprZ   O   s    %%CDDHJ11j11111K	8		 GDGND))$B			UU:	               hyyy!!G{#Hoowi++A.G""H:q11!4K ;w{+[qtLLLLLL ;qy!44Q7qtTTTTTTTTs   AB++B/2B/)copyr   numpyr   pytestpackaging.versionr   astropyr   
astropy.ior   astropy.utils.datar   astropy.wcsr   helperr
   __version___WCSLIB_VERr'   r3   markskipifr?   rG   xfailrZ   rJ   r(   r&   <module>ri      s              % % % % % %             4 4 4 4 4 4            gd&''E E E8 8 8& ''%.. K   I I	 I ''%.. C   	 		 	 ''%.. C    GENNk3333GGFOO3333S   U U	 	 U U Ur(   