a
    ߙfb                     @   s  d dl Z d dlmZ d dlZd dlZd dl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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(m)Z) d dl*m+Z, d dl-m.Z. d dl/m0Z0 e%ddZ1dge1j2_3dd Z4dZ5e 6 . e 7de e%ej8e5ddZ9W d   n1 sf0    Y  dd Z:dZ;e 6 . e 7de e%ej8e;ddZ<W d   n1 s0    Y  dd Z=e;> d d  Z?e 6 . e 7de e%ej8e?ddZ@W d   n1 s0    Y  d!d" ZAd#ZBe 6 2 e 7dee&f e%ej8eBddZCW d   n1 sr0    Y  d$d% ZDd&ZEee,ed'kreEd(7 ZEejFd)d* ZGd+d, ZHejIJd-d.d/d0 ZKd1d2 ZLd3d4 ZMd5d6 ZNejIjOejIJd-d7d8d9 ZPd:d; ZQd<d= ZRejFd>d? ZSd@dA ZTdBdC ZUdDdE ZVdFdG ZWdHdI ZXdJdK ZYdLdM ZZdNdO Z[dPdQ Z\dRdS Z]dTdU Z^dVZ_ejFdWdX Z`dYdZ Zad[ZbejFd\d] Zcd^d_ ZdejIJd`e
g dadbdcgddde ZedS )f    N)Version)assert_equalassert_allclose)product)units)Time)assert_quantity_allclose)Quantity)ICRSFK5GalacticSkyCoordSpectralCoordITRSEarthLocation)Header)VerifyWarning)UnitsWarning)get_pkg_data_filename)WCSFITSFixedWarning)custom_ctype_to_ucd_mappingVELOCITY_FRAMES)__version__)iers)AstropyUserWarning   naxisc                  C   sB  t } | jdksJ | jdks J | jd u s.J | jd u s<J | jd gksLJ | jdgks\J | jdgkslJ | jdgks|J t	| j
d | jdgksJ | jd d tu sJ | jd d dksJ | jd d d	 tju sJ t| d
d
 t| d
d
 t| d
dksJ t| d
dks4J t| d
d
 t	| d
d t| d
dksnJ t| d
dksJ | d
}t|d
tj  t|dksJ | d
}t|d
tj  t|dksJ dtj }| |}t|d t|dksJ | |}t	|d t|dks>J d S )Nr    T)worldr   valuer    r       unit   )r%      g      .@)	WCS_EMPTYpixel_n_dimworld_n_dimarray_shapepixel_shapeworld_axis_physical_typesworld_axis_unitspixel_axis_namesworld_axis_namesr   axis_correlation_matrixworld_axis_object_componentsworld_axis_object_classesr	   uZoner   pixel_to_world_valuesarray_index_to_world_valuesnpndimworld_to_pixel_valuesworld_to_array_index_valuespixel_to_worldr   array_index_to_worldworld_to_pixelworld_to_array_index)wcscoordxir"   r"   Dlib/python3.9/site-packages/astropy/wcs/wcsapi/tests/test_fitswcs.py
test_empty%   sF    






rC   z
WCSAXES = 2
CTYPE1  = RA---TAN
CTYPE2  = DEC--TAN
CRVAL1  = 10
CRVAL2  = 20
CRPIX1  = 30
CRPIX2  = 40
CDELT1  = -0.1
CDELT2  =  0.1
CROTA2  = 0.
CUNIT1  = deg
CUNIT2  = deg
ignore
sepc            	      C   s  t } | jdksJ | jdks J | jd u s.J | jd u s<J | jddgksNJ | jddgks`J | jddgksrJ | jddgksJ t	| j
d | jddgksJ | jd	 d
 tu sJ | jd	 d dksJ t| jd	 d d tsJ | jd	 d d tju sJ t| ddd t| ddd t| ddd t	| ddd | dd}t|tslJ t|jts~J t|jjd t|jjd | dd}t|tsJ t|jtsJ t|jjd t|jjd tddddd}| |\}}t|d t|d | |\}}t	|d t	|d |j}| |\}}t|d t|d | |\}}t	|d t	|d t d!d}tddddd}| |}t	|| d tddgddgddd}| |}t	|| ddg d S ) Nr#   	pos.eq.ra
pos.eq.decdegr   T	celestialr   zspherical.lon.degreerL   r   zspherical.lat.degreerL   r   r   r"   framer$   r%   '   )
      rP   rQ   )      =@     C@)rO   r%   Zicrsr$   rN   rR   rS   i  )<   rU   iA	        i  )"WCS_SIMPLE_CELESTIALr(   r)   r*   r+   r,   r-   r.   r/   r   r0   r1   r2   r   
isinstancer
   r3   rJ   r   r4   r5   r8   r9   r:   rN   radecr;   r<   r=   galacticr6   arangeZreshape)	r>   r?   r@   yrA   jZcoord_galacticdataindexr"   r"   rB   test_simple_celestialv   sh    










rb   a!  
WCSAXES = 3
CTYPE1  = GLAT-CAR
CTYPE2  = FREQ
CTYPE3  = GLON-CAR
CNAME1  = Latitude
CNAME2  = Frequency
CNAME3  = Longitude
CRVAL1  = 10
CRVAL2  = 20
CRVAL3  = 25
CRPIX1  = 30
CRPIX2  = 40
CRPIX3  = 45
CDELT1  = -0.1
CDELT2  =  0.5
CDELT3  =  0.1
CUNIT1  = deg
CUNIT2  = Hz
CUNIT3  = deg
c            	      C   sx  t } | jdksJ | jdks J | jd u s.J | jd u s<J | jg dksNJ | jg dks`J | jg dksrJ | jg dksJ t	| j
g dg dg dg t| jdksJ | jd d	ksJ | jd
 d d dksJ | jd dksJ | jd d tu s
J | jd d
 dks"J t| jd d d ts@J | jd d d tju s^J | jd d tu svJ | jd d
 dksJ | jd d i ksJ t| dddd t| dddd t| dddd t	| dddd | ddd\}}t|tsJ t|jts*J t|jjd t|jjd t|tsVJ t|tjd |  ddd\}}t|tsJ t|jtsJ t|jjd t|jjd t|tsJ t|tjd tddddd}dtj }t!j"t#dd " | $||\}}}W d    n1 s,0    Y  t|d! t|d" t|d# t!j"t#dd " | $||\}}}W d    n1 s0    Y  t|d! t|d" t|d# t!j"t#dd " | %||\}}}W d    n1 s0    Y  t	|d t	|d t	|d t!j"t#dd " | %||\}}}W d    n1 sL0    Y  t	|d t	|d t	|d d S )$N   pos.galactic.latem.freqpos.galactic.lonrJ   HzrJ   r   r   r   Latitude	Frequency	Longitude)TFT)FTFr   rM   r   r#   spectralr   rK   rL   r"   rN   r$   rp   r%   rO   ,   )rP   rQ      rP   rQ   rr   )rR   rS         F@)rq   rO   r%   rJ   r\   rT   No observer defined on WCSmatchrR   rS   rs   )&WCS_SPECTRAL_CUBEr(   r)   r*   r+   r,   r-   r.   r/   r   r0   lenr1   r2   r   rY   r   r3   rJ   r	   r   r4   r5   r8   r9   r:   rN   lbr   to_valueri   r;   pytestwarnsr   r<   r=   )	r>   r?   specr@   r^   zrA   r_   kr"   r"   rB   test_spectral_cube   s    
2


2


2


2

r   z
PC2_3 = -0.5
PC3_2 = +0.5
c                  C   sn  t } | jg dksJ | jg dks(J | jg dks:J | jg dksLJ t| jg dg dg dg t| jdks|J | jd d	ksJ | jd
 d d dksJ | jd dksJ | j	d d t
u sJ | j	d d
 dksJ t| j	d d d tsJ | j	d d d tju s"J | j	d d tu s:J | j	d d
 dksRJ | j	d d i ksjJ d S )Nrd   rh   rj   rk   )TTT)FTTrc   r   rM   r   r#   ro   rK   rL   r"   rN   r$   rp   )WCS_SPECTRAL_CUBE_NONALIGNEDr,   r-   r.   r/   r   r0   rx   r1   r2   r   rY   r   r3   rJ   r	   r>   r"   r"   rB   test_spectral_cube_nonalignedJ  s(    r   aA  
SIMPLE  = T / Fits standard
BITPIX  = -32 / Bits per pixel
NAXIS   = 3 / Number of axes
NAXIS1  = 2048 / Axis length
NAXIS2  = 2048 / Axis length
NAXIS3  = 11 / Axis length
DATE    = '2008-10-28T14:39:06' / Date FITS file was generated
OBJECT  = '2008 TC3' / Name of the object observed
EXPTIME = 1.0011 / Integration time
MJD-OBS = 54746.02749237 / Obs start
DATE-OBS= '2008-10-07T00:39:35.3342' / Observing date
TELESCOP= 'VISTA' / ESO Telescope Name
INSTRUME= 'VIRCAM' / Instrument used.
TIMESYS = 'UTC' / From Observatory Time System
TREFPOS = 'TOPOCENT' / Topocentric
MJDREF  = 54746.0 / Time reference point in MJD
RADESYS = 'ICRS' / Not equinoctal
CTYPE2  = 'RA---ZPN' / Zenithal Polynomial Projection
CRVAL2  = 2.01824372640628 / RA at ref pixel
CUNIT2  = 'deg' / Angles are degrees always
CRPIX2  = 2956.6 / Pixel coordinate at ref point
CTYPE1  = 'DEC--ZPN' / Zenithal Polynomial Projection
CRVAL1  = 14.8289418840003 / Dec at ref pixel
CUNIT1  = 'deg' / Angles are degrees always
CRPIX1  = -448.2 / Pixel coordinate at ref point
CTYPE3  = 'UTC' / linear time (UTC)
CRVAL3  = 2375.341 / Relative time of first frame
CUNIT3  = 's' / Time unit
CRPIX3  = 1.0 / Pixel coordinate at ref point
CTYPE3A = 'TT' / alternative linear time (TT)
CRVAL3A = 2440.525 / Relative time of first frame
CUNIT3A = 's' / Time unit
CRPIX3A = 1.0 / Pixel coordinate at ref point
OBSGEO-B= -24.6157 / [deg] Tel geodetic latitude (=North)+
OBSGEO-L= -70.3976 / [deg] Tel geodetic longitude (=East)+
OBSGEO-H= 2530.0000 / [m] Tel height above reference ellipsoid
CRDER3  = 0.0819 / random error in timings from fit
CSYER3  = 0.0100 / absolute time error
PC1_1   = 0.999999971570892 / WCS transform matrix element
PC1_2   = 0.000238449608932 / WCS transform matrix element
PC2_1   = -0.000621542859395 / WCS transform matrix element
PC2_2   = 0.999999806842218 / WCS transform matrix element
CDELT1  = -9.48575432499806E-5 / Axis scale at reference point
CDELT2  = 9.48683176211164E-5 / Axis scale at reference point
CDELT3  = 13.3629 / Axis scale at reference point
PV1_1   = 1. / ZPN linear term
PV1_3   = 42. / ZPN cubic term
c            
      C   s  t } | jdksJ | jdks J | jdks.J | jdks<J | jg dksNJ | jg dks`J | jg dksrJ | jg dksJ t	| j
g dg dg dg | j}|d	 d
ksJ |d dksJ |d d d dksJ t|d d sJ | jd d	 tu sJ | jd d dks$J t| jd d d tsBJ | jd d d tju s`J | jd d	 tu sxJ | jd d dksJ | jd d i ksJ t| jd d sJ t| ddd	d t| d	ddd t| dddd t	| dddd | ddd\}}t|ts2J t|jtsDJ t|jjd t|jjd  t|tspJ t|jd! | ddd\}}t|tsJ t|jtsJ t|jjd t|jjd  t|tsJ t|jd! | ||\}}}t|d" t|d# t|d$ | ||\}}}t|d" t|d# t|d$ |  ||\}}}	t	|d t	|d t	|	d |  ||\}}}	t	|d t	|d t	|	d d S )%Nrc   )      r   )r   r   r   )rI   rH   time)rJ   rJ   srj   )TTF)FFTr   rM   r   rK   r#   )r   r   rL   r"   rN   r$   r   33333|33333@)!k-@Z-\% @O@r   r   r   )r   r   r   )r   i  i?r%   rO   rq   g:O?g.)-@g.A@rR   rS   rs   )!WCS_TIME_CUBEr(   r)   r*   r+   r,   r-   r.   r/   r   r0   r1   callabler2   r   rY   r
   r3   rJ   r   r   r4   r5   r8   r9   r:   rN   rZ   r[   mjdr;   r<   r=   )
r>   Z
componentsr?   r   r@   r^   r   rA   r_   r   r"   r"   rB   test_time_cube  s    










r   z
SIMPLE  = T
BITPIX  = -32
NAXIS   = 1
NAXIS1  = 2048
TIMESYS = 'UTC'
TREFPOS = 'TOPOCENT'
MJDREF  = 50002.6
CTYPE1  = 'UTC'
CRVAL1  = 5
CUNIT1  = 's'
CRPIX1  = 1.0
CDELT1  = 2
OBSGEO-L= -20
OBSGEO-B= -70
OBSGEO-H= 2530
z7.1z DATEREF = '1995-10-12T14:24:00'
c                   C   s   t jtddS NrE   rF   r   
fromstringHEADER_TIME_1Dr"   r"   r"   rB   header_time_1d  s    r   c                 C   s   t  $ t dt t| }W d    n1 s20    Y  ||}t|j|dd t|j|dd |j	|kstJ |j
|ksJ d S )NrD   g|=Zrtol)warningscatch_warningssimplefilterr   r   r:   r   jd1jd2formatscale)headerZpositionr   r   r   r   r>   r   r"   r"   rB   assert_time_at   s    
&
r   r   )taitcbtcgtdbttut1utclocalc                 C   s"   |  | d< t| ddd|d d S )NCTYPE1r   Sb% |螹?r   )upperr   )r   r   r"   r"   rB   test_time_1d_values+  s    r   c                 C   s   d| d< t | ddddd d S )NZGPSr   r   r   g<ALR?r   r   r   r   r"   r"   rB   test_time_1d_values_gps5  s    r   c                 C   sl   d| d< t | ddddd d| d< t | dddd	d d
| d< t | ddddd d| d< t | ddddd d S )NZTDTr   r   r   r   r   r   ZIATr   ZGMTr   ZETr   r   r"   r"   rB   test_time_1d_values_deprecated;  s    r   c                 C   s8   d| d< t | ddddd d| d	< t | dddd
d d S )NZTIMEr   r   r   r   r   r   ZTAIZTIMESYSr   r   r   r"   r"   rB   test_time_1d_values_timeG  s    r   )r   r   r   r   r   r   r   c                 C   s   t dd}| | d< t $ tdt t| }W d    n1 sJ0    Y  ||}|	|}t
|| ||j}d|_|	|}t
|| d S )Nrc   rP   r   rD   isot)r6   r]   r   r   r   r   r   r   r:   r<   r   r   r   )r   r   Zpixel_inr>   r   Z	pixel_outr"   r"   rB   test_time_1d_roundtripN  s    
&



r   c                 C   s   | d= d| d< d| d< t  $ t dt t| }W d    n1 sH0    Y  |d}t|jdd	d
 t|jddd
 d S )NZMJDREFg     d@ZMJDREFIgdy=ZMJDREFFrD   rP   g   BAg-q=r   g^B߿gvIh%<=)	r   r   r   r   r   r:   r   r   r   )r   r>   r   r"   r"   rB   test_time_1d_high_precisionh  s    
&
r   c                 C   sr   t  $ t dt t| }W d    n1 s20    Y  |d}|j \}}}t|j	d t|j	d d S )NrD   rP   i)
r   r   r   r   r   r:   locationZto_geodeticr   Zdegree)r   r>   r   ZlonZlatZaltr"   r"   rB   test_time_1d_location_geodetic{  s    
&
r   c                  C   s$   t jtdd} | d= | d= | d= | S )NrE   rF   OBSGEO-LOBSGEO-BOBSGEO-Hr   )r   r"   r"   rB   header_time_1d_no_obs  s
    r   c                 C   s   | }d|d< d|d< d|d< t  $ t dt t|}W d    n1 sN0    Y  |d}|j \}}}t|	t
jd t|	t
jd t|	t
jd d S )NrP   zOBSGEO-Xr   zOBSGEO-Y   zOBSGEO-ZrD   )r   r   r   r   r   r:   r   to_geocentricr   r{   r3   m)r   r   r>   r   r@   r^   r   r"   r"   rB    test_time_1d_location_geocentric  s    
&
r   c                 C   sd   d| d< t | }|d}|j \}}}t|tjd t|tjd t|tjd d S )NZ	GEOCENTERTREFPOSrP   r   )r   r:   r   r   r   r{   r3   r   )r   r>   r   r@   r^   r   r"   r"   rB   test_time_1d_location_geocenter  s    
r   c                 C   sR   t | }tjtdd |d}W d    n1 s60    Y  |jd u sNJ d S )NUMissing or incomplete observer location information, setting location in Time to Noneru   rP   r   r|   r}   UserWarningr:   r   r   r>   r   r"   r"   rB   test_time_1d_location_missing  s    (r   c                 C   s   d| d< t  $ t dt t| }W d    n1 s:0    Y  tjtdd |d}W d    n1 sr0    Y  |j	d u sJ d S )Ng      $@r   rD   r   ru   rP   )
r   r   r   r   r   r|   r}   r   r:   r   r   r"   r"   rB    test_time_1d_location_incomplete  s    
&(r   c                 C   sZ   d| d< t | }tjtdd |d}W d    n1 s>0    Y  |jd u sVJ d S )NZ
BARYCENTERr   zTObservation location 'barycenter' is not supported, setting location in Time to Noneru   rP   r   r   r"   r"   rB   !test_time_1d_location_unsupported  s    (r   c                 C   sZ   d| d< t | }tjtdd |d}W d    n1 s>0    Y  t|tsVJ d S )NzUT(WWV)r   z0Dropping unsupported sub-scale WWV from scale UTru   rP   )r   r|   r}   r   r:   rY   r   r   r"   r"   rB   test_time_1d_unsupported_ctype  s    (r   c                  C   sR   t dd} tt* dg| j_| jdgks0J W d    n1 sD0    Y  d S )Nr   r   zbananas // sekonds)r   r|   r}   r   r>   Zcunitr-   r   r"   r"   rB   test_unrecognized_unit  s    

r   c                  C   s   t d} tt t| }W d    n1 s00    Y  t|jd ddgddgg|j_t|jd ddg|j_	t|jd d |_
t|jddgddgg dd	g|j_	t|jd d
dgdd
gg|j_ddg|j_	t|jd d S )Nz../../tests/data/sip.fitsTr   r   XYFzRA---TANzDEC--TANg?g皙?)r   r|   r}   r   r   r   r0   r>   ZpcctypeZsip)filenamewr"   r"   rB   test_distortion_correlations  s    &r   c               	   C   sT  t dd} dg| j_| jd gks$J tddi  | jd gksBJ W d    n1 sV0    Y  tddd  | jdgksJ W d    n1 s0    Y  tddiL tddi  | jdgksJ W d    n1 s0    Y  W d    n1 s0    Y  tddiP tddi" | jdgks4J W d    n1 sJ0    Y  W d    n1 sj0    Y  tddiP tddi" | jdgksJ W d    n1 s0    Y  W d    n1 s0    Y  tddiP tddi" | jdgksJ W d    n1 s&0    Y  W d    n1 sF0    Y  d S )	Nr   r   SPAMAPPLEz
food.fruitz	food.spam)r   r   Znotfood)r   r>   r   r,   r   r   r"   r"   rB   !test_custom_ctype_to_ucd_mappings$  s&    

..LRRr   c                  C   s   t  } | jddgksJ | jd d tu s0J | jd d dksFJ t| jd d d tsbJ | jd d d	 tju s~J d
| j	_
| jd d d }t|tsJ |jjdksJ d| j	_| jd d d }t|tsJ |jjdksJ d S )NrK   rM   rL   r   r   r"   r#   rN   r$   r   g     @@i  g     h@)rX   deepcopyr1   r2   r   rY   r
   r3   rJ   r>   Zradesysr   ZequinoxZjyear)r>   rN   r"   r"   rB   #test_caching_components_and_classesH  s     
r   c                  C   s  t  } d| _g d| _| j}|jdks,J |jdks:J |jdksHJ |jdksVJ |jddgkshJ |jdd	gkszJ |j	d
d
gksJ |j
ddgksJ | g d}|jdksJ |jdksJ |jdksJ |jdksJ |jg dksJ |jg dks
J |j	g dksJ |j
g dks2J | ddg}|jdksPJ |jdks`J |jdkspJ |jdksJ |jddgksJ |jd	dgksJ |j	d
d
gksJ |j
ddgksJ dg| jj | j_| ddg}|jdks J |jdksJ |jdks J |jdks0J |jddgksDJ |jd	dgksXJ |j	d
d
gkslJ |j
ddgksJ d S )N)r   (   2   )r         r&   r#   )r   r   )r   r   r   r   re   rg   rJ   rl   rn   )r   r#   r   rc   )Nr   N)Nr   N)Nrf   N)r   ri   r   )r   rm   r   Z	longitudeZlatituder   )rw   r   r+   Zpixel_boundsrL   r(   r)   r*   r,   r-   r/   subr>   r   Zcname)r>   Zwcs_sub1Zwcs_sub2Zwcs_sub3Zwcs_sub4r"   r"   rB   test_sub_wcsapi_attributese  sP    
r   z>
CTYPE1  = 'HPLT-TAN'
CTYPE2  = 'HPLN-TAN'
CTYPE3  = 'STOKES'
c                   C   s   t jtddS r   )r   r   HEADER_POLARIZEDr"   r"   r"   rB   header_polarized  s    r   c                 C   s   t | }|jd dksJ d S )Nr#   zphys.polarization.stokes)r   r,   )r   r   r"   r"   rB   test_phys_type_polarization  s    r   a   
BUNIT   = 'Jy/beam'
EQUINOX =      2.000000000E+03
CTYPE1  = 'RA---SIN'
CRVAL1  =    2.60108333333E+02
CDELT1  =     -2.777777845E-04
CRPIX1  =                  1.0
CUNIT1  = 'deg'
CTYPE2  = 'DEC--SIN'
CRVAL2  =   -9.75000000000E-01
CDELT2  =      2.777777845E-04
CRPIX2  =                  1.0
CUNIT2  = 'deg'
CTYPE3  = 'FREQ'
CRVAL3  =    1.37835117405E+09
CDELT3  =      9.765625000E+04
CRPIX3  =                 32.0
CUNIT3  = 'Hz'
SPECSYS = 'TOPOCENT'
RESTFRQ =      1.420405752E+09 / [Hz]
RADESYS = 'FK5'
c                   C   s   t jtddS r   )r   r   HEADER_SPECTRAL_FRAMESr"   r"   r"   rB   header_spectral_frames  s    r   c              
   C   s  t jdd tddd}|  }|j|d< d|d< d	|d
< d|d< d|d< d|d< tt t	|}W d    n1 s0    Y  |
dddd }t|tsJ t|jtsJ |jjj|jksJ t|jjjd jjd tddj|dt }||jt dtj k s&J t D ]p\}}||d< tt t	|}W d    n1 sh0    Y  |
dddd }	|	 |}
t!|	j"|
j" q.W d    n1 s0    Y  d S )NZauto_downloadFz2009-05-04T04:44:23r   )r   MJD-OBSg4)U0@ZCRVAL1g8mAZCRVAL2fffffb@r   3333334r           r   r      r   r   )obstimeSPECSYS)#r   ZconfZset_tempr   copyr   r|   r}   r   r   r:   rY   r   observerr   r   r   r   r`   ZdifferentialsZd_xyzr!   r   Zfrom_geodeticZget_itrsZtransform_tor
   Zseparation_3dr3   Zkmr   itemsZ$with_observer_stationary_relative_tor   Zquantity)r   r   r   Zwcs_topoZsc_topoZobservatoryZspecsysZexpected_framer>   ZscZsc_checkr"   r"   rB   test_spectralcoord_frame  s2    
&$(
r   )ctype3r   )ZZOPTZBETAZVELOZVRADZVOPTFTc                 C   s2  |   }||d< d|d< d|d< |d dkr6d|d	< nd
|d	< d|d< d|d< |rrd|d< d|d< d|d< d|d< t $ tdt t|}W d    n1 s0    Y  |ddd\}}t|tsJ |r|	||}n<t
jtdd |	||}W d    n1 s0    Y  t|g ddd d S )NZCTYPE3r   ZCRVAL3gMbP?ZCDELT3r   Vzm s-1ZCUNIT3r   g   j*AZRESTWAVi  r   r   r   r   r   r   r   ZBARYCENTr   rD   r   rt   ru   )r   r   r   gư>r   )r   r   r   r   r   r   r:   rY   r   r<   r|   r}   r   r   )r   r   r   r   r>   ZskycoordZspectralcoordZpixr"   r"   rB   test_different_ctypes	  s0    

&,r   )fr   Zpackaging.versionr   Znumpyr6   r|   Znumpy.testingr   r   	itertoolsr   Zastropyr   r3   Zastropy.timer   Zastropy.tests.helperr   Zastropy.unitsr	   Zastropy.coordinatesr
   r   r   r   r   r   r   Zastropy.io.fitsr   Zastropy.io.fits.verifyr   Zastropy.units.corer   Zastropy.utils.datar   Zastropy.wcs.wcsr   r   Zastropy.wcs.wcsapi.fitswcsr   r   Zastropy.wcs._wcsr   ZwcsverZastropy.utilsr   Zastropy.utils.exceptionsr   r'   r>   ZcrpixrC   ZHEADER_SIMPLE_CELESTIALr   r   r   rX   rb   ZHEADER_SPECTRAL_CUBErw   r   stripZHEADER_SPECTRAL_CUBE_NONALIGNEDr   r   ZHEADER_TIME_CUBEr   r   r   Zfixturer   r   ZmarkZparametrizer   r   r   r   Zremote_datar   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r"   r"   r"   rB   <module>   s   $

<
(U
2Y
((2
2\

	
$@
	
2