
    HR-e                     ^    d dl Z d dlZd dlZd dlmZ d dlmZ ddlm	Z	  G d de	          Z
dS )    N)assert_array_equal)fits   )FitsTestCasec                       e Zd Zed             Zej                            dg d          d             Zej                            dd          d             Z	d Z
d	S )
TestUintFunctionsc                     d| _         t          j        t          j        t          j        d| _        t          j        t          j        t          j        d| _	        dddd| _
        d S )Nu2u4u8IJK)utypesnpuint16uint32uint64	utype_mapint16int32int64	itype_map
format_map)clss    ?lib/python3.11/site-packages/astropy/io/fits/tests/test_uint.pysetup_classzTestUintFunctions.setup_class   sL    '
!y	KK!xrxrxHH #3c::    )utype
compressed))r   F)r   F)r   F)r   T)r   Tc                 R   dt          |d                   z  }t          j                    d         dk    s|dk    rj|r7t          j        t          j        g dt
          j                            }d}n6t          j        t          j        g dt
          j                            }d}|	                    d|d	d
d|dz
  z             |
                    |                     d          d           t          j        |                     d          d          5 }||         j        j        | j        |         k    sJ ||         j        t          j        d|z  dz
  d|z  dz
  d|z  dz
  ddddg| j        |                   k                                    sJ |
                    |                     d                     t          j        |                     d          d          5 }||         j        }||         j        }	||	k                                    sJ |sL||         j        d d         }
|
j        j        d| k    sJ |
|d d         k                                    sJ d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S d S )N   r   r   64bit@   )r   r         dtypeintd r)   )bzerotempfile.fitsT	overwriteuintr*   ztempfile1.fits)r   r5   )r-   platformarchitecturer   CompImageHDUr   arrayr   
PrimaryHDUscalewritetotempopendatar,   r   allsectionname)selfr    r!   bitshdu
hdu_numberhdulhdul1d1d2secs              r   	test_uintzTestUintFunctions.test_uint   s:   
 3uQx==  ""1%00DBJJ 	'H555RXFFF  

oH555RXFFF  
IInDnnnbdQhI@@@KK		/22dKCCC499_55DAAA 5TJ',2dnU6KKKKK$)xT'QDA41}aAqQ"nU3  
 #%%   TYY'788999Ytyy)9::4HHH 	5Ej).Bz*/B"H>>+++++% 5 #:.6rr:"y~>>>> #r"1"v2244444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5! 5?Js8   !CJ3BJ6JJ	J	J	
JJ!Jr    r
   c                 N   dt          |d                   z  }t          j                    d         dk    s|dk    rh | j        |         d|dz
  z            } | j        |         d          }t	          j        |dz   | j        |                   }d|z  |z
  }|dk    r||z
  |d<   |d         |d         z   |z   |d<   ||z
                      | j        |                   }t          j	        ||| j
        |         |	          }t          j                            |g          }	|	j        |         |k                                    sJ |	j        j        j        |         |k                                    sJ t          j                    }
t          j        |
|	g          }|                    |                     d
          d           ~t          j        |                     d
          d          5 }|d         j        }||         |k                                    sJ ||         j        | j        |         k    sJ |j        |         |k                                    sJ 	 ddd           n# 1 swxY w Y   |                    || j        |         fg          }t          j        |                     d          |d           t          j        |                     d          d          5 }|d         j        }|j        |         |	j        j        j        |         k                                    sJ ||         |	j        |         k                                    sJ ||         |k                                    sJ 	 ddd           dS # 1 swxY w Y   dS dS )zTest basic functionality of tables with columns containing
        pseudo-unsigned integers.  See
        https://github.com/astropy/astropy/pull/906
        r#   r   r   r$   r%   r)   r+   ?   )rB   r9   formatr0   r1   Tr2   r4   Nztempfile2.fits)r-   r6   r7   r   r   arangeviewr   r   Columnr   BinTableHDUfrom_columnsr?   r@   baser:   HDUListr<   r=   r>   r,   )rC   r    rD   r0   oneu0uuucoltablehdu0hdulisthdulist2hdudatavhdulist3hdudata3s                    r   test_uint_columnsz#TestUintFunctions.test_uint_columnsC   s     3uQx==  ""1%00DBJJ)DN5)!q/::E'$.'**C4!84>%+@AAAB2Arzz"""+"e)!!$."788B +!DOE,B%  C $113%88EJu%*//11111
 JO(/25::<<<<<?$$DlD%=11GOODIIo66$OGGG 499_55DAAA 9X"1+*!+0022222u~+t~e/DDDDDU+r166888888	9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 udnU&;<=>>AL#344a4HHHH499%566TBBB 4h#A;+ e,
0DU0KKPPRRRRR 5:e+<<AACCCCC 1,11333333	4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4Q 5?Js&   7A1I55I9<I97BNNNc           
         t          j        dt           j                  }t          j                            t          j        ddt          j        dt           j                            t          j        dddd|	          g          }|                    | 	                    d
                     t          j
        | 	                    d
                    5 }|d         j        }ddd           n# 1 swxY w Y   t          |d         |           |d         dk    }t          ||         d         ||                    ||         d         j        ||         j        k    sJ t          j
        | 	                    d
                    5 }|d         j        }ddd           n# 1 swxY w Y   t          ||         d         ||                    ||         d         j        ||         j        k    sJ dS )z
        Fix for https://github.com/astropy/astropy/issues/5490
        if data is sliced first, make sure the data is still converted as uint
        i   r+   ar   )rB   rO   r9   br   i   )rB   rO   bscaler0   r9   ztest_scaled_slicing.fitsNr   )r   rP   r   r   rS   rT   rR   r   r<   r=   r>   r?   r   r,   )rC   datareftbhdur^   r?   sels         r   test_uint_slicez!TestUintFunctions.test_uint_slicey   s>    )E333 --S	%rx0P0P0P   S%w  		
 	
 	dii :;;<<<Ytyy!;<<== 	#1:?D	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#49g...3i1n49S>73<888Cy~#ws|'99999Ytyy!;<<== 	#1:?D	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#49S>73<888Cy~#ws|'9999999s$   C55C9<C9F))F-0F-N)__name__
__module____qualname__classmethodr   pytestmarkparametrizerL   rd   rl    r   r   r   r      s        ; ; [; [QQQ %5 %5	 %5N [W&89934 34 :934j: : : : :r   r   )r6   numpyr   rq   numpy.testingr   
astropy.ior   conftestr   r   rt   r   r   <module>ry      s          , , , , , ,       " " " " " "H: H: H: H: H: H: H: H: H: H:r   