a
    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Z6ej7ddgddd Z8G dd dZ9G 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'ZAej7g d(dd)d* ZBej7d+d, ZCej7d-d. ZDej7g d/dd0d1 ZEej7d2d3 ZFG d4d5 d5ZGG d6d7 d7ZHd8d9 ZIejJKd:ejLeMgd;d< ZNejJKd=g d>ejJjKd?g d@dAfg dBdCfgdDdEgdFdGdH ZOdIdJ ZPejJKdddgdKdL ZQejJKdMdNe5e5dO e5dP gdQdR ZRdSdT ZSdUdV ZTdWdX ZUejJKdYddgejJKdZdEd[gd\d] ZVd^d_ ZWejJKd`dae$dbe&gfdce%dddegfgdfdg ZXdhdi ZYdjdk ZZdldm Z[dndo Z\dS )pz 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_ata_  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   s   | j S )z/
    cache keyword to pass to to_datetime.
    paramrequest r"   l/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/tools/test_to_datetime.pycache=   s    r$   c                   @   sX  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ddgd ede*e+dddgd gddgd ede*e+dddgd gdddgede,-djdede,-djdgggdd Z.ejddg dedddedddedddggdddgede*e+dddede*e+dddgggdd Z/dd Z0ejdg ddd Z1dd Z2d<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objectZsetflagsr   tmassert_index_equal)selfr&   arrresultexpectedr"   r"   r#   test_to_datetime_readonlyF   s    z3TestTimeConversionFormats.test_to_datetime_readonlyzformat, expected%d/%m/%Y200001012000020120000301%m/%d/%Y2000010220000103c                 C   sJ   |g d}t |||d}||}t|tr:t|| nt|| d S )N)1/1/20001/2/20001/3/2000formatr$   )r   
isinstancer   r-   assert_series_equalr.   )r/   r$   Zindex_or_seriesr?   r2   valuesr1   r"   r"   r#   test_to_datetime_formatP   s    
z1TestTimeConversionFormats.test_to_datetime_formatzarg, expected, format)r;   r5   r4   )r;   r5   r8   )r<   r6   r4   )r<   r9   r8   )r=   r7   r4   )r=   r:   r8   c                 C   s&   t |||d}t|}||ks"J d S Nr>   r   r   )r/   r$   argr2   r?   r1   r"   r"   r#   test_to_datetime_format_scalarf   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   s   g | ]}t |qS r"   r   .0xr"   r"   r#   
<listcomp>x       zNTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD.<locals>.<listcomp>%Y%m%dr>   r   applystrr   r-   rA   r/   r$   serr2   r1   r"   r"   r#    test_to_datetime_format_YYYYMMDDv   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    n1 s0    Y  d S )NrH   rI   rJ   floatr'   19801222Z19810105   rQ   r>   ZnatzOunconverted data remains when parsing with format "%Y%m%d": ".0", at position 0match)r   r   r*   nanr   r-   rA   rS   rT   pytestraises
ValueError)r/   r$   rV   r2   r1   Z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 rJ   rX   r'   Z19801201Z19810101rZ   %Y%mr>   )r   r   r*   r]   r   r-   rA   rU   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rQ   ignorer?   errorsr$   r'   )r   r   r,   r-   rA   r/   r$   rV   r1   r2   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 )NZ15010101Z20150101rQ   re   rf   )r   r*   r]   r   r-   r.   r/   r$   r1   r2   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 )Nrd   rQ   coercerf   )Z20121231Z20141231r   M8[ns]r'   r   r   r-   rA   rh   r"   r"   r#   )test_to_datetime_format_YYYYMMDD_coercion   s    zCTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD_coercioninput_s)rY   20010112NrY   rq   )rY   rq   r   )rH   T1NrH   rr   )rH   rr   r   c                 C   s6   t tdtdtg}t t|dd}t|| d S )NrY   rq   rQ   r?   )r   r   r   r   r-   rA   r/   rp   r2   r1   r"   r"   r#   *test_to_datetime_format_YYYYMMDD_with_none   s    zDTestTimeConversionFormats.test_to_datetime_format_YYYYMMDD_with_nonezinput_s, expectedZ20010012Z10019999i]4iT1i{1Z20190813c                 C   s   t |ddd}t|| d S )NrQ   rl   r?   rg   r   r-   rA   rt   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   NZ20210202202020z2021-02-02 20:20:20201010z%y%m%dz
2020-10-10z%d%m%y
2010-10-20)r   r   r   rQ   c                 C   s   t ||d}t|| d S Nrs   r   r-   r.   )r/   datar?   r2   r1   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 )Nry   rz   r   )r   pdNAr   r-   r.   r/   r1   r2   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   s   g | ]}t |qS r"   rK   rL   r"   r"   r#   rO     rP   zMTestTimeConversionFormats.test_to_datetime_format_integer.<locals>.<listcomp>z%Yr>   )iA i i c                 S   s,   g | ]$}t |d d d |dd   qS )N   -rK   rL   r"   r"   r#   rO     rP   rb   rR   rU   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 )NrQ   re   rv   r   )r/   Zint_dater2   r1   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.%fr>   )calendar
month_abbrr   r   strptime)r/   r$   r   valr?   r1   expr"   r"   r#   #test_to_datetime_format_microsecond9  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)Z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 rD   r   )r/   r$   valuer?   dtr"   r"   r#   test_to_datetime_format_timeB  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)Z19MAY11Zfoobar19MAY11z19MAY11:00:00:00z19MAY11 00:00:00Zz%d%b%yF)r?   exactr$   z(\d+\w+\d+))expandr>   )r   r   rT   extractr-   rA   rh   r"   r"   r#   test_to_datetime_with_non_exactq  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r?   r   r   )r/   r$   r?   r2   r1   r"   r"   r#   (test_non_exact_doesnt_parse_whole_string  s    zBTestTimeConversionFormats.test_non_exact_doesnt_parse_whole_stringrF   )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   r>   r   )r/   r$   rF   r2   r1   r"   r"   r#   #test_parse_nanoseconds_with_formula  s    z=TestTimeConversionFormats.test_parse_nanoseconds_with_formulazvalue,fmt,expectedZ2009324z%Y%W%wz
2009-08-13Z2013020z%Y%U%wz
2013-01-13c                 C   s   t |||d|ksJ d S rD   r   )r/   r   fmtr2   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 UTCrZ   2010-01-01 12:00:00UTC%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 Zc                 C   s$   t ||d}t|}t|| d S r{   )r   r   r-   assert_equal)r/   r   datesexpected_datesr1   r2   r"   r"   r#   )test_to_datetime_parse_tzname_or_tzoffset  s    *zCTestTimeConversionFormats.test_to_datetime_parse_tzname_or_tzoffset)r   z2010-01-01 12:00:00 GMTz2010-01-01 12:00:00 US/PacificGMT
US/Pacific2010-01-01 12:00:00 -0100c                 C   sV   d}t jt|d t||d}W d    n1 s40    Y  t|}t || d S )N<parsing datetimes with mixed time zones will raise a warningr[   rs   )r-   assert_produces_warningFutureWarningr   r   r   )r/   r   r   r   msgr1   r2   r"   r"   r#   >test_to_datetime_parse_tzname_or_tzoffset_utc_false_deprecated  s
    "*zXTestTimeConversionFormats.test_to_datetime_parse_tzname_or_tzoffset_utc_false_deprecatedc                 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r?   utcr   r   r-   r.   )r/   r   r   r   r1   r2   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-1fooZUTCbarz:10z
+01:000:01 c                 C   sj   d}d| }d dt ddt dg}tjt|d t|g|d W d    n1 s\0    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. r[   rs   joinPARSING_ERR_MSGr^   r_   r`   r   )r/   r   r   r   r   r"   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namers   r   r   )r   r   )r   r   r   r-   r.   )r/   r   rF   r1   r2   r"   r"   r#   *test_to_datetime_parse_timezone_keeps_name5  s
    zDTestTimeConversionFormats.test_to_datetime_parse_timezone_keeps_name)3__name__
__module____qualname__r^   markparametrizer3   r   rC   rG   rW   ra   rc   ri   rk   ro   r*   r]   r   ru   r   rx   r   r   r   r~   r   r   r   r   r   r   xfaillocale	getlocaler   tdskip_if_not_us_localer   r   r   r   r   r   pytzZFixedOffsetr   r   r   r   r   r"   r"   r"   r#   r%   E   s  
	
	








	

,






(






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ddgddd#dgejd$ed%d& gd'd( Zejjdddgddgdejd$ed)d& gd*d+ Zejd,ej
deed-d.d/ed0d1d/egd2dej
deed-d.d/ed3d1d/egd4dgd5d6 Zejd,ej
deg d7ddd8dej
deg d9ddd:dgd;d< 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dAdB ZdCdD ZejdEdFdGedHdIdJdKdKgdLdGedMdNdNdKdKgdOdGedMdNdPdKdKggdQdR ZejdSg 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 deg dfgejdgg dhdidj Zejdkdldmgdndo Zejejdpeegejdqddgejdkdldmgdrds Zdtdu Zdvdw Zdxdy Zejdzd{ Z ejejdkd|d}gd~d Z!ejdddgdd Z"ejdg 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dgg 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e0efe$j1efeefgdd Z2ejddeddqd/gdeddqd/ggdd Z3dd Z4dd Z5ejdddgdd Z6dd Z7ejdddgdd Z8ddĄ Z9ejde:e;gddƄ Z<ejdgg dǢddɄ Z=ejdddgejddldgddτ Z>ejddgejddldgdd҄ Z?ejddgdgg dԢgejddldgddք Z@ejdqddlgejdddlgejd$e0eAe$j1eeBgddل ZCddۄ ZDejdqddlgejdddlgdd݄ ZEdd߄ ZFejddle$jGfefeH  efeHd  fdledfefeH  eedfefeH  fdefeH  dedf efeHdN  ededf ffdd ZIejdddgejdeegd dlgd  ddeegd ddfeegd dlgd  ddeegd ddfedlgd eegd ddfedlg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eJjKgd eegd ddfeeJjKgd eegd ddfee$jGgd eegd ddfee$jGgd eegd ddff
dd ZLejdg ddd ZMdd ZNejdddgejdeddNdNeOddNdNe$%dddgdd  ZPejddeeegfdeddgfgdd ZQdd	 ZRd
d ZSdd ZTdd ZUdd ZVdd ZWejdededdd/feddd/eddd/fgdd ZXejdg ddd ZYdd  ZZd!d" Z[ejd#d$d%gd$eddd/gd$ed&dNdNd'e\]d(d)ggd*d+ Z^dlS (,  TestToDatetimezignore:Could not infer formatc                 C   s   d}d}t jt|d t| W d    n1 s40    Y  t jt|d t|g W d    n1 sl0    Y  t|dd}|tu sJ t|gdd}t|ttg t|dd}t|t	r||ksJ t|gdd}t|t|gt
d d S )NZ08335394550z:Parsing "08335394550" to datetime overflows, at position 0r[   rl   rg   re   r'   )r^   r_   r   r   r   r-   r.   r   r@   rT   r,   )r/   rF   r   resr"   r"   r#   test_to_datetime_overflow?  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_convertr-   r.   )r/   d1Zd2r   r2   r"   r"   r#   *test_to_datetime_mixed_datetime_and_stringV  s
    z9TestToDatetime.test_to_datetime_mixed_datetime_and_stringr?   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   rZ   
2020-01-01rs   z
2020-01-02)r   r   r   r-   r.   )r/   r?   r   r   r2   r"   r"   r#   &test_to_datetime_mixed_date_and_string^  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:002000-01-01 02:00:00+00:00zall tz-aware, without utcz%all tz-aware, mixed offsets, with utc2000-01-01 01:00:00z+tz-aware string, naive pydatetime, with utcconstructorc                 C   s   t |  S Nr   to_pydatetimerN   r"   r"   r#   <lambda>  rP   zTestToDatetime.<lambda>c           	      C   s6   ||d }|d }t ||g||d}t|| d S )Nr   r   r   r|   )	r/   r   r   argsr2   r   ts1ts2r1   r"   r"   r#   6test_to_datetime_mixed_datetime_and_string_with_formath  s    8zETestToDatetime.test_to_datetime_mixed_datetime_and_string_with_formatc                 C   s   t |  S r  r  r  r"   r"   r#   r    rP   c           	      C   s   ddg}||d }|d }d}t tdtdddg}tjt|d	" t||g|d
d}W d    n1 sn0    Y  t|| d S )Nr   r   r   r   r   z2000-01-01 02:00:00+0000r   r   r[   Fr   )r   r   r-   r   r   r   r.   )	r/   r   r   r  r  r  r   r2   r1   r"   r"   r#   Ntest_to_datetime_mixed_datetime_and_string_with_format_mixed_offsets_utc_false  s    
0z]TestToDatetime.test_to_datetime_mixed_datetime_and_string_with_format_mixed_offsets_utc_falsezfmt, expectedz2000-01-01 09:00:00+0100r   r   z2000-01-02 02:00:00+0200z	UTC+02:00zISO8601, non-UTCz2000-02-01 02:00:00+0200znon-ISO8601, non-UTCc                 C   sT   d}t jt|d" tg d|dd}W d    n1 s:0    Y  t || d S )Nr   r[   z2000-01-01 09:00:00+01:00z2000-01-02 02:00:00+02:00NFr   )r-   r   r   r   r.   )r/   r   r2   r   r1   r"   r"   r#   +test_to_datetime_mixed_offsets_with_none_tz  s    $z:TestToDatetime.test_to_datetime_mixed_offsets_with_none_tz)2000-01-01 08:00:00+00:00z2000-01-02 00:00:00+00:00r   zISO8601, UTC)r  z2000-02-01 00:00:00+00:00r   znon-ISO8601, UTCc                 C   s"   t g d|dd}t|| d S )Nr  Tr   r|   )r/   r   r2   r1   r"   r"   r#   (test_to_datetime_mixed_offsets_with_none  s    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   s   t |  S r  r  r  r"   r"   r#   r    rP   c                 C   s\   ||d }||d }t jtdd" t||g|dd W d    n1 sN0    Y  d S )Nr   r   z1cannot be converted to datetime64 unless utc=Truer[   Fr   r^   r_   r`   r   )r/   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s0J t|jd |ksFJ 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*   Zstr_r   r   r   ilocr   r-   r.   rA   )r/   r   rV   r   r   r2   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   )r/   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)r  z1999 Mondayz%G %A)r  z1999 Monz%G %a)r  1999 6z%G %w)r  r  z%G %u)r  Z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  r   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'.Z20z%V)r!  r  %V %A)r!  r  z%V %a)r!  r   z%V %w)r!  r   z%V %u)r  r  z%G %j)r!  z	20 Mondayr"  rg   raiserl   re   c                 C   sX   t  dkrTt  dkrTtjt|d t|||d W d    n1 sJ0    Y  d S )N)r   UTF-8)r   r%  r[   rv   )r   r   r^   r_   r`   r   )r/   r   r  r  rg   r"   r"   r#   test_error_iso_week_yearH  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 )N
1965-04-03   2Wperiodsfreqr   )r   r   r   )r/   r   dtir0   r1   r"   r"   r#   test_to_datetime_dtarr  s    z%TestToDatetime.test_to_datetime_dtarr	arg_classr   c           	      C   s   t d}tddd|d}||}|t|jd|d}t||d}t||dt|jd|sf|nd	d}|s|tur||u sJ |tu rt	
|| nt	|| d S )
Npyarrowr'  r(  r)  r*  ns)unitr   r   r   )r^   importorskipr   astyper   Z
ArrowDtype	timestampr   r   r-   rA   r.   )	r/   r   r   r/  par-  Z	dti_arrowr1   r2   r"   r"   r#   test_to_datetime_arrow  s    
z%TestToDatetime.test_to_datetime_arrowc                 C   s(   t tddd}|tdddks$J d S )N  r      r   r   r/   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 )NZ20080115r9  r   r:  r;  r<  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, 1999re   r   r   )r/   rV   r"   r"   r#   "test_to_datetime_unparsable_ignore  s    z1TestToDatetime.test_to_datetime_unparsable_ignorec                 C   s   t dz td}td}tdgd }t|j|j dk sBJ t|j|j dk sZJ |jd u shJ |jd u svJ W d    n1 s0    Y  d S )N
US/Easternnowr       _B)r-   set_timezoner   r   abs_valuer   )r/   rB  ZpdnowZpdnow2r"   r"   r#   test_to_datetime_now  s    z#TestToDatetime.test_to_datetime_nowzPacific/AucklandzUS/Samoac                 C   s   t | tddtj}td}tdgd }td}t 	d}t
| j| dk sjJ t
| j| dk sJ t
|j|j dk sJ t
|j|j dk sJ |jd u sJ |jd u sJ W d    n1 s0    Y  d S )Ntodaydatetime64[ns]r   r1  rC  )r-   rD  r*   
datetime64r5  int64r   r   rH  Zas_unitrE  	normalizerF  r   )r/   r   ZnptodayZpdtodayZpdtoday2ZtstodayZtstoday2r"   r"   r#   test_to_datetime_today  s    	z%TestToDatetime.test_to_datetime_todayrF   rB  rH  c                 C   s   t |g d S r  r   )r/   rF   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)NrO  zstring, attribute)rB  utcnow)rH  rH  c                 C   sF   t d|g|dd}t|tt| gdd}||   dk sBJ d S )Nz2020-01-03 00:00:00ZTr   r   r'   r   )r   r   getattrr   maxtotal_seconds)r/   r?   Zexpected_dsstring	attributer1   r2   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   rE   )r/   r$   r   r"   r"   r#   test_to_datetime_dt64sF  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   rs   r\  )r   r*   rJ  r   r-   r.   )r/   rF   r?   r1   r2   r"   r"   r#   test_to_datetime_dt64s_and_strL  s    	z-TestToDatetime.test_to_datetime_dt64s_and_strz
1000-01-01z
5000-01-02)r$  re   rl   c                 C   s`   t |||d}t|tsJ |jdks*J |j|ks8J t|}|jdksNJ |j|ks\J d S )Nrg   r$   r  )r   r@   r   r2  asm8)r/   r$   r   rg   tsr"   r"   r#   'test_to_datetime_dt64s_out_of_ns_boundsY  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 sF0    Y  tjt|d t	|d|d W d    n1 s0    Y  t	|d|dt
u sJ d S )ND"Out of bounds nanosecond timestampr[   r$  r^  rl   )r*   rJ  ZiinforK  rR  r^   r_   r   r   r   r   )r/   r$   Zdt64r   r"   r"   r#   $test_to_datetime_dt64d_out_of_boundsh  s    &,z3TestToDatetime.test_to_datetime_dt64d_out_of_boundsr2  r  rb  c                 C   s  t d|t d|gd }t||d}|rDtdd |D dd}ntd	d |D d
d}t|| |t dg }t|dd t|d|d}|stt|d jt|d jgd tg }ntt j	|dd}t|| t|d|d}|st
|}t|| d S )NrW  rX  r   r   c                 S   s   g | ]}t |jqS r"   r   r_  rL   r"   r"   r#   rO     rP   zBTestToDatetime.test_to_datetime_array_of_dt64s.<locals>.<listcomp>zM8[s]r'   c                 S   s   g | ]}t |jqS r"   re  rL   r"   r"   r#   rO     rP   rm   
9999-01-01r$  r   rl   r^  r   r   re   )r*   rJ  r   r   r-   r.   r   r_  r   r+   r   )r/   r$   r2  Zdtsr1   r2   Zdts_with_oobr"   r"   r#   test_to_datetime_array_of_dt64ss  s2    

z.TestToDatetime.test_to_datetime_array_of_dt64sc                 C   s,   t tddd}td}||ks(J d S )Nrf  re   r   )r   r*   rJ  r   r"   r"   r#    test_out_of_bounds_errors_ignore  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   r-   r.   )r/   r$   r0   r1   r2   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 sL0    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 )Nri  r   r   rj  rA  zLTz-aware datetime.datetime cannot be converted to datetime64 unless utc=Truer[   r   re   )r$   rg   z2013-01-01 13:00:00-08:00z2013-01-02 14:00:00-05:00r,   r'   rl   r   zdatetime64[ns, US/Pacific])	r   r^   r_   r`   r   r   r-   r.   r   )r/   r$   r0   r   r1   r2   r"   r"   r#   test_to_datetime_tz_mixed  s(    

*z(TestToDatetime.test_to_datetime_tz_mixedc                 C   s|   d}d}|gd |gd  }t dd |D }d}tjt|d t||d}W d    n1 sb0    Y  t|| d S )	NMarch 1, 2018 12:00:00+0400March 1, 2018 12:00:00+0500rJ   c                 S   s   g | ]}t |qS r"   r   rL   r"   r"   r#   rO     rP   zETestToDatetime.test_to_datetime_different_offsets.<locals>.<listcomp>r   r[   r   )r   r-   r   r   r   r.   )r/   r$   Zts_string_1Zts_string_2r0   r2   r   r1   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 )NrA  r   r   r   r   )yearmonthdayhourminute   r'   Tr   r$   r  2000-06-01 07:00:00+00:00r   r(   r,  )r   r   r*   r+   Zlocalizer   r,   r   r   r-   r.   )r/   r$   Z
us_easternr0   r1   r2   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r?   r   r$   )r   r   r-   r   )r/   r$   Zinit_constructorZend_constructorr}   Zexpected_datar1   r2   r"   r"   r#   test_to_datetime_utc_true  s    

z(TestToDatetime.test_to_datetime_utc_truezscalar, expectedrz  r|  r{  r}  c                 C   s    t |dd|d}||ksJ d S )Nr~  Tr  r   )r/   r$   scalarr2   r1   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 {ѴCTrv  r   r   )r   r   r   r-   rA   )r/   r$   r`  r1   r2   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   Trv  r   r   r   r   r   r-   rA   )r/   r$   r`  Zexpected_tsr}   r1   r2   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  rI  )r  r   c                 C   s:   t tdddg}tt |g|dd|d}t|| d S )Nr  r   r   r'   Trv  )r   r   r   r-   rA   )r/   r$   r   r(   r2   r1   r"   r"   r#   1test_to_datetime_utc_true_with_series_datetime_ns$  s    z@TestToDatetime.test_to_datetime_utc_true_with_series_datetime_nsc           
   
   C   s   t d}|jdd d}|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dd dd}	t|	sJ t|	d|d}t	
||	 t|	dd|d}tdgdd}t	
|| d S )Nzpsycopg2.tzi)r   r   ir   r   r   r   r   ru  r'   rl   T)rg   r   r$   r  rw  r   rx  z2000-01-01 08:00:00r   r^  z2000-01-01 13:00:00)r^   r4  ZFixedOffsetTimezoner*   r+   r   r,   r   r   r-   r.   r   )
r/   r!   r$   Zpsycopg2_tzZtz1Ztz2r0   r1   r2   ir"   r"   r#   test_to_datetime_tz_psycopg20  s4    
z+TestToDatetime.test_to_datetime_tz_psycopg2c                 C   sj   d}t jt|d t| W d    n1 s00    Y  t|d|dtu sPJ t|d|d|u sfJ d S )Nz2dtype bool cannot be converted to datetime64\[ns\]r[   rl   r^  re   )r^   r_   	TypeErrorr   r   )r/   r$   rF   r   r"   r"   r#   test_datetime_boolV  s
    &z!TestToDatetime.test_datetime_boolc                 C   s   t | d}tjt|d$ tdt g|d W d    n1 sF0    Y  tjtdt dd  tddg|d W d    n1 s0    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 datetimer[   Fr   zA^time data "True" doesn\'t match format "%Y%m%d", at position 1. r   20130101Tr   g        rl   r^  )typer^   r_   r  r   r   rH  r`   r   r-   r.   r   r   r/   r$   r   r"   r"   r#   test_datetime_bool_arrays_mixed_  s     2.z.TestToDatetime.test_datetime_bool_arrays_mixedc                 C   s>   d}t jt|d t| W d    n1 s00    Y  d S )Nzis not convertible to datetimer[   )r^   r_   r  r   )r/   rF   r   r"   r"   r#   test_datetime_invalid_datatyper  s    z-TestToDatetime.test_datetime_invalid_datatype)rl   r$  re   c                 C   sB   t jtdd  tdgd|d W d    n1 s40    Y  d S )Nz*':' is a bad directive in format 'H%:M%:S%r[   z00:00:00zH%:M%:S%rv   r  )r/   rg   r"   r"   r#   test_invalid_format_raisesy  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 s4J ddt dddt dd	g}tjt|d
 t |d|d W d    n1 s0    Y  d S )Nre   rg   r?   rl   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$r[   r$  )r   r   r   r   r^   r_   r`   r/   r   r?   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 s4J |d ur~d}tjt|d t |d|d W d    q1 sr0    Y  n@d}tjt|d t |d|d W d    n1 s0    Y  d S )Nre   r  rl   z:^time data ".*" doesn\'t match format ".*", at position 0.r[   r$  z!^Out of bounds .*, at position 0$)r   r   r^   r_   r`   r   r  r"   r"   r#    test_datetime_outofbounds_scalar  s    .z/TestToDatetime.test_datetime_outofbounds_scalarrB   )r  bz99:00:00c              	   C   sT  |d u rt |dkrt}nd }tj|dd t|d|d}W d    n1 sP0    Y  t|t| tj|dd t|d|d}W d    n1 s0    Y  t|ttgt |  d	dd	t
 d
dt
 d
dg}tjt|dN tj|dd t|d|d W d    n1 s&0    Y  W d    n1 sF0    Y  d S )Nr   Could not infer formatr[   re   r  rl   r   r  r  r   r  r  r$  )lenUserWarningr-   r   r   r.   r   r   r   r   r   r^   r_   r`   )r/   rB   r?   warnr   r   r"   r"   r#   test_datetime_invalid_index  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   r?   r$   Fr|   )	r/   r   r?   r   r   
test_datesr}   r1   r2   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   r-   r.   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  rn   )r/   r   r?   r   r  r}   r1   r2   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   rE   )r/   r   r1   r2   r"   r"   r#   test_to_datetime_cache_scalar  s    z,TestToDatetime.test_to_datetime_cache_scalarzdatetimelikes,expected_valuesrZ   z
2012-07-26r  z2012 July 26c                 C   s4   t |dd}t|dd}t |dd}t|| d S )Nr,   r'   rl   r   rI  rn   )r/   ZdatetimelikesZexpected_valuesrV   Zresult_seriesZexpected_seriesr"   r"   r#   *test_convert_object_to_datetime_with_cache  s    z9TestToDatetime.test_convert_object_to_datetime_with_cacher$   )inputr2      r,   (   rI  r   x   r   c                 C   s   t ||d}t|| d S rY  rw   )r/   r$   r  r2   r1   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   sB   d}t jt|d t||d W d    n1 s40    Y  d S )Nz,Cannot use '%W' or '%U' without day and yearr[   rs   r  )r/   r   r?   r   r"   r"   r#   'test_week_without_day_and_calendar_year.  s    z6TestToDatetime.test_week_without_day_and_calendar_yearc                 C   s   g d}d}t jt|d t|dd}W d    n1 s<0    Y  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)rm  rn  Z20100240r   r[   rl   r     r   r   r   r   i@8  r   iPF  )	r-   r   r   r   r   r   r
   r   r.   r/   
ts_stringsr   r1   r2   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'  rf  zJanuary 1, 9999c                 C   s:   ||g}t |d|d}ttdddtg}t|| d S )Nrl   r  r  r   r   )r   r   r   r   r-   r.   )r/   Z
string_argr?   r  r  r1   r2   r"   r"   r#   test_to_datetime_coerce_oobS  s    z*TestToDatetime.test_to_datetime_coerce_oobzerrors, expectedrl   re   200622-12-31111111-24-11c                 C   sR   ddg}t jtdd t||d}W d    n1 s80    Y  t || d S )Nr  r  r  r[   r   )r-   r   r  r   r.   )r/   rg   r2   r  r1   r"   r"   r#   #test_to_datetime_malformed_no_raiseh  s    
*z2TestToDatetime.test_to_datetime_malformed_no_raisec              	   C   sx   ddg}d}t jt|dJ tjtdd t|dd W d    n1 sL0    Y  W d    n1 sj0    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 0r[   r  r$  r   r^   r_   r`   r-   r   r  r   )r/   r  r   r"   r"   r#    test_to_datetime_malformed_raisew  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:30rZ   )r   r   r   r-   r.   )r/   Zts_strr1   r2   r"   r"   r#   &test_iso_8601_strings_with_same_offset  s    z5TestToDatetime.test_iso_8601_strings_with_same_offsetc                 C   s   ddt g}d}tjt|d t|}W d    n1 s:0    Y  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[   r     r   r:  r   iXM  r      ih[  r'   )r   r-   r   r   r   r*   r+   r   r
   r,   r   r.   r  r"   r"   r#   ,test_iso_8601_strings_with_different_offsets  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  Tr3  r  r  r   r   r   r   )r   r   r   r   r-   r.   )r/   r  r1   r2   r"   r"   r#   0test_iso_8601_strings_with_different_offsets_utc  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 sBJ t d}t d}d	}tjt|d
 t }W d    n1 s0    Y  tdt dt d	 t d	 d gt
d}t|d d | ||jd   dksJ ||jd   dksJ tjtdd
 t| W d    n1 s,0    Y  d S )Nr]   z
1990-01-01z2015-03-14T16:15:14.123-08:00z2019-03-04T21:56:32.620-07:00rH  rB  c                 3   s   | ]} | | u V  qd S r  r"   )rM   r  rV   valsr"   r#   	<genexpr>  rP   zPTestToDatetime.test_mixed_offsets_with_native_datetime_raises.<locals>.<genexpr>r   r[   r   r'   g?zTz-aware datetime.datetime)r   r   allranger  r-   r   r   r   r  r,   rA   r  rS  r^   r_   r`   )r/   rB  rH  r   mixedr2   r"   r  r#   .test_mixed_offsets_with_native_datetime_raises  s:    	$&


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 )
Nrm  rZ   r  r   r   r      r   r   )r   r   r   r   r   r-   r.   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   r   z2018-01-01 08:00c                 C   s   t |dd}||ksJ d S )NTr3  r   )r/   r`  r2   r1   r"   r"   r#   test_timestamp_utc_true  s    z&TestToDatetime.test_timestamp_utc_truedt_str)Z00010101Z13000101Z30000101Z99990101c                 C   sB   d}t jt|d t|dd W d    n1 s40    Y  d S )Nrc  r[   rQ   rs   r^   r_   r   r   )r/   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 s0J d S )Nz2012-06-13T01:39:00Zr'   Tr3  )r*   r+   r	   r,   r   r   r   r   )r/   r0   r1   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sPJ d S )Nr   )	fixed_offr   r   r   rZ   r   )Z-pandas.tests.indexes.datetimes.test_timezonesr  r   r   r   )r/   r  r   r1   r"   r"   r#   test_to_datetime_fixed_offset  s    z,TestToDatetime.test_to_datetime_fixed_offsetr   z2020-10-26 00:00:00+06:00z2020-10-26 00:00:00+01:00r   r   zAustralia/Melbourner   c                 C   sB   d}t jt|d t|dd W d    n1 s40    Y  d S )Nr   r[   Fr3  r-   r   r   r   )r/   r   r   r"   r"   r#   8test_to_datetime_mixed_offsets_with_utc_false_deprecated  s    zGTestToDatetime.test_to_datetime_mixed_offsets_with_utc_false_deprecated)_r   r   r   r^   r   filterwarningsr   r   r   r   r   r   r   r	  r
  r   r   r  r  r  r  r   r  r&  r.  r   Zskip_if_windowsr   r8  r>  r?  r@  rG  rM  rN  rV  r*   rJ  rZ  r]  ra  rd  rg  rh  rk  rl  ro  ry  listr+   r  r  r  r  r  r  r  r  boolr   r  r  r  r  r  tupler   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  


		(







		

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TestToDatetimeUnitr2  YMitem   c                 C   s   t ||d}t|g}t|g||d}t|| ttj|gtd||d}t|| t|t	r|j
tjjt|j dd tt|g||d}t|| d S )Nr2  r2  r$   r'   z in np.array should workr   )r   r   r   r-   r.   r*   r+   r,   r@   rX   nodeZ
add_markerr^   r   r   r  r   )r/   r$   r2  r  r!   r`  r2   r1   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 sD0    Y  t jt|dN tjt|d  tdg|dd W d    n1 s0    Y  W d    n1 s0    Y  t jt|d  tdg|d	d W d    n1 s0    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 sX0    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 ambiguousr[         ?r$  r2  rg   z1.5re   rl   rm   r'         ?r  r   )
r^   r_   r`   r   r-   r   r   r   r   r.   )r/   r$   r2  Zwarn_msgr   r   r2   r"   r"   r#   3test_to_datetime_month_or_year_unit_non_round_float2  s$    .L.0zFTestToDatetimeUnit.test_to_datetime_month_or_year_unit_non_round_floatc                 C   sH   d}t jt|d" tdgdd|d W d    n1 s:0    Y  d S )Nz#cannot specify both format and unitr[   r   rb  rQ   )r2  r?   r$   r  r  r"   r"   r#   	test_unitQ  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    n1 s0    Y  d S )Nl   qMe;r   r  r   r   rb  re   r2  rg   r$   
1970-01-02r'   rl   )r   r  r  r   r   r   r   r   z8cannot convert input 11111111111111111 with the unit 'D'r[   r$  )r   r   r*   r]   r   r   r   r,   r-   r.   r   r^   r_   r   r/   r$   rB   r1   r2   r   r"   r"   r#   test_unit_array_mixed_nansX  s.    
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    n1 s0    Y  d S )Nl     #0U.KK% r   re   r  rg   r2  r$   r'   rl   )r   r   r   r   r   z@cannot convert input 1420043460000000000000000 with the unit 's'r[   r$  )r   r   r*   r]   r   r   r,   r-   r.   r   r^   r_   r   r  r"   r"   r#   $test_unit_array_mixed_nans_large_intt  s    z7TestToDatetimeUnit.test_unit_array_mixed_nans_large_intc                 C   sF   d}t jt|d  tddd|d W d    n1 s80    Y  d S )Nz+non convertible value foo with the unit 's'r[   r   r$  r  r  r  r  r"   r"   r#   8test_to_datetime_invalid_str_not_out_of_bounds_valuerror  s    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 s2J d S )Nz1970-05-09 14:25:11iǊ r  r  )r   r   r@   )r/   r$   r  r2   r1   r"   r"   r#   test_unit_consistency  s    z(TestToDatetimeUnit.test_unit_consistencyrg   )re   r$  rl   r(   float64rK  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5Cr^  )r   r*   r+   r5  r   r-   r.   )r/   r$   rg   r(   r2   r0   r1   r"   r"   r#   test_unit_with_numeric  s    z)TestToDatetimeUnit.test_unit_with_numericzexp, arr, warning)r   r  r  )r   r  r  )r  r  r   r   )r  r  r   r   Nc                 C   sT   t |}tj|dd t|d|d}W d    n1 s:0    Y  t|| d S )Nr  r[   rl   r^  )r   r-   r   r   r.   )r/   r$   r   r0   warningr2   r1   r"   r"   r#   test_unit_with_numeric_coerce  s    ,z0TestToDatetimeUnit.test_unit_with_numeric_coercer0   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   s   g | ]}t |qS r"   rK   rL   r"   r"   r#   rO     rP   z6TestToDatetimeUnit.test_unit_mixed.<locals>.<listcomp>rm   r'   rl   r^  r$  )r   r   r-   r.   r   )r/   r$   r0   r2   r1   r"   r"   r#   test_unit_mixed  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.877000192rE   rj   r"   r"   r#   test_unit_rounding  s    z%TestToDatetimeUnit.test_unit_roundingc                 C   s2   t dgd dd}t|dd|d}t|| d S )Ng   BrZ   r   r   re   r  r  )r   r   r-   r.   r/   r$   r2   r1   r"   r"   r#   test_unit_ignore_keeps_name  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  Tre   )r2  r   rg   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                    s   g | ]} | qS r"   r"   rM   tepochr"   r#   rO     rP   z<TestToDatetimeUnit.test_to_datetime_unit.<locals>.<listcomp>r  r  r  c                 S   s   g | ]}t d t|d qS z2013-06-09 02:42:28)secondsr   r   r  r"   r"   r#   rO     rP   )r   r  r5  r   r-   rA   )r/   r(   rV   r1   r2   r"   r  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 )Nr  c                    s   g | ]} | qS r"   r"   r  r  r"   r#   rO     rP   zGTestToDatetimeUnit.test_to_datetime_unit_with_nulls.<locals>.<listcomp>r  r  r  c                 S   s   g | ]}t d t|d qS r	  r  r  r"   r"   r#   rO     rP   )r   r  r   r   r-   rA   )r/   r  rV   r1   r2   r"   r  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 )Nr  c                    s   g | ]} | qS r"   r"   r  r  r"   r#   rO     rP   zOTestToDatetimeUnit.test_to_datetime_unit_fractional_seconds.<locals>.<listcomp>r   rZ   g      ?r  r  c                 S   s   g | ]}t d t|d qS r	  r  r  r"   r"   r#   rO     s   ms)r   r*   Zaranger   r5  rX   r   r   roundr-   rA   )r/   rV   r1   r2   r"   r  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   rZ   r   rb  r  r  
1970-01-03r   )r   r   r*   r]   r   r   r-   r.   r   r"   r"   r#   test_to_datetime_unit_na_values  s
    z2TestToDatetimeUnit.test_to_datetime_unit_na_valuesbad_valr   ikc                 C   sN   | d}t jt|d" tdd|gdd W d    n1 s@0    Y  d S )Nz with the unit 'D'r[   r   rZ   rb  r  r  )r/   r  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  r  r   r   rZ   rb  rl   r  )r   r   r   r-   r.   )r/   r  r2   r1   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 s0    Y  tj	t
|d t|	ddd	 W d    n1 s0    Y  d S )Nz"cannot convert input with unit 'D'g  S$Bl            r   g{Gzt?r'   r#  rb  r  g|=)Zrtolr[   r$  )r   rX   r5  r*   rK  r   r-   assert_almost_equalr^   r_   r   )
r/   r   Zoneday_in_nsZtsmax_in_daysZshould_succeedr2   Z
error_moderesult1Zshould_fail1Zshould_fail2r"   r"   r#   (test_float_to_datetime_raise_near_bounds  s     ,z;TestToDatetimeUnit.test_float_to_datetime_raise_near_bounds)!r   r   r   r^   r   r   rX   r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  intr  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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    rZ   r   r   rJ   ru     :   ;   r   r  r   	rp  rq  rr  rs  rt  secondr  usr1  )r   r/   r"   r"   r#   df1  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 )Nrp  rq  rr  rp  rq  rr  r   20150204 00:00:00z20160305 00:0:00)r   r   r   r-   rA   to_dictr/   r$  r$   r1   r2   r"   r"   r#   test_dataframeA  s    z&TestToDatetimeDataFrame.test_dataframec                 C   sH   |g d   }d|d< t||d}ttdtdg}t|| d S )Nr%  rZ   rq  r   r&  z20160205 00:0:00)r'  r   r   r   r-   rA   )r/   r$  r$   df2r1   	expected2r"   r"   r#   &test_dataframe_dict_with_constructableN  s    z>TestToDatetimeDataFrame.test_dataframe_dict_with_constructabler2  Zyearsmonthsdaysr   r   r
  )rp  rq  rr  rs  rt  r!  rp  rq  rr  rs  rt  r!  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   r-   rA   )r/   r$  r$   r2  r1   r2   r"   r"   r#   *test_dataframe_field_aliases_column_subsetX  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 )Nrp  rq  rr  rs  rt  r!  r  r"  r1  r   r/  r   20150204 06:58:10.00100200320160305 07:59:11.001002003)r   r2  r   r   r-   rA   )r/   r$  r$   dr1   r2   r"   r"   r#   test_dataframe_field_aliasesu  s"    z4TestToDatetimeDataFrame.test_dataframe_field_aliasesc                 C   s6   t |t|d}ttdtdg}t|| d S )Nr   r4  r5  )r   r5  rT   r   r   r-   rA   r(  r"   r"   r#   test_dataframe_str_dtype  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 sP0    Y  t|d|d}ttdtg}t	|| d S )Nr  r  rZ   r  r   rJ   r%  z^^cannot assemble the datetimes: time data ".+" doesn\'t match format "%Y%m%d", at position 1\.r[   r   rl   r^  r&  )
r   r^   r_   r`   r   r   r   r   r-   rA   )r/   r$   r*  r   r1   r2   r"   r"   r#   test_dataframe_coerce  s    *z-TestToDatetimeDataFrame.test_dataframe_coercec                 C   sR   d}t jt|d, | }d|d< t||d W d    n1 sD0    Y  d S )Nz?extra keys have been passed to the datetime assemblage: \[foo\]r[   r   r   r   )r^   r_   r`   copyr   )r/   r$  r$   r   r*  r"   r"   r#   !test_dataframe_extra_keys_raisesm  s
    z9TestToDatetimeDataFrame.test_dataframe_extra_keys_raisesmcols)rp  rq  r!  )rp  rr  r!  c                 C   sF   d}t jt|d  t|| |d W d    n1 s80    Y  d S )Nz`to assemble mappings requires at least that \[year, month, day\] be specified: \[.+\] is missingr[   r   r  )r/   r$  r$   r<  r   r"   r"   r#   "test_dataframe_missing_keys_raises  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 sZ0    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    n1 s0    Y  d S )Nz#cannot assemble with duplicate keysr  r  rZ   r  r   rJ   r%  )rp  rp  rr  r[   r   )rp  rq  rr  rs  )rp  rq  rr  rr  )r   r0  r^   r_   r`   r   )r/   r$   r   r*  r"   r"   r#   'test_dataframe_duplicate_columns_raises  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  r  rZ   r   r   rJ   r%  int16r   r&  20160305 00:00:00)r   r   r5  r   r   r-   rA   r/   r$   r$  r1   r2   r"   r"   r#   test_dataframe_int16  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  r  rZ   r   r   rJ   r%  rq  Zint8rr  r   r&  r@  )r   r5  r   r   r   r-   rA   rA  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    n1 sP0    Y  d S )	Nr   r   r  r   r%  zk^cannot assemble the datetimes: unconverted data remains when parsing with format ".*": "1", at position 0.r[   r   )r   r^   r_   r`   r   )r/   r$   r$  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  r  rZ   r   r   rJ   r%  Tr3  z
2015-02-04z
2016-03-05rI  r'   r   )	r   r   r   r*   r+   r   tz_localizer-   rA   )r/   r$  r1   r2   r"   r"   r#   test_dataframe_utc_true  s    z/TestToDatetimeDataFrame.test_dataframe_utc_trueN)r   r   r   r^   fixturer$  r)  r,  r   r   r3  r7  r8  r9  r;  r=  r>  rB  rC  rD  rF  r"   r"   r"   r#   r  0  sT   

	


	
r  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   sN   t jdgtd}d}tjt|d t| W d    n1 s@0    Y  d S )Nz2262-04-11 23:47:16.854775808r'   z6^Out of bounds nanosecond timestamp: .*, at position 0r[   )r*   r+   r,   r^   r_   r   r   )r/   r0   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:00Z20121001z
2012-10-01c                 C   s*   t |g|d}t|}|d |ks&J d S )Nr   r   rE   )r/   r$   rF   Zexp_strr1   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   sN   t jtd| d| dd t|||d W d    n1 s@0    Y  d S )Ntime data \"z\" doesn't match format \"\", at position 0r[   r   r  )r/   r  r?   r   r"   r"   r#   test_to_datetime_iso8601_fails	  s    z1TestToDatetimeMisc.test_to_datetime_iso8601_fails)rN  rM  )rO  r   )rP  r   )rQ  r   rR  c                 C   s\   d dt ddt dg}tjt|d t||d W d    n1 sN0    Y  d S )Nr   r   r   z:^time data ".*" doesn't match format ".*", at position 0. r[   rs   r   )r/   r  r?   r   r"   r"   r#   $test_to_datetime_iso8601_exact_fails*	  s    z7TestToDatetimeMisc.test_to_datetime_iso8601_exact_fails)rV  )z2012-01-01 00r   )z2012-01-01 00:00r   )rJ  r   c                 C   s*   t ddd}t||dd}||ks&J d S )Nr   r   Fr   r   r   r/   r  r?   r2   r1   r"   r"   r#   "test_to_datetime_iso8601_non_exactE	  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   sL   t jtd| d| dd t||d W d    n1 s>0    Y  d S )NrS  z\" doesn\'t match format \"rT  r[   rs   r  )r/   r  r?   r"   r"   r#   "test_to_datetime_iso8601_separatorT	  s    z5TestToDatetimeMisc.test_to_datetime_iso8601_separator))r[  rM  )r   r   )r\  r   )r]  %Y-%m-%dT%H)r^  r   )r_  %Y-%m-%dT%H:%M)r`  r   )ra  %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.000000rf  )z2020-01-01T00:00:00.000000000rf  c                 C   s(   t ddd}t||d}||ks$J d S Nr   r   rs   rX  rY  r"   r"   r#   test_to_datetime_iso8601_validl	  s    z1TestToDatetimeMisc.test_to_datetime_iso8601_valid))z2020-1rM  )z2020-1-1r   )z
2020-1-1 0r   )z
2020-1-1T0rc  )z2020-1-1 0:0r   )z2020-1-1T0:0rd  )z2020-1-1 0:0:0r   )z2020-1-1T0:0:0re  )z2020-1-1T0:0:0.000rf  )z2020-1-1T0:0:0.000000rf  )z2020-1-1T0:0:0.000000000rf  c                 C   s(   t ddd}t||d}||ks$J d S rg  rX  rY  r"   r"   r#   #test_to_datetime_iso8601_non_padded	  s    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:00Zrj  c                 C   s.   t dddtjd}t||d}||ks*J d S )Nr   r   r   rs   )r   r   r   r   rY  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 )NZ2001r   r   r   r;  )r/   r$   rsZxpr"   r"   r#   test_to_datetime_default	  s    z+TestToDatetimeMisc.test_to_datetime_defaultz1fails to enforce dayfirst=True, which would raiser  c              	   C   sr   d}t jt|dL tjtdd tdd|d W d    n1 sF0    Y  W d    n1 sd0    Y  d S )NzInvalid date specifiedr[   zProvide formatz
01-13-2012Tdayfirstr$   r  r  r"   r"   r#   "test_to_datetime_respects_dayfirst	  s    z5TestToDatetimeMisc.test_to_datetime_respects_dayfirstc                 C   s4   t tddd}t||d}|d |d ks0J d S )Nr;   r   r+  r   r   )r   r   r   )r/   r$   rV   r1   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 sJ0    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   r[   r$  r^  rl   i  r   r   r9  re   )
r   r   r^   r_   r`   r   r   r   r-   rA   )r/   r$   rV   r   Zresult_coerceZexpected_coerceZresult_ignorer"   r"   r#   %test_to_datetime_with_space_in_series	  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   rZ   r   index%b %yr>   r   r   rS   r-   rA   )r/   r$   r   r2   r1   r"   r"   r#   test_to_datetime_with_apply	  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%Zrs   r   r   r   )r   r   rE  r   r"   r"   r#   test_to_datetime_timezone_name	  s    z1TestToDatetimeMisc.test_to_datetime_timezone_namerg   r#  c                    sF   t g dg dd}t|d| d}| fdd}t|| d S )N)ru  rv  r   rw  rx  rz  rf   c                    s   t | dd dS )Nrz  rl   rf   r   r  r   r"   r#   r  	  rP   zOTestToDatetimeMisc.test_to_datetime_with_apply_with_empty_str.<locals>.<lambda>r{  )r/   r$   rg   r   r2   r1   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   r/   r$   r1   r"   r"   r#   test_to_datetime_empty_stt	  s    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   rX  rj   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 )NrL  r   r   r   r   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)rL  Z20120101z20120101 12:01:01c                    s   g | ]}t | d qS )r   r   )rM   r  r   r"   r#   rO   
  rP   zITestToDatetimeMisc.test_to_datetime_strings_variation.<locals>.<listcomp>c                 S   s   g | ]}t |qS r"   rK   )rM   date_strr"   r"   r#   rO   
  rP   )r-   r  )r/   r$   r+   r2   r1   r"   r   r#   "test_to_datetime_strings_variation 
  s    z5TestToDatetimeMisc.test_to_datetime_strings_variationr1   rL  c                 C   s   t ddd}||ksJ d S )Nr   r   rK   r   r"   r"   r#   'test_to_datetime_strings_vs_constructor
  s    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    n1 sn0    Y  d S )
Nr   1re   r^  Or'   z<^Given date string "1" not likely a datetime, at position 1$r[   r$  )	r   r   r*   r+   r-   r   r^   r_   r`   )r/   r$   r1   r2   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   re   r^  rn   )r/   r$   seriesr1   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sNJ d S )Nl    `SD& zM8[us]r  r   )r*   rK  viewr5  r   r   )r/   r  Zas_objry  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  rq  )r   r   rB   r  Zasi8r-   r.   )r/   rngintsr1   r"   r"   r#   !test_to_datetime_list_of_integers&
  s
    

z4TestToDatetimeMisc.test_to_datetime_list_of_integersc                 C   sD   d}t jt|d tdddd W d    n1 s60    Y  d S )Nz>Cannot cast 139999 days 00:00:00 to unit='ns' without overflowr[   z1/1/1700Br  )startr,  r+  )r^   r_   r   r   r/   r   r"   r"   r#   r   0
  s    z,TestToDatetimeMisc.test_to_datetime_overflowc                 C   sP   t jdgtd}tjtdd t|d|d W d    n1 sB0    Y  d S )NZ87156549591102612381000001219H5r'   Unknown datetime string formatr[   r$  r^  )r*   r+   r,   r^   r_   r`   r   )r/   r$   invalidr"   r"   r#   test_string_invalid_operation7
  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|rHt||< q.t|||< q.t	
|d }t|| t||d}t|tsJ t||j d S )	Nr;   r<   z1/4/2000r'   r   rm   r   r   )r*   r+   r]   r,   empty	enumerater   r   r	   r   Zarray_to_datetimer-   r  r   r@   r   Zassert_numpy_array_equalrB   )r/   r$   stringsr2   r  r   r1   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 sJ0    Y  t|d|d}t|}t	
|| tjt|d t|d|d W d    n1 s0    Y  d S )Nz
1/100/2000r'   r  r[   r$  r^  re   )r*   r+   r]   r,   r^   r_   r`   r   r   r-   r.   )r/   r$   Z	malformedr   r1   r2   r"   r"   r#   'test_string_na_nat_conversion_malformedQ
  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 ]4}|j| }	t|	rt|j|< qt|	|d|j|< qt	j
||dd |jdksJ t	j
||dd |jdksJ d S )N)r  r  cr6  er;   r=   z1/5/2000r   ry  r   r   rJ   rm   r'   rx  F)Zcheck_names)r   r*   r]   r   r  r  r  r   r   r-   rA   r   )
r/   r$   idxr  Zdseriesr1   Zdresultr2   r  rN   r"   r"   r#   'test_string_na_nat_conversion_with_namea
  s4    



z:TestToDatetimeMisc.test_string_na_nat_conversion_with_namer2  )hmr  r  r"  r1  c                 C   s   t d| d}tg d|d}|j|}|dv r:d}t d| d}t||}|j|kshJ 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   rB   r5  r   r-   r.   )r/   r$   r2  r(   baserB   Z	exp_dtyper2   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  rZ   r   r  r   Tro  rn  )	r   r   r*   r+   r   r   r   r-   r.   )
r/   r$   r0   r2   Zidx1Zidx2Zidx3Zidx4Zidx5Z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 sf0    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-10rI  rx  Tr  r[   F)r   r   r-   r.   r   r  )r/   Zwarning_msgr0   r2   Zres1Zres2r"   r"   r#   "test_dayfirst_warnings_valid_input
  s    
*z5TestToDatetimeMisc.test_dayfirst_warnings_valid_inputc                 C   sN   ddg}t jtdt dd t|dd W d    n1 s@0    Y  d S )Nr  z
03/30/2011zI^time data "03/30/2011" doesn\'t match format "%d/%m/%Y", at position 1. r   r[   Tr  )r^   r_   r`   r   r   )r/   r0   r"   r"   r#   $test_dayfirst_warnings_invalid_input
  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   rq  r   r   Tr3  )r   r2  rE  r   r-   r   )r/   r  r-  r2   objr1   r"   r"   r#   test_to_datetime_dta_tz
  s    
z*TestToDatetimeMisc.test_to_datetime_dta_tzN)1r   r   r   rI  r^   r   r   rK  rU  rW  rZ  rb  rh  ri  rk  rm  r   rp  rr  rt  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#   rH    s   



	






	

"
rH  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_stringrB  rH  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)r/   r  Zexpected_formatZ
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+   r]   )r/   Z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   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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.%frf  c                    sN   t tdddd}| fdd}t| |d}t||d}t|| d S )	Nr5   2   Hr+  r,  c                    s
   |   S r  )strftimer  r  r"   r#   r    rP   zdTestToDatetimeInferFormat.test_to_datetime_infer_datetime_format_consistent_format.<locals>.<lambda>r>   r   )r   r   rS   r   r-   rA   )r/   r$   r  rV   Zs_as_dt_stringsZwith_formatZwithout_formatr"   r  r#   8test_to_datetime_infer_datetime_format_consistent_format
  s
    zRTestToDatetimeInferFormat.test_to_datetime_infer_datetime_format_consistent_formatc                 C   s`   g d}t t|}dt d}tjt|d t||d W d    n1 sR0    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   r[   r   )r   r*   r+   r   r^   r_   r`   r   )r/   r$   r}   rV   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-01rI  r'   )r   r*   r+   r   r-   rA   )r/   r$   r}   rV   r1   r2   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 )Nr  01/03/2011 00:00:00r'   r   r  
2011-01-03rI  	r   r*   r+   r]   r,   r   r   r-   rA   rh   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 )
Nr  z01/02/2011 00:00:00r  r'   r   r  z
2011-01-02r  rI  r  rh   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   rE  r-   rA   )r/   Ztz_namer   rV   r1   r   r2   r"   r"   r#   "test_infer_datetime_format_tz_nameC  s
    z<TestToDatetimeInferFormat.test_infer_datetime_format_tz_namez
ts,zero_tz))r  Z)r  r   )2019-02-02 08:07:13.012345r  )r  r   c                 C   sJ   t || g}t|}|dkr$tjnd }t t||dg}t|| d S )Nr  r   )r   r   r   r   r   r-   rA   )r/   r`  Zzero_tzrV   r1   r   r2   r"   r"   r#   "test_infer_datetime_format_zero_tzO  s
    z<TestToDatetimeInferFormat.test_infer_datetime_format_zero_tzr?   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-03r>   )r   r   r-   rA   r   )r/   r$   r?   rV   r2   r"   r"   r#   %test_to_datetime_iso8601_noleading_0s`  s    z?TestToDatetimeInferFormat.test_to_datetime_iso8601_noleading_0sc                 C   s@   t jtdd tdgdd W d    n1 s20    Y  d S )Nz2The argument 'infer_datetime_format' is deprecatedr[   z
10-10-2000T)Zinfer_datetime_format)r-   r   r  r   r#  r"   r"   r#   .test_parse_dates_infer_datetime_format_warningm  s
    zHTestToDatetimeInferFormat.test_parse_dates_infer_datetime_format_warning)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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 )TestDaysInMonthr[  
2015-02-29Nr   z
2015-02-32z
2015-04-31c                 C   s   t t|d||dsJ d S )Nrl   rg   r?   r$   )r   r   )r/   r$   rF   r?   r"   r"   r#   test_day_not_in_month_coercey  s    
z,TestDaysInMonth.test_day_not_in_month_coercec                 C   sD   d}t jt|d tdd|d W d    n1 s60    Y  d S )Nz8day is out of range for month: 2015-02-29, at position 0r[   r  r$  r^  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   sB   t jt|d  t|d||d W d    n1 s40    Y  d S )Nr[   r$  r  r  )r/   r$   rF   r?   r   r"   r"   r#   !test_day_not_in_month_raise_value  s    'z1TestDaysInMonth.test_day_not_in_month_raise_valuezexpected, formatc                 C   s    t |d||d}||ksJ d S )Nre   r  r   )r/   r$   r2   r?   r1   r"   r"   r#   test_day_not_in_month_ignore  s    
z,TestDaysInMonth.test_day_not_in_month_ignore)r   r   r   r^   r   r   r  r  r   r  r  r"   r"   r"   r#   r  v  sh   	




%
	r  c                8   @   s  e Zd Zejd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g.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, expectedr  i  r   Z2Q2005i  r   Z2Q05Z2005Q1Z05Q1Z2011Q3r  Z11Q3Z3Q2011Z3Q11Z2000Q4r   r   Z00Q4Z4Q2000Z4Q00Z2000q4z2000-Q4z00-Q4z4Q-2000z4Q-00Z00q4Z2005z2005-11r  z2005 11z11-2005z11 2005Z200511r   rJ   Z20051109	   z20051109 10:15r:  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-06ru  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sJ q||	|
||fD ]}tt	|g}t
|| q|st	|}||ksJ t|dd|d}||ksJ d S )NT)	yearfirstr'   )r  r$   Sr   )r,  r+  r  )r   parse_datetime_string_with_resor   r*   r+   r,   r   r   r   r   r-   r.   r   )r/   r  r2   r$   r  r  _r  result3result4Zresult6Zresult8Zresult9r   r   result5Zresult7r"   r"   r#   test_parsers  s,    8
z(TestDatetimeParsingWrappers.test_parsersc                 C   s0   t ttgdd}t||g|d}t|| d S )NrI  r'   r   )r   r   r   r-   r.   )r/   r$   Zunique_nulls_fixtureZunique_nulls_fixture2r2   r1   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 s8J |tu sDJ |tu sPJ |tu s\J d S )Nr   r   )r   r  r   r   r   r   )r/   r  r  r  r  r  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\}}|sJ|sJt|}	|	|ksJJ t||||d}
t|g||dd }||kszJ |
|ksJ ||ksJ d S )N)ro  r  )ro  r  r$   r   )r	   r   r  r   r   r   )r/   r$   r  ro  r  r2   Zdateutil_resultr  r  r  r  r  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sJJ ||ksVJ ||ksbJ ||ksnJ |	|kszJ d S )Nr   )r	   r   r  r   r   r   )
r/   r  Zexp_defZexp_nowr  r  r  r  r  r  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s4J |t|ksDJ d S )Nz2013-01-01 00:00:00r   r   )r   rE  r   repr)r/   r$   Z	dt_stringr   Zdt_string_reprr  Zdt_timer"   r"   r#   .test_parsers_timezone_minute_offsets_roundtrip  s
    zJTestDatetimeParsingWrappers.test_parsers_timezone_minute_offsets_roundtripN)r   r   r   r^   r   r   r   r  r  r  r  r  r   r   r  r"   r"   r"   r#   r    s   5
 
D&
r  )rb  r  r  r"  r1  c                 C   s   | j S )zIDay and some time units.

    * D
    * s
    * ms
    * us
    * ns
    r   r    r"   r"   r#   units  s    
r  c                   C   s   t dS )zTimestamp at 1960-01-01.
1960-01-01rK   r"   r"   r"   r#   
epoch_1960  s    r  c                   C   s   t tdS )NrJ   )r  r  r"   r"   r"   r#   units_from_epochs  s    r  )r6  
pydatetimerJ  str_1960c                 C   sL   |j dv sJ |j dkr| S |j dkr.|  S |j dkr@|  S t| S dS )zxTimestamp at 1960-01-01 in various forms.

    * Timestamp
    * datetime.datetime
    * numpy.datetime64
    * str
    >   r6  r  rJ  r  r6  r  rJ  N)r   r  Zto_datetime64rT   )r  r!   r"   r"   r#   epochs  s    	


r  c                   C   s   t ddd jS )Nr  r   rq  )r   to_julian_daterB   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sDJ d S )Nr   r  r2  originz1970-01-01 00:00:02i ʚ;z2001-09-09 01:46:41rE   )r/   r`  r2   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 )Nrb  julianr  r   r  )r   r   r   r  r-   rA   )r/   r  r1   r2   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   rZ   rb  unixr  z
1970-01-01r  r  r  r   r"   r"   r#   	test_unix  s
    zTestOrigin.test_unixc                 C   sb   t dddd}| dksJ d}tjt|d t dddd W d    n1 sT0    Y  d S )NiR|% r  rb  r  r2  z&1 is Out of Bounds for origin='julian'r[   r   )r   r  r^   r_   r`   )r/   r1   r   r"   r"   r#   test_julian_round_trip  s
    z!TestOrigin.test_julian_round_tripc                 C   sL   |dkrHd}t jt|d t||dd W d    n1 s>0    Y  d S )Nrb  z$unit must be 'D' for origin='julian'r[   r  r  r  )r/   r  r  r   r"   r"   r#   test_invalid_unit  s    zTestOrigin.test_invalid_unitr2  r1  rb  c                 C   sD   d}t jt|d tdd|d W d    n1 s60    Y  d S )Nz(it must be numeric with a unit specifiedr[   z
2005-01-01r  r  r  )r/   r2  r   r"   r"   r#   test_invalid_origin	  s    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   Z	TimedeltarL   r  r  r"   r#   rO     rP   z)TestOrigin.test_epoch.<locals>.<listcomp>r  rn   )r/   r  r  r  r  r2   r1   r"   r  r#   
test_epoch  s
    zTestOrigin.test_epochzorigin, excr  r  z
13-24-1990r   c                 C   s`   d d| dd| ddg}tj||d t|||d W d    n1 sR0    Y  d S )Nr   zorigin z is Out of Boundsz# cannot be converted to a Timestampz,Cannot cast .* to unit='ns' without overflowr[   r  )r   r^   r_   r   )r/   r  excr  r  r   r"   r"   r#   test_invalid_origins  s    


zTestOrigin.test_invalid_originsc              
   C   sN   t jtdd, tddtdddtjdd W d    n1 s@0    Y  d S )Nzmust be tz-naiver[   r   rb  r   r   r  )r^   r_   r`   r   r   r   r   r#  r"   r"   r#   test_invalid_origins_tzinfo,  s    z&TestOrigin.test_invalid_origins_tzinfoc                 C   sB   d}t jt|d tddg W d    n1 s40    Y  d S )NzIUnknown datetime string format, unable to parse: yesterday, at position 1r[   rH  Z	yesterdayr  r  r"   r"   r#   test_incorrect_value_exception1  s    z)TestOrigin.test_incorrect_value_exceptionzformat, warningN)r   N)r   Nc                 C   sB   d}t jt|d td|d W d    n1 s40    Y  d S )NzG^Out of bounds nanosecond timestamp: 2417-10-10 00:00:00, at position 0r[   z2417-10-10 00:00:00rs   r  )r/   r?   r  r   r"   r"   r#   .test_to_datetime_out_of_bounds_with_format_arg9  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sDJ t dddd}td}||ksfJ d S )Nrb  r  r  r  r  r  r  rE   )r/   rF   r  Zexpected_strr1   r2   r"   r"   r#   test_processing_orderG  s    z TestOrigin.test_processing_orderzoffset,utc,exp)r  T2019-01-01T00:00:00.000Z)r  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.000r1  )r2  r   r|   )r/   r   r   r   rF   r1   r2   r"   r"   r#   test_arg_tz_ns_unit_  s    
zTestOrigin.test_arg_tz_ns_unit)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    sX   

	
	


	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   rZ   r   r   rJ   ru  r  r  r  r   F)
r   r   r   r   r   rJ   ru  r  r  r  Tc                 C   s    t j|t|dd|ksJ d S )Ngffffff?)check_countunique_share)r  should_cacher  )r/   listlikeZ
do_cachingr"   r"   r#   test_should_cacheq  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   rZ   z-unique_share must be in next bounds: \(0; 1\)c                 C   sJ   dgd }t jt|d t||| W d    n1 s<0    Y  d S )NrJ   r   r[   )r^   r_   AssertionErrorr  r  )r/   r  r  Zerr_messagerF   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  )r/   r  r"   r"   r#   &test_no_slicing_errors_in_should_cache  s    
z6TestShouldCache.test_no_slicing_errors_in_should_cacheN)r   r   r   r^   r   r   r  r  r   r   r  r  r"   r"   r"   r#   r  p  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   rZ   Nl            NZInt64r1  r  z1970-01-01 00:00:00.000000001z1970-01-01 00:00:00.000000002r   z2043-01-25 23:56:49.213693952)r   r5  r:  r   r*   rJ  r-   rA   )rV   Zser_copyr   r2   r"   r"   r#   !test_nullable_integer_to_datetime  s    
	r  r  c                 C   sj   t | trHtjtdd t|| g W d    qf1 s<0    Y  nt|| g}|d tu sfJ d S )Nznot convertible to datetimer[   r   )r@   r   r^   r_   r  r   r   )Znulls_fixturer  r1   r"   r"   r#   test_na_to_datetime  s
    
.r   rg   r#  zargs, format)z
03/24/2016z
03/25/2016r   r8   )
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 )Nrv   r!  r"  rI  r'   )r   r   r   r-   rA   )rg   r  r?   r   r1   r2   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  rl   r  r  r   rI  r'   r$  r   r1   r2   r"   r"   r#   'test_empty_string_datetime_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 )NZ1980ZYSr  FZDTr  r   )nZrandom_statei  r   r   )r   r   r   Zto_framesamplery  Z	to_seriesr5  rX   r   r  r-   rA   )r$   Zcstarttimesr1   r2   r"   r"   r#   +test_to_datetime_monotonic_increasing_index  s    r)  series_lengthr  r   rJ   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    n1 s0    Y  d S )
Nz1446-04-12 00:00:00+00:00z1991-10-20 00:00:00+00:00rl   T)rg   r   re   rc  r[   r$  )r   r   fromisoformatr   r   r   r-   rA   r^   r_   r   )r*  r  r  Z	expected1r  r+  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s8J d S )Nz15/02/2020 02:03:04.123456789z%d/%m/%Y %H:%M:%S.%frs   r   rZ   r:  r   r   r   i  )rp  rq  rr  rs  rt  r!  microsecondZ
nanosecondrE   )r6  Ztimestamp_formatr1   r2   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   rs   r`  r   r$  r"   r"   r#   test_to_datetime_mixed_iso8601  s    r/  c                  C   s,   t ddgdd} tddg}t| | d S )Nz
01/11/2000z12 January 2000r  rs   z
2000-01-11z
2000-01-12r   r$  r"   r"   r#   test_to_datetime_mixed_other  s    r0  r   r?   r  c                 C   sF   d}t jt|d  tdg| |d W d    n1 s80    Y  d S )Nz8Cannot use 'exact' when 'format' is 'mixed' or 'ISO8601'r[   r   )r   r?   r  )r   r?   r   r"   r"   r#   #test_to_datetime_mixed_or_iso_exact$  s    r1  c                   C   sB   t jtdd  tddgdd W d    n1 s40    Y  d S )Nz9Time data 01-01-2000 is not ISO8601 format, at position 1r[   r   
01-01-2000r   rs   r  r"   r"   r"   r#   4test_to_datetime_mixed_not_necessarily_iso8601_raise,  s    r3  )rg   r2   rl   r`  re   r   r2  c                 C   s"   t ddgd| d}t|| d S )Nr   r2  r   rv   r|   )rg   r2   r1   r"   r"   r#   5test_to_datetime_mixed_not_necessarily_iso8601_coerce4  s    	r4  c                  C   s   d} d}t jt|d t| }W d    n1 s40    Y  |t| d d ksVJ t t t| }W d    n1 s~0    Y  |t| d d ksJ t t t| g}W d    n1 s0    Y  t |t| d d g d S )Nz2014 Jan 9 05:15 FAKEzLun-recognized timezone "FAKE". Dropping unrecognized timezones is deprecatedr[   )r-   r   r   r   r   r.   )Zdtstrr   r   r"   r"   r#   #test_ignoring_unknown_tz_deprecatedA  s    &&(r6  c                 C   sL   t d tddg|   dd}t|}tddgdd}t|| d S )Nr0  r   rZ   z	[pyarrow]r'   rI  )r^   r4  r   lowerr   r-   rA   )Zany_numeric_ea_dtyperV   r1   r2   r"   r"   r#   test_from_numeric_arrow_dtypeQ  s
    
r8  c                  C   s4   t ddgdd} ttddgtd}t| | d S )N2020-01-01 00:00+00:00r   r  rs   r   r'   )r   r   r   r,   r-   r.   r$  r"   r"   r#   6test_to_datetime_with_empty_str_utc_false_format_mixedZ  s    r:  c                  C   sF   d} t jt| d  tg ddd W d    n1 s80    Y  d S )Nr   r[   )r9  z2020-01-01 00:00+02:00r   r  rs   r  )r   r"   r"   r#   Btest_to_datetime_with_empty_str_utc_false_offsets_and_format_mixeda  s
    r;  )]__doc__r   collectionsr   r   r   r   r   decimalr   r   Zdateutil.parserr	   Zdateutil.tz.tzr
   numpyr*   r^   r   Zpandas._libsr   Zpandas._libs.tslibsr   r   Zpandas.errorsr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandas.core.dtypes.commonr   Zpandasr   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr-   Zpandas.core.arraysr   Zpandas.core.toolsr   r  Zpandas.core.tools.datetimesr   r   rG  r$   r%   r   r  r  rH  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r+   r  r   r#  r%  r)  r,  r.  r/  r0  r1  r3  r4  r6  r8  r:  r;  r"   r"   r"   r#   <module>   s   ,
   |         e   J   iyL k




 (






	