a
    ߙfb'                     @   s   d dl Z d dlZd dlmZ d dlmZmZ e dZ	e j
dd Zdd Zd	d
 Zdd Zdd Zdd Zdd ZdZe jdedd Zdd Zdd Zdd Ze jdddgd d! ZdS )"    N)fits)ImageHDU
PrimaryHDUz
dask.arrayc                   C   s   t jddddS )Ni  )i*  i  );   7   )darandomZuniformZrechunk r
   r
   Dlib/python3.9/site-packages/astropy/io/fits/tests/test_image_dask.pydask_array_in_mem   s    r   c                 C   s    t | d}t|jtjsJ d S )Ndata)r   
isinstancer   r   Array)r   hdur
   r
   r   test_construct_image_hdu   s    
r   c                 C   s0   t | d}t|g}t|d jtjs,J d S )Nr   r   )r   r   HDUListr   r   r   r   )r   r   hdulistr
   r
   r   test_construct_hdulist   s    
r   c                 C   sx   |d }t | d}|| t|>}t|d jtjs>J tj	|d j| 
  W d    n1 sj0    Y  d S N	test.fitsr   r   )r   writetor   openr   r   npndarraytestingassert_allclosecomputer   tmp_pathfilenamer   hdulist_newr
   r
   r   test_save_primary_hdu   s    

r#   c                 C   sx   |d }t | d}|| t|>}t|d jtjs>J tj	|d j| 
  W d    n1 sj0    Y  d S )Nr   r      )r   r   r   r   r   r   r   r   r   r   r   r   r
   r
   r   test_save_image_hdu*   s    

r%   c                 C   s  |d }t | d}ttjdd}t| d d}t|||g}t|d jtj	sXJ |
| t|}t|d jtjsJ tj|d j|   t|d jtjsJ tj|d j|j t|d jtjsJ tj|d j|  d  W d    n1 s0    Y  d S )Nr   r   )   r&      r   r$   )r   r   r   r	   r   r   r   r   r   r   r   r   r   r   r   r   )r   r    r!   hdu1hdu2Zhdu3r   r"   r
   r
   r   test_save_hdulist8   s    

r*   c                 C   s   |d }t  }tdD ]}d|d|d< qt| |d}|| t |T}t|d jdksfJ t|d j	t
js|J t
j|d j	|   W d    n1 s0    Y  d S )	Nr   i   g        ZKEYx)r   headerr   i  )r   ZHeaderranger   r   r   lenr,   r   r   r   r   r   r   r   )r   r    r!   r,   indexr   r"   r
   r
   r   test_long_headerN   s    
r0   )
z>i2z<i2z>i4z<i4z>i8z<i8z>f4z<f4z>f8z<f8dtypec                 C   s   |d }|  |}t|d}|| t|>}t|d jtjsHJ tj	
|d j|  W d    n1 st0    Y  d S r   )Zastyper   r   r   r   r   r   r   r   r   r   r   )r   r    r1   r!   Zarrayr   r"   r
   r
   r   test_dtypesg   s    


r2   c                 C   s   |d }t | d}|jdddd || t|B}t|d jtjsNJ tj	j
|d j|  dd	 W d    n1 s~0    Y  d S )
Nr   r   int32r   gư>)ZbzeroZbscaler   h㈵>Zatolr   Zscaler   r   r   r   r   r   r   r   r   r   r   r
   r
   r   test_scaledv   s    

r7   c                 C   s   |d }t | d}|jddd || t|B}t|d jtjsLJ tj	j
|d j|  dd W d    n1 s|0    Y  d S )	Nr   r   r3   Zminmax)Zoptionr   r4   r5   r6   r   r
   r
   r   test_scaled_minmax   s    

r8   c                 C   s   |d }t ||  t |td t |n}t|d jtjsHJ tj	|d j| 
  t|d jtjsvJ tj	|d jtd W d    n1 s0    Y  d S )Nr   
   r   r$   )r   appendr   aranger   r   r   r   r   r   r   )r   r    r!   r"   r
   r
   r   test_append   s    r<   modewbzwb+c           	      C   s   |d }t |d}ttdd}t||g}|j| d}|| W d    n1 s\0    Y  t|n}t|d j	tj
sJ tj|d j	|  t|d j	tj
sJ tj|d j	td W d    n1 s0    Y  d S )Nr   r   r9   )r=   r   r$   )r   r   r   r;   r   r   r   r   r   r   r   r   r   r   )	r=   r   r    r!   r(   r)   r   fpr"   r
   r
   r   test_file_handle   s    
(r@   )ZpytestZnumpyr   Z
astropy.ior   Zastropy.io.fitsr   r   Zimportorskipr   Zfixturer   r   r   r#   r%   r*   r0   ZVALID_DTYPESZmarkZparametrizer2   r7   r8   r<   r@   r
   r
   r
   r   <module>   s(   


