o
    vh                     @  s   d dl mZ d dlmZmZ d dlZd dlZd dlZd dlm	Z	m
Z
 d dlmZ d dlZd dlmZ ejdddd	d
 ZG dd dZG dd deZG dd deZG dd deZG dd deZG dd deZdS )    )annotations)datetime	timedeltaN)IS64is_platform_windows)np_version_gt2Tclass)autousescopec                 #  sz     j }t|j|j|jg} fdd} jj}|js|j	r$d V  d S |D ]}||s7t
d|j d| q&d V  d S )Nc                   s.   | \ j jj}t fdd|D S )Nc                 3  s.    | ]}|j v o |j v o|j v V  qd S Nname.0xdtypeklassmethod a/var/www/html/hyperkenya/venv/lib/python3.10/site-packages/pandas/tests/indexing/test_coercion.py	<genexpr>$   s    
z<check_comprehensiveness.<locals>.has_test.<locals>.<genexpr>)nodesessionitemsany)combo	cls_funcsrequestr   r   has_test!   s
   

z)check_comprehensiveness.<locals>.has_testztest method is not defined: z, )cls	itertoolsproductklassesdtypesr   configoptionlfkeywordAssertionError__name__)r   r!   combosr    optsr   r   r   r   check_comprehensiveness   s   

r.   c                   @  s(   e Zd ZddgZg dZedd ZdS )CoercionBaseindexseries)	objectint64float64
complex128bool
datetime64datetime64tztimedelta64periodc                 C  s   t | r   NotImplementedErrorselfr   r   r   r   F   s   zCoercionBase.methodN)r+   
__module____qualname__r$   r%   propertyr   r   r   r   r   r/   8   s
    r/   c                   @  sH  e Zd ZU dZg Zded< dd Zdd Zej	
dd	efd
efdefgdd Zej	
dd
ejfdejfd	efgdd Zej	
dd
ejfdejfd	efgdd Zej	jdddd Zej	jdddd Zej	jdddd Zej	jdddd Zej	jdddd Zej	jdddd  Zej	jddd!d" Zd#S )$TestSetitemCoercionsetitemz	list[str]r$   c                 C  s>   t ddg}t|j|d d < t ddg}t|| d S )Na   )pdSerieslistvaluestmassert_series_equal)r>   serexpectedr   r   r   0test_setitem_series_no_coercion_from_values_listR   s   zDTestSetitemCoercion.test_setitem_series_no_coercion_from_values_listc                 C  s   |  }d||< tjg d|d}t|| |jj|ksJ |  }d|j|< tjg d|d}t|| |jj|ks?J dS )z-test index's coercion triggered by assign key   )rE            rO   r0   N)copyrF   rG   rJ   rK   r0   r   loc)r>   original_seriesloc_keyexpected_indexexpected_dtypetempexpr   r   r    _assert_setitem_index_conversion[   s   
z4TestSetitemCoercion._assert_setitem_index_conversionzval,exp_dtyper   rO   皙?c              	   C  s   t jg dt jtdtdd}|jjtksJ |tu ra| }d}d}t	j
||d, tjt|d d|d< W d    n1 sBw   Y  W d    d S W d    d S 1 sZw   Y  d S t jtd|g td}| |||| d S )	NrE   rP   rQ   rR   abcdr   rS   z;Series.__setitem__ treating keys as positions is deprecatedz/index 5 is out of bounds for axis 0 with size 4matchrO   )rF   rG   IndexrH   r2   r0   r   
IndexErrorrT   pytestraisesrJ   assert_produces_warningFutureWarningr\   )r>   val	exp_dtypeobjrZ   warn_msgmsg	exp_indexr   r   r   test_setitem_index_objecto   s    
"z-TestSetitemCoercion.test_setitem_index_objectc                 C  sH   t g d}|jjtjksJ t dddd|g}| |||| d S )Nr^   r   rE   rP   rQ   )rF   rG   r0   r   npr3   rc   r\   )r>   ri   rj   rk   rn   r   r   r   test_setitem_index_int64   s   z,TestSetitemCoercion.test_setitem_index_int64gffffff@c                 C  sP   t jg dg dd}|jjtjksJ t dddd|g}| |||| d S )Nr^   )r]    @@ffffff@rS   r]   rr   rs   rt   )rF   rG   r0   r   rp   r4   rc   r\   )r>   ri   rj   r   rk   rn   r   r   r   test_setitem_index_float64   s   z.TestSetitemCoercion.test_setitem_index_float64Test not implementedreasonc                 C     t r   r;   r=   r   r   r   test_setitem_series_period      z.TestSetitemCoercion.test_setitem_series_periodc                 C  ry   r   r;   r=   r   r   r   test_setitem_index_complex128   r{   z1TestSetitemCoercion.test_setitem_index_complex128c                 C  ry   r   r;   r=   r   r   r   test_setitem_index_bool   r{   z+TestSetitemCoercion.test_setitem_index_boolc                 C  ry   r   r;   r=   r   r   r   test_setitem_index_datetime64   r{   z1TestSetitemCoercion.test_setitem_index_datetime64c                 C  ry   r   r;   r=   r   r   r   test_setitem_index_datetime64tz   r{   z3TestSetitemCoercion.test_setitem_index_datetime64tzc                 C  ry   r   r;   r=   r   r   r   test_setitem_index_timedelta64   r{   z2TestSetitemCoercion.test_setitem_index_timedelta64c                 C  ry   r   r;   r=   r   r   r   test_setitem_index_period   r{   z-TestSetitemCoercion.test_setitem_index_periodN)r+   r?   r@   r   r$   __annotations__rN   r\   re   markparametrizer2   rd   ro   rp   r3   r4   rq   ru   xfailrz   r|   r}   r~   r   r   r   r   r   r   r   rB   K   s>   
 	








rB   c                	   @  s  e Zd ZdgZdZdd Zejddde	fdde	fdde	fd	d	e	fgd
d Z
ejddddejfdde	fd	d	e	fgdd Zejddddejfdde	fd	d	e	fgdd Zejjdeddfejddddfgddgdejdedejddddgdd Zdd  Zejdejd!d"d#d!d$fedede	fdde	fd	d	e	fgd%d& Zejjd'd(d)d* Zejjd'd(d+d, Zd-S ).TestInsertIndexCoercionr0   insertc                 C  s2   |  }|d|}t|| |j|ksJ dS )z!test coercion triggered by insertrE   N)rT   r   rJ   assert_index_equalr   r>   originalvaluerM   rY   targetresr   r   r   _assert_insert_conversion   s   z1TestInsertIndexCoercion._assert_insert_conversionz"insert, coerced_val, coerced_dtyperE   r]   Fr   c                 C  sL   t jtdtd}|jtksJ t jd|dddgtd}| |||| d S )Nr_   r`   rD   bcd)rF   rc   rH   r2   r   r   )r>   r   coerced_valcoerced_dtyperk   r[   r   r   r   test_insert_index_object   s   
z0TestInsertIndexCoercion.test_insert_index_object)rE   rE   Nc                 C  sR   |}t jg d|d}|d ur|n|}t jd|dddg|d}| |||| d S )Nr^   r`   rE   rP   rQ   rR   )rF   rc   r   )r>   any_int_numpy_dtyper   r   r   r   rk   r[   r   r   r   test_insert_int_index   s
   z-TestInsertIndexCoercion.test_insert_int_index)rE         ?Nc                 C  sl   |}t jg d|d}|d ur|n|}tr |dkr |dkr tj}t jd|dddg|d}| |||| d S )	N)r          @      @      @r`   float32r]   r   r   r   r   )rF   rc   r   rp   r   r   )r>   float_numpy_dtyper   r   r   r   rk   r[   r   r   r   test_insert_float_index   s   z/TestInsertIndexCoercion.test_insert_float_indexfill_val,exp_dtype
2012-01-01datetime64[ns]
US/Easterntzdatetime64[ns, US/Eastern]r7   r8   idsinsert_value
Asia/Tokyoc           
      C  s  t jg d|jdd}|j|ksJ t jd| dddg|jdd}| |||| |jryt d}|d	|}|	t
d	|}|jt
ksLJ t|| t jdd
d}|d	|}|d	||jj}|j|jksrJ t|| n#t jdd
d}|d	|}|	t
d	|}|jt
ksJ t|| d	}	|d	|	}|	t
d	|	}|d	 |	ksJ |jt
ksJ t|| d S )N)
2011-01-01
2011-01-02
2011-01-03
2011-01-04r   nsr   r   r   r   r   rE   r   )rF   DatetimeIndexr   as_unitr   dater   	Timestampr   astyper2   rJ   r   
tz_convert)
r>   fill_valrj   r   rk   r[   tsresultrM   itemr   r   r   test_insert_index_datetimes   sF   

z3TestInsertIndexCoercion.test_insert_index_datetimesc                 C  s   t g d}|jdksJ t g d}| |t d|d t ddfD ]}|d|}|td|}|jtks?J t	
|| q'd S )N)1 day2 day3 day4 daytimedelta64[ns])r   10 dayr   r   r   r   r   rE   )rF   TimedeltaIndexr   r   	Timedeltar   r   r   r2   rJ   r   )r>   rk   r[   r   r   rM   r   r   r   test_insert_index_timedelta64/  s   z5TestInsertIndexCoercion.test_insert_index_timedelta64z2012-01Mfreq	period[M]c           	      C  s  t jg ddd}|jdksJ t jddd|t jdddt jdddt jdddg}t|t jrLt j|dd}| |||| | |t||| d S |d	|}|t	d	|}t
|| t|t js|d	t|}|t	d	t|}t
|| d S d S )
N)2011-012011-022011-032011-04r   r   r   r   r   r   r   r   )rF   PeriodIndexr   Period
isinstancer   strr   r   r2   rJ   r   r   )	r>   r   r   r   rk   datar[   r   rM   r   r   r   test_insert_index_period?  s(   
z0TestInsertIndexCoercion.test_insert_index_periodrv   rw   c                 C  ry   r   r;   r=   r   r   r   test_insert_index_complex128g  r{   z4TestInsertIndexCoercion.test_insert_index_complex128c                 C  ry   r   r;   r=   r   r   r   test_insert_index_boolk  r{   z.TestInsertIndexCoercion.test_insert_index_boolN)r+   r?   r@   r$   r   r   re   r   r   r2   r   rp   r4   r   r   rF   r   r   r   r   r   r   r   r   r   r   r   r   r      sr    
	

	


*
	
r   c                	   @  s  e Zd ZdZeg dZdd Zdd Zdd Z	e
jd	d
efdefdefdefgdd Ze
jd	d
ejfdejfdejfdefgdd Ze
jdd
ejfdejfdejfdefgdd Ze
jd	d
ejfdejfdejfdefgdd Ze
jd	d
efdefdefdejfgdd Ze
jjd	eddfejdddefgddgdd d! Ze
jjd"d#d$d% Ze
jjd"d#d&d' Ze
jjd"d#d(d) Ze
jjd"d#d*d+ Ze
jd,ejd-d.e d-d.e!d-d/gd0d1 Z"d2d3 Z#d4S )5TestWhereCoercionwhereTFTFc                 C  s2   |  }|||}t|| |j|ksJ dS )z test coercion triggered by whereN)rT   r   rJ   assert_equalr   )r>   r   condrI   rM   rY   r   r   r   r   r   _assert_where_conversiont  s   z*TestWhereCoercion._assert_where_conversionc                   sx    du r|g d}nt  ttjfrtj dd}n| fdddD }||d |d	 |d
 |d g|d}||fS )NT)TFTTrR   periodsc                 3  s    | ]}|  V  qd S r   r   r   r   r   r   r     s    z3TestWhereCoercion._construct_exp.<locals>.<genexpr>)rO            r   rE   rP   rQ   r`   )r   r   rp   r7   rF   
date_range)r>   rk   r   r   rj   rI   r[   r   r   r   _construct_exp}  s   $z TestWhereCoercion._construct_expc                 C  sb   || j }||d ||d |g|d}| ||||| | ||||\}}| ||||| d S )Nr   rP   r`   )_condr   r   )r>   rk   r   r   rj   r   r[   rI   r   r   r   	_run_test  s
   
zTestWhereCoercion._run_testr   rE   r]         ?      ?Tc                 C  s6   |}|t dtd}|jtksJ | |||| d S )Nr_   r`   )rH   r2   r   r   r>   index_or_seriesr   rj   r   rk   r   r   r   test_where_object  s   z#TestWhereCoercion.test_where_objectc                 C  4   |}|g d}|j tjksJ | |||| d S )Nr^   )r   rp   r3   r   r>   r   r   rj   r   r   rk   r   r   r   test_where_int64     z"TestWhereCoercion.test_where_int64zfill_val, exp_dtypec                 C  r   )N)r]   皙@ffffff
@皙@)r   rp   r4   r   r   r   r   r   test_where_float64  r   z$TestWhereCoercion.test_where_float64c                 C  s:   |}|g dt jd}|jt jksJ | |||| d S )N)r          @       @      @      @      @      @r`   )rp   r5   r   r   r   r   r   r   test_where_complex128  s   
z'TestWhereCoercion.test_where_complex128c                 C  s4   |}|g d}|j tjksJ | |||| d S )Nr   )r   rp   bool_r   r   r   r   r   test_where_series_bool  r   z(TestWhereCoercion.test_where_series_boolr   r   r   r   r7   r8   r   c                 C  s   |}|t jddddd }|jdksJ |}|dkr2|| | fD ]
}| |||| q%d S || fD ]
}| |||| q8d S )Nr   rR   Dr   r   r   )rF   r   
_with_freqr   to_pydatetimeto_datetime64r   )r>   r   r   rj   r   rk   fvscalarr   r   r   test_where_datetime64  s   	z'TestWhereCoercion.test_where_datetime64rv   rw   c                 C  ry   r   r;   r=   r   r   r   test_where_index_complex128  r{   z-TestWhereCoercion.test_where_index_complex128c                 C  ry   r   r;   r=   r   r   r   test_where_index_bool  r{   z'TestWhereCoercion.test_where_index_boolc                 C  ry   r   r;   r=   r   r   r   test_where_series_timedelta64  r{   z/TestWhereCoercion.test_where_series_timedelta64c                 C  ry   r   r;   r=   r   r   r   test_where_series_period  r{   z*TestWhereCoercion.test_where_series_periodr   	   daysr   c                 C  s   t jddd}tg d}t d||dg}|||}t|| tdd}t j	|d |||d	 gt
d
}|d |u s@J |||}t|| d S )Nz1 DayrR   r   )TFFTz4 DaysNaTr   r   rQ   r`   rE   )rF   timedelta_rangerp   arrayr   r   rJ   r   r7   rc   r2   )r>   r   tdir   rM   r   dtnatr   r   r   test_where_index_timedelta64  s   z.TestWhereCoercion.test_where_index_timedelta64c           
      C  s.  t jdddd}|d}tg d}|d |jd  }t ||d	 |g}|||}t	|| tj
||jd  td
}|||}t |d |d	 |d g}t	|| t jdd}t j||d	 |gtd
}|||}t	|| t dd}	t j|	|d	 |	gtd
}|||	}t	|| d S )N
2016-01-01rQ   QSr   Q)FTF
   rE   r`   r   rP   rR   r  z
2020-04-21r   )rF   r   	to_periodrp   r  r   r   r   rJ   r   asarrayr2   r   rc   r   )
r>   dtipir   r   rM   r   othertdperr   r   r   test_where_index_period  s&   
z)TestWhereCoercion.test_where_index_periodN)$r+   r?   r@   r   rp   r  r   r   r   r   re   r   r   r2   r   r3   r4   r5   r   r   r   r   r   rF   r   r   r   r   r   r   r   r   r   r9   r  r  r   r   r   r   r   p  sp    		
 
 

	





 
r   c                   @  s  e Zd ZdZejjdddd Zdd Zej	dd	e
fd
e
fde
fde
fgdd Zej	dd	ejfd
ejfdejfde
fgdd Zej	dd	ejfd
ejfdejfde
fgdd Zejj	deddfejddde
fd	e
fde
fgg dddd Zej	dejddddfede
fejddddfd	e
fde
fgdd  Zej	d!d	d
ddejd	d"d#d$ejdddedejd	d%ed&d'g	d(d) Zejjddd*d+ Zejjddd,d- Zejjddd.d/ Zejjddd0d1 Zejjddd2d3 Zej	d!d	d
ddejd	d"d#d$ejdddedejd	d%ed&d4g	d5d6 Zejjddd7d8 Zejjddd9d: Z d;S )<TestFillnaSeriesCoercionfillnarv   rw   c                 C  ry   r   r;   r=   r   r   r   test_has_comprehensive_tests(  r{   z5TestFillnaSeriesCoercion.test_has_comprehensive_testsc                 C  s0   |  }||}t|| |j|ksJ dS )z!test coercion triggered by fillnaN)rT   r  rJ   r   r   r   r   r   r   _assert_fillna_conversion,  s   
z2TestFillnaSeriesCoercion._assert_fillna_conversionzfill_val, fill_dtyperE   r]   r   Tc                 C  sP   |}|dt jddgtd}|jtksJ |d|ddgtd}| |||| d S )NrD   r   r   r`   )rp   nanr2   r   r  r>   r   r   
fill_dtyper   rk   r[   r   r   r   test_fillna_object3  s
   z+TestFillnaSeriesCoercion.test_fillna_objectzfill_val,fill_dtypec                 C  sJ   |}|dt jddg}|jt jksJ |d|ddg}| |||| d S )Nr]   r   r   )rp   r  r   r4   r  r  r   r   r   test_fillna_float64?  s
   z,TestFillnaSeriesCoercion.test_fillna_float64c                 C  sP   |}|dt jddgt jd}|jt jksJ |d|ddg}| |||| d S )Nr   r   r   r`   )rp   r  r5   r   r  r  r   r   r   test_fillna_complex128K  s
   
z/TestFillnaSeriesCoercion.test_fillna_complex128r   r   r   r   r   )r7   r8   r2   r2   r   c                 C  sl   |}|t dt jt dt dg}|jdksJ |t d|t dt dg}| |||| d S )Nr   r   r   r   )rF   r   r  r   r  r  r   r   r   test_fillna_datetime\  s"   z-TestFillnaSeriesCoercion.test_fillna_datetimer   r   c           	      C  s   |}d}|t jd|dt jt jd|dt jd|dg}|jdks#J t|dd d u r.|}n||}|t jd|d|t jd|dt jd|dg}| |||| d S )Nr   r   r   r   r   r   r   )rF   r   r  r   getattrr   r  )	r>   r   r   r  r   r   rk   r   r[   r   r   r   test_fillna_datetime64tz|  s*   
z1TestFillnaSeriesCoercion.test_fillna_datetime64tzr   rP   leftclosedr  r	  r   c                 C  sr   t jdddddtj}t|jt jsJ ||}||d ||d |d |d	 gtd
}t}| 	|||| d S )Nr   g      @rightr$  rE   r   rP   rQ   rR   r`   )
rF   interval_ranger   rp   r  r   r   IntervalDtyper2   r  )r>   r   r   iirk   r[   r  r   r   r   test_fillna_interval     &z-TestFillnaSeriesCoercion.test_fillna_intervalc                 C  ry   r   r;   r=   r   r   r   test_fillna_series_int64  r{   z1TestFillnaSeriesCoercion.test_fillna_series_int64c                 C  ry   r   r;   r=   r   r   r   test_fillna_index_int64  r{   z0TestFillnaSeriesCoercion.test_fillna_index_int64c                 C  ry   r   r;   r=   r   r   r   test_fillna_series_bool  r{   z0TestFillnaSeriesCoercion.test_fillna_series_boolc                 C  ry   r   r;   r=   r   r   r   test_fillna_index_bool  r{   z/TestFillnaSeriesCoercion.test_fillna_index_boolc                 C  ry   r   r;   r=   r   r   r   test_fillna_series_timedelta64  r{   z7TestFillnaSeriesCoercion.test_fillna_series_timedelta64Wc                 C  sr   t jdddddt j}t|jt jsJ ||}||d ||d |d |d gtd	}t}| |||| d S )
Nr	  rR   r   r   rE   r   rP   rQ   r`   )	rF   period_ranger   r  r   r   PeriodDtyper2   r  )r>   r   r   r  rk   r[   r  r   r   r   test_fillna_series_period  r+  z2TestFillnaSeriesCoercion.test_fillna_series_periodc                 C  ry   r   r;   r=   r   r   r   test_fillna_index_timedelta64  r{   z6TestFillnaSeriesCoercion.test_fillna_index_timedelta64c                 C  ry   r   r;   r=   r   r   r   test_fillna_index_period  r{   z1TestFillnaSeriesCoercion.test_fillna_index_periodN)!r+   r?   r@   r   re   r   r   r  r  r   r2   r  rp   r4   r5   r  r  rF   r   r   r"  Intervalr   r   r*  r,  r-  r.  r/  r0  r4  r5  r6  r   r   r   r   r  #  s    

 

	
















r  c                   @  s  e Zd ZU dgZdZi Zded< ddged< dd	ged
< ddged< ddged< ddged< ededged< dD ]Z	de	 dZ
ejde	dejde	dgee
< q<ededged< ejddgdd d! Zejg d"dd#d$ Zejg d"g d%d&d'd( Zejd)d* Zd+d, Zejjd-g d.dd/ejjd0d1d2gdd/d3d4 Zejjd-g d5dd/ejjd0g d5dd/d6d7 Zejjd8d9d:d; Zd<S )=TestReplaceSeriesCoercionr1   replacezdict[str, list]reprD   r   r2   rR   rO   r3   r]   r   r4   r   r   r5   TFr6   r   r   r   )UTCr   zdatetime64[ns, ]r   r   r   r   dict)paramsc                 C     |j S r   paramr>   r   r   r   r   how  s   zTestReplaceSeriesCoercion.how)	r2   r3   r4   r5   r6   r   datetime64[ns, UTC]r   r   c                 C  r?  r   r@  rB  r   r   r   from_key
  s   z"TestReplaceSeriesCoercion.from_key)	r2   r3   r4   r5   r6   r7   r8   r8   r9   )r>  r   c                 C  r?  r   r@  rB  r   r   r   to_key  s   z TestReplaceSeriesCoercion.to_keyc                 C  sP   |dkrt t| j| | j| }|S |dkr&tj| j| | j| d}|S t)z9
        Object we will pass to `Series.replace`
        r=  r1   rS   )r=  zipr:  rF   rG   
ValueError)r>   rC  rE  rF  replacerr   r   r   rI  5  s   z"TestReplaceSeriesCoercion.replacerc                 C  sn  t jddgdd}t j| j| |dd}||}|j|ks J |dr,|dr,d S |dv r2d S |d	kr:|d
v sB|dkr_|dv r_trGt rRt	
d| d|  t j| j| |d|d}nt j| j| |dd}|rv|jdkrv|t}d}	t}
|j|jks|jtks|jjdv r|jjdv rd }
tj|
|	d ||}W d    n1 sw   Y  t|| d S )NrQ   rR   xxxr   yyyr0   r   r   )r   rD  r4   r3   r5   )r3   r4   z32-bit platform buggy: z -> )r0   r   r   string!Downcasting behavior in `replace`iufcra   )rF   rc   rG   r:  r   r   
startswithr   r   re   skipr2   rh   kindrJ   rg   r9  rK   r>   rC  rF  rE  rI  using_infer_stringr0   rk   r[   rm   warnr   r   r   r   test_replace_seriesB  s4   



z-TestReplaceSeriesCoercion.test_replace_seriesrF  )r   r6   r2   r5   r4   r3   )indirectrE  rD  r   c                 C  s   t jddgdd}t j| j| |dd}|j|ksJ t j| j| |dd}|r3|jdkr3|t}n|j|ks:J d}	|jtkrCtnd }
tj	|
|	d	 |
|}W d    n1 s\w   Y  t|| d S )
NrQ   rR   xyzr   rK  rL  rM  rN  ra   )rF   rc   rG   r:  r   r   r2   rh   rJ   rg   r9  rK   rS  r   r   r   test_replace_series_datetime_tzl  s   z9TestReplaceSeriesCoercion.test_replace_series_datetime_tz)r   rD  r   c                 C  s   t jddgdd}t j| j| |dd}|j|ksJ t j| j| |dd}t}t|jt jr?t|jt jr?||j}d }n|j|ksFJ ||krLd }d}	t	j
||	d ||}
W d    n1 sew   Y  t	|
| d S )	NrQ   rR   rX  r   rK  rL  rN  ra   )rF   rc   rG   r:  r   rh   r   DatetimeTZDtyper   rJ   rg   r9  rK   )r>   rC  rF  rE  rI  r0   rk   r[   rU  rm   r   r   r   r   %test_replace_series_datetime_datetime  s$   z?TestReplaceSeriesCoercion.test_replace_series_datetime_datetimerv   rw   c                 C  ry   r   r;   r=   r   r   r   test_replace_series_period  r{   z4TestReplaceSeriesCoercion.test_replace_series_periodN)r+   r?   r@   r$   r   r:  r   rF   r   r   keyr   re   fixturerC  rE  rF  rI  rV  r   r   rY  r[  r   r\  r   r   r   r   r8    sh   
 




*
r8  )
__future__r   r   r   r"   numpyrp   re   pandas.compatr   r   pandas.compat.numpyr   pandasrF   pandas._testing_testingrJ   r^  r.   r/   rB   r   r   r  r8  r   r   r   r   <module>   s(    
g ? 4 N