U
    e»{j,  ã                   @   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krr| ¡ }||jjkrr| ¡ }||jjkrrtd|› d�ƒ‚|r–tj	 
d|› d�¡ tj	 
d¡ || j|| jkrÄ|d7 }|rÂtj	 
d¡ q$|ràt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 |�r‚t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   úd/var/www/html/bwave/python/venv/lib/python3.8/site-packages/astropy/io/fits/tests/test_structured.pyÚcompare_arrays   sJ     ÿ
r   c                 C   sT   t  ddddg¡}t j d¡ dddg|d< d	d
dg|d< t j |d j¡|d< |S )Né   )Úf1Úi4)Úf2ZS6)Úf3z>2f8é#   r   é   r   ZhelloZworldZbyebyer   r   )r   ZzerosÚrandomÚseedr   )r   Ústr   r   r   Úget_test_data?   s    r"   c                   @   s   e Zd Zdd„ ZdS )ÚTestStructuredc                 C   s6  |   d¡}tj|ddd�\}}tj|ddd�\}}tƒ }|  d¡}tj||dd� t ||¡ t ||¡ |jjsvt	‚t
 |d dd	d
gk¡s’t	‚tj|ddd�\}}	tj|ddd�\}
}tj|d	dd�\}}t||dd�sàt	‚t||
dd�sòt	‚t||dd��st	‚tj|ddt
jd�\}}t||dd��s2t	‚d S )Nzstddata.fitsr   T)ÚextÚheaderé   z	test.fits)Ú	overwriter   r   r   )r   )r$   r%   r   )Údatar   Zgetdatar"   ÚtempZwritetoÚappendr   ZisnativeÚAssertionErrorr   Úallr   r   )ÚselfÚfnameZdata1Zh1Zdata2Zh2r!   ÚoutfileZ
data1checkZh1checkZ
data2checkZh2checkZstcheckZsthcheckZdataviewcheckZ
hviewcheckr   r   r   Útest_structuredK   s.    

   ÿ
zTestStructured.test_structuredN)Ú__name__Ú
__module__Ú__qualname__r0   r   r   r   r   r#   J   s   r#   )F)F)
r   Únumpyr   Z
astropy.ior   Zconftestr   r   r"   r#   r   r   r   r   Ú<module>   s   
3
