a
    ߙfb'                     @   sP   d dl Z d dlZd dlmZ ddlmZ dddZddd	ZG d
d deZ	dS )    N)fits   )FitsTestCaseFc           	      C   s  |  tj}| tj}d}|jjD ]"}|}||jjvrr| }||jjvrr| }||jjvrrtd| d|rtj	
d| d tj	
d || j|| jkr|d7 }|rtj	
d q$|rtj	
d	 tj	
d
 t||  ||  k\}|jdkr8|d7 }|rHtj	
d|j d| d q$|r$tj	
d	 q$|dkrj|rftj	
d dS |rtj	
| d dS dS )zY
    Compare the values field-by-field in two sets of numpy arrays or
    recarrays.
    r   zfield name z not found in array 1z    testing field: 'z'
z        shape...........r   zshapes differ
zOK
z        elements........z	
        z elements in field z differ
zAll tests passed
Tz differences found
FN)viewnpndarraydtypenameslowerupper
ValueErrorsysstdoutwriteshapewhereZravelsize)	Zarr1inZarr2inverboseZarr1Zarr2ZnfailZn2Zn1w r   Dlib/python3.9/site-packages/astropy/io/fits/tests/test_structured.pycompare_arrays   sJ     
r   c                 C   sN   t dg d}t jd g d|d< g d|d< t j|d j|d< |S )	N   ))f1Zi4)f2ZS6)f3z>2f8#   r   r      r   )ZhelloZworldZbyebyer   r   )r   ZzerosZrandomZseedr   )r   str   r   r   get_test_data=   s    r    c                   @   s   e Zd Zdd ZdS )TestStructuredc                 C   s4  |  d}tj|ddd\}}tj|ddd\}}t }| d}tj||dd t|| t|| |jjsvJ t	
|d g d	ksJ tj|ddd\}}	tj|ddd\}
}tj|d
dd\}}t||ddsJ t||
ddsJ t||ddsJ tj|ddt	jd\}}t||dds0J d S )Nzstddata.fitsr   T)extheader   z	test.fits)Z	overwriter   r   r   )r   )r"   r#   r   )datar   Zgetdatar    ZtempZwritetoappendr   Zisnativer   allr   r   )selffnameZdata1Zh1Zdata2Zh2r   ZoutfileZ
data1checkZh1checkZ
data2checkZh2checkZstcheckZsthcheckZdataviewcheckZ
hviewcheckr   r   r   test_structuredI   s(    



zTestStructured.test_structuredN)__name__
__module____qualname__r*   r   r   r   r   r!   H   s   r!   )F)F)
r   Znumpyr   Z
astropy.ior    r   r   r    r!   r   r   r   r   <module>   s   
2
