a
    ߙfb                     @   s2  d Z ddlmZ ddlZddlZddlmZmZm	Z	m
Z
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mZ ddlmZ dd	lmZmZmZ ej !d
de"de#de$de%de%dde& de'de(de)dgdd Z*ej !d
ej+ej+ej, ej-ej.e/dgdd Z0ej !d
e/ddej1 e2dgdd Z3ej !d
e	ddd e
ddd eddd dgdggej+ ej4dd!gddggd"d#ej4dd!gddggd$d#e4g d%ddd! ej4d&d'gd(d)ej4d&d(d)ej4d&d(d)d* ej4d+d,d)ej, d-d.ge/d/ ej4d-d.gd0d1gd)e/d/ gd2d3 Z5d4d5 Z6ej !d6d7d8gd9d: Z7ej !d;edej+ dej+ d<ej+ edd!gddggej8 d=d>gd?dggej8 d@ej9 edej8 d@ej8 edAgdggej: ej; dBdCgej: ej; d@ggdDgggej< ej, eg dEej< ej, eg dFej+ eg dEej< ej, dGedd!gddggej8 d=d>gd?dggej8 d@ej9 dHedIdAgdd<ggej: ej; dBdCgdJdKggej: ej; d@ej< ej, idGgdLdM Z=dNdO Z>dPdQ Z?dRdS Z@dTdU ZAdVdW ZBdXdY ZCdZd[ ZDdS )\zF
This module tests some of the methods related to YAML serialization.
    )StringION)SkyCoordEarthLocationAngle	LongitudeLatitudeSphericalRepresentationUnitSphericalRepresentationCartesianRepresentationSphericalCosLatDifferentialSphericalDifferentialCartesianDifferential)units)Time)QTableSerializedColumn)representation_equal)loadload_alldumpcT            l           @y      @      @y??c                 C   s   t t| }| |ksJ d S N)r   r   r   cy r   >lib/python3.9/site-packages/astropy/io/misc/tests/test_yaml.pytest_numpy_types   s    r!   zm, (cm, um)c                 C   s<   t t| }t| tjtjfr,| |ks8J n| |u s8J d S r   )r   r   
isinstanceuZCompositeUnitZStructuredUnitr   r   r   r    	test_unit#   s    r$   Zbakers_dozen   magicc                 C   s   t | }tjtjd| dd}t|}W d    n1 s>0    Y  t|dksXJ t|tjshJ t	|t	| ks|J t
| $ t|}|| u sJ W d    n1 s0    Y  d S )N'z' did not parse)matchr   )r   pytestZwarnsr#   ZUnitsWarningr   lenr"   ZUnrecognizedUnitstrZadd_enabled_units)r   swr   Zcy2r   r   r    test_custom_unit-   s    &r.   z1 2 3degunit   F)orderC)r   r2   r   r   )      ?r2   )      @r   zf8,i4)dtyper   )r6   r   zf8,f8))r6   r   r7   )      @      @      @))g      &@g      (@g      *@)g      ,@g      .@g      0@zm, m/s)p3f8)vr=   c                 C   s   t t| }t| |ksJ | j|jks.J | j|jks>J t| t|u sRJ d}d}| j| sn| j| r| j| |j| ksJ | j| |j| ksJ n|j| sJ t| dr| j	|j	ksJ d S )NZC_CONTIGUOUSZF_CONTIGUOUSr1   )
r   r   npallshaper8   typeflagshasattrr1   )r   r   ZccZfcr   r   r    test_ndarray_subclasses<   s    
rE   c                 C   s   | j |j ksJ | jj|jjks$J t|  t| ks@J |  D ]}t| |t||ksHJ qHt| jt|jks~J | jD ]"}tt| |t||ksJ qd S r   )	rA   framenamelistZget_frame_attr_namesgetattrZrepresentation_component_namesr?   r@   )r   r   attrrG   r   r   r    compare_coordd   s    
rK   rF   fk4Zaltazc                 C   sX   t ddgddggddgddggd	| td
tdddtjdd}tt|}t|| d S )Nr   r2   r   r            r   r/   
2016-01-02      r0   r1   rF   Zobstimelocation)r   r   r   r#   kmr   r   rK   )rF   r   r   r   r   r    test_skycoordr   s    rW   repr7   rM   rN   rO   
   r6   r9   r:      )rY   rZ      )r   r2   r   )Zdifferentialsr,   g        r;   g      @c                 C   s$   t t| }tt|| s J d S r   )r   r   r?   r@   r   )rX   Zrrepr   r   r    test_representations}   s    r\   c               	   C   sb   t dgdggdtdddtjdd} d	| _d
| _tdgdgg| _tdgdgg| _	d| _
| S )Nr   r2   ZcxcsecrQ   rR   rS   r0   )formatrU   ZisorM   r7   r9   r:   r;   Zdate_hm)r   r   r#   rV   r]   	precisionr?   arraydelta_ut1_utcdelta_tdb_tt
out_subfmt)tr   r   r    	_get_time   s    rd   c                 C   sR   t | t |u sJ t| |ks&J dD ]"}tt| |t||ks*J q*d S )N)rA   jd1jd2r]   scaler^   Z	in_subfmtrb   rU   r`   ra   )rB   r?   r@   rI   )rc   tyrJ   r   r   r    compare_time   s    ri   c                  C   s    t  } tt| }t| | d S r   )rd   r   r   ri   )rc   rh   r   r   r    	test_time   s    rj   c                  C   sd   t  } | |  dtj  }tt|}t|t|u s8J dD ]"}tt||t||ks<J q<d S )NgDɚ?)rA   re   rf   r]   rg   )	rd   r#   r,   r   r   rB   r?   r@   rI   )rc   ZdtZdtyrJ   r   r   r    test_timedelta   s    rk   c                  C   s,   t dddd} tt| }| |ks(J d S )NZhellor   r   )rG   otherZother2)r   r   r   )ZscZscyr   r   r    test_serialized_column   s    rm   c                  C   s   t  } tjtj }tddgddggddgddggd	d
tdtdddtjdd}dt|  d t| d t| }t	t
|\}}}t| | t|| ||ksJ d S )Nr   r2   r   r   rM   rN   rO   r   r/   rL   rP   rQ   rR   rS   r0   rT   z---
)rd   r#   mr,   r   r   r   rV   r   rH   r   ri   rK   )rc   r1   r   outrh   Zunityr   r   r   r    test_load_all   s(    


rp   c                  C   s   t ddgtj ddggddgd} t }tddgddggdd	gd
dggddtdtdddtjdd}tjtj }|||d| _	t
 }| j|dd t j| dd}t||j	d  t||j	d  |j	d |ksJ dS )zD
    Test that astropy core objects in ``meta`` are serialized.
    r   r2   r   rM   ab)namesr   rN   rO   r   r/   rL   rP   rQ   rR   rS   r0   rT   )tmr   r1   z
ascii.ecsv)r]   rt   r   r1   N)r   r#   rn   rd   r   r   r   rV   r,   metar   writereadgetvalueri   rK   )rc   rt   r   r1   ro   t2r   r   r    !test_ecsv_astropy_objects_in_meta   s    "rz   )E__doc__ior   r)   Znumpyr?   Zastropy.coordinatesr   r   r   r   r   r   r	   r
   r   r   r   Zastropyr   r#   Zastropy.timer   Zastropy.tabler   r   Z-astropy.coordinates.tests.test_representationr   Zastropy.io.misc.yamlr   r   r   ZmarkZparametrizeZuint8Zint16Zint32Zint64Zfloat64Zcomplex_Z	complex64Z
complex128r!   rn   r,   ZhPaZdimensionless_unscaledZUnitr$   ZoneZdef_unitr.   r_   rE   rK   rW   r/   ZpcZmasZyrrV   r\   rd   ri   rj   rk   rm   rp   rz   r   r   r   r    <module>   s   4









0

