o
    $j[                     @   s   d dl mZ d dlZd dlZd dlmZmZ d dlm	  m
Z d dlZd dlmZmZmZmZmZmZ d dlmZ dZdddZG d	d
 d
ZG dd dZdS )    ascii_lettersN)SettingWithCopyErrorSettingWithCopyWarning)	DataFrameIndexSeries	Timestamp
date_rangeoption_contextzAA value is trying to be set on a copy of a slice from a DataFramed   c                 C   sF   t jdjtt| dfd}|jdd dd |D }t|dgdS )	N   )size   )Zaxisc                 S   s    g | ]}t |d  |d  qS )r   r   r   ).0x r   p/var/www/html/Deteccion_Ine/venv/lib/python3.10/site-packages/pandas/tests/indexing/test_chaining_and_caching.py
<listcomp>   s     zrandom_text.<locals>.<listcomp>letterscolumns)nprandomdefault_rngZintegerslenr   sortr   )ZnobsZidxsstringsr   r   r   random_text   s   r   c                   @   s>   e Zd Zdd Zejdddgdd Zdd	 Zd
d Z	dS )TestCachingc              	   C   s   t dd \ ttddgd d}d|d< |d  t  d|d jd	< W d    n1 s1w   Y  |  |sGt|d d	 d nt|d d	 d W d    d S W d    d S 1 sdw   Y  d S )
Nchained_assignment   皙@Zaabb        ccr$   g(\?r   )	r   r   r   arangetmraises_chained_assignment_errorilocZ_clear_item_cacheZassert_almost_equal)selfusing_copy_on_writedfr   r   r   ,test_slice_consolidate_invalidate_item_cache$   s   
"z8TestCaching.test_slice_consolidate_invalidate_item_cachedo_refTFc                 C   sr   g d}t ||dd  |d d  tdd}|r |jd  d|jd< |jd dks.J |jd d	ks7J d S )
N)onetwothreefourfivesixseven      abc)r   r<   r   )r8   r<   r%   g      ?)r   r   r'   loc)r+   r/   contr-   r   r   r   test_setitem_cache_updating:   s   *

z'TestCaching.test_setitem_cache_updatingc              	   C   s  t dg ditddd}t dg ditddd}t g dg dd	}td}td}| D ]\}}	|j|||	d
 f |	d  |j|||	d
 f< q1t|| t|d |d  t dg ditddd}| }
| D ]7\}}	||	d
  || |	d  }t	|dkp|p| |||	d
  ||< W d    n1 sw   Y  qs|st|| t|d |d  nt||
 t|d |
d  t dg ditddd}| D ]\}}	|j|||	d
 f  |	d 7  < qt|| t|d |d  d S )NA)X  rA   rA   z5/7/2014z5/9/2014)index)r   r   r   )r@   r@   r@   )r      i,  )CDrD   rE   r   )
r   r
   r	   Ziterrowsr=   r(   assert_frame_equalassert_series_equalcopyr)   )r+   r,   warn_copy_on_writeexpectedoutr-   r5   ZeixZixrowZout_originalvr   r   r   "test_setitem_cache_updating_slicesK   s>   2$z.TestCaching.test_setitem_cache_updating_slicesc                 C   s   t ddgddggddgddgd	}|d }|s|r!d|jvs J nd|jv s(J d
|d< t|dks4J d|jvs;J |d |usCJ t|d dksMJ d S )Nr   r   r7      r:   r;   r@   B)rB   r   r!   r<   )r   Z_item_cacher   )r+   r,   rI   r-   serr   r   r   (test_altering_series_clears_parent_cachex   s   "z4TestCaching.test_altering_series_clears_parent_cacheN)
__name__
__module____qualname__r.   pytestmarkparametrizer?   rN   rR   r   r   r   r   r   #   s    
-r   c                   @   sp  e Zd Zdd Zejjdd Zejjdd Zejjdd Z	ejjd	d
 Z
ejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd Zejjdd  Zd!d" Zd#d$ Zd%d& Zejd'd(ed)g d*igd+d, Zejd-d. Zd/d0 Zd1d2 Z d3d4 Z!d5d6 Z"d7S )8TestChainingc           
      C   s  g d}g d}t dt|i}|jdk}t  d|j|< W d    n1 s*w   Y  |r<t|t d|i n
t|t d|i tjj|gdgd}t |}|jdk}t  d|j|< W d    n1 smw   Y  |rt|t d|i n
t|t d|i t ||d}|	 }|jdk}t  d|j|< W d    n1 sw   Y  |rt|| nt|t ||d t dtj
d	d
dd	gi}t dtg di}t  tj
|d jd< W d    n1 sw   Y  |rt dg di}nt dtj
d	d
dd	gi}| }	t|	| t dtg di}t  tj
|jjd< W d    n	1 s=w   Y  | }	t|	| d S )N)rightleftr[   r[   rZ   r[   timeout)rZ   r[   r[   r[   rZ   r[   noneresponser\   r]   )names)r^   Z	response1r@   barbahfoo)rb   r`   ra   rb   r`   r   )r   r   arrayr^   r(   r)   rF   ZrecZ
fromarraysrH   nanr*   headr@   )
r+   r,   dataZmdatar-   maskZrecarraydf_originalrJ   resultr   r   r   test_setitem_chained_setfault   sX   







z*TestChaining.test_setitem_chained_setfaultc              	   C   s  t dd} tddgddggtdd}ttd	d
d
tddd}| }|jd u s/J t	  d|d d< W d    n1 sDw   Y  t	  d|d d< W d    n1 s^w   Y  |rlt
|| nt
|| W d    d S W d    d S 1 sw   Y  d S )Nr    raiser   r7   ABr   rO   r   int64)r   dtyper@   r   )r   r   listr   r'   reshaperH   _is_copyr(   r)   rF   )r+   r,   rJ   r-   rh   r   r   r   test_detect_chained_assignment   s&   

"z+TestChaining.test_detect_chained_assignmentc              	   C   sn  t ttdddtjtddtjdd}| }|jd u s"J |r`t	
  d|d d< W d    n1 s9w   Y  t	
  d	|d d
< W d    n1 sSw   Y  t	|| d S |rt	
  d|d d< W d    n1 sww   Y  t	
  tj|d d
< W d    d S 1 sw   Y  d S |stjttd" t	
  d|d d< W d    n1 sw   Y  W d    n1 sw   Y  tjttd# t	
  tj|d d
< W d    n1 sw   Y  W d    n1 sw   Y  |d jd u s
J d S d|d d< d	|d d
< t ddgd	dggtdd}|d d|d< t	|| d S )Nr   ro   rp   rO   r@   rP   rl   r@   r   rm   r   matchr7   rn   r   rP   float64)r   r   ranger   rc   r'   ry   rH   rs   r(   r)   rF   rd   rV   raisesr   msgrq   Zastype)r+   using_array_managerr,   rI   r-   rh   rJ   r   r   r   %test_detect_chained_assignment_raises   sR   



"

z2TestChaining.test_detect_chained_assignment_raisesc                 C   s   t ttdddtjtddtjdd}|s|r9t  d|j	d d< W d    d S 1 s2w   Y  d S t
jttd	 d|j	d d< W d    d S 1 sSw   Y  d S )
Nr   ro   ru   rO   rv   rl   r   r@   rw   )r   r   rz   r   rc   r'   ry   r(   r)   r=   rV   r{   r   r|   r+   r,   rI   r-   r   r   r   $test_detect_chained_assignment_fails  s   
""z1TestChaining.test_detect_chained_assignment_failsc                 C   s   t g dttdddd}|jd u sJ |jjd}|s!|r>t  d|| d< W d    d S 1 s7w   Y  d S t	j
ttd	 d|| d< W d    d S 1 sWw   Y  d S )
N)r0   r0   r1   r2   r1   r0   r5   r8   ro   ru   )r:   r<   o*   r<   rw   )r   r   rz   rs   r:   str
startswithr(   r)   rV   r{   r   r|   r+   r,   rI   r-   indexerr   r   r   *test_detect_chained_assignment_doc_example  s   
""z7TestChaining.test_detect_chained_assignment_doc_examplec              	   C   s  t g dg dd}t tg dtdg dd}| }|s@|s@tjttd d|jd d	< W d    n1 s;w   Y  |rdt	
  d|d	 d< W d    n1 sWw   Y  t	|| d S |rt	
  d|d	 d< W d    n1 s{w   Y  t	|| d S |stjttd" t	
  d|d	 d< W d    n1 sw   Y  W d    n1 sw   Y  d|jd
< t	|| d S d|d	 d< t	|| d S )N)o   bbbcccr   r   r7   rv   Zaaar   r   ru   rw   r   r   r@   )r   r@   )r   r   objectrH   rV   r{   r   r|   r=   r(   r)   rF   )r+   r}   r,   rI   rJ   r-   rh   r   r   r   +test_detect_chained_assignment_object_dtype*  s<   



z8TestChaining.test_detect_chained_assignment_object_dtypec                 C   sz   t dddgi}|jd u sJ td}|| t|}|d |d< |d |d< W d    d S 1 s6w   Y  d S )Nr@   r   r   Z__tmp__picklerP   )r   rs   r(   Zensure_cleanZ	to_picklepdZread_pickle)r+   r-   pathdf2r   r   r   -test_detect_chained_assignment_is_copy_pickleM  s   

"z:TestChaining.test_detect_chained_assignment_is_copy_picklec                 C   s   t d}|jg d }|jd usJ |jg d }|jd us J |jdd }|j|  }|jd u s6J |d tj|d< d S )N順 )r   r   r   )r   r   r   rO   c                 S      t | dkS N
   r   r   r   r   r   <lambda>g      zSTestChaining.test_detect_chained_assignment_setting_entire_column.<locals>.<lambda>r   )	r   r*   rs   r   applyr=   rH   r   lower)r+   r-   r   r   r   r   r   4test_detect_chained_assignment_setting_entire_columnY  s   zATestChaining.test_detect_chained_assignment_setting_entire_columnc                 C   sH   t d}|jdd }|j| }|jd usJ |d tj|d< d S )Nr   c                 S   r   r   r   r   r   r   r   r   q  r   zKTestChaining.test_detect_chained_assignment_implicit_take.<locals>.<lambda>r   )r   r   r   r=   rs   r   r   r+   r-   r   r   r   r   ,test_detect_chained_assignment_implicit_takem  s
   
z9TestChaining.test_detect_chained_assignment_implicit_takec                 C   s   |s|r	t d td}|jdd }|j| }|jd us!J |d tj|jd d df< |jd us7J |d tj|d< |jd u sHJ d S )Nz"_is_copy is not always set for CoWr   c                 S   r   r   r   r   r   r   r   r     r   zLTestChaining.test_detect_chained_assignment_implicit_take2.<locals>.<lambda>r   )	rV   skipr   r   r   r=   rs   r   r   r   r   r   r   -test_detect_chained_assignment_implicit_take2w  s   

z:TestChaining.test_detect_chained_assignment_implicit_take2c                 C   s<   t d}|jdd }|j|df tj|j|df< d S )Nr   c                 S   r   r   r   r   r   r   r   r     r   zATestChaining.test_detect_chained_assignment_str.<locals>.<lambda>r   )r   r   r   r=   r   r   r   r   r   r   "test_detect_chained_assignment_str  s   $z/TestChaining.test_detect_chained_assignment_strc                 C   s4   t ddgi }|jd u sJ |d  d7  < d S )Nr:   r   )r   Zdropnars   r+   r-   r   r   r   &test_detect_chained_assignment_is_copy  s   z3TestChaining.test_detect_chained_assignment_is_copyc                 C   sb   t tjdd}|jd d df  }t||jd d df   t||d   d S )Nr   r   rO   r   )	r   r   r   r   standard_normalr*   Zsort_valuesr(   rG   )r+   r-   rQ   r   r   r   &test_detect_chained_assignment_sorting  s   z3TestChaining.test_detect_chained_assignment_sortingc                 C   sj   t g dg dd}t| |d d |d< t| ||d dk }t| |d d |d< t| d S )	N)r:   r:   r:   )rO      	   )column1column2r   r;   r   r   r<   )r   r   r   r   r   r   .test_detect_chained_assignment_false_positives  s   z;TestChaining.test_detect_chained_assignment_false_positivesc              	   C   s6  t tdddgd}d|d< | }|r:t  d|jdd d< W d    n1 s-w   Y  t|| d S |r\t  d|jdd d< W d    d S 1 sUw   Y  d S tj	t
td	. t  d|jdd d< W d    n1 s|w   Y  W d    d S W d    d S 1 sw   Y  d S )
Nr   r   countr   r;   groupr:   r!   rw   )r   r   r'   rH   r(   r)   r*   rF   rV   r{   r   r|   )r+   r,   rI   r-   rh   r   r   r   /test_detect_chained_assignment_undefined_column  s&   

"
"z<TestChaining.test_detect_chained_assignment_undefined_columnc              	   C   s>  t tdddtjddtjdddg dd}| }|s#|rt	  d	|j
d d
< W d    n1 s9w   Y  t	  d	|j
d d< W d    n1 sTw   Y  t|| tj	tfd d	|d d< W d    n1 sww   Y  |rt|| d S |j
d d	ksJ d S tjttd d	|j
d d
< W d    n1 sw   Y  tjttd d	|j
d d< W d    n1 sw   Y  |stjttd+ t	  d	|d d< W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S d	|d d< |j
d d	ksJ d S )NZ20130101r!   )Zperiodsr   ro   ru   r:   r;   r<   de)r@   rP   rD   rE   rb   rE   rD   )Zextra_warnings)r   rD   rw   )r   r
   r   r   r   r   r'   rH   r(   r)   r=   rF   FutureWarningrV   r{   r   r|   )r+   r}   r,   rI   r-   rh   r   r   r   -test_detect_chained_assignment_changing_dtype  sL   



$z:TestChaining.test_detect_chained_assignment_changing_dtypec                 C   s$  t ttdtdddtjdgd}| }t|j}|rGt	
  |dg | |dg |< W d    n1 s:w   Y  t	|| d S |rlt	
  |dg | |dg |< W d    d S 1 sew   Y  d S tjttd |dg | |dg |< W d    d S 1 sw   Y  d S )	NrO   zab..r:   r;   r   r9   r<   rw   )r   rq   rz   r   rd   rH   r   Zisnar<   r(   r)   rF   rV   r{   r   r|   )r+   r,   rI   r-   rh   rg   r   r   r   test_setting_with_copy_bug  s"    

""z'TestChaining.test_setting_with_copy_bugc                 C   s8   t tg dtg dd}|dg }g d|d< d S )Nr9   )r   r   f)r   yr   )ghir   )r   r   )r+   Zdf1r   r   r   r   %test_setting_with_copy_bug_no_warning  s   
z2TestChaining.test_setting_with_copy_bug_no_warningc              	   C   s8  t g dg dd}|s|r-t  d|jd d< W d    d S 1 s&w   Y  d S tdd$ tt d|jd d< W d    n1 sJw   Y  W d    n1 sYw   Y  tdd	/ tjt	t
d
 d|jd d< W d    n1 s}w   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   r   rv   r   r   r@   r    warnrk   rw   )r   r(   r)   r=   r   assert_produces_warningr   rV   r{   r   r|   r   r   r   r   .test_detect_chained_assignment_warnings_errors  s*   

"z;TestChaining.test_detect_chained_assignment_warnings_errorsrhsr7   r   )r   r   r7   rO   c              	   C   s   t tddd}| }|jd d }tddB |sC|sCtt	}||d< |d j
tks3J W d    n1 s=w   Y  n||d< t|| W d    d S W d    d S 1 s`w   Y  d S )N   r!   r7   r    r   r   r   )r   r   r'   rr   rH   r=   r   r(   r   r   filename__file__rF   )r+   r   r,   rI   r-   rh   Zchainedtr   r   r   1test_detect_chained_assignment_warning_stacklevel  s   " z>TestChaining.test_detect_chained_assignment_warning_stacklevelc                 C   s   t dtdg dtdg d}|d jd }|jd }t|| |jd d }t|| |d jd }t|| |d jd }t|| d S )Nr!   r7   rv   r@   r   )r   r@   )r   r   zerosZonesr*   r=   r(   Zassert_numpy_array_equal)r+   r-   rJ   ri   Zresult2Zresult3Zresult4r   r   r   test_chained_getitem_with_lists2  s   &
z,TestChaining.test_chained_getitem_with_listsc                 C   s^   t tdttdtdd}|d  |jd |jd< d|d jv s$J d|d jv s-J d S )	Nr   ZABCDru   r   r@   r   zHello FriendrP   )	r   r   r   r   rq   r   r*   r=   rB   r   r   r   r   test_cache_updatingC  s   z TestChaining.test_cache_updatingc                 C   s   t tjdddg dtdd}d|d< | }|r?tjtd	d
 d|jj	d< W d    n1 s2w   Y  t
|| d S d|jj	d< d|jj	d< t tjdddg dtdd}d|jd< t
|| tg ddd}t
|j| d S )N)r!   r!   ro   ru   r   r!   )r   rB   r   r   z	read-onlyrw   r   r7   r   )r!      )r:   r;   r<   r   r   r   )r7   r   )r   r   r   r   r   name)r   r   r   rz   rH   rV   r{   
ValueErrorr   valuesr(   rF   atr   rG   )r+   r,   r-   Zdf_origrJ   r   r   r   test_cache_updating2O  s0   
z!TestChaining.test_cache_updating2c              	   C   s  t dd | ttddgd d}d|d< dgt| }t  d|d	 jd
< W d    n1 s3w   Y  |j|  t  d|d	 jd
< W d    n1 sSw   Y  |sf|d	 jd
 dkseJ n|d	 jd
 dksqJ W d    d S W d    d S 1 sw   Y  d S )Nr    r!   r"   r#   r%   r&   Tgp=
ף?r$   r   g333333?)r   r   rz   r   r(   r)   r*   )r+   r,   r-   Zckr   r   r   $test_iloc_setitem_chained_assignmentk  s"   


"z1TestChaining.test_iloc_setitem_chained_assignmentc                 C   s~   t dg di}t  d|d jd< W d    n1 sw   Y  t|t dg di t|d tg ddd d S )Nr:   )r         (   rO   r   )r   r(   r)   r=   rF   rG   r   r   r   r   r   'test_getitem_loc_assignment_slice_state  s   
 z4TestChaining.test_getitem_loc_assignment_slice_stateN)#rS   rT   rU   rj   rV   rW   Zarm_slowrt   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rX   r   r   tdZ&skip_array_manager_not_yet_implementedr   r   r   r   r   r   r   r   r   rY      sV    4

+


"


	






+	

rY   )r   )stringr   numpyr   rV   Zpandas.errorsr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsr   Zpandasr   r   r   r   r	   r
   r   Zpandas._testingZ_testingr(   r|   r   r   rY   r   r   r   r   <module>   s     
	j