o
    d                    @   s  d Z ddlZddlmZ ddlmZmZmZmZ ddlm	Z	 ddl
Z
ddlmZ 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mZ dd
lmZmZ ddlm  mZ ddlm 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+ ddl,m-Z. ddl/m0Z0 ddl1m2Z3 ddl4m5Z5 ddl6m7Z7 dZ8ej9ddgddd Z:G dd dZ;G dd dZ<G dd dZ=G dd dZ>G dd  d Z?G d!d" d"Z@G d#d$ d$ZAG d%d& d&ZBG d'd( d(ZCej9g d)dd*d+ ZDej9d,d- ZEej9d.d/ ZFej9g d0dd1d2 ZGej9d3d4 ZHG d5d6 d6ZIG d7d8 d8ZJd9d: ZKejLMd;ejNeOgd<d= ZPejLMd>g d?ejLjMd@g dAdBfg dCdDfgdEdFgdGdHdI ZQdJdK ZReSdLdMdN ZTejLMdddgdOdP ZUejLMdQdRe5e5dS e5dT gdUdV ZVdWdX ZWdYdZ ZXd[d\ ZYejLMd]ddgejLMd^dFd_gd`da ZZdbdc Z[ejLMdddee$dfe&gfdge%dhdigfgdjdk Z\dldm Z]dS )nz test to_datetime     N)deque)datedatetime	timedeltatimezone)Decimalparse)tzoffset)tslib)iNaTparsing)OutOfBoundsDatetimeOutOfBoundsTimedelta)is_datetime64_ns_dtype)		DataFrameDatetimeIndexIndexNaTSeries	Timestamp
date_rangeisnato_datetime)DatetimeArray)	datetimes)start_caching_at)Versiona_  You might want to try:\n    - passing `format` if your strings have a consistent format;\n    - passing `format=\'ISO8601\'` if your strings are all ISO8601 but not necessarily in exactly the same format;\n    - passing `format=\'mixed\'`, and the format will be inferred for each element individually. You might want to use `dayfirst` alongside this.TF)paramsc                 C      | j S )z/
    cache keyword to pass to to_datetime.
    paramrequest r$   h/var/www/html/visualizacion-main/env/lib/python3.10/site-packages/pandas/tests/tools/test_to_datetime.pycache>   s   r&   c                   @   sB  e Zd Zejdddgdd Zejddeded	ed
ggdedededgggdd Zejdg dg dg dg dg dg dgdd Z	dd Z
dd Zdd Zdd  Zd!d" Zd#d$ Zejd%g d&d'd(ejgd'd(egg d)g d*d+d,ejgd+d,egg d-gd.d/ Zejd0ed'ejd1d2geed'ejejejgged'd1d2ejgeed'ejejejgged3ejd4d5geed6ejejejgged3d4ejd5geed6ejejejgggd7d8 Zejd9ejgd:ed;gfejgd<ed;gfejd=gd:ed;d>gfd?ejgd@edAd;gfd?ejgdBedCd;gfd<ejejgd<eg dDfd<ejejgdEeg dDfgdFdG ZdHdI ZdJdK ZejdLdMedNdOdPgdQedRdSdTgdUdUgdVdVgdWdWgdXdXggdYdZ Zd[d\ Zejd]d^d_ed`gdadbedcgdddeedfgejdgdhediejj e!" dj dkv dlddmdnejdodhedpejj e!" dj dkv dlddmdnejdqdredsejj e!" dj dkv dlddmdngdtdu Z#e$j%dvdw Z&ejddxedydzdSfd{edydSdzfd|edydzdSd}fd~edydSdzd}fdedydzdSd}dfdedydSdzd}dfdedydzdSd}ddfdedydSdzd}ddfdedydzdSd}dddfdedydSdzd}dddfdedydzdSd}dddddfdedydSdzd}dddddfgdd Z'ejdg ddd Z(ejdddedgddedggdd Z)ejdddgd edddgd gdg dedddedddedddggddgd ede*e+dddgd gddgd ede*e+dddgd gdddgede*e+dddede*e+dddggdddgede,-djdede,-djdgggdd Z.dd Z/ejdg ddd Z0dd Z1d<S )TestTimeConversionFormatsreadonlyTFc                 C   s>   t jg td}|r|jdd t|}tg }t|| d S )NdtypeF)write)nparrayobjectsetflagsr   tmassert_index_equal)selfr(   arrresultexpectedr$   r$   r%   test_to_datetime_readonlyG   s   z3TestTimeConversionFormats.test_to_datetime_readonlyzformat, expected%d/%m/%Y200001012000020120000301%m/%d/%Y2000010220000103c                 C   sL   |g d}t |||d}||}t|trt|| d S t|| d S )N)1/1/20001/2/20001/3/2000formatr&   )r   
isinstancer   r0   assert_series_equalr1   )r2   r&   index_or_seriesrB   r5   valuesr4   r$   r$   r%   test_to_datetime_formatQ   s   
z1TestTimeConversionFormats.test_to_datetime_formatzarg, expected, format)r>   r8   r7   )r>   r8   r;   )r?   r9   r7   )r?   r<   r;   )r@   r:   r7   )r@   r=   r;   c                 C   s&   t |||d}t|}||ksJ d S NrA   r   r   )r2   r&   argr5   rB   r4   r$   r$   r%   test_to_datetime_format_scalarg   s   z8TestTimeConversionFormats.test_to_datetime_format_scalarc                 C   sl   t ddgdgd  }t dd |tD }t|d|d}t|| t|td|d}t|| d S )N$.9G.   c                 S      g | ]}t |qS r$   r   .0xr$   r$   r%   
<listcomp>y       zNTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD.<locals>.<listcomp>%Y%m%drA   r   applystrr   r0   rD   r2   r&   serr5   r4   r$   r$   r%    test_to_datetime_format_YYYYMMDDw   s   z:TestTimeConversionFormats.test_to_datetime_format_YYYYMMDDc                 C   s   t ddgdgd  dd}t tdtdgtdgd  }tj|d< tj|d< t|d	|d
}t|| |t}d|d< t	j
tdd t|d	|d
 W d    d S 1 sXw   Y  d S )NrL   rM   rN   floatr)   1980122219810105   rV   rA   natzOunconverted data remains when parsing with format "%Y%m%d": ".0", at position 0match)r   r   r,   nanr   r0   rD   rX   rY   pytestraises
ValueError)r2   r&   r[   r5   r4   ser2r$   r$   r%   )test_to_datetime_format_YYYYMMDD_with_nat   s    


"zCTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD_with_natc                 C   sn   t ddgdgd  dd}t tdtdgtdgd  }tj|d< tj|d< t|d	|d
}t|| d S )Ni| i rN   r]   r)   1980120119810101r`   %Y%mrA   )r   r   r,   rd   r   r0   rD   rZ   r$   r$   r%   'test_to_datetime_format_YYYYMM_with_nat   s   

zATestTimeConversionFormats.test_to_datetime_format_YYYYMM_with_natc                 C   s<   t g d}t|dd|d}t g dtd}t|| d S )Ni3iT3irV   ignorerB   errorsr&   r)   )r   r   r.   r0   rD   r2   r&   r[   r4   r5   r$   r$   r%   'test_to_datetime_format_YYYYMMDD_ignore   s   zATestTimeConversionFormats.test_to_datetime_format_YYYYMMDD_ignorec                 C   s8   t ddtjgdd|d}tddtjg}t|| d S )N1501010120150101rV   ro   rp   )r   r,   rd   r   r0   r1   r2   r&   r4   r5   r$   r$   r%   8test_to_datetime_format_YYYYMMDD_ignore_with_outofbounds   s   
zRTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD_ignore_with_outofboundsc                 C   s<   t g d}t|dd|d}t g ddd}t|| d S )Nrn   rV   coercerp   )2012123120141231r   M8[ns]r)   r   r   r0   rD   rr   r$   r$   r%   )test_to_datetime_format_YYYYMMDD_coercion   s   zCTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD_coercioninput_s)r^   20010112Nr^   r   )r^   r   r   )rL   T1NrL   r   )rL   r   r   c                 C   s6   t tdtdtg}t t|dd}t|| d S )Nr^   r   rV   rB   )r   r   r   r   r0   rD   r2   r~   r5   r4   r$   r$   r%   *test_to_datetime_format_YYYYMMDD_with_none   s   zDTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD_with_nonezinput_s, expected2001001210019999i]4iT1i{120190813c                 C   s   t |ddd}t|| d S )NrV   rx   rB   rq   r   r0   rD   r   r$   r$   r%   )test_to_datetime_format_YYYYMMDD_overflow   s   zCTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD_overflowzdata, format, expectedz%Y%m%d%H%M%Sr   N20210202202020z2021-02-02 20:20:20201010z%y%m%dz
2020-10-10z%d%m%y
2010-10-20)r   r   r   rV   c                 C   s   t ||d}t|| d S Nr   r   r0   r1   )r2   datarB   r5   r4   r$   r$   r%   test_to_datetime_with_NA   s   z2TestTimeConversionFormats.test_to_datetime_with_NAc                 C   s*   t dtjg}tddg}t|| d S )Nr   r   r   )r   pdNAr   r0   r1   r2   r4   r5   r$   r$   r%   %test_to_datetime_with_NA_with_warning  s   z?TestTimeConversionFormats.test_to_datetime_with_NA_with_warningc                 C   s   t g d}t dd |tD }t|d|d}t|| t g d}t dd |tD }t|d|d}t|| d S )	N)    i  c                 S   rO   r$   rP   rQ   r$   r$   r%   rT     rU   zMTestTimeConversionFormats.test_to_datetime_format_integer.<locals>.<listcomp>z%YrA   )iA i i c                 S   s,   g | ]}t |d d d |dd   qS )N   -rP   rQ   r$   r$   r%   rT     s   , rl   rW   rZ   r$   r$   r%   test_to_datetime_format_integer  s   z9TestTimeConversionFormats.test_to_datetime_format_integerzint_date, expectedi3  
      i i     r   iuwi(3iA iI  c                 C   s   t |ddd}||ksJ d S )NrV   ro   r   r   )r2   int_dater5   r4   r$   r$   r%   .test_int_to_datetime_format_YYYYMMDD_typeerror$  s   zHTestTimeConversionFormats.test_int_to_datetime_format_YYYYMMDD_typeerrorc                 C   sD   t jd }d| d}d}t|||d}t||}||ks J d S )Nr   z01-z-2011 00:00:01.978z%d-%b-%Y %H:%M:%S.%frA   )calendar
month_abbrr   r   strptime)r2   r&   r   valrB   r4   expr$   r$   r%   #test_to_datetime_format_microsecond:  s   
z=TestTimeConversionFormats.test_to_datetime_format_microsecondzvalue, format, dtz01/10/2010 15:20z%m/%d/%Y %H:%Mz2010-01-10 15:20z01/10/2010 05:43z%m/%d/%Y %I:%Mz2010-01-10 05:43z01/10/2010 13:56:01z%m/%d/%Y %H:%M:%Sz2010-01-10 13:56:01z01/10/2010 08:14 PMz%m/%d/%Y %I:%M %pz2010-01-10 20:14r   )zh_CNit_ITz4fail on a CI build with LC_ALL=zh_CN.utf8/it_IT.utf8)reasonstrict)marksz01/10/2010 07:40 AMz2010-01-10 07:40z01/10/2010 09:12:56 AMz%m/%d/%Y %I:%M:%S %pz2010-01-10 09:12:56c                 C   s   t |||d|ksJ d S rH   r   )r2   r&   valuerB   dtr$   r$   r%   test_to_datetime_format_timeC  s   -z6TestTimeConversionFormats.test_to_datetime_format_timec                 C   sF   t g d}t|dd|d}t|jjdddd|d}t|| d S )N)19MAY11foobar19MAY11z19MAY11:00:00:00z19MAY11 00:00:00Zz%d%b%yF)rB   exactr&   z(\d+\w+\d+))expandrA   )r   r   rY   extractr0   rD   rr   r$   r$   r%   test_to_datetime_with_non_exactr  s   z9TestTimeConversionFormats.test_to_datetime_with_non_exact%Y-%m-%dr      %Y-%d-%m%Y-%m-%d %H   z%Y-%d-%m %H%Y-%m-%d %H:%M"   z%Y-%d-%m %H:%M%Y-%m-%d %H:%M:%S8   %Y-%d-%m %H:%M:%S%Y-%m-%d %H:%M:%S.%f@ z%Y-%d-%m %H:%M:%S.%f%Y-%m-%d %H:%M:%S.%f%z	UTC+01:00tzz%Y-%d-%m %H:%M:%S.%f%zc                 C   s   t d|dd}||ksJ d S )Nz 2000-01-03 12:34:56.123456+01:00FrB   r   r   )r2   r&   rB   r5   r4   r$   r$   r%   (test_non_exact_doesnt_parse_whole_string  s   zBTestTimeConversionFormats.test_non_exact_doesnt_parse_whole_stringrJ   )z2012-01-01 09:00:00.000000001z2012-01-01 09:00:00.000001z2012-01-01 09:00:00.001z2012-01-01 09:00:00.001000z2012-01-01 09:00:00.001000000c                 C   s*   t ||d}t |d|d}||ksJ d S )Nr&   r   rA   r   )r2   r&   rJ   r5   r4   r$   r$   r%   #test_parse_nanoseconds_with_formula  s   z=TestTimeConversionFormats.test_parse_nanoseconds_with_formulazvalue,fmt,expected2009324z%Y%W%wz
2009-08-132013020z%Y%U%wz
2013-01-13c                 C   s   t |||d|ksJ d S rH   r   )r2   r   fmtr5   r&   r$   r$   r%   test_to_datetime_format_weeks  s   z7TestTimeConversionFormats.test_to_datetime_format_weekszfmt,dates,expected_datesz%Y-%m-%d %H:%M:%S %Z2010-01-01 12:00:00 UTCr`   2010-01-01 12:00:00UTC)r   z2010-01-01 12:00:00 GMTz2010-01-01 12:00:00 US/PacificGMT
US/Pacific%Y-%m-%d %H:%M:%S%zz2010-01-01 12:00:00+0100<   minutestzinfo%Y-%m-%d %H:%M:%S %z2010-01-01 12:00:00 +01002010-01-01 12:00:00 -01002010-01-01 12:00:00 Zc                 C   s$   t ||d}t|}t|| d S r   )r   r   r0   assert_equal)r2   r   datesexpected_datesr4   r5   r$   r$   r%   )test_to_datetime_parse_tzname_or_tzoffset  s   CzCTestTimeConversionFormats.test_to_datetime_parse_tzname_or_tzoffsetc                 C   s:   g d}g d}d}t ||dd}t|}t|| d S )N)r   r   z2010-01-01 12:00:00 +0300z2010-01-01 12:00:00 +0400)z2010-01-01 11:00:00+00:00z2010-01-01 13:00:00+00:00z2010-01-01 09:00:00+00:00z2010-01-01 08:00:00+00:00r   TrB   utcr   r   r0   r1   )r2   r   r   r   r4   r5   r$   r$   r%   =test_to_datetime_parse_tzname_or_tzoffset_different_tz_to_utc  s   zWTestTimeConversionFormats.test_to_datetime_parse_tzname_or_tzoffset_different_tz_to_utcoffset)z+0z-1fooUTCbarz:10z
+01:000:01 c                 C   sl   d}d| }d dt ddt dg}tjt|d t|g|d W d    d S 1 s/w   Y  d S )	Nr   z2010-01-01 12:00:00 |z;^time data ".*" doesn\'t match format ".*", at position 0. $N^unconverted data remains when parsing with format ".*": ".*", at position 0. rb   r   joinPARSING_ERR_MSGre   rf   rg   r   )r2   r   r   r   msgr$   r$   r%   )test_to_datetime_parse_timezone_malformed  s   "zCTestTimeConversionFormats.test_to_datetime_parse_timezone_malformedc                 C   s>   d}t dgdd}t||d}tdgddd}t|| d S )	Nr   r   foonamer   r   r   )r   r   )r   r   r   r0   r1   )r2   r   rJ   r4   r5   r$   r$   r%   *test_to_datetime_parse_timezone_keeps_name'  s
   zDTestTimeConversionFormats.test_to_datetime_parse_timezone_keeps_name)2__name__
__module____qualname__re   markparametrizer6   r   rG   rK   r\   ri   rm   rs   rw   r}   r,   rd   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   xfaillocale	getlocaler   tdskip_if_not_us_localer   r   r   r   r   r   pytzFixedOffsetr   r   r   r   r$   r$   r$   r%   r'   F   s   
	
	








	


,









A
r'   c                   @   s
  e Zd Zejddd Zdd Zejjdddgd	d
gddd Z	ejjdddgddgdejdej
dddgeddgddddej
dddgeddgd dej
dddgeddgddd!dej
dd"dgeed"ed#d$d%gd&dej
dd"dgeddgddd'dgejd(ed)d* gd+d, Zejd-ej
ddeg d.ddd/dej
ddeed0d1d%ed2d3d%egd4dej
ddeg d5ddd6dej
ddeed0d1d%ed7d3d%egd8dgd9d: Zejjdddgddgdejd;ej
dd<gd=dgejd(ed>d* gd?d@ ZdAdB ZejdCdDdEedFdGdHdIdIgdJdEedKdLdLdIdIgdMdEedKdLdNdIdIggdOdP ZejdQg dRg dSg dTg dUg dVg dWg dXg dYg dZg d[g d\g d]g d^g d_g d`g dag dbg dcg ddgejdeg dfdgdh Zejdidjdkgdldm Zdndo Zdpdq Zdrds Zejdtdu Zejejdidvdwgdxdy Zejdzd{d|gd}d~ Zejdg dejdddgdd Zejde !de !dgdd Z"ejdddgdd Z#ejde !de !dgejdeg ddd Z$dd Z%ejdddgdd Z&dd Z'dd Z(dd Z)dd Z*dd Z+ejdeefe,efe j-efe.e.fgdd Z/ejddeddd%gdeddd%ggdd Z0dd Z1dd Z2ejdddgdd Z3e4ddd Z5ejdzddgdd Z6dd Z7ejdze8e9gdd Z:ejdeg dâddń Z;ejdddgejddjdgdd˄ Z<ejddgejddjdgdd΄ Z=ejddgdgg dТgejddjdgdd҄ Z>ejdddjgejdddjgejd(e,e?e j-ee@gddՄ ZAddׄ ZBejdddjgejdddjgddل ZCddۄ ZDejddje jEfefeF  efeFd  fdjedރfefeF  eedރfefeF  fdefeF  dedރf efeFdL  edރedރf ffdd ZGejdddgejde.egd djgd  dde.egd ddfe.egd djgd  dde.egd ddfe.djgd e.egd ddfe.djgd e.egd ddfe.dgd e.egd ddfe.dgd e.egd ddfe.eHjIgd e.egd ddfe.eHjIgd e.egd ddfe.e jJgd e.egd ddfe.e jJgd e.egd ddff
dd ZKejdg ddd ZLdd ZMejdddgejdeddLdLeNddLdLe !dddgdd ZOejddeeegfded dgfgdd ZPdd ZQdd ZRdd	 ZSd
d ZTdd ZUdd ZVejdededd$d%feddd%edd$d%fgdd ZWejdg ddd ZXdd ZYdd ZZdjS (  TestToDatetimezignore:Could not infer formatc                 C   s   d}d}t jt|d t| W d    n1 sw   Y  t jt|d t|g W d    n1 s6w   Y  t|dd}|tu sGJ t|gdd}t|ttg t|dd}t|t	rf||kshJ t|gdd}t|t|gt
d d S )N08335394550z:Parsing "08335394550" to datetime overflows, at position 0rb   rx   rq   ro   r)   )re   rf   r   r   r   r0   r1   r   rC   rY   r.   )r2   rJ   r   resr$   r$   r%   test_to_datetime_overflow1  s    
z(TestToDatetime.test_to_datetime_overflowc              	   C   st   t ddddttdd d}t ddddttdd d}td|g}t||gttdd	}t|| d S )
N  r      )hoursr      z2020-01-01 17:00 -0100r   r   )r   r   r   r   
tz_convertr0   r1   )r2   d1d2r  r5   r$   r$   r%   *test_to_datetime_mixed_datetime_and_stringH  s
   z9TestToDatetime.test_to_datetime_mixed_datetime_and_stringrB   r   r   ISO8601non-ISO8601idsc                 C   s8   t ddd}td|g|d}tddg}t|| d S )Nr  r   r`   
2020-01-01r   z
2020-01-02)r   r   r   r0   r1   )r2   rB   r
  r  r5   r$   r$   r%   &test_to_datetime_mixed_date_and_stringP  s   z5TestToDatetime.test_to_datetime_mixed_date_and_stringr   %Y-%d-%m %H:%M:%S%zr   znon-ISO8601 formatzISO8601 formatzutc, args, expectedTz2000-01-01 01:00:00-08:00z2000-01-01 02:00:00-08:00z2000-01-01 09:00:00+00:00z2000-01-01 10:00:00+00:00datetime64[ns, UTC]r)   zall tz-aware, with utc)idFz2000-01-01 01:00:00+00:00z2000-01-01 02:00:00+00:00zall tz-aware, without utcz%all tz-aware, mixed offsets, with utcz2000-01-01 01:00:00z2000-01-01 02:00:00+0000r   r   z.tz-aware string, naive pydatetime, without utcz+tz-aware string, naive pydatetime, with utcconstructorc                 C      t |  S Nr   to_pydatetimerS   r$   r$   r%   <lambda>      zTestToDatetime.<lambda>c           	      C   s6   ||d }|d }t ||g||d}t|| d S )Nr   r   r   r   )	r2   r   r   argsr5   r  ts1ts2r4   r$   r$   r%   6test_to_datetime_mixed_datetime_and_string_with_formatZ  s   CzETestToDatetime.test_to_datetime_mixed_datetime_and_string_with_formatzfmt, utc, expected)2000-01-01 08:00:00+00:00z2000-01-02 00:00:00+00:00r   zISO8601, UTCz2000-01-01 09:00:00+0100r   z2000-01-02 02:00:00+0200z	UTC+02:00zISO8601, non-UTC)r"  z2000-02-01 00:00:00+00:00r   znon-ISO8601, UTCz2000-02-01 02:00:00+0200znon-ISO8601, non-UTCc                 C   s"   t g d||d}t|| d S )N)z2000-01-01 09:00:00+01:00z2000-01-02 02:00:00+02:00Nr   r   )r2   r   r   r5   r4   r$   r$   r%   (test_to_datetime_mixed_offsets_with_none  s   1z7TestToDatetime.test_to_datetime_mixed_offsets_with_noner  z2000-01-01 02:00:00-07:00z*all tz-aware, mixed timezones, without utcc                 C   r  r  r  r  r$   r$   r%   r    r  c                 C   s^   ||d }||d }t jtdd t||g|dd W d    d S 1 s(w   Y  d S )Nr   r   z1cannot be converted to datetime64 unless utc=Truerb   Fr   re   rf   rg   r   )r2   r   r  r  r  r   r$   r$   r%   =test_to_datetime_mixed_datetime_and_string_with_format_raises  s   "zLTestToDatetime.test_to_datetime_mixed_datetime_and_string_with_format_raisesc                 C   s   t d}t|g}tddd}t||ksJ t|jd |ks#J t|g}t|g}t|| t|}t|}t	|| d S )Nz2019-02-04 10:18:46.297000+0000z2019-02-04 10:18:46.297000r   r   r   )
r,   str_r   r   r   ilocr   r0   r1   rD   )r2   r   r[   r   r  r5   r$   r$   r%   test_to_datetime_np_str  s   



z&TestToDatetime.test_to_datetime_np_strzs, _format, dtz2015-1-1z%G-%V-%u  r      r   z2015-1-4  r   z2015-1-7r   c                 C   s   t ||d|ks
J d S r   r   )r2   s_formatr   r$   r$   r%   %test_to_datetime_iso_week_year_format  s   
z4TestToDatetime.test_to_datetime_iso_week_year_formatzmsg, s, _format)dISO week directive '%V' is incompatible with the year directive '%Y'. Use the ISO year '%G' instead.1999 50z%Y %V)xISO year directive '%G' must be used with the ISO week directive '%V' and a weekday directive '%A', '%a', '%w', or '%u'.z1999 51z%G %V)r1  z1999 Mondayz%G %A)r1  z1999 Monz%G %a)r1  1999 6z%G %w)r1  r2  z%G %u)r1  2051z%G)`Day of the year directive '%j' is not compatible with ISO year directive '%G'. Use '%Y' instead.z1999 51 6 256z%G %V %u %j)r/  1999 51 Sundayz%Y %V %A)r/  1999 51 Sunz%Y %V %a)r/  	1999 51 1z%Y %V %w)r/  r7  z%Y %V %u)xISO week directive '%V' must be used with the ISO year directive '%G' and a weekday directive '%A', '%a', '%w', or '%u'.20z%V)r8  r5  %V %A)r8  r6  z%V %a)r8  r7  z%V %w)r8  r7  z%V %u)r4  r0  z%G %j)r8  z	20 Mondayr:  rq   raiserx   ro   c                 C   sb   t  dkr-t  dkr/tjt|d t|||d W d    d S 1 s&w   Y  d S d S d S )N)r   UTF-8)r   r=  rb   r   )r   r   re   rf   rg   r   )r2   r   r,  r-  rq   r$   r$   r%   test_error_iso_week_year  s    "z'TestToDatetime.test_error_iso_week_yearr   Nz
US/Centralc                 C   s0   t ddd|d}t|}t|}||u sJ d S )Nz
1965-04-03   2W)periodsfreqr   )r   r   r   )r2   r   dtir3   r4   r$   r$   r%   test_to_datetime_dtarr  s   z%TestToDatetime.test_to_datetime_dtarrc                 C   s(   t tddd}|tdddksJ d S )N  r      r   r   r2   actualr$   r$   r%   test_to_datetime_pydatetime  s   z*TestToDatetime.test_to_datetime_pydatetimec                 C   s    t d}|tdddksJ d S )N20080115rE  r   rF  rG  rH  r$   r$   r%   test_to_datetime_YYYYMMDD  s   z(TestToDatetime.test_to_datetime_YYYYMMDDc                 C   s   d}t |dd|ksJ d S )NzMonth 1, 1999ro   r  r   )r2   r[   r$   r$   r%   "test_to_datetime_unparsable_ignore  s   z1TestToDatetime.test_to_datetime_unparsable_ignorec                 C   s   t d> td}td}tdgd }t|j|j dk s!J t|j|j dk s-J |jd u s4J |jd u s;J W d    d S 1 sFw   Y  d S )N
US/Easternnowr       _B)r0   set_timezoner   r   abs_valuer   )r2   rO  pdnowpdnow2r$   r$   r%   test_to_datetime_now  s   "z#TestToDatetime.test_to_datetime_nowzPacific/AucklandzUS/Samoac                 C   s   t |k tddtj}td}tdgd }td}t 	d}t
| j| dk s5J t
| j| dk sBJ t
|j|j dk sNJ t
|j|j dk sZJ |jd u saJ |jd u shJ W d    d S 1 ssw   Y  d S )Ntodaydatetime64[ns]r   nsrP  )r0   rQ  r,   
datetime64astypeint64r   r   rW  as_unitrR  	normalizerS  r   )r2   r   nptodaypdtodaypdtoday2tstodaytstoday2r$   r$   r%   test_to_datetime_today  s   	"z%TestToDatetime.test_to_datetime_todayrJ   rO  rW  c                 C   s   t |g d S r  r   )r2   rJ   r$   r$   r%   (test_to_datetime_today_now_unicode_bytes  s   z7TestToDatetime.test_to_datetime_today_now_unicode_byteszformat, expected_ds))r   
2020-01-03)r  z
2020-03-01)Nrf  zstring, attribute)rO  utcnow)rW  rW  c                 C   sF   t d|g|dd}t|tt| gdd}||   dk s!J d S )Nz2020-01-03 00:00:00ZTr   r  r)   r   )r   r   getattrr   maxtotal_seconds)r2   rB   expected_dsstring	attributer4   r5   r$   r$   r%    test_to_datetime_now_with_format  s
   z/TestToDatetime.test_to_datetime_now_with_formatr   
2000-01-01
2000-01-02c                 C   s   t ||dt|ksJ d S Nr   rI   )r2   r&   r   r$   r$   r%   test_to_datetime_dt64s  s   z%TestToDatetime.test_to_datetime_dt64sarg, format)
2001-01-01r   )z
01-01-2001z%d-%m-%Yc                 C   s2   t |tdg|d}tddg}t|| d S )Nr  r   rt  )r   r,   rZ  r   r0   r1   )r2   rJ   rB   r4   r5   r$   r$   r%   test_to_datetime_dt64s_and_str  s   	z-TestToDatetime.test_to_datetime_dt64s_and_strz
1000-01-01z
5000-01-02)r<  ro   rx   c                 C   s`   t |||d}t|tsJ |jdksJ |j|ksJ t|}|jdks'J |j|ks.J d S )Nrq   r&   r,  )r   rC   r   unitasm8)r2   r&   r   rq   tsr$   r$   r%   'test_to_datetime_dt64s_out_of_ns_bounds  s   z6TestToDatetime.test_to_datetime_dt64s_out_of_ns_boundsc                 C   s   t t t jjd}d}tjt|d t| W d    n1 s#w   Y  tjt|d t	|d|d W d    n1 sAw   Y  t	|d|dt
u sQJ d S )ND"Out of bounds nanosecond timestamprb   r<  rv  rx   )r,   rZ  iinfor\  ri  re   rf   r   r   r   r   )r2   r&   dt64r   r$   r$   r%   $test_to_datetime_dt64d_out_of_bounds  s   
z3TestToDatetime.test_to_datetime_dt64d_out_of_boundsrw  r,  r{  c                 C   s  t d|t d|gd }t||d}|r"tdd |D dd}ntd	d |D d
d}t|| |t dg }t|dd t|d|d}|s`tt|d jt|d jgd tg }n	tt j	|dd}t|| t|d|d}|s|t
|}t|| d S )Nro  rp  r   r   c                 S      g | ]}t |jqS r$   r   rx  rQ   r$   r$   r%   rT   7      zBTestToDatetime.test_to_datetime_array_of_dt64s.<locals>.<listcomp>zM8[s]r)   c                 S   r  r$   r  rQ   r$   r$   r%   rT   9  r  r{   
9999-01-01r<  r  rx   rv  r   r   ro   )r,   rZ  r   r   r0   r1   r   rx  r   r-   r   )r2   r&   rw  dtsr4   r5   dts_with_oobr$   r$   r%   test_to_datetime_array_of_dt64s*  s2   

z.TestToDatetime.test_to_datetime_array_of_dt64sc                 C   s,   t tddd}td}||ksJ d S )Nr  ro   r  )r   r,   rZ  r   r$   r$   r%    test_out_of_bounds_errors_ignoreW  s   
z/TestToDatetime.test_out_of_bounds_errors_ignorec                 C   sD   t dddt dddg}t||d}tddgdd}t|| d S )Nz2013-01-01 13:00:00-0800r   r   z2013-01-02 14:00:00-0800r   2013-01-01 13:00:002013-01-02 14:00:00)r   r   r   r0   r1   )r2   r&   r3   r4   r5   r$   r$   r%   test_to_datetime_tz]  s   

z"TestToDatetime.test_to_datetime_tzc                 C   s   t dddt dddg}d}tjt|d t||d W d    n1 s&w   Y  t||d	d
}tt dt dgdd}t|| t||dd
}tddgdd}t|| d S )Nr  r   r   r  rN  zLTz-aware datetime.datetime cannot be converted to datetime64 unless utc=Truerb   r   ro   )r&   rq   z2013-01-01 13:00:00-08:00z2013-01-02 14:00:00-05:00r.   r)   rx   r   zdatetime64[ns, US/Pacific])	r   re   rf   rg   r   r   r0   r1   r   )r2   r&   r3   r   r4   r5   r$   r$   r%   test_to_datetime_tz_mixedj  s*   

z(TestToDatetime.test_to_datetime_tz_mixedc                 C   sJ   d}d}|gd |gd  }t dd |D }t||d}t|| d S )NMarch 1, 2018 12:00:00+0400March 1, 2018 12:00:00+0500rN   c                 S   rO   r$   r   rQ   r$   r$   r%   rT     rU   zETestToDatetime.test_to_datetime_different_offsets.<locals>.<listcomp>r   r   r   r0   r1   )r2   r&   ts_string_1ts_string_2r3   r5   r4   r$   r$   r%   "test_to_datetime_different_offsets  s   z1TestToDatetime.test_to_datetime_different_offsetsc                 C   st   t d}tj|tdddddd|tddddddgtd}t|d	|d
}tddgdd d}t	
|| d S )NrN  r   r   r   r   )yearmonthdayhourminute   r)   Tr   r&   r"  2000-06-01 07:00:00+00:00r  r*   rB  )r   r   r,   r-   localizer   r.   r   r   r0   r1   )r2   r&   
us_easternr3   r4   r5   r$   r$   r%   test_to_datetime_tz_pytz  s$   
z'TestToDatetime.test_to_datetime_tz_pytzz!init_constructor, end_constructorc                 C   sL   ddg}t dddt dddg}t||dd|d	}||}t|| d S )
N20100102 12131420100102 1213152010-01-02 12:13:14r   r   2010-01-02 12:13:15%Y%m%d %H%M%STrB   r   r&   )r   r   r0   r   )r2   r&   init_constructorend_constructorr   expected_datar4   r5   r$   r$   r%   test_to_datetime_utc_true  s   

z(TestToDatetime.test_to_datetime_utc_truezscalar, expectedr  r  r   r  r  c                 C   s    t |dd|d}||ksJ d S )Nr  Tr  r   )r2   r&   scalarr5   r4   r$   r$   r%    test_to_datetime_utc_true_scalar  s   	z/TestToDatetime.test_to_datetime_utc_true_scalarc                 C   s:   d}t t|gd|d}tt|ddg}t|| d S )Ng {ѴCTr  r   r   )r   r   r   r0   rD   )r2   r&   ry  r4   r5   r$   r$   r%   2test_to_datetime_utc_true_with_series_single_value  s   zATestToDatetime.test_to_datetime_utc_true_with_series_single_valuec                 C   sJ   d}d}t |gd }t|d|d}t t|ddgd }t|| d S )Nz2013-01-01 00:00:00-01:002013-01-01 01:00:00r   Tr  r   r   r   r   r   r0   rD   )r2   r&   ry  expected_tsr   r4   r5   r$   r$   r%   4test_to_datetime_utc_true_with_series_tzaware_string  s   zCTestToDatetime.test_to_datetime_utc_true_with_series_tzaware_stringzdate, dtype)r  rX  )r  r  c                 C   s:   t tdddg}tt |g|dd|d}t|| d S )Nr  r   r   r)   Tr  )r   r   r   r0   rD   )r2   r&   r   r*   r5   r4   r$   r$   r%   1test_to_datetime_utc_true_with_series_datetime_ns  s   z@TestToDatetime.test_to_datetime_utc_true_with_series_datetime_nspsycopg2c           
   
   C   s&  dd l }|jtjjt|j d tdkt	dd |j
jdd d}|j
jdd d}tjtdd	d	d
d|dtddd	d
d|dgtd}t|dd|d}tddgdd d}t|| tdg|j
jdd dd}	t|	soJ t|	d|d}t||	 t|	dd|d}tdgdd}t|| d S )Nr   z2.8.7z6psycopg2.tz is deprecated (and appears dropped) in 2.9)rf   r   i)r   r   ir   r   r   r   r  r)   rx   T)rq   r   r&   r"  r  r  r  z2000-01-01 08:00:00r   rv  z2000-01-01 13:00:00)r  node
add_markerre   r   r   r   __version__splitAttributeErrorr   FixedOffsetTimezoner,   r-   r   r.   r   r   r0   r1   r   )
r2   r#   r&   r  tz1tz2r3   r4   r5   ir$   r$   r%   test_to_datetime_tz_psycopg2  sB   	z+TestToDatetime.test_to_datetime_tz_psycopg2c                 C   sj   d}t jt|d t| W d    n1 sw   Y  t|d|dtu s(J t|d|d|u s3J d S )Nz2dtype bool cannot be converted to datetime64\[ns\]rb   rx   rv  ro   )re   rf   	TypeErrorr   r   )r2   r&   rJ   r   r$   r$   r%   test_datetime_bool  s   
z!TestToDatetime.test_datetime_boolc                 C   s   t | d}tjt|d tdt g|d W d    n1 s#w   Y  tjtdt dd tddg|d W d    n1 sFw   Y  t	
td	dtd
gd|dttd	|dtttd	|dg d S )Nz is not convertible to datetimerb   Fr   zA^time data "True" doesn\'t match format "%Y%m%d", at position 1. r   20130101Tr   g        rx   rv  )typere   rf   r  r   r   rW  rg   r   r0   r1   r   r   r2   r&   r   r$   r$   r%   test_datetime_bool_arrays_mixed  s$   z.TestToDatetime.test_datetime_bool_arrays_mixedc                 C   s@   d}t jt|d t| W d    d S 1 sw   Y  d S )Nzis not convertible to datetimerb   )re   rf   r  r   )r2   rJ   r   r$   r$   r%   test_datetime_invalid_datatype1  s   
"z-TestToDatetime.test_datetime_invalid_datatype)rx   r<  ro   c                 C   sD   t jtdd tdgd|d W d    d S 1 sw   Y  d S )Nz*':' is a bad directive in format 'H%:M%:S%rb   z00:00:00zH%:M%:S%r   r$  )r2   rq   r$   r$   r%   test_invalid_format_raises8  s
   "z)TestToDatetime.test_invalid_format_raisesr   az00:01:99z%H:%M:%Sc                 C   s   t |d|d}||ksJ t |d|d}|tu sJ ddt dddt dd	g}tjt|d
 t |d|d W d    d S 1 sEw   Y  d S )Nro   rq   rB   rx   r   @^time data "a" doesn\'t match format "%H:%M:%S", at position 0. r   <^Given date string "a" not likely a datetime, at position 0$S^unconverted data remains when parsing with format "%H:%M:%S": "9", at position 0. 2^second must be in 0..59: 00:01:99, at position 0$rb   r<  )r   r   r   r   re   rf   rg   r2   r   rB   r  r   r$   r$   r%   test_datetime_invalid_scalar@  s$   
"z+TestToDatetime.test_datetime_invalid_scalarz3000/12/11 00:00:00c                 C   s   t |d|d}||ksJ t |d|d}|tu sJ |d urAd}tjt|d t |d|d W d    d S 1 s:w   Y  d S d}tjt|d t |d|d W d    d S 1 s]w   Y  d S )Nro   r  rx   z:^time data ".*" doesn\'t match format ".*", at position 0.rb   r<  z!^Out of bounds .*, at position 0$)r   r   re   rf   rg   r   r  r$   r$   r%    test_datetime_outofbounds_scalarW  s   ""z/TestToDatetime.test_datetime_outofbounds_scalarrF   )r  bz99:00:00c              	   C   sb  |d u rt |dkrt}nd }tj|dd t|d|d}W d    n1 s(w   Y  t|t| tj|dd t|d|d}W d    n1 sNw   Y  t|ttgt |  d	dd	t
 d
dt
 d
dg}tjt|d/ tj|dd t|d|d W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   Could not infer formatrb   ro   r  rx   r   r  r  r   r  r  r<  )lenUserWarningr0   assert_produces_warningr   r1   r   r   r   r   r   re   rf   rg   )r2   rF   rB   warnr  r   r$   r$   r%   test_datetime_invalid_indexj  s:   
"z*TestToDatetime.test_datetime_invalid_indexz%Y%m%d %H:%M:%Sc           	      C   sF   d}|gd }||}t |||dd}t |||dd}t|| d S N20130101 00:00:00順 T)r   rB   r&   Fr   )	r2   r   rB   r  r   
test_datesr   r4   r5   r$   r$   r%   test_to_datetime_cache  s   
z%TestToDatetime.test_to_datetime_cachec                 C   s8   t ttdgd }t tdgd }t|| d S )N2010-06-02 09:30:003   )r   r   r   r0   r1   r   r$   r$   r%   test_to_datetime_from_deque  s   z*TestToDatetime.test_to_datetime_from_dequec                 C   sF   d}|gd }t |}t|||dd}t|||dd}t|| d S r  r|   )r2   r   rB   r   r  r   r4   r5   r$   r$   r%   test_to_datetime_cache_series  s   
z,TestToDatetime.test_to_datetime_cache_seriesc                 C   s(   d}t |dd}td}||ksJ d S )Nr  Tr   rI   )r2   r   r4   r5   r$   r$   r%   test_to_datetime_cache_scalar  s   z,TestToDatetime.test_to_datetime_cache_scalarzdatetimelikes,expected_valuesr`   z
2012-07-26r  z2012 July 26c                 C   s4   t |dd}t|dd}t |dd}t|| d S )Nr.   r)   rx   r  rX  r|   )r2   datetimelikesexpected_valuesr[   result_seriesexpected_seriesr$   r$   r%   *test_convert_object_to_datetime_with_cache  s   z9TestToDatetime.test_convert_object_to_datetime_with_cacher&   )inputr5      r.   (   rX  r   x   r   c                 C   s   t ||d}t|| d S rq  r   )r2   r&   r  r5   r4   r$   r$   r%   *test_to_datetime_converts_null_like_to_nat  s   z9TestToDatetime.test_to_datetime_converts_null_like_to_natzdate, format))z2017-20z%Y-%W)	20 Sundayz%W %A)20 Sunz%W %a)z2017-21z%Y-%U)r  z%U %A)r  z%U %ac                 C   sD   d}t jt|d t||d W d    d S 1 sw   Y  d S )Nz,Cannot use '%W' or '%U' without day and yearrb   r   r$  )r2   r   rB   r   r$   r$   r%   'test_week_without_day_and_calendar_year  s   "z6TestToDatetime.test_week_without_day_and_calendar_yearc                 C   s^   g d}t |dd}ttdddddtd d	d
tdddddtd dd
tg}t|| d S )N)r  r  20100240rx   r    r   r   r   r   i@8  r   iPF  )r   r   r   r
   r   r0   r1   r2   
ts_stringsr4   r5   r$   r$   r%   test_to_datetime_coerce  s   z&TestToDatetime.test_to_datetime_coercezstring_arg, format)zMarch 1, 2018z	%B %d, %Y)z
2018-03-01r   outofboundsi'  r  zJanuary 1, 9999c                 C   s:   ||g}t |d|d}ttdddtg}t|| d S )Nrx   r  r  r   r   )r   r   r   r   r0   r1   )r2   
string_argrB   r  r  r4   r5   r$   r$   r%   test_to_datetime_coerce_oob  s   z*TestToDatetime.test_to_datetime_coerce_oobzerrors, expectedrx   ro   200622-12-31111111-24-11c                 C   sR   ddg}t jtdd t||d}W d    n1 sw   Y  t || d S )Nr  r  r  rb   r  )r0   r  r  r   r1   )r2   rq   r5   r  r4   r$   r$   r%   #test_to_datetime_malformed_no_raise%  s
   
z2TestToDatetime.test_to_datetime_malformed_no_raisec              	   C   s   ddg}d}t jt|d. tjtdd t|dd W d    n1 s&w   Y  W d    d S W d    d S 1 s>w   Y  d S )Nr  r  zParsed string "200622-12-31" gives an invalid tzoffset, which must be between -timedelta\(hours=24\) and timedelta\(hours=24\), at position 0rb   r  r<  r  re   rf   rg   r0   r  r  r   )r2   r  r   r$   r$   r%    test_to_datetime_malformed_raise4  s$   "z/TestToDatetime.test_to_datetime_malformed_raisec                 C   sj   d}t |}t|}||ksJ tt|gd }t |gd }t|| t|gd }t|| d S )N2015-11-18 15:30:00+05:30r`   )r   r   r   r0   r1   )r2   ts_strr4   r5   r$   r$   r%   &test_iso_8601_strings_with_same_offsetH  s   z5TestToDatetime.test_iso_8601_strings_with_same_offsetc                 C   sj   ddt g}t|}tjtdddddtd dd	tdddd
dtd dd	t gtd}t|}t	|| d S )Nr  2015-11-18 16:30:00+06:30r+     r  rF  r   iXM  r      ih[  r)   )
r   r   r,   r-   r   r
   r.   r   r0   r1   r  r$   r$   r%   ,test_iso_8601_strings_with_different_offsetsV  s   
	z;TestToDatetime.test_iso_8601_strings_with_different_offsetsc                 C   sL   ddt g}t|dd}ttddddtddddt gd	d
}t|| d S )Nr  r  Tr   r+  r  r  r   r   r   )r   r   r   r   r0   r1   r  r$   r$   r%   0test_iso_8601_strings_with_different_offsets_utcf  s   
z?TestToDatetime.test_iso_8601_strings_with_different_offsets_utcc                    s  dt dddd ddgt t fddttD s!J t d}t d}t }td	t dt d t d d gtd
}t	|d d | ||j
d   dksYJ ||j
d   dksfJ tjtdd t| W d    d S 1 s}w   Y  d S )Nrd   z
1990-01-01z2015-03-14T16:15:14.123-08:00z2019-03-04T21:56:32.620-07:00rW  rO  c                 3   s     | ]} | | u V  qd S r  r$   )rR   r  r[   valsr$   r%   	<genexpr>{  s    zPTestToDatetime.test_mixed_offsets_with_native_datetime_raises.<locals>.<genexpr>r   r)   g?zTz-aware datetime.datetimerb   )r   r   allranger  r   r  r.   r0   rD   r'  rj  re   rf   rg   )r2   rO  rW  mixedr5   r$   r   r%   .test_mixed_offsets_with_native_datetime_raisesn  s8   	$



"z=TestToDatetime.test_mixed_offsets_with_native_datetime_raisesc              
   C   sD   t dgd }ttddddttddd	gd }t|| d S )
Nr  r`   r  r   r   r      r   r   )r   r   r   r   r   r0   r1   r   r$   r$   r%   #test_non_iso_strings_with_tz_offset  s
    z2TestToDatetime.test_non_iso_strings_with_tz_offsetzts, expectedz
2018-01-01r   z2018-01-01 08:00c                 C   s   t |dd}||ksJ d S )NTr  r   )r2   ry  r5   r4   r$   r$   r%   test_timestamp_utc_true  s   z&TestToDatetime.test_timestamp_utc_truedt_str)00010101130001013000010199990101c                 C   sD   d}t jt|d t|dd W d    d S 1 sw   Y  d S )Nr|  rb   rV   r   re   rf   r   r   )r2   r  r   r$   r$   r%   *test_to_datetime_with_format_out_of_bounds  s   "z9TestToDatetime.test_to_datetime_with_format_out_of_boundsc                 C   s4   t jtdgtd}t|dd}|jtju sJ d S )Nz2012-06-13T01:39:00Zr)   Tr  )r,   r-   r	   r.   r   r   r   r   )r2   r3   r4   r$   r$   r%   test_to_datetime_utc  s   z#TestToDatetime.test_to_datetime_utcc                 C   sT   ddl m} tddd|dtddd|dtddd|dg}t|}|j|ks(J d S )Nr   )	fixed_offr   r   r   r`   r   )-pandas.tests.indexes.datetimes.test_timezonesr  r   r   r   )r2   r  r   r4   r$   r$   r%   test_to_datetime_fixed_offset  s   z,TestToDatetime.test_to_datetime_fixed_offset)[r   r   r   re   r   filterwarningsr  r  r   r  r!   r   r   r   r!  r   r#  r%  r(  r   r.  r>  rD  rJ  rL  rM  r   skip_if_windowsrV  rd  re  rn  r,   rZ  rr  ru  rz  r  r  r  r  r  r  r  listr-   r   r  r  r  r  r  
skip_if_nor  r  r  boolr   r  r  r  r  r  tupler   r  r  r  r  rd   r   r  r   r   NaNr  r  r  r   r  r  r  r  r  r  r  r
  r  r  r  r  r$   r$   r$   r%   r   0  s   


		
3
	

	


/		

w





,

	


/





    



%
r   c                   @   s  e Zd Zejdddgejddedgdd Zejdddgdd	 Zd
d Z	dd Z
dd Zdd Zejdg ddd Zejdg dejdddgdd Zejdg dg degg d g d!d"ggd#d$ Zejd%ed&d'd(gd'd(ed&ggd)d* Zd+d, Zd-d. Zd/d0 Zejdeegd1d2 Zejd3eejgd4d5 Zd6d7 Zd8d9 Zejd:d;d<gd=d> Zejd:d;d<gd?d@ ZdAdB Z d"S )CTestToDatetimeUnitrw  YMitem   c                 C   s\   t ||d}t|g}t|g||d}t|| ttj|gtd||d}t|| d S )Nrw  rw  r&   r)   )r   r   r   r0   r1   r,   r-   r.   )r2   r&   rw  r!  ry  r5   r4   r$   r$   r%   'test_to_datetime_month_or_year_unit_int  s   
z:TestToDatetimeUnit.test_to_datetime_month_or_year_unit_intc              	   C   s  d}d| d}t jt|d tdg|dd W d    n1 s"w   Y  t jt|d' tjt|d tdg|dd W d    n1 sIw   Y  W d    n1 sXw   Y  t jt|d tdg|d	d W d    n1 sww   Y  tdg|d
d}ttgdd}t	|| tjt|d tdg|d
d}W d    n1 sw   Y  t	|| tdg|d}tdg|d}t	|| d S )Nz*strings will be parsed as datetime stringsz(Conversion of non-round float with unit=z is ambiguousrb         ?r<  rw  rq   z1.5ro   rx   r{   r)         ?r#  r   )
re   rf   rg   r   r0   r  FutureWarningr   r   r1   )r2   r&   rw  warn_msgr   r  r5   r$   r$   r%   3test_to_datetime_month_or_year_unit_non_round_float  s0   zFTestToDatetimeUnit.test_to_datetime_month_or_year_unit_non_round_floatc                 C   sJ   d}t jt|d tdgdd|d W d    d S 1 sw   Y  d S )Nz#cannot specify both format and unitrb   r   r{  rV   )rw  rB   r&   r$  r  r$   r$   r%   	test_unit  s   "zTestToDatetimeUnit.test_unitc              	   C   s   dddt ttjddg}t|dd|d}tdtd	td	tttttgtd
}t	|| t|dd|d}t
g d}t	|| d}tjt|d t|dd|d W d    d S 1 s\w   Y  d S )Nl   qMe;r   r(  r   r   r{  ro   rw  rq   r&   
1970-01-02r)   rx   )r   r.  r.  r   r   r   r   r   z8cannot convert input 11111111111111111 with the unit 'D'rb   r<  )r   r   r,   rd   r   r   r   r.   r0   r1   r   re   rf   r   r2   r&   rF   r4   r5   r   r$   r$   r%   test_unit_array_mixed_nans  s0   
"z-TestToDatetimeUnit.test_unit_array_mixed_nansc                 C   s   dt ttjdg}t|dd|d}tdttttgtd}t|| t|dd|d}t	g d}t|| d	}t
jt|d
 t|dd|d W d    d S 1 sRw   Y  d S )Nl     #0U.KK% r   ro   r,  rq   rw  r&   r)   rx   )r   r   r   r   r   z@cannot convert input 1420043460000000000000000 with the unit 's'rb   r<  )r   r   r,   rd   r   r   r.   r0   r1   r   re   rf   r   r/  r$   r$   r%   $test_unit_array_mixed_nans_large_int  s   "z7TestToDatetimeUnit.test_unit_array_mixed_nans_large_intc                 C   sH   d}t jt|d tddd|d W d    d S 1 sw   Y  d S )Nz+non convertible value foo with the unit 's'rb   r   r<  r,  r1  r$  r  r$   r$   r%   8test_to_datetime_invalid_str_not_out_of_bounds_valuerror)     "zKTestToDatetimeUnit.test_to_datetime_invalid_str_not_out_of_bounds_valuerrorerrorr;  c                 C   s6   t d}tdd||d}||ksJ t|t sJ d S )Nz1970-05-09 14:25:11iǊ r,  r-  )r   r   rC   )r2   r&   r5  r5   r4   r$   r$   r%   test_unit_consistency0  s   z(TestToDatetimeUnit.test_unit_consistencyrq   )ro   r<  rx   r*   float64r\  c                 C   s>   t ddg}tddg|}t|||d}t|| d S )N2015-06-19 05:33:202015-05-27 22:33:20@CA5Crv  )r   r,   r-   r[  r   r0   r1   )r2   r&   rq   r*   r5   r3   r4   r$   r$   r%   test_unit_with_numeric8  s   z)TestToDatetimeUnit.test_unit_with_numericzexp, arr, warning)r   r8  r9  )r   r:  r;  )r8  r9  r   r   )r:  r;  r   r   Nc                 C   sT   t |}tj|dd t|d|d}W d    n1 sw   Y  t|| d S )Nr  rb   rx   rv  )r   r0   r  r   r1   )r2   r&   r   r3   warningr5   r4   r$   r$   r%   test_unit_with_numeric_coerceB  s
   z0TestToDatetimeUnit.test_unit_with_numeric_coercer3   r  r:  r;  c                 C   sb   t dd |D dd}t|d|d}t|| t|d|d}t|| t|}t|| d S )Nc                 S   rO   r$   rP   rQ   r$   r$   r%   rT   e  rU   z6TestToDatetimeUnit.test_unit_mixed.<locals>.<listcomp>r{   r)   rx   rv  r<  )r   r   r0   r1   r   )r2   r&   r3   r5   r4   r$   r$   r%   test_unit_mixedY  s   z"TestToDatetimeUnit.test_unit_mixedc                 C   s&   t dd|d}td}||ksJ d S )Ng aAr,  r$  z2015-06-19 19:55:31.877000192rI   rv   r$   r$   r%   test_unit_roundingq  s   z%TestToDatetimeUnit.test_unit_roundingc                 C   s2   t dgd dd}t|dd|d}t|| d S )Ng   Br`   r   r   ro   r,  r1  r  r2   r&   r5   r4   r$   r$   r%   test_unit_ignore_keeps_namex  s   z.TestToDatetimeUnit.test_unit_ignore_keeps_namec                 C   s0   t dgdddd}tdgdd}t|| d S )	Nr   r,  Tro   )rw  r   rq   1970-01-01 00:00:01r   r   r   r   r$   r$   r%   'test_to_datetime_errors_ignore_utc_true~  s   z:TestToDatetimeUnit.test_to_datetime_errors_ignore_utc_truec                    sV   d t  fddtdD |}t|dd}t dd tdD }t|| d S )NQc                       g | ]} | qS r$   r$   rR   tepochr$   r%   rT     rU   z<TestToDatetimeUnit.test_to_datetime_unit.<locals>.<listcomp>r  r,  r#  c                 S      g | ]}t d t|d qS z2013-06-09 02:42:28)secondsr   r   rG  r$   r$   r%   rT         )r   r  r[  r   r0   rD   )r2   r*   r[   r4   r5   r$   rI  r%   test_to_datetime_unit  s    z(TestToDatetimeUnit.test_to_datetime_unitnullc                    s\   d t  fddtdD |g }t|dd}t dd tdD tg }t|| d S )NrE  c                    rF  r$   r$   rG  rI  r$   r%   rT     rU   zGTestToDatetimeUnit.test_to_datetime_unit_with_nulls.<locals>.<listcomp>r  r,  r#  c                 S   rK  rL  rN  rG  r$   r$   r%   rT     rO  )r   r  r   r   r0   rD   )r2   rQ  r[   r4   r5   r$   rI  r%    test_to_datetime_unit_with_nulls  s    z3TestToDatetimeUnit.test_to_datetime_unit_with_nullsc                    sx   d t  fddtdddD tg t}t|dd}t d	d tdddD tg }|d
}t	
|| d S )NrE  c                    rF  r$   r$   rG  rI  r$   r%   rT     rU   zOTestToDatetimeUnit.test_to_datetime_unit_fractional_seconds.<locals>.<listcomp>r   r`   g      ?r,  r#  c                 S   rK  rL  rN  rG  r$   r$   r%   rT     s    ms)r   r,   aranger   r[  r]   r   r   roundr0   rD   )r2   r[   r4   r5   r$   rI  r%   (test_to_datetime_unit_fractional_seconds  s   ,
z;TestToDatetimeUnit.test_to_datetime_unit_fractional_secondsc                 C   sF   t dddttjgdd}ttdtdgdgd  }t|| d S )	Nr   r`   r   r{  r#  r.  
1970-01-03r   )r   r   r,   rd   r   r   r0   r1   r   r$   r$   r%   test_to_datetime_unit_na_values  s
   z2TestToDatetimeUnit.test_to_datetime_unit_na_valuesbad_valr   ikc                 C   sP   | d}t jt|d tdd|gdd W d    d S 1 s!w   Y  d S )Nz with the unit 'D'rb   r   r`   r{  r#  r$  )r2   rY  r   r$   r$   r%   test_to_datetime_unit_invalid  s   
"z0TestToDatetimeUnit.test_to_datetime_unit_invalidc                 C   sB   t tdtdgdgd  }tdd|gddd}t|| d S )	Nr.  rW  r   r   r`   r{  rx   r'  )r   r   r   r0   r1   )r2   rY  r5   r4   r$   r$   r%   test_to_timestamp_unit_coerce  s
   z0TestToDatetimeUnit.test_to_timestamp_unit_coercec           
      C   s  d}d}d| }t d|d | d gtd}|| tj}dD ]}t|d|d	}tj|tj|d
d q t d|d gtd}t d| d gtd}	tj	t
|d t|ddd	 W d    n1 sdw   Y  tj	t
|d t|	ddd	 W d    d S 1 sw   Y  d S )Nz"cannot convert input with unit 'D'g  S$Bl            r   g{Gzt?r)   r;  r{  r'  g|=)rtolrb   r<  )r   r]   r[  r,   r\  r   r0   assert_almost_equalre   rf   r   )
r2   r   oneday_in_nstsmax_in_daysshould_succeedr5   
error_moderesult1should_fail1should_fail2r$   r$   r%   (test_float_to_datetime_raise_near_bounds  s$   "z;TestToDatetimeUnit.test_float_to_datetime_raise_near_bounds)!r   r   r   re   r   r   r]   r%  r+  r,  r0  r2  r3  r6  r<  r  r>  r   r?  r@  rB  rD  intrP  r   r,   rd   rR  rV  rX  rZ  r[  re  r$   r$   r$   r%   r    sb    
"



	



r  c                   @   s   e Zd Zejdd Zdd Zdd Zej	ddd	d
dddddddddddgdd Z
dd Zdd Zdd Zdd Zej	ddgddgg d ddgg d!gd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.S )/TestToDatetimeDataFramec                 C   s@   t ddgddgddgddgd	d
gddgddgddgddgd	S )Nr+    r`   r   r   rN   r     :   ;   r   r  r   	r  r  r  r  r  secondrS  usrY  )r   r2   r$   r$   r%   df  s   zTestToDatetimeDataFrame.dfc                 C   sh   t |d |d |d d|d}ttdtdg}t|| t |g d  |d}t|| d S )Nr  r  r  r  r  r  r   20150204 00:00:00z20160305 00:0:00)r   r   r   r0   rD   to_dictr2   rp  r&   r4   r5   r$   r$   r%   test_dataframe  s   z&TestToDatetimeDataFrame.test_dataframec                 C   sH   |g d   }d|d< t||d}ttdtdg}t|| d S )Nrq  r`   r  r   rr  z20160205 00:0:00)rs  r   r   r   r0   rD   )r2   rp  r&   df2r4   	expected2r$   r$   r%   &test_dataframe_dict_with_constructable  s   z>TestToDatetimeDataFrame.test_dataframe_dict_with_constructablerw  yearsmonthsdaysr  r   rM  )r  r  r  r  r  rm  r  r  r  r  r  rm  c                 C   sD   t |t|  j|d|d}ttdtdg}t|| d S )Ncolumnsr   z20150204 06:58:10z20160305 07:59:11)r   r  keysrenamer   r   r0   rD   )r2   rp  r&   rw  r4   r5   r$   r$   r%   *test_dataframe_field_aliases_column_subset  s
    zBTestToDatetimeDataFrame.test_dataframe_field_aliases_column_subsetc              
   C   sP   ddddddddd	d
	}t |j|d|d}ttdtdg}t|| d S )Nr  r  r  r  r  rm  rS  rn  rY  rl  r|  r   20150204 06:58:10.00100200320160305 07:59:11.001002003)r   r  r   r   r0   rD   )r2   rp  r&   dr4   r5   r$   r$   r%   test_dataframe_field_aliases  s"   z4TestToDatetimeDataFrame.test_dataframe_field_aliasesc                 C   s6   t |t|d}ttdtdg}t|| d S )Nr   r  r  )r   r[  rY   r   r   r0   rD   rt  r$   r$   r%   test_dataframe_str_dtype1  s   z0TestToDatetimeDataFrame.test_dataframe_str_dtypec                 C   s   t ddgddgddgd}d}tjt|d	 t||d
 W d    n1 s(w   Y  t|d|d}ttdtg}t	|| d S )Nr+  rh  r`   r  r   rN   rq  z^^cannot assemble the datetimes: time data ".+" doesn\'t match format "%Y%m%d", at position 1\.rb   r   rx   rv  rr  )
r   re   rf   rg   r   r   r   r   r0   rD   )r2   r&   rv  r   r4   r5   r$   r$   r%   test_dataframe_coerce<  s   z-TestToDatetimeDataFrame.test_dataframe_coercec                 C   sT   d}t jt|d | }d|d< t||d W d    d S 1 s#w   Y  d S )Nz?extra keys have been passed to the datetime assemblage: \[foo\]rb   r   r   r   )re   rf   rg   copyr   )r2   rp  r&   r   rv  r$   r$   r%   !test_dataframe_extra_keys_raisesmK  s   "z9TestToDatetimeDataFrame.test_dataframe_extra_keys_raisesmcols)r  r  rm  )r  r  rm  c                 C   sH   d}t jt|d t|| |d W d    d S 1 sw   Y  d S )Nz`to assemble mappings requires at least that \[year, month, day\] be specified: \[.+\] is missingrb   r   r$  )r2   rp  r&   r  r   r$   r$   r%   "test_dataframe_missing_keys_raisesS  s
   "z:TestToDatetimeDataFrame.test_dataframe_missing_keys_raisesc                 C   s   d}t ddgddgddgd}g d	|_tjt|d
 t||d W d    n1 s-w   Y  t ddgddgddgddgd}g d|_tjt|d
 t||d W d    d S 1 saw   Y  d S )Nz#cannot assemble with duplicate keysr+  rh  r`   r  r   rN   rq  )r  r  r  rb   r   )r  r  r  r  )r  r  r  r  )r   r}  re   rf   rg   r   )r2   r&   r   rv  r$   r$   r%   'test_dataframe_duplicate_columns_raisesf  s   

"z?TestToDatetimeDataFrame.test_dataframe_duplicate_columns_raisesc                 C   sR   t ddgddgddgd}t|d|d	}ttd
tdg}t|| d S )Nr+  rh  r`   r   r   rN   rq  int16r   rr  20160305 00:00:00)r   r   r[  r   r   r0   rD   r2   r&   rp  r4   r5   r$   r$   r%   test_dataframe_int16u  s   z,TestToDatetimeDataFrame.test_dataframe_int16c                 C   sp   t ddgddgddgd}|d d	|d< |d
 d	|d
< t||d}ttdtdg}t|| d S )Nr+  rh  r`   r   r   rN   rq  r  int8r  r   rr  r  )r   r[  r   r   r   r0   rD   r  r$   r$   r%   test_dataframe_mixed  s   z,TestToDatetimeDataFrame.test_dataframe_mixedc                 C   s`   t ddgddgddgd}d}tjt|d t||d W d    d S 1 s)w   Y  d S )	Nr   r   r&  r   rq  zk^cannot assemble the datetimes: unconverted data remains when parsing with format ".*": "1", at position 0.rb   r   )r   re   rf   rg   r   )r2   r&   rp  r   r$   r$   r%   test_dataframe_float  s   "z,TestToDatetimeDataFrame.test_dataframe_floatc                 C   sV   t ddgddgddgd}t|dd	}ttjd
dgddjd}t|| d S )Nr+  rh  r`   r   r   rN   rq  Tr  z
2015-02-04z
2016-03-05rX  r)   r   )	r   r   r   r,   r-   r   tz_localizer0   rD   )r2   rp  r4   r5   r$   r$   r%   test_dataframe_utc_true  s   z/TestToDatetimeDataFrame.test_dataframe_utc_trueN)r   r   r   re   fixturerp  ru  rx  r   r   r  r  r  r  r  r  r  r  r  r  r  r$   r$   r$   r%   rg    sV    

	


	
rg  c                   @   s@  e Zd Zdd Zejdddgddggdd Zejd	g d
ejdddgdd Zejd	g ddd Z	ejd	g ddd Z
ejd	g ddd Zejd	g ddd Zejd	g ddd Zejd	g dd d! Zd"d# Zejjd$d%d&d' Zd(d) Zd*d+ Zejd,d- Zd.d/ Zejejd0g d1d2d3 Zd4d5 Zd6d7 Zd8d9 Zd:d; Zd<d= Zejd>ed?ed?gd@dA Z dBdC Z!dDdE Z"dFdG Z#dHdI Z$dJdK Z%dLdM Z&dNdO Z'dPdQ Z(dRdS Z)ejdTg dUdVdW Z*dXdY Z+dZd[ Z,d\d] Z-ejd^e.e/gd_d` Z0daS )bTestToDatetimeMiscc                 C   sP   t jdgtd}d}tjt|d t| W d    d S 1 s!w   Y  d S )Nz2262-04-11 23:47:16.854775808r)   z6^Out of bounds nanosecond timestamp: .*, at position 0rb   )r,   r-   r.   re   rf   r   r   )r2   r3   r   r$   r$   r%   %test_to_datetime_barely_out_of_bounds  s
   
"z8TestToDatetimeMisc.test_to_datetime_barely_out_of_boundszarg, exp_str2012-01-01 00:00:0020121001z
2012-10-01c                 C   s*   t |g|d}t|}|d |ksJ d S )Nr   r   rI   )r2   r&   rJ   exp_strr4   r   r$   r$   r%   test_to_datetime_iso8601  s   z+TestToDatetimeMisc.test_to_datetime_iso8601zinput, format))2012%Y-%m)z2012-01r   )
2012-01-01r   )2012-01-01 10r   )2012-01-01 10:00r   )2012-01-01 10:00:00r   )z2012-01-01 10:00:00.123r   r   r   r   TFc                 C   sP   t jtd| d| dd t|||d W d    d S 1 s!w   Y  d S )Ntime data \"z\" doesn't match format \"\", at position 0rb   r   r$  )r2   r  rB   r   r$   r$   r%   test_to_datetime_iso8601_fails  s   "z1TestToDatetimeMisc.test_to_datetime_iso8601_fails)r  r  )r  r   )r  r   )r  r   r  c                 C   s^   d dt ddt dg}tjt|d t||d W d    d S 1 s(w   Y  d S )Nr   r   r   z:^time data ".*" doesn't match format ".*", at position 0. rb   r   r   )r2   r  rB   r   r$   r$   r%   $test_to_datetime_iso8601_exact_fails  s   "z7TestToDatetimeMisc.test_to_datetime_iso8601_exact_fails)r  )z2012-01-01 00r   )z2012-01-01 00:00r   )r  r   c                 C   s*   t ddd}t||dd}||ksJ d S )Nr   r   Fr   r   r   r2   r  rB   r5   r4   r$   r$   r%   "test_to_datetime_iso8601_non_exact  s   z5TestToDatetimeMisc.test_to_datetime_iso8601_non_exact))2020-01z%Y/%m)r  z%Y/%m/%d)2020-01-01 00z%Y/%m/%dT%H)2020-01-01T00z%Y/%m/%d %H)2020-01-01 00:00z%Y/%m/%dT%H:%M)2020-01-01T00:00z%Y/%m/%d %H:%M)2020-01-01 00:00:00z%Y/%m/%dT%H:%M:%S)2020-01-01T00:00:00z%Y/%m/%d %H:%M:%Sc                 C   sN   t jtd| d| dd t||d W d    d S 1 s w   Y  d S )Nr  z\" doesn\'t match format \"r  rb   r   r$  )r2   r  rB   r$   r$   r%   "test_to_datetime_iso8601_separator  s   "z5TestToDatetimeMisc.test_to_datetime_iso8601_separator))r  r  )r  r   )r  r   )r  %Y-%m-%dT%H)r  r   )r  %Y-%m-%dT%H:%M)r  r   )r  %Y-%m-%dT%H:%M:%S)z2020-01-01T00:00:00.000%Y-%m-%dT%H:%M:%S.%f)z2020-01-01T00:00:00.000000r  )z2020-01-01T00:00:00.000000000r  c                 C   (   t ddd}t||d}||ksJ d S Nr  r   r   r  r  r$   r$   r%   test_to_datetime_iso8601_valid	     z1TestToDatetimeMisc.test_to_datetime_iso8601_valid))z2020-1r  )z2020-1-1r   )z
2020-1-1 0r   )z
2020-1-1T0r  )z2020-1-1 0:0r   )z2020-1-1T0:0r  )z2020-1-1 0:0:0r   )z2020-1-1T0:0:0r  )z2020-1-1T0:0:0.000r  )z2020-1-1T0:0:0.000000r  )z2020-1-1T0:0:0.000000000r  c                 C   r  r  r  r  r$   r$   r%   #test_to_datetime_iso8601_non_padded(	  r  z6TestToDatetimeMisc.test_to_datetime_iso8601_non_padded))z#2020-01-01T00:00:00.000000000+00:00z%Y-%m-%dT%H:%M:%S.%f%z)z2020-01-01T00:00:00+00:00%Y-%m-%dT%H:%M:%S%z)z2020-01-01T00:00:00Zr  c                 C   s.   t dddtjd}t||d}||ksJ d S )Nr  r   r   r   )r   r   r   r   r  r$   r$   r%   ,test_to_datetime_iso8601_with_timezone_valid>	  s   
z?TestToDatetimeMisc.test_to_datetime_iso8601_with_timezone_validc                 C   s(   t d|d}tddd}||ksJ d S )N2001r   r   r   rG  )r2   r&   rsxpr$   r$   r%   test_to_datetime_defaultL	  s   z+TestToDatetimeMisc.test_to_datetime_defaultz1fails to enforce dayfirst=True, which would raise)r   c              	   C   s   d}t jt|d/ tjtdd tdd|d W d    n1 s#w   Y  W d    d S W d    d S 1 s;w   Y  d S )NzInvalid date specifiedrb   zProvide formatz
01-13-2012Tdayfirstr&   r  r  r$   r$   r%   "test_to_datetime_respects_dayfirstQ	  s   "z5TestToDatetimeMisc.test_to_datetime_respects_dayfirstc                 C   s4   t tddd}t||d}|d |d ksJ d S )Nr>   r   rA  r   r   )r   r   r   )r2   r&   r[   r4   r$   r$   r%   %test_to_datetime_on_datetime64_series]	  s   z8TestToDatetimeMisc.test_to_datetime_on_datetime64_seriesc                 C   s   t g d}dt d}tjt|d t|d|d W d    n1 s%w   Y  t|d|d}t tdd	d
tdd	d
tg}t	|| t|d|d}t	|| d S )N)z
10/18/2006z
10/18/2008 z@^time data " " doesn\'t match format "%m/%d/%Y", at position 2. r   rb   r<  rv  rx   i  r   r  rE  ro   )
r   r   re   rf   rg   r   r   r   r0   rD   )r2   r&   r[   r   result_coerceexpected_coerceresult_ignorer$   r$   r%   %test_to_datetime_with_space_in_seriesd	  s   z8TestToDatetimeMisc.test_to_datetime_with_space_in_seriesc                 C   sB   t g dg dd}t|d|d}|jtd|d}t|| d S )N)May 04Jun 02zDec 11r   r`   r   index%b %yrA   r   r   rX   r0   rD   )r2   r&   r   r5   r4   r$   r$   r%   test_to_datetime_with_applys	  s   z.TestToDatetimeMisc.test_to_datetime_with_applyc                 C   s.   t ddd}tdddd}||ksJ d S )Nz2020-01-01 00:00:00UTCz%Y-%m-%d %H:%M:%S%Zr   r  r   r   )r   r   r  r   r$   r$   r%   test_to_datetime_timezone_name}	  s   z1TestToDatetimeMisc.test_to_datetime_timezone_namerq   r;  c                    sF   t g dg dd}t|d| d}| fdd}t|| d S )N)r  r  r   r  r  r  rp   c                    s   t | dd dS )Nr  rx   rp   r   r  r   r$   r%   r  	  s    zOTestToDatetimeMisc.test_to_datetime_with_apply_with_empty_str.<locals>.<lambda>r  )r2   r&   rq   r   r5   r4   r$   r   r%   *test_to_datetime_with_apply_with_empty_str	  s   
z=TestToDatetimeMisc.test_to_datetime_with_apply_with_empty_strc                 C   s   t d|d}|tu sJ d S Nr   r   )r   r   r2   r&   r4   r$   r$   r%   test_to_datetime_empty_stt	     z-TestToDatetimeMisc.test_to_datetime_empty_sttc                 C   s$   t ddg|d}t| sJ d S r  )r   r   r  r  r$   r$   r%   test_to_datetime_empty_str_list	  s   z2TestToDatetimeMisc.test_to_datetime_empty_str_listc                 C   s$   t d}td|d}||ksJ d S )Nr   r   r  rv   r$   r$   r%   test_to_datetime_zero	  s   z(TestToDatetimeMisc.test_to_datetime_zeroc                 C   s.   t dg|dd }t d|d}||ksJ d S )Nr  r   r   r   rA  r$   r$   r%   test_to_datetime_strings	  s   z+TestToDatetimeMisc.test_to_datetime_stringsc                    s8   g d} fdd|D }dd |D }t || d S )N)r  20120101z20120101 12:01:01c                    s   g | ]}t | d qS )r   r   )rR   r  r   r$   r%   rT   	  s    zITestToDatetimeMisc.test_to_datetime_strings_variation.<locals>.<listcomp>c                 S   rO   r$   rP   )rR   date_strr$   r$   r%   rT   	  rU   )r0   r]  )r2   r&   r-   r5   r4   r$   r   r%   "test_to_datetime_strings_variation	  s   z5TestToDatetimeMisc.test_to_datetime_strings_variationr4   r  c                 C   s   t ddd}||ksJ d S )Nr   r   rP   r   r$   r$   r%   'test_to_datetime_strings_vs_constructor	  r  z:TestToDatetimeMisc.test_to_datetime_strings_vs_constructorc                 C   s~   t ddgd|d}ttjddgdd}t|| d}tjt|d t ddgd	|d W d    d S 1 s8w   Y  d S )
Nr   1ro   rv  Or)   z<^Given date string "1" not likely a datetime, at position 1$rb   r<  )	r   r   r,   r-   r0   r   re   rf   rg   )r2   r&   r4   r5   r   r$   r$   r%   $test_to_datetime_unprocessable_input	  s   "z7TestToDatetimeMisc.test_to_datetime_unprocessable_inputc                 C   s.   t dggd }t|d|d}t|| d S )Nr  d   ro   rv  r|   )r2   r&   seriesr4   r$   r$   r%   !test_to_datetime_unhashable_input	  s   z4TestToDatetimeMisc.test_to_datetime_unhashable_inputc                 C   sR   t dd}|d}t|g}|d |dksJ t|}||ks'J d S )Nl    `SD& zM8[us]r  r   )r,   r\  viewr[  r   r   )r2   r  as_objr  r   r$   r$   r%   'test_to_datetime_other_datetime64_units	  s   

z:TestToDatetimeMisc.test_to_datetime_other_datetime64_unitsc                 C   s8   t ddd}t|j}t|j}t|}t|| d S )Nr>   r  r  )r   r   rF   r  asi8r0   r1   )r2   rngintsr4   r$   r$   r%   !test_to_datetime_list_of_integers	  s
   

z4TestToDatetimeMisc.test_to_datetime_list_of_integersc                 C   sF   d}t jt|d tdddd W d    d S 1 sw   Y  d S )Nz>Cannot cast 139999 days 00:00:00 to unit='ns' without overflowrb   z1/1/1700Br  )startrB  rA  )re   rf   r   r   r2   r   r$   r$   r%   r  	     "z,TestToDatetimeMisc.test_to_datetime_overflowc                 C   sR   t jdgtd}tjtdd t|d|d W d    d S 1 s"w   Y  d S )N87156549591102612381000001219H5r)   Unknown datetime string formatrb   r<  rv  )r,   r-   r.   re   rf   rg   r   )r2   r&   invalidr$   r$   r%   test_string_invalid_operation	  s   "z0TestToDatetimeMisc.test_string_invalid_operationc                 C   s   t jddt jdgtd}t jddd}t|D ]\}}t|r$t||< qt|||< qt	
|d }t|| t||d}t|tsEJ t||j d S )	Nr>   r?   z1/4/2000r)   r   r{   r   r   )r,   r-   rd   r.   empty	enumerater   r   r	   r   array_to_datetimer0   r]  r   rC   r   assert_numpy_array_equalrF   )r2   r&   stringsr5   r  r   r4   result2r$   r$   r%   test_string_na_nat_conversion	  s   
z0TestToDatetimeMisc.test_string_na_nat_conversionc                 C   s   t jdt jgtd}d}tjt|d t|d|d W d    n1 s%w   Y  t|d|d}t|}t	
|| tjt|d t|d|d W d    d S 1 sUw   Y  d S )Nz
1/100/2000r)   r  rb   r<  rv  ro   )r,   r-   rd   r.   re   rf   rg   r   r   r0   r1   )r2   r&   	malformedr   r4   r5   r$   r$   r%   'test_string_na_nat_conversion_malformed	  s   "z:TestToDatetimeMisc.test_string_na_nat_conversion_malformedc           
   	   C   s   g d}t dtjdtjdg|dd}t td|dtjtd|dtjtd|dg|dd}t||d}t||d}t tjdd	d
|d}tdD ]}|| }	t|	rVt||< qGt|	|d||< qGtj	||dd |j
dksnJ tj	||dd |j
dks}J d S )N)r  r  cr  er>   r@   z1/5/2000r   r  r   r   rN   r{   r)   r  F)check_names)r   r,   rd   r   r  r  r   r   r0   rD   r   )
r2   r&   idxr  dseriesr4   dresultr5   r  rS   r$   r$   r%   'test_string_na_nat_conversion_with_name
  s4   



z:TestToDatetimeMisc.test_string_na_nat_conversion_with_namerw  )hmr,  rS  rn  rY  c                 C   s   t d| d}tg d|d}|j|}|dv rd}t d| d}t||}|j|ks4J tt|| tt||d| d S )NzM8[])z2000-01-01T00:00z2000-01-02T00:00r   r   )r  r  r,  )r,   r*   r   rF   r[  r   r0   r1   )r2   r&   rw  r*   baserF   	exp_dtyper5   r$   r$   r%   $test_dti_constructor_numpy_timeunits)
  s   z7TestToDatetimeMisc.test_dti_constructor_numpy_timeunitsc           
      C   s   g d}t tdddtdddtdddg}t |dd}t t|dd}t|d|d	}tt|d|d	}t t|dd}t t|dd}	t|| t|| t|| t|| t|| t||	 d S )
N)z
10/02/2014z
11/02/2014z
12/02/2014r)  r`   r   r  r   Tr  r  )	r   r   r,   r-   r   r   r   r0   r1   )
r2   r&   r3   r5   idx1idx2idx3idx4idx5idx6r$   r$   r%   test_dayfirst>
  s     z TestToDatetimeMisc.test_dayfirstc                 C   s   d}ddg}t ddgdd d}t|dd	}t|| tjt|d
 t|dd	}W d    n1 s3w   Y  t|| d S )NzzParsing dates in .* format when dayfirst=.* was specified. Pass `dayfirst=.*` or specify a format to silence this warning.
31/12/2014z
10/03/2011z
2014-12-31z
2011-03-10rX  r  Tr  rb   F)r   r   r0   r1   r  r  )r2   warning_msgr3   r5   res1res2r$   r$   r%   "test_dayfirst_warnings_valid_inputQ
  s   
z5TestToDatetimeMisc.test_dayfirst_warnings_valid_inputc                 C   sP   ddg}t jtdt dd t|dd W d    d S 1 s!w   Y  d S )Nr  z
03/30/2011zI^time data "03/30/2011" doesn\'t match format "%d/%m/%Y", at position 1. r   rb   Tr  )re   rf   rg   r   r   )r2   r3   r$   r$   r%   $test_dayfirst_warnings_invalid_inputg
  s   "z7TestToDatetimeMisc.test_dayfirst_warnings_invalid_inputklassc                 C   sH   t dddd}|d}||}||}t|dd}t|| d S )Nz
2015-04-05r   r  r   r   Tr  )r   r  r  r   r0   r   )r2   r  rC  r5   objr4   r$   r$   r%   test_to_datetime_dta_tzx
  s   
z*TestToDatetimeMisc.test_to_datetime_dta_tzN)1r   r   r   r  re   r   r   r  r  r  r  r  r  r  r  r  r   r  r  r  r   r   r  r  r  r  r  r  r  r  r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  r$   r$   r$   r%   r    s    




	





	

"
r  c                   @   s`   e Zd Zejdg dejejdgddgddgddgddgddggd	d
 Ze	j
dd ZdS )TestGuessDatetimeFormat	test_list)2011-12-30 00:00:00.000000r   r   r   r   r   random_stringrO  rW  c                 C   s(   d}t j|td}t||ksJ d S )Nr   r)   )r,   r-   r.   tools _guess_datetime_format_for_array)r2   r  expected_format
test_arrayr$   r$   r%   $test_guess_datetime_format_for_array
  s   z<TestGuessDatetimeFormat.test_guess_datetime_format_for_arrayc                 C   s0   t tjtjtjtjgdd}|d u sJ d S )Nr  r)   )r"  r#  r,   r-   rd   )r2   format_for_string_of_nansr$   r$   r%   -test_guess_datetime_format_for_array_all_nans
  s   zETestGuessDatetimeFormat.test_guess_datetime_format_for_array_all_nansN)r   r   r   re   r   r   r,   rd   r&  r   r   r(  r$   r$   r$   r%   r  
  s    
r  c                   @   s   e Zd Zejdg ddd Zdd Zdd Zd	d
 Z	dd Z
ejdg ddd Zejdg ddd Zejdddgdd Zdd ZdS )TestToDatetimeInferFormattest_format)z%m-%d-%Yz%m/%d/%Y %H:%M:%S.%fr  c                    sN   t tdddd}| fdd}t| |d}t||d}t|| d S )	Nr8   2   HrA  rB  c                    s
   |   S r  )strftimer  r*  r$   r%   r  
  s   
 zdTestToDatetimeInferFormat.test_to_datetime_infer_datetime_format_consistent_format.<locals>.<lambda>rA   r   )r   r   rX   r   r0   rD   )r2   r&   r*  r[   s_as_dt_stringswith_formatwithout_formatr$   r/  r%   8test_to_datetime_infer_datetime_format_consistent_format
  s
   zRTestToDatetimeInferFormat.test_to_datetime_infer_datetime_format_consistent_formatc                 C   sb   g d}t t|}dt d}tjt|d t||d W d    d S 1 s*w   Y  d S )N)01/01/2011 00:00:00z01-02-2011 00:00:00z2011-01-03T00:00:00z[^time data "01-02-2011 00:00:00" doesn\'t match format "%m/%d/%Y %H:%M:%S", at position 1. r   rb   r   )r   r,   r-   r   re   rf   rg   r   )r2   r&   r   r[   r   r$   r$   r%   $test_to_datetime_inconsistent_format
  s   "z>TestToDatetimeInferFormat.test_to_datetime_inconsistent_formatc                 C   sB   g d}t t|}t||d}t g ddd}t|| d S )N)zJan/01/2011zFeb/01/2011zMar/01/2011r   )
2011-01-01z
2011-02-01z
2011-03-01rX  r)   )r   r,   r-   r   r0   rD   )r2   r&   r   r[   r4   r5   r$   r$   r%   "test_to_datetime_consistent_format
  s   z<TestToDatetimeInferFormat.test_to_datetime_consistent_formatc                 C   sN   t tjdtjdtjgtd}t||d}t dtdtgdd}t|| d S )Nr4  01/03/2011 00:00:00r)   r   r6  
2011-01-03rX  	r   r,   r-   rd   r.   r   r   r0   rD   rr   r$   r$   r%   !test_to_datetime_series_with_nans
  s   z;TestToDatetimeInferFormat.test_to_datetime_series_with_nansc                 C   sR   t tjtjtjdddgtd}t||d}t ttdddgd	d}t|| d S )
Nr4  z01/02/2011 00:00:00r8  r)   r   r6  z
2011-01-02r9  rX  r:  rr   r$   r$   r%   'test_to_datetime_series_start_with_nans
  s    zATestToDatetimeInferFormat.test_to_datetime_series_start_with_nansztz_name, offset))r   r   )zUTC-3   )zUTC+3iLc                 C   sJ   t d| g}t|}tt|d}t td|g}t|| d S )Nz2019-02-02 08:07:13 r   2019-02-02 08:07:13)r   r   r   r   r   r  r0   rD   )r2   tz_namer   r[   r4   r   r5   r$   r$   r%   "test_infer_datetime_format_tz_name
  s
   z<TestToDatetimeInferFormat.test_infer_datetime_format_tz_namez
ts,zero_tz))r>  Z)r>  r   )2019-02-02 08:07:13.012345rA  )rB  r   c                 C   sJ   t || g}t|}|dkrtjnd }t t||dg}t|| d S )NrA  r   )r   r   r   r   r   r0   rD   )r2   ry  zero_tzr[   r4   r   r5   r$   r$   r%   "test_infer_datetime_format_zero_tz
  s
   z<TestToDatetimeInferFormat.test_infer_datetime_format_zero_tzrB   Nr   c                 C   s@   t g d}t tdtdtdg}tt|||d| d S )N)2014-1-1z2014-2-2z2015-3-3z
2014-01-01z
2014-02-02z
2015-03-03rA   )r   r   r0   rD   r   )r2   r&   rB   r[   r5   r$   r$   r%   %test_to_datetime_iso8601_noleading_0s  s   z?TestToDatetimeInferFormat.test_to_datetime_iso8601_noleading_0sc                 C   sB   t jtdd tdgdd W d    d S 1 sw   Y  d S )Nz2The argument 'infer_datetime_format' is deprecatedrb   z
10-10-2000T)infer_datetime_format)r0   r  r  r   ro  r$   r$   r%   .test_parse_dates_infer_datetime_format_warning  s   "zHTestToDatetimeInferFormat.test_parse_dates_infer_datetime_format_warning)r   r   r   re   r   r   r3  r5  r7  r;  r<  r@  rD  rF  rH  r$   r$   r$   r%   r)  
  s,    

	

	
r)  c                   @   s   e Zd Zejdddgddgddgddggdd Zd	d
 Zejdddde dfddde dfddde dfddde dfddde dfddde dfgdd Z	ejdddgddgddgddggdd Z
dS )TestDaysInMonthrs  
2015-02-29Nr   z
2015-02-32z
2015-04-31c                 C   s   t t|d||dsJ d S )Nrx   rq   rB   r&   )r   r   )r2   r&   rJ   rB   r$   r$   r%   test_day_not_in_month_coerce  s   
z,TestDaysInMonth.test_day_not_in_month_coercec                 C   F   d}t jt|d tdd|d W d    d S 1 sw   Y  d S )Nz8day is out of range for month: 2015-02-29, at position 0rb   rJ  r<  rv  r$  r  r$   r$   r%   test_day_not_in_month_raise+  s   "z+TestDaysInMonth.test_day_not_in_month_raisezarg, format, msgz/^day is out of range for month, at position 0. r   z
2015-29-02r   zS^unconverted data remains when parsing with format "%Y-%m-%d": "2", at position 0. z
2015-32-02zH^time data "2015-32-02" doesn't match format "%Y-%d-%m", at position 0. z
2015-31-04c                 C   sD   t jt|d t|d||d W d    d S 1 sw   Y  d S )Nrb   r<  rK  r$  )r2   r&   rJ   rB   r   r$   r$   r%   !test_day_not_in_month_raise_value0  s   '"z1TestDaysInMonth.test_day_not_in_month_raise_valuezexpected, formatc                 C   s    t |d||d}||ksJ d S )Nro   rK  r   )r2   r&   r5   rB   r4   r$   r$   r%   test_day_not_in_month_ignoreZ  s   
z,TestDaysInMonth.test_day_not_in_month_ignore)r   r   r   re   r   r   rL  rN  r   rO  rP  r$   r$   r$   r%   rI    sj    
	




%	rI  c                   @   sh  e Zd Zejdg dedddfdedddfdedddfd	edddfd
edddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfdedddfd edddfd!edddfd"ed#d$dfd%eddd&fd'eddd&dd(fd)eddd&d*d+fd,eddd&dd(fd-eddd&d*d+fd.eddd&dd(fd/eddd&dd(d0fd1eddd&dd(d0fd2eddd&d3d(d0fd4eddd&d*d+fd5ed6d&d7dd8d9fd:ed6d&d7fd;ed6d&d7fd<ed=ddfd>ed=d?dfd@ed=d?dfdAed=d?dfdBed=d?dfdCedDdddEfdFedDdddEdGfdHedDdddEdGdIfdJdK ZdLdM ZdNdO Z	ejdPdQdRdRedSddfdQdTdRedSddfdQdRdTedUddEfdQdTdTedUdEdfdVdRdRedWdEdXfdVdTdRedWdEdXfdVdRdTed#dEdYfdVdTdTed#dEdYfgdZd[ Z
ejd\d]eddddd(gd^edddd&d$ggd_d` Zejdadbeedcdddefdfeedgdddhfgdidj ZdkS )lTestDatetimeParsingWrapperszdate_str, expectedr6  i  r   2Q2005i  r   2Q052005Q105Q12011Q3ri  11Q33Q20113Q112000Q4r   r   00Q44Q20004Q002000q4z2000-Q4z00-Q4z4Q-2000z4Q-0000q42005z2005-11r  z2005 11z11-2005z11 2005200511r  rN   20051109	   z20051109 10:15rF  z20051109 08H   r   z2005-11-09 10:15z2005-11-09 08Hz2005/11/09 10:15z2005/11/09 10:15:32    z2005/11/09 10:15:32 AMz2005/11/09 10:15:32 PM   z2005/11/09 08HzThu Sep 25 10:36:28 2003i     $      zThu Sep 25 2003zSep 25 2003zJanuary 1 2014r)  z2014-06r  z06-2014z2014-6z6-2014z20010101 12r   r   z20010101 1234r   z20010101 123456r   c                 C   s   d}t j||d\}}t||d}t|g|d}ttj|gtd||d}	t|g|d}
tt|g|d}tt|g|d}||fD ]}||ksJJ qB||	|
||fD ]}tt	|g}t
|| qR|s|t	|}||ksnJ t|dd|d}||ks~J d S d S )NT)	yearfirstr)   )rj  r&   Sr   )rB  rA  rj  )r   parse_datetime_string_with_resor   r,   r-   r.   r   r   r   r   r0   r1   r   )r2   r  r5   r&   rj  rb  _r  result3result4result6result8result9r  r   result5result7r$   r$   r%   test_parsersi  s0   8
z(TestDatetimeParsingWrappers.test_parsersc                 C   s0   t ttgdd}t||g|d}t|| d S )NrX  r)   r   )r   r   r   r0   r1   )r2   r&   unique_nulls_fixtureunique_nulls_fixture2r5   r4   r$   r$   r%   test_na_values_with_cache  s   z5TestDatetimeParsingWrappers.test_na_values_with_cachec                 C   s`   t d\}}td}td}tdgd }|tu sJ |tu s"J |tu s(J |tu s.J d S )Nr   r   )r   rl  r   r   r   r   )r2   rb  rm  r  rn  ro  r$   r$   r%   test_parsers_nat  s   z,TestDatetimeParsingWrappers.test_parsers_natz'date_str, dayfirst, yearfirst, expectedz10-11-12Fr   Ti  z20/12/21i  r     c                 C   s   t |||d}||ksJ tj|||d\}}|s%|s%t|}	|	|ks%J t||||d}
t|g||dd }||ks=J |
|ksCJ ||ksIJ d S )N)r  rj  )r  rj  r&   r   )r	   r   rl  r   r   r   )r2   r&   r  r  rj  r5   dateutil_resultrb  rm  r  rn  ro  r$   r$   r%   test_parsers_dayfirst_yearfirst  s   ;
z;TestDatetimeParsingWrappers.test_parsers_dayfirst_yearfirstzdate_str, exp_defz10:15z9:05c           
      C   s~   t |}t|\}}t|}t|g}t|}t|gd }	||ks%J ||ks+J ||ks1J ||ks7J |	|ks=J d S )Nr   )r	   r   rl  r   r   r   )
r2   r  exp_defexp_nowrb  rm  r  rn  ro  rs  r$   r$   r%   test_parsers_timestring"  s   
z3TestDatetimeParsingWrappers.test_parsers_timestringzdt_string, tz, dt_string_reprz2013-01-01 05:45+0545iY  r   z5Timestamp('2013-01-01 05:45:00+0545', tz='UTC+05:45')z2013-01-01 05:30+0530iJ  z5Timestamp('2013-01-01 05:30:00+0530', tz='UTC+05:30')c                 C   sH   t d|d}|d|}t ||d}||ksJ |t|ks"J d S )Nz2013-01-01 00:00:00r   r   )r   r  r	  repr)r2   r&   	dt_stringr   dt_string_reprr
  dt_timer$   r$   r%   .test_parsers_timezone_minute_offsets_roundtrip8  s
   zJTestDatetimeParsingWrappers.test_parsers_timezone_minute_offsets_roundtripN)r   r   r   re   r   r   r   ru  rx  ry  r|  r  r   r   r  r$   r$   r$   r%   rQ  h  s   	 !"#$%&'(*+,-./0
5 
D&
rQ  )r{  r,  rS  rn  rY  c                 C   r   )zIDay and some time units.

    * D
    * s
    * ms
    * us
    * ns
    r    r"   r$   r$   r%   unitsR  s   
r  c                   C   s   t dS )zTimestamp at 1960-01-01.
1960-01-01rP   r$   r$   r$   r%   
epoch_1960_  s   r  c                   C   s   t tdS )NrN   )r  r  r$   r$   r$   r%   units_from_epochse  s   r  )	timestamp
pydatetimerZ  str_1960c                 C   sH   |j dv sJ |j dkr| S |j dkr|  S |j dkr |  S t| S )zxTimestamp at 1960-01-01 in various forms.

    * Timestamp
    * datetime.datetime
    * numpy.datetime64
    * str
    >   r  r  rZ  r  r  r  rZ  )r!   r  to_datetime64rY   )r  r#   r$   r$   r%   epochsj  s   	


r  c                   C   s   t ddd jS )NrE  r   r  )r   to_julian_daterF   r$   r$   r$   r%   julian_dates~  s   r  c                
   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	
dddgdd Zdd Zej	
ddefdefdefedddefgdd Zdd Zdd Zej	
ddefdd gd!d" Zej	
d#g d$g d%g d&gd'd( Zej	
d)g d*g d+g d,g d-gd.d/ ZdS )0
TestOriginc                 C   sH   t dddd}td}||ksJ t dddd}td}||ks"J d S )Nr   r,  rw  originz1970-01-01 00:00:02i ʚ;z2001-09-09 01:46:41rI   )r2   ry  r5   r$   r$   r%   test_origin_and_unit  s   zTestOrigin.test_origin_and_unitc                 C   s>   t t|ddd}t t|td  dd}t|| d S )Nr{  julianr  r   r#  )r   r   r   r  r0   rD   )r2   r  r4   r5   r$   r$   r%   test_julian  s
   zTestOrigin.test_julianc                 C   s@   t tg dddd}t tdtdtdg}t|| d S )N)r   r   r`   r{  unixr  z
1970-01-01r.  rW  r  r   r$   r$   r%   	test_unix  s
   zTestOrigin.test_unixc                 C   sd   t dddd}| dksJ d}tjt|d t dddd W d    d S 1 s+w   Y  d S )NiR|% r  r{  r  rw  z&1 is Out of Bounds for origin='julian'rb   r   )r   r  re   rf   rg   )r2   r4   r   r$   r$   r%   test_julian_round_trip  s   "z!TestOrigin.test_julian_round_tripc                 C   sR   |dkr'd}t jt|d t||dd W d    d S 1 s w   Y  d S d S )Nr{  z$unit must be 'D' for origin='julian'rb   r  r  r$  )r2   r  r  r   r$   r$   r%   test_invalid_unit  s   "zTestOrigin.test_invalid_unitrw  rY  r{  c                 C   rM  )Nz(it must be numeric with a unit specifiedrb   z
2005-01-01r  r  r$  )r2   rw  r   r$   r$   r%   test_invalid_origin  r  zTestOrigin.test_invalid_originc                    s:   t  fdd|D }t t||d}t|| d S )Nc                    s   g | ]}t j|d   qS )r#  )r   	TimedeltarQ   r  r  r$   r%   rT     rO  z)TestOrigin.test_epoch.<locals>.<listcomp>r  r|   )r2   r  r  r  r  r5   r4   r$   r  r%   
test_epoch  s
   zTestOrigin.test_epochzorigin, excr!  rJ  z
13-24-1990r   c                 C   sb   d d| dd| ddg}tj||d t|||d W d    d S 1 s*w   Y  d S )Nr   zorigin z is Out of Boundsz# cannot be converted to a Timestampz,Cannot cast .* to unit='ns' without overflowrb   r  )r   re   rf   r   )r2   r  excr  r  r   r$   r$   r%   test_invalid_origins  s   


"zTestOrigin.test_invalid_originsc              
   C   sP   t jtdd tddtdddtjdd W d    d S 1 s!w   Y  d S )Nzmust be tz-naiverb   r   r{  r   r   r  )re   rf   rg   r   r   r   r   ro  r$   r$   r%   test_invalid_origins_tzinfo  s   "z&TestOrigin.test_invalid_origins_tzinfoc                 C   sD   d}t jt|d tddg W d    d S 1 sw   Y  d S )NzIUnknown datetime string format, unable to parse: yesterday, at position 1rb   rW  	yesterdayr$  r  r$   r$   r%   test_incorrect_value_exception  s
   "z)TestOrigin.test_incorrect_value_exceptionzformat, warningN)r   N)r   Nc                 C   sD   d}t jt|d td|d W d    d S 1 sw   Y  d S )NzG^Out of bounds nanosecond timestamp: 2417-10-10 00:00:00, at position 0rb   z2417-10-10 00:00:00r   r  )r2   rB   r=  r   r$   r$   r%   .test_to_datetime_out_of_bounds_with_format_arg  s   
"z9TestOrigin.test_to_datetime_out_of_bounds_with_format_argzarg, origin, expected_str)( r  z2169-11-13 00:00:00)r  
1870-01-012069-11-13 00:00:00)鼫 r  2169-10-20 00:00:00c                 C   sj   t |d|d}t|}||ksJ t dddd}td}||ks"J t dddd}td}||ks3J d S )Nr{  r  r  r  r  r  r  rI   )r2   rJ   r  expected_strr4   r5   r$   r$   r%   test_processing_order  s   z TestOrigin.test_processing_orderzoffset,utc,exp)rA  T2019-01-01T00:00:00.000Z)rA  Nr  )-01:00Tz2019-01-01T01:00:00.000Z)r  Nz2019-01-01T00:00:00.000-01:00c                 C   s2   d| }t |gd|d}t |g}t|| d S )Nz2019-01-01T00:00:00.000rY  )rw  r   r   )r2   r   r   r   rJ   r4   r5   r$   r$   r%   test_arg_tz_ns_unit  s   
zTestOrigin.test_arg_tz_ns_unit)r   r   r   r  r  r  r  r  re   r   r   r  r  rg   r   r   r  r  r  r  r  r  r  r$   r$   r$   r%   r    sZ    

	

	

	r  c                   @   s   e Zd Zejdg ddfg ddfgdd Zejdd	d
gdd Zejdee	dgd e	dgd e
e	dgd gdd ZdS )TestShouldCachezlistlike,do_caching)
r   r`   r   r   rN   r  ri  rd  rc  r   F)
r   r   r   r   r   rN   r  ri  rd  rc  Tc                 C   s    t j|t|dd|ksJ d S )Ngffffff?)check_countunique_share)r"  should_cacher  )r2   listlike
do_cachingr$   r$   r%   test_should_cache  s   	
z!TestShouldCache.test_should_cachez%unique_share,check_count, err_message)g      ?r  z5check_count must be in next bounds: \[0; len\(arg\)\])r   r`   z-unique_share must be in next bounds: \(0; 1\)c                 C   sL   dgd }t jt|d t||| W d    d S 1 sw   Y  d S )NrN   r   rb   )re   rf   AssertionErrorr"  r  )r2   r  r  err_messagerJ   r$   r$   r%   test_should_cache_errors$  s   
"z(TestShouldCache.test_should_cache_errorsr  r  r  c                 C   s   t |du s	J d S )NT)r"  r  )r2   r  r$   r$   r%   &test_no_slicing_errors_in_should_cache1  s   
z6TestShouldCache.test_no_slicing_errors_in_should_cacheN)r   r   r   re   r   r   r  r  r   r   r  r  r$   r$   r$   r%   r    s.    



r  c                  C   sv   t g d} | d} |  }t| dd}t tdtdtdtdtdg}t|| t| | d S )	N)r   r`   Nl            NInt64rY  r#  1970-01-01 00:00:00.0000000011970-01-01 00:00:00.000000002r   z2043-01-25 23:56:49.213693952)r   r[  r  r   r,   rZ  r0   rD   )r[   ser_copyr  r5   r$   r$   r%   !test_nullable_integer_to_datetime>  s   
	r  r  c                 C   sn   t | tr&tjtdd t|| g W d    d S 1 sw   Y  d S t|| g}|d tu s5J d S )Nznot convertible to datetimerb   r   )rC   r   re   rf   r  r   r   )nulls_fixturer  r4   r$   r$   r%   test_na_to_datetimeT  s   
"r  rq   r;  zargs, format)z
03/24/2016z
03/25/2016r   r;   )
2016-03-24
2016-03-25r   r   r  r  r  c                 C   s8   t |}t||| d}t ddtgdd}t|| d S )Nr   r  r  rX  r)   )r   r   r   r0   rD   )rq   r  rB   r   r4   r5   r$   r$   r%   test_empty_string_datetime`  s   r  c                  C   sP   t ddgddd} tddgdd	}t||  t ddgdd
d} t||  d S )Nr   r   r,  rx   r'  rC  r   rX  r)   r<  r   r4   r5   r$   r$   r%   'test_empty_string_datetime_coerce__units  s
   r  xarrayc                  C   sD   dd l } | g d}t|dd}tg ddd d}t|| d S )Nr   r  rY  r#  )r  r  z1970-01-01 00:00:00.000000003rX  r  )r  	DataArrayr   r   r0   r1   )xrr3   r4   r5   r$   r$   r%   test_xarray_coerce_unit  s   	r  c                 C   s   t }ttd|dd}|jdddj|dd}|j td	 |_t	|j
d d d
f | d}|j
d d d
f }t|| d S )N1980YSr-  FDTr  r   )nrandom_statei  r   r   )r   r   r   to_framesampler  	to_seriesr[  r]   r   r'  r0   rD   )r&   cstarttimesr4   r5   r$   r$   r%   +test_to_datetime_monotonic_increasing_index  s   r  series_lengthr  r   rN   c                 C   s   t tdgtdg|   }t|ddd}t tgtdg|   }t|| t|ddd}t tdgtdg|   }t|| tj	t
dd t|d	dd W d    d S 1 s`w   Y  d S )
Nz1446-04-12 00:00:00+00:00z1991-10-20 00:00:00+00:00rx   T)rq   r   ro   r|  rb   r<  )r   r   fromisoformatr   r   r   r0   rD   re   rf   r   )r  r,  rb  	expected1r  rw  r$   r$   r%   2test_to_datetime_cache_coerce_50_lines_outofbounds  s(   

"r  c               
   C   s<   d} d}t | |d}tddddddd	d
d}||ksJ d S )Nz15/02/2020 02:03:04.123456789z%d/%m/%Y %H:%M:%S.%fr   r  r`   rF  r   r   r   i  )r  r  r  r  r  rm  microsecond
nanosecondrI   )r  timestamp_formatr4   r5   r$   r$   r%   %test_to_datetime_format_f_parse_nanos  s   
r  c                  C   s,   t ddgdd} tddg}t| | d S )Nr  z2020-01-01 05:00:00r  r   r  r   r  r$   r$   r%   test_to_datetime_mixed_iso8601     r  c                  C   s,   t ddgdd} tddg}t| | d S )Nz
01/11/2000z12 January 2000r  r   z
2000-01-11z
2000-01-12r   r  r$   r$   r%   test_to_datetime_mixed_other  r  r  r   rB   r  c                 C   sH   d}t jt|d tdg| |d W d    d S 1 sw   Y  d S )Nz8Cannot use 'exact' when 'format' is 'mixed' or 'ISO8601'rb   r  )r   rB   r$  )r   rB   r   r$   r$   r%   #test_to_datetime_mixed_or_iso_exact  r4  r  c                   C   sD   t jtdd tddgdd W d    d S 1 sw   Y  d S )Nz9Time data 01-01-2000 is not ISO8601 format, at position 1rb   r  
01-01-2000r  r   r$  r$   r$   r$   r%   4test_to_datetime_mixed_not_necessarily_iso8601_raise  s
   "r  )rq   r5   rx   r  ro   r  r  c                 C   s"   t ddgd| d}t|| d S )Nr  r  r  r   r   )rq   r5   r4   r$   r$   r%   5test_to_datetime_mixed_not_necessarily_iso8601_coerce  s   	r  c                 C   sL   t d tddg|   dd}t|}tddgdd}t|| d S )Npyarrowr   r`   z	[pyarrow]r)   rX  )re   importorskipr   lowerr   r0   rD   )any_numeric_ea_dtyper[   r4   r5   r$   r$   r%   test_from_numeric_arrow_dtype  s
   
r  )^__doc__r   collectionsr   r   r   r   r   decimalr   r   dateutil.parserr	   dateutil.tz.tzr
   numpyr,   re   r   pandas._libsr   pandas._libs.tslibsr   r   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorsr   pandas.core.dtypes.commonr   pandasr   r   r   r   r   r   r   r   r   r   pandas._testing_testingr0   pandas.core.arraysr   pandas.core.toolsr   r"  pandas.core.tools.datetimesr   pandas.util.versionr   r   r  r&   r'   r   r  rg  r  r  r)  rI  rQ  r  r  r  r  r  r  r  r  r   r   r-   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$   r$   r$   r%   <module>   s    ,
   m            J   iyL k




 (







