
    IR-e                     n   d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	  e j
        ej        d d          Z e j
        ej        dd          Z	 e	j                                         d	Zn# e$ r d
ZY nw xY wd Zej        j         G d d                      Z G d d          Z G d d          ZdS )    N)Time)conf)iersg&.>)rtolatolgV瞯<g-C6?TFc                 P   t          j                    }|                                 }|                    |d          \  |_        }|t
          j        k    sJ |j        j        }||j        k    sJ |j        }t
          j	        
                    |                                           5  |                    d          \  }}||k    sJ |                    d          |k    sJ |j        }|j        |k    sJ |j        |j        k    sJ 	 d d d            d S # 1 swxY w Y   d S )NTreturn_statuss)r   nowopenut1_utcdelta_ut1_utcr   FROM_IERS_A_PREDICTIONut1jdearth_orientation_tablesetget_delta_ut1_utcto_value_delta_ut1_utc)		iers_typetnowiers_tabstatustnow_ut1_jdr   delta2status2tnow_ut1s	            ;lib/python3.11/site-packages/astropy/time/tests/test_ut1.pydo_ut1_prediction_tstr!      st   8::D~~H!)!1!1$d!1!K!KDT00000(+K$'!!!!&M		%	)	))..*:*:	;	; & &00t0DD&    s##}44448&-7777{dg%%%%%& & & & & & & & & & & & & & & & & &s   *A#DD"Dc                   &    e Zd Zd Zd Zd Zd ZdS )TestTimeUT1Remotec                     dt           _        d S )NT	iers_confauto_downloadclss    r    setup_classzTestTimeUT1Remote.setup_class,   s     #'	    c                     dt           _        d S )NFr%   r(   s    r    teardown_classz TestTimeUT1Remote.teardown_class1   s    "'	r+   c                    t          g dd          }|j        j        }t          j        g d          }t          ||          sJ |j        j        }t          |j        |j                  sJ t          j                    }|j         dS )zCTest conversion of UTC to UT1, making sure to include a leap second)2012-06-30 12:00:002012-06-30 23:59:59z2012-06-30 23:59:602012-07-01 00:00:002012-07-01 12:00:00utcscale)gBAgeBAgBAg( BAg (  BAN)r   r   r   nparrayallclose_jdr3   r   )selftt_ut1_jdt_compt_backr   s         r    test_utc_to_ut1z!TestTimeUT1Remote.test_utc_to_ut15   s       	
 	
 	
 58  
 
 8V,,,,,14+++++xzzr+   c                 8    t          t          j                   d S N)r!   r   	IERS_Autor9   s    r    test_ut1_iers_autoz$TestTimeUT1Remote.test_ut1_iers_autoS   s    dn-----r+   N)__name__
__module____qualname__r*   r-   r>   rC    r+   r    r#   r#   *   sP        ' ' '
( ( (  <. . . . .r+   r#   c                   $    e Zd ZdZd Zd Zd ZdS )TestTimeUT1zTest Time.ut1 using IERS tablesc                 B   t          j        dd          5  t          g dd          }|j        j        }t          j        g d          }t          ||          sJ |j        j        }t          |j        |j                  sJ 	 ddd           dS # 1 swxY w Y   dS )zTAlso test the reverse, around the leap second
        (round-trip test closes #2077)r'   F)r/   r0   r1   z2012-07-01 00:00:01r2   r   r4   )gn BAgvBAgBAg8 BAgBAN)	r&   set_tempr   r3   r   r6   r7   r8   r   )r9   r:   t_utc_jdr<   r=   s        r    test_ut1_to_utczTestTimeUT1.test_ut1_to_utcZ   s    77 	0 	0   	 	 	A uxHX   F x00000UYFqtVY///////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   A0BBBc                 F   ddl m} t          j        dd          5  t	          dg          t          j        d          |j        z  z   }|g          j        }t          |t                    sJ |j
        dk    sJ |j        dk    sJ 	 ddd           dS # 1 swxY w Y   dS )	z[Testing for a zero-length Time object from UTC to UT1
        when an empty array is passedr   )unitsr'   Fr/      r   N)astropyrO   r&   rK   r   r6   arangehourr   
isinstancer5   size)r9   ur:   t_emptys       r    test_empty_ut1zTestTimeUT1.test_empty_ut1v   s     	'&&&&&77 	% 	%+,--	"0FFAeiGgt,,,,,=E))))<1$$$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s   A,BBBc                    t          j        dd          5  t          dd          }t          |d          rJ t	          |j        d          sJ t	          |j        d          sJ 	 ddd           dS # 1 swxY w Y   dS )	zWAccessing delta_ut1_utc should try to get it from IERS
        (closes #1924 partially)r'   Fr/   r3   r4   r   g1'=N)r&   rK   r   hasattrallclose_secr   r   )r9   r:   s     r    test_delta_ut1_utczTestTimeUT1.test_delta_ut1_utc   s     77 	H 	H*%888Aq"2333331EFFFFF 02FGGGGGG	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	H 	Hs   AA66A:=A:N)rD   rE   rF   __doc__rM   rX   r\   rG   r+   r    rI   rI   W   sL        ))0 0 08
% 
% 
%	H 	H 	H 	H 	Hr+   rI   c                   `    e Zd Zej                            e d          d             Zd ZdS )TestTimeUT1SpecificIERSTablezrequires IERS_A)reasonc                 8    t          t          j                   d S r@   )r!   r   IERS_ArB   s    r    test_ut1_iers_Az,TestTimeUT1SpecificIERSTable.test_ut1_iers_A   s    dk*****r+   c                 $   t          j                    }t          j                                        }|                    |d          \  }}|t          j        k    sJ t          j                            t          j                                                  5  |                    d          \  }}||k    sJ t          j
        t          j                  5  |j         d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NTr	   )r   r   r   IERS_Br   r   TIME_BEYOND_IERS_RANGEr   r   pytestraisesIERSRangeErrorr   )r9   r   iers_bdelta1status1r   r   s          r    test_ut1_iers_Bz,TestTimeUT1SpecificIERSTable.test_ut1_iers_B   ss   xzz!!##00t0LL$55555)--dk.>.>.@.@AA 	 	"4444HHOFGg%%%%t233                		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s7   A DC-!D-C1	1D4C1	5DD	D	N)	rD   rE   rF   rg   markskipif
HAS_IERS_Arc   rm   rG   r+   r    r_   r_      sV        [J/@AA+ + BA+    r+   r_   )	functoolsnumpyr6   rg   astropy.timer   astropy.utils.iersr   r&   r   partialallcloser8   r[   rb   r   rp   OSErrorr!   rn   remote_datar#   rI   r_   rG   r+   r    <module>ry      s                  0 0 0 0 0 0 # # # # # #i!$??? y 5tDDDK JJ    JJJ& & && ). ). ). ). ). ). ). ).X4H 4H 4H 4H 4H 4H 4H 4Hn         s   A, ,A65A6