
    HR-ez!                     \	   d Z ddlmZ ddlZddlZddlm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mZmZ ddlmZmZ dd	lmZ ej         !                    d
d ej"        d           ej#        d           ej$        d           ej%        d           ej%        d          d ej&                    d ej'        d           ej(        d           ej)        d          g          d             Z*ej         !                    d
ej+        ej+        ej,        z  ej-        ej.         ej/        d          g          d             Z0ej         !                    d
 ej/        ddej1        z             ej2        d          g          d             Z3ej         !                    d
 e
dd           edd           edd          dgdggej+        z   ej4        ddgddggd            ej4        ddgddggd!            ej4        g d"          ddd          ej4        d#d$gd%&           ej4        d#d%&           ej4        d#d%&          d'          ej4        d(d)&          ej,        z  d*d+g ej/        d,          z   ej4        d*d+gd-d.g&           ej/        d,          z  g          d/             Z5d0 Z6ej         !                    d1d2d3g          d4             Z7ej         !                    d5 edej+        z  dej+        z  d6ej+        z             eddgddggej8        z  d7d8gd9dggej8        z  d:ej9        z             edej8        z  d:ej8        z             ed;gdggej:        z  ej;        z  d<d=gej:        z  ej;        z  d:ggd>gggej<        z  ej,        z             eg d?ej<        z  ej,        z             eg d@ej+        z   eg d?ej<        z  ej,        z            A           eddgddggej8        z  d7d8gd9dggej8        z  d:ej9        z  dB edCd;gdd6ggej:        z  ej;        z  d<d=gdDdEggej:        z  ej;        z  d:ej<        z  ej,        z            iA          g          dF             Z=dG Z>dH Z?dI Z@dJ ZAdK ZBdL ZCdM ZDdN ZEdO ZFdS )PzF
This module tests some of the methods related to YAML serialization.
    )StringION)units)AngleCartesianDifferentialCartesianRepresentationEarthLocationLatitude	LongitudeSkyCoordSphericalCosLatDifferentialSphericalDifferentialSphericalRepresentationUnitSphericalRepresentation)representation_equal)dumploadload_all)QTableSerializedColumn)TimecT            l           @y      @      @y??c                 N    t          t          |                     }| |k    sJ d S N)r   r   r   cys     ?lib/python3.11/site-packages/astropy/io/misc/tests/test_yaml.pytest_numpy_typesr"       s&    $ 
d1ggB777777    zm, (cm, um)c                     t          t          |                     }t          | t          j        t          j        f          r
| |k    sJ d S | |u sJ d S r   )r   r   
isinstanceuCompositeUnitStructuredUnitr   s     r!   	test_unitr)   6   sS     
d1ggB!aoq'7899 BwwwwwwBwwwwwwr#   bakers_dozen   magicc                    t          |           }t          j        t          j        d| d          5 }t          |          }d d d            n# 1 swxY w Y   t          |          dk    sJ t          |t          j                  sJ t          |          t          |           k    sJ t          j
        |           5  t          |          }|| u sJ 	 d d d            d S # 1 swxY w Y   d S )N'z' did not parsematchr   )r   pytestwarnsr&   UnitsWarningr   lenr%   UnrecognizedUnitstradd_enabled_units)r   swr    cy2s        r!   test_custom_unitr;   A   se   QA	an,D,D,D,D	E	E	E !WW              q66Q;;;;b!,-----r77c!ff	
	Q		  1ggaxxxxx                 s#   AAAC&&C*-C*z1 2 3degunit   F)orderC)r   r?   r   r   )      ?r?   )      @r   zf8,i4dtype )rC   r   zf8,f8))rC   r   rD   )      @      @      @))g      &@g      (@g      *@)g      ,@g      .@g      0@zm, m/s)p3f8)vrL   c                    t          t          |                     }t          j        | |k              sJ | j        |j        k    sJ | j        |j        k    sJ t          |           t          |          u sJ d}d}| j        |         s| j        |         r=| j        |         |j        |         k    sJ | j        |         |j        |         k    sJ n|j        |         sJ t          | d          r| j	        |j	        k    sJ d S d S )NC_CONTIGUOUSF_CONTIGUOUSr>   )
r   r   npallshaperF   typeflagshasattrr>   )r   r    ccfcs       r!   test_ndarray_subclassesrY   O   s!   < 
d1ggB6!r'??7bh7bh77d2hh	B	Bwr{ agbk wr{bhrl****wr{bhrl***** x|q& !v    ! !  r#   c                    | j         |j         k    sJ | j        j        |j        j        k    sJ t          | j                  t          |j                  k    sJ | j        D ]&}t          | |          t          ||          k    sJ 't          | j                  t          |j                  k    sJ | j        D ]8}t          j        t          | |          t          ||          k              sJ 9d S r   )	rS   framenamelistframe_attributesgetattrrepresentation_component_namesrQ   rR   )r   r    attrr\   s       r!   compare_coordrb      s   7bh7<28=(((("##tB,?'@'@@@@@" 5 5q$72t#4#444444011T
)6 6     0 = =vga&&'"d*;*;;<<<<<<= =r#   r[   fk4altazc                     t          ddgddggddgddggd	| t          d
          t          dddt          j                            }t          t          |                    }t          ||           d S )Nr   r?   r   r            r   r<   
2016-01-02      r=   r>   r[   obstimelocation)r   r   r   r&   kmr   r   rb   )r[   r   r    s      r!   test_skycoordrq      s    
Q!Q
Q!Q\""tT4ad;;;	 	 	A 
d1ggB!Rr#   reprD   rf   rg   rh   
   rC   rH   rI      )rs   rt      r   r?   r   )differentialsr8   g        rJ   g      @c                     t          t          |                     }t          j        t	          ||                     sJ d S r   )r   r   rQ   rR   r   )rr   rreps     r!   test_representationsrz      s=    B S		??D6&tS112222222r#   c            
         t          dgdggdt          dddt          j                            } d	| _        d
| _        t          j        dgdgg          | _        t          j        dgdgg          | _	        d| _
        | S )Nr   r?   cxcsecrj   rk   rl   r=   )formatro   isorf   rD   rH   rI   rJ   date_hm)r   r   r&   rp   r}   	precisionrQ   arraydelta_ut1_utcdelta_tdb_tt
out_subfmt)ts    r!   	_get_timer      s    
qc
8mD$STSW.X.X.X	 	 	A AHAKhu~..AOXusen--ANALHr#   c                     t          |           t          |          u sJ t          j        | |k              sJ dD ]8}t          j        t          | |          t          ||          k              sJ 9d S )N)rS   jd1jd2r}   scaler   	in_subfmtr   ro   r   r   )rT   rQ   rR   r_   )r   tyra   s      r!   compare_timer      s    77d2hh6!r'?? = = vga&&'"d*;*;;<<<<<<= =r#   c                  z    t                      } t          t          |                     }t          | |           d S r   )r   r   r   r   )r   r   s     r!   	test_timer      s2    A	d1ggBBr#   c                  :   t                      } | | z
  dt          j        z  z   }t          t	          |                    }t          |          t          |          u sJ dD ]8}t          j        t          ||          t          ||          k              sJ 9d S )NgDɚ?)rS   r   r   r}   r   )	r   r&   r8   r   r   rT   rQ   rR   r_   )r   dtdtyra   s       r!   test_timedeltar      s    A	
QQS	 B
tBxx..C88tCyy    : ? ?vgb$''73+=+==>>>>>>? ?r#   c                  t    t          dddd          } t          t          |                     }| |k    sJ d S )Nhellor   r   )r\   otherother2)r   r   r   )scscys     r!   test_serialized_columnr      s;    	7Q#FF	G	GB
tBxx..C999999r#   c                     t                      } t          j        t          j        z  }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t          |           z   dz   t          |          z   dz   t          |          z   }t          t          |                    \  }}}t          | |           t          ||           ||k    sJ d S )Nr   r?   r   r   rf   rg   rh   r   r<   rc   ri   rj   rk   rl   r=   rm   z---
)r   r&   mr8   r   r   r   rp   r   r]   r   r   rb   )r   r>   r   outr   unityr    s          r!   test_load_allr      s    A39D
Q!Q
Q!Q\""tT4ad;;;	 	 	A DGG
g
%T


2W
<tAww
FC#''MBrB!RD======r#   c                  t   t          ddgt          j        z  ddggddg          } 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                            }t          j        t          j        z  }|||d| _	        t                      }|                     |d           t          j        |                                d          }t          ||j	        d                    t          ||j	        d                    |j	        d         |k    sJ dS )zD
    Test that astropy core objects in ``meta`` are serialized.
    r   r?   r   rf   ab)namesr   rg   rh   r   r<   rc   ri   rj   rk   rl   r=   rm   )tmr   r>   z
ascii.ecsv)r}   r   r   r>   N)r   r&   r   r   r   r   r   rp   r8   metar   writereadgetvaluer   rb   )r   r   r   r>   r   t2s         r!   !test_ecsv_astropy_objects_in_metar     s5    	Aq!f%c3Z888A	B
Q!Q
Q!Q\""tT4ad;;;	 	 	A 39DQ--AF
**CGGCG%%%	S\\^^L	9	9	9BRWT]###!RWS\"""76?d""""""r#   c                      t          j        t          d          5  t          t	          j        g dt                               ddd           dS # 1 swxY w Y   dS )z2Test that dumping and loading object arrays fails.zcannot serializer/   rv   rE   N)r1   raises	TypeErrorr   rQ   r   objectrG   r#   r!   $test_yaml_dump_of_object_arrays_failr   +  s    	y(:	;	;	; 0 0RXiiiv...///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   +AAAc                      t          j        t          d          5  t          d           ddd           dS # 1 swxY w Y   dS )zTest that dumping and loading object arrays fails.

    The string to load was obtained by suppressing the exception and dumping
    ``np.array([1, 2, 3], dtype=object)`` to a yaml file.
    zcannot load numpy arrayr/   z!numpy.ndarray
            buffer: !!binary |
              WndBQUFISUFBQUJwQUFBQQ==
            dtype: object
            order: C
            shape: !!python/tuple [3]N)r1   r   r   r   rG   r#   r!   $test_yaml_load_of_object_arrays_failr   1  s     
y(A	B	B	B 
 
)	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   9= =)G__doc__ior   numpyrQ   r1   astropyr   r&   astropy.coordinatesr   r   r   r   r	   r
   r   r   r   r   r   -astropy.coordinates.tests.test_representationr   astropy.io.misc.yamlr   r   r   astropy.tabler   r   astropy.timer   markparametrizeuint8int16int32int64float64complex_	complex64
complex128r"   r   r8   hPadimensionless_unscaledUnitr)   onedef_unitr;   r   rY   rb   rq   r<   pcmasyrrp   rz   r   r   r   r   r   r   r   r   r   rG   r#   r!   <module>r      s@                                              O N N N N N 5 5 5 5 5 5 5 5 5 5 2 2 2 2 2 2 2 2       
FV899 " # "
 !#qsQSy!%!9616-;P;P	Q    vqvnb15jAA:1:gCVCVWXX
 
 YX
 gE"""	'&&&u%%%
qc
QS1a&1a&!---1a&1a&!---sss#(H%W555))))))"-7+++ac1.4	
 !&

		
 	28  .	
 	
 	
 !&

	# :! !; :!,= = = 5'"233
 
 43
 	ACqsC!#I>>VaVqu$1v1v&6&>QT		
 	
 	$#AIrAEz::##USENQU"QT)#J%dVrdVqt#ac)	
 	

 	lllQT1AC788IIO//qt0Cac0IJJ	
 	
 	
 	 VaVqu$VaVqu$I**3Z#s,qu4qt;3Z#s,qu4qt;IO 		
 	
 	
! @3 3A @3

 
 
= = =&  ? ? ?    ,# # #40 0 0
 
 
 
 
r#   