
    bMh)                         d dl mZ 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mZ  G d d          Z G d d          Z G d	 d
          ZdS )    )	timedeltaN)	Timedelta)DatetimeArrayTimedeltaArrayc                      e Zd Z ej        g d          d             Zej        d             Zd Zd Zej	        
                    dej                  d             Zd	 Zd
 Zd Zd Zej	        
                    d ej        dd           ej        dd          g          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestNonNano)smsus)paramsc                     |j         S N)param)selfrequests     c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/arrays/test_timedeltas.pyunitzTestNonNano.unit   s
    }    c                     t          j        dt           j                                      d| d          }t	          j        ||j                  S )N   dtypem8[])nparangeint64viewr   _simple_newr   )r   r   arrs      r   tdazTestNonNano.tda   sF    i***//d>>)#SY????r   c                     t          j        dt           j                                      d| d          }t	          j        ||j                  }|j        |j        k    sJ |d         j        |k    sJ d S )Nr   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r    r!   s       r   test_non_nanozTestNonNano.test_non_nano   sw    i***//d>>(CI>>>yCI%%%%1v{d""""""r   c                 P   t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t	          j        |          }t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )NzSupported unitsmatchD)pytestraises
ValueErroras_unitpdIndex)r   r!   tdis      r   test_as_unit_raiseszTestNonNano.test_as_unit_raises    s   ]:->??? 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 hsmm]:->??? 	 	KK	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s!   >AA8BB"Bfieldc                     |j                             d          }t          j        ||j                  }t          ||          }t          ||          }t          j        ||           d S Nm8[ns]r   )_ndarrayastyper   r   r   getattrtmassert_numpy_array_equal)r   r!   r0   as_nanotda_nanoresultexpecteds          r   test_fieldszTestNonNano.test_fields)   se    ,%%h//!-gW]KKKe$$8U++
#FH55555r   c                     |j                             d          }t          j        ||j                  }|                                }|                                }t          j        ||           d S r2   )r4   r5   r   r   r   to_pytimedeltar7   r8   )r   r!   r9   r:   r;   r<   s         r   test_to_pytimedeltazTestNonNano.test_to_pytimedelta2   si    ,%%h//!-gW]KKK##%%**,,
#FH55555r   c                     |j                             d          }t          j        ||j                  }|                                }|                                }t          j        ||           d S r2   )r4   r5   r   r   r   total_secondsr7   r8   )r   r   r!   r9   r:   r;   r<   s          r   test_total_secondszTestNonNano.test_total_seconds:   si    ,%%h//!-gW]KKK""$$))++
#FH55555r   c                     t          d                                          }t          j        t          d          g                                          d         }||k    sJ d S )Nz2 minr   )r   rB   r,   array)r   r<   r;   s      r   "test_timedelta_array_total_secondsz.TestNonNano.test_timedelta_array_total_secondsB   s]    W%%33559W--.//==??B!!!!!!r   c                 8   t          j        dg                              d          }t          j        dg                              d          }||z
  j        t	          j        dd          z  }||z
  j                                        j        }||k    sJ d S )Nz2145-11-02 06:00:00datetime64[ns]z2145-11-02 07:06:00   r	   )r,   Seriesr5   valuesr   timedelta64dtrB   )r   
start_timeend_timer<   r;   s        r   test_total_seconds_nanosecondsz*TestNonNano.test_total_seconds_nanosecondsI   s    Y 5677>>?OPP
93455<<=MNNz)1BN1c4J4JJZ'+99;;B!!!!!!r   natNaTnsr   c                 ^   ||z   }t          |t                    sJ |j        |j        k    sJ |                                                                sJ ||z   }t          |t                    sJ |j        |j        k    sJ |                                                                sJ d S r   )
isinstancer   _cresoisnaall)r   rQ   r!   r;   s       r    test_add_nat_datetimelike_scalarz,TestNonNano.test_add_nat_datetimelike_scalarQ   s     s&-00000}
****{{}}  """""s&-00000}
****{{}}  """""""r   c                    |t           j        z   }t          |t                    sJ |j        |j        k    sJ |                                                                sJ t           j        |z   }t          |t                    sJ |j        |j        k    sJ |                                                                sJ d S r   )r,   rR   rU   r   rV   rW   rX   )r   r!   r;   s      r   test_add_pdnatzTestNonNano.test_add_pdnat_   s    rv&.11111}
****{{}}  """""#&.11111}
****{{}}  """""""r   c                 &   t          j        d|                              d          }|                    d          |z   }||z   }t          j        ||           ||z   }t          j        ||           |t          d          z  }|j        |j        z   }t          j	        ||j
                                      d                              |j                  }||z   }t          j        ||           ||z   }t          j        ||           d S )Nz
2016-01-01)tzrS   rI   r   UTC)r,   	Timestampr+   r7   assert_extension_array_equalr   r4   asm8r   r   r   tz_localize
tz_convertr]   )r   r!   tz_naive_fixturetsr<   res
exp_valuesr;   s           r   test_add_datetimelike_scalarz(TestNonNano.test_add_datetimelike_scalarl   s   \,+;<<<DDTJJ;;t$$r)Bh
'X6663h
'X666
ill\BG+
%j
8HIII[Z 	 r
'999c
'99999r   c                     d}||z  }t          j        |j        |z  |j                  }t	          j        ||           |j        |j        k    sJ d S N   r   r   r   r4   r   r7   r`   rV   r   r!   otherr;   r<   s        r   test_mul_scalarzTestNonNano.test_mul_scalar   \    u!-clU.B#)TTT
'999}
******r   c                     t          j        t          |                    }||z  }t          j        |j        |z  |j                  }t          j        ||           |j	        |j	        k    sJ d S Nr   
r   r   lenr   r   r4   r   r7   r`   rV   rm   s        r   test_mul_listlikezTestNonNano.test_mul_listlike   l    	#c((##u!-clU.B#)TTT
'999}
******r   c                    t          j        t          |                    }||                    t                    z  }t          j        |j        |z  |j                  }t          j
        ||           |j        |j        k    sJ d S rr   )r   r   rt   r5   objectr   r   r4   r   r7   r`   rV   rm   s        r   test_mul_listlike_objectz$TestNonNano.test_mul_listlike_object   sy    	#c((##u||F+++!-clU.B#)TTT
'999}
******r   c                     d}||z  }t          j        |j        |z  |j                  }t	          j        ||           |j        |j        k    sJ d S rj   rl   rm   s        r   test_div_numeric_scalarz#TestNonNano.test_div_numeric_scalar   rp   r   c                     t          d          }||z  }|j        t          j        dd          z  }t	          j        ||           d S )NrI   secondsr	   )r   r4   r   rL   r7   r8   rm   s        r   test_div_td_scalarzTestNonNano.test_div_td_scalar   sL    !$$$u<".C"8"88
#FH55555r   c                     t          j        t          |                    }||z  }t          j        |j        |z  |j                  }t          j        ||           |j	        |j	        k    sJ d S rr   rs   rm   s        r   test_div_numeric_arrayz"TestNonNano.test_div_numeric_array   rv   r   c                 x    |j         |j         d         z   }||z  }|j         |z  }t          j        ||           d S )N)r4   r7   r8   rm   s        r   test_div_td_arrayzTestNonNano.test_div_td_array   sC    s|B//u<%'
#FH55555r   c                    |                     d          }|dz  }||z   }t          j        ||           ||z   }t          j        ||           |dz  }||z
  }t          j        ||           ||z
  }t          j        ||           d S )Nr3   rk   r   )r5   r7   r`   )r   r!   r:   r<   rf   s        r   test_add_timedeltaarraylikez'TestNonNano.test_add_timedeltaarraylike   s    ::h''a<n
'X666Hn
'X666a<Hn
'X666n
'X66666r   N)__name__
__module____qualname__r(   fixturer   r!   r#   r/   markparametrizer   
_field_opsr=   r@   rC   rF   rP   r   
datetime64rY   r[   rh   ro   ru   ry   r{   r   r   r   r    r   r   r   r      s       V^,,,---  .- ^@ @ ^@# # #   [Wn&?@@6 6 A@66 6 66 6 6" " "" " " [eT**MBM%,F,FG 	# 	# 	#	# 	# 	#: : :0+ + ++ + ++ + ++ + +6 6 6+ + +6 6 67 7 7 7 7r   r   c                      e Zd Zej                            deej        ej	        ddg          d             Z
d Zej                            d ed           ed                                           ed                                          g          d	             Zej                            d
d ej	        d          d ej        d           ej        d          d ej        dd          dz  dz  dz   ej        d          dz  dz  dz                      d           ej        d                              d          g	          ej                            dddg          d                         ZdS )TestTimedeltaArrayr   uint32uint64c                    t          j        t          d          t          d          gd          }t          j        |          t          j        k    rJt          j        t          d          5  |	                    |           d d d            n# 1 swxY w Y   d S |	                    |          }|j
                            d          }t          j        ||           d S )N1h2hr3   r   zDo obj.astype\('int64'\)r%   i8)r   _from_sequencer   r   r   r   r(   r)   	TypeErrorr5   r4   r   r7   r8   )r   r   r    r;   r<   s        r   test_astype_intz"TestTimedeltaArray.test_astype_int   s   +t__ioo.h
 
 
 8E??bh&&y0KLLL " "

5!!!" " " " " " " " " " " " " " "FE""<$$T**
#FH55555s   0BBBc                 t    t          j        ddd          j        }t          d          |d<   |j        J d S )Nr   rk   hperiodsfreqr   )r,   timedelta_range_datar   r   )r   as     r   test_setitem_clears_freqz+TestTimedeltaArray.test_setitem_clears_freq   s:    tQS999?!v~~~~~r   objrI   r}   c                     t          j        ddd          }|j        }||d<   |d         t          d          k    sJ d S )N2 Days   r   r   r   rI   r}   )r,   r   r   r   )r   r   r.   r    s       r   test_setitem_objectsz'TestTimedeltaArray.test_setitem_objects   sQ      13???iA1v1---------r   rn   g      ?rR   z
2021-01-01invalid
   r   r         ʚ;rH   r'   indexTFc                 f   t          j        dd          dz  dz  dz  }t          j        |d          j        }|rt          j        |          }d	                    d
dg          }t          j        t          |          5  |
                    |           d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r   r   r'   )r   |z0searchsorted requires compatible dtype or scalarz<value should be a 'Timedelta', 'NaT', or array of those. Gotr%   )r   r   r,   TimedeltaIndexr   r-   joinr(   r)   r   searchsorted)r   rn   r   datar    msgs         r   test_searchsorted_invalid_typesz2TestTimedeltaArray.test_searchsorted_invalid_types   s     y4(((2-4u<3///5 	 (3--ChhBN
 
 ]9C000 	$ 	$U###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   B&&B*-B*N)r   r   r   r(   r   r   intr   int32r   r   r   r   to_timedelta64r?   r   r   r,   r_   r   r   	to_periodr   r   r   r   r   r      s       [WsBHbh(&STT6 6 UT6  
 [Ia   Ia   //11Ia   //11	
 . . . [BHQKKBM%  BL&&BIb%%%*T1E9RYr]]R$&.445EFFBL&&0055
	
  [WtUm44$ $ 54 $ $ $r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )TestUnaryOpsc                 P   t          j        g dd          }t          j        |          }t          j        g dd          }t          j        |          }t	          |          }t          j        ||           t          j        |          }t          j        ||           d S )Nl  qarR       @B1r3   r   )     qarR   r   )r   rE   r   r   absr7   assert_timedelta_array_equalr   valsr    evalsr<   r;   result2s          r   test_abszTestUnaryOps.test_abs	  s    x<<<HMMM+D11<<<HMMM!077S
'999&++
':::::r   c                 <   t          j        g dd          }t          j        |          }|
 }t	          j        ||           t	          j        ||          rJ t          j        |          }t	          j        ||           t	          j        ||          rJ d S )Nr   r3   r   )r   rE   r   r   r7   r   shares_memorypositive)r   r   r    r;   r   s        r   test_poszTestUnaryOps.test_pos  s    x<<<HMMM+D11
'444#FC00000+c""
'555#GS1111111r   c                 8   t          j        g dd          }t          j        |          }t          j        g dd          }t          j        |          }| }t	          j        ||           t          j        |          }t	          j        ||           d S )Nr   r3   r   )r   rR   l @B1)r   rE   r   r   r7   r   negativer   s          r   test_negzTestUnaryOps.test_neg"  s    x<<<HMMM+D11===XNNN!077
'999+c""
':::::r   c                     t          j        ddd          }|j        }|j         }| }t          j        ||           t          j        |          }t          j        ||           d S )Nr   r   r   r   )r,   r   r   r7   r   r   r   )r   r.   r    r<   r;   r   s         r   test_neg_freqzTestUnaryOps.test_neg_freq/  sk     13???iI:
'999+c""
':::::r   N)r   r   r   r   r   r   r   r   r   r   r   r     sP        ; ; ;
2 
2 
2; ; ;
; 
; 
; 
; 
;r   r   )datetimer   numpyr   r(   pandasr,   r   pandas._testing_testingr7   pandas.core.arraysr   r   r   r   r   r   r   r   <module>r      s                                    r7 r7 r7 r7 r7 r7 r7 r7jA$ A$ A$ A$ A$ A$ A$ A$H1; 1; 1; 1; 1; 1; 1; 1; 1; 1;r   