
    i1                     |    d dl mZ d dlZd dl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  G d d      Z G d d      Zy)    )ascii_lettersN)	DataFrameIndexSeries	Timestamp
date_rangeoption_contextc                   Z    e Zd Zej                  j                  dddg      d        Zd Zy)TestCachingdo_refTFc                     g d}t        ||dd  |d d z   t        j                  d      d      }|r|j                  d    d|j                  d<   |j                  d   dk(  sJ |j                  d   d	k(  sJ y )
N)onetwothreefourfivesixseven      abc)r   r      )r   r           g      ?)r   nparangeloc)selfr   contdfs       l/app/cer_product_mecsu/.venv/lib/python3.12/site-packages/pandas/tests/indexing/test_chaining_and_caching.pytest_setitem_cache_updatingz'TestCaching.test_setitem_cache_updating   s     GTQR48(;"))A,OP FF6N vvvf~$$$vvf~$$$    c                 6   t        dg dit        dd            }t        dg dit        dd            }t        g dg dd	      }t        d      }t        d      }|j                         D ]5  \  }}|j                  |||d
   f   |d   z   |j                  |||d
   f<   7 t        j                  ||       t        j                  |d   |d          t        dg dit        dd            }|j                         }|j                         D ]>  \  }}||d
      || |d   z   }	t        j                         5  |	||d
      || d d d        @ t        j                  ||       t        j                  |d   |d          t        dg dit        dd            }|j                         D ]&  \  }}|j                  |||d
   fxx   |d   z  cc<   ( t        j                  ||       t        j                  |d   |d          y # 1 sw Y   xY w)NA)X  r(   r(   z5/7/2014z5/9/2014)index)r   r   r   )r'   r'   r'   )d      i,  )CDr,   r-   )
r   r   r   iterrowsr   tmassert_frame_equalassert_series_equalcopyraises_chained_assignment_error)
r    expectedoutr"   r   eixixrowout_originalvs
             r#   "test_setitem_cache_updating_slicesz.TestCaching.test_setitem_cache_updating_slices$   s    /"*Z*L
 i(
:z0RS_?CD 
#
#{{} 	OGB),S#c(1B)Cc#h)NCGGCGSX%&	O 	c8,
s3x#7 i(
:z0RSxxz{{} 	+GBCHc#&S1A335 +)*CHc#&+ +	+
 	c<0
s3xc):;i(
:z0RS{{} 	3GBGGCGSX%&#c(2&	3 	c8,
s3x#7+ +s   ?HH	N)__name__
__module____qualname__pytestmarkparametrizer$   r;    r%   r#   r   r      s.    [[Xe}5% 6% #8r%   r   c            	          e Zd Zd Zej
                  j                  d        Zej
                  j                  d        Zej
                  j                  d        Z	ej
                  j                  d        Z
ej
                  j                  d        Zej
                  j                  d        Zej
                  j                  d        Zej
                  j                  d	        Zej
                  j                  d
        Zej
                  j                  d        Zej
                  j                  d        Zd Zd Zd Zej
                  j+                  dd edg di      g      d        Zd Zd Zd Zd Zd Zy)TestChainingc                    g d}t        dt        j                  |      i      }|j                  dk(  }t	        j
                         5  d|j                  |<   d d d        t	        j                  |t        d|i             t        j                  j                  |gdg      }t        |      }|j                  dk(  }t	        j
                         5  d|j                  |<   d d d        t	        j                  |t        d|i             t        ||d      }|j                         }|j                  dk(  }t	        j
                         5  d|j                  |<   d d d        t	        j                  ||       t        dt        j                  dd	d
dgi      }t        dt        j                  g d      i      }t	        j
                         5  t        j                  |d   j                  d<   d d d        t        dg di      }|j                         }t	        j                  ||       t        dt        j                  g d      i      }t	        j
                         5  t        j                  |j                  j                  d<   d d d        |j                         }t	        j                  ||       y # 1 sw Y   exY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   xY w# 1 sw Y   cxY w)N)rightleftrG   rG   rF   rG   timeoutresponserH   none)names)rI   	response1r'   barbahfoo)rO   rM   rN   rO   rM   r   )r   r   arrayrI   r/   r3   r0   rec
fromarraysr2   nanilocheadr'   )r    datar"   maskrecarraydf_originalr4   results           r#   test_setitem_chained_setfaultz*TestChaining.test_setitem_chained_setfaultK   s^   L
BHHTN34{{i'//1 	' &BKK	'
b)Z,>"?@66$$dVJ<$@x {{i'//1 	' &BKK	'
b)Z,>"?@Dt<=ggi{{i'//1 	' &BKK	'
b+. cBFFE5%#GHIRXX&IJKL//1 	% ffBsGLLO	%c#FGH
fh/RXX&IJKL//1 	"66BDDIIaL	"
fh/?	' 	'	' 	'	' 	'	% 	%	" 	"s<   J;KK!K"$(K.;KKK"K+.K7c                    t        dd      5  t        t        j                  d      j	                  dd      t        d      d      }|j                         }t        j                         5  d|d	   d
<   d d d        t        j                         5  d|d	   d<   d d d        t        j                  ||       d d d        y # 1 sw Y   MxY w# 1 sw Y   4xY w# 1 sw Y   y xY w)Nchained_assignmentraise      ABint64)columnsdtyper'   r   r   )
r	   r   r   r   reshapelistr2   r/   r3   r0   r    r"   rY   s      r#   test_detect_chained_assignmentz+TestChaining.test_detect_chained_assignmentr   s    0': 	3		!$$Q*DJgB '')K335  3
 335  3
 !!"k2	3 	3      	3 	3s<   AC,	C5C	CCC
	CC	CC"c           	         t        t        t        d      d      t        j                  t        j
                  dd      t        j                        d      }|j                         }t        j                         5  d|d   d<   d d d        t        j                         5  d	|d   d
<   d d d        t        j                  ||       y # 1 sw Y   ExY w# 1 sw Y   ,xY w)Nr`   rb   rd   r_   r'   Bre   r'   r   rf   r   )r   r   ranger   rP   r   float64r2   r/   r3   r0   ri   s      r#   %test_detect_chained_assignment_raisesz2TestChaining.test_detect_chained_assignment_raises   s     E!HG4XXbii1oRZZ@
 ggi//1 	BsGAJ	//1 	BsGAJ	
b+.		 		 	s   >	C#	CCC c           	      ,   t        t        t        d      d      t        j                  t        j
                  dd      t        j                        d      }t        j                         5  d|j                  d   d<   d d d        y # 1 sw Y   y xY w)	Nr`   rb   rl   r_   rm   re   r   r'   )
r   r   ro   r   rP   r   rp   r/   r3   r   r    r"   s     r#   $test_detect_chained_assignment_failsz1TestChaining.test_detect_chained_assignment_fails   sq     E!HG4XXbii1oRZZ@
 //1 	 BFF1IcN	  	  	 s   .B

Bc                     t        g dt        t        d      d      d      }|j                  j                  j                  d      }t        j                         5  d||   d<   d d d        y # 1 sw Y   y xY w)	N)r   r   r   r   r   r   r   r   rb   rl   )r   r   o*   r   )r   r   ro   r   str
startswithr/   r3   )r    r"   indexers      r#   *test_detect_chained_assignment_doc_examplez7TestChaining.test_detect_chained_assignment_doc_example   sm     HE!HG4
 $$((%%c*//1 	"!BwK	" 	" 	"s   	A00A9c                     t        t        g dt              g dd      }|j                         }t	        j
                         5  d|d   d<   d d d        t	        j                  ||       y # 1 sw Y    xY w)Naaabbbcccrl   r   r`   r   rm   o   r'   r   )r   r   objectr2   r/   r3   r0   ri   s      r#   +test_detect_chained_assignment_object_dtypez8TestChaining.test_detect_chained_assignment_object_dtype   sg    .f=IN
 ggi//1 	BsGAJ	
b+.	 	s   	A..A7c                     t        dddgi      }t        |      }|j                  |       t        j                  |      }|d   |d<   |d   |d<   y )Nr'   r   r`   rn   )r   rx   	to_picklepdread_pickle)r    	temp_filer"   pathdf2s        r#   -test_detect_chained_assignment_is_copy_picklez:TestChaining.test_detect_chained_assignment_is_copy_pickle   sS     aV}%9~
TnnT"s8Cs8Cr%   c                    t         j                  j                  d      j                  t	        t
              d      }|j                  d       |D cg c]  }t
        |d   |d     }}t        |dg      }|j                  j                  d	       }|j                  |df   j                  t        j                        |j                  |df<   y c c}w )
Nr`   )r*   r`   )sizer   )axisr   lettersrc   c                     t        |       dkD  S )N
   )len)xs    r#   <lambda>zATestChaining.test_detect_chained_assignment_str.<locals>.<lambda>   s    SVb[ r%   )r   randomdefault_rngintegersr   r   sortr   r   applyr   rx   lower)r    idxsr   stringsr"   rz   s         r#   "test_detect_chained_assignment_strz/TestChaining.test_detect_chained_assignment_str   s    yy$$Q'00]1C(0S		q	7;<!=1!-<<w4**""#89%'VVGY,>%?%E%Ecii%Pw	!"	 =s   Cc                 l   t        t        j                  j                  d      j	                  d            }|j
                  d d df   j                         }t        j                  ||j
                  d d df   j                                t        j                  ||d   j                                y )Nr`   r   r_   r   )	r   r   r   r   standard_normalrT   sort_valuesr/   r1   )r    r"   sers      r#   &test_detect_chained_assignment_sortingz3TestChaining.test_detect_chained_assignment_sorting   s    ryy,,Q/??HIggadm'')
sBGGAqDM$=$=$?@
sBqE$5$5$78r%   c                     t        g dg dd      }t        |       |d   dz   |d<   t        |       ||d   dk7     }t        |       |d   dz   |d<   t        |       y )	N)r   r   r   )r_      	   )column1column2r   r   r   r   r   )r   rx   rs   s     r#   .test_detect_chained_assignment_false_positivesz;TestChaining.test_detect_chained_assignment_false_positives   sf     ?yIJB9+9B9"#B9+9Br%   c                    t        t        j                  dd      dg      }d|d<   |j                         }t	        j
                         5  d|j                  dd d<   d d d        t	        j                  ||       y # 1 sw Y    xY w)	Nr   r   countr   r   groupr      )r   r   r   r2   r/   r3   rT   r0   ri   s      r#   /test_detect_chained_assignment_undefined_columnz<TestChaining.test_detect_chained_assignment_undefined_column   su     ryyA	:7ggi//1 	($'BGGAaL!	(
b+.	( 	(s   A>>Bc                    t        t        dd      t        j                  j	                  d      j                  d      t        j                  dd      g dd      }|j                         }t        j                         5  d	|j                  d   d
<   d d d        t        j                         5  d	|j                  d   d<   d d d        t        j                  ||       t        j                  t        d      5  t        j                         5  d	|d   d<   d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)N20130101r   )periodsr`   rb   rl   r   r   r   de)r'   rn   r,   r-   rO   r-   r,   zInvalid valuematch)r   r   r   r   r   r   r   r2   r/   r3   r   r0   r?   raises	TypeErrorri   s      r#   -test_detect_chained_assignment_changing_dtypez:TestChaining.test_detect_chained_assignment_changing_dtype   s"    
A6YY**1-==a@YYq0.	
 ggi//1 	#"BFF1IcN	#//1 	#"BFF1IcN	#
b+.]]9O< 	#335 #"3
#	# 	#	# 	#	# 	#
# #	# 	#s<   D-2D9>E	EE-D69EE	
EEc                 x   t        t        t        d            t        d      ddt        j                  dgd      }|j                         }t        j                  |j                        }t        j                         5  |dg   |   |dg   |<   d d d        t        j                  ||       y # 1 sw Y    xY w)Nr_   zab..r   r   r   r   r   )r   rh   ro   r   rS   r2   r   isnar   r/   r3   r0   )r    r"   rY   rW   s       r#   test_setting_with_copy_bugz'TestChaining.test_setting_with_copy_bug  s    uQx.tF|3RVVS:QR
 ggiwwrtt}//1 	. #ioBuIdO	.
b+.	. 	.s    B00B9c                 f    t        t        g d      t        g d      d      }|dg   }g d|d<   y )Nr   )r   r   f)r   yr   )ghir   )r   r   )r    df1r   s      r#   %test_setting_with_copy_bug_no_warningz2TestChaining.test_setting_with_copy_bug_no_warning  s3     f_5F?<STU3%j #Cr%   c                     t        g dg dd      }t        j                         5  d|j                  d   d<   d d d        y # 1 sw Y   y xY w)Nr}   r   rm   r   r   r'   )r   r/   r3   r   rs   s     r#   .test_detect_chained_assignment_warnings_errorsz;TestChaining.test_detect_chained_assignment_warnings_errors  sD    2CD//1 	! BFF1IcN	! 	! 	!s   AArhsr   r   )r   r`   r   r_   c                     t        t        j                  d      j                  dd            }|j	                         }|j
                  d d }||d<   t        j                  ||       y )N   r   r   r`   )r   r   r   rg   r2   r   r/   r0   )r    r   r"   rY   chaineds        r#   1test_detect_chained_assignment_warning_stacklevelz>TestChaining.test_detect_chained_assignment_warning_stacklevel  sV     ryy},,Q23ggi&&!*

b+.r%   c                    t        dt        j                  d      gz  dt        j                  d      gz  d      }|d   j                  d   }|j
                  d   }t        j                  ||       |j                  d   d   }t        j                  ||       |d   j
                  d   }t        j                  ||       |d   j                  d   }t        j                  ||       y )Nr   r   rm   r'   r`   )r`   r'   )r   r   zerosonesrT   r   r/   assert_numpy_array_equal)r    r"   r4   rZ   result2result3result4s          r#   test_chained_getitem_with_listsz,TestChaining.test_chained_getitem_with_lists'  s    
 Q"((1+.Q"''!*5EFGc7<<?
##FH5''!*S/
##GX6S'++a.
##GX6S',,q/
##GX6r%   c                    t        t        j                  d      t        t	        d      t
                    }|d    |j                  d   |j                  d<   d|d   j                  v sJ d|d   j                  v sJ y )	Nr   ABCDrl   r   r'   r   zHello Friendrn   )	r   r   r   r   rh   r   rT   r   r)   rs   s     r#   test_cache_updatingz TestChaining.test_cache_updating7  ss     HHW$v,f5
 	3!#~C...C...r%   c                 H   t        t        j                  dd      g dt        d            }d|d<   |j	                         }t        j                  t        d	
      5  d|j                  j                  d<   d d d        t        j                  ||       y # 1 sw Y    xY w)N)r   r   rb   rl   r   r   )rc   r)   r   r   z	read-onlyr   r   r   )r   r   r   ro   r2   r?   r   
ValueErrorr   valuesr/   r0   )r    r"   df_origs      r#   test_cache_updating2z!TestChaining.test_cache_updating2C  s~    HHV7+-(

 3'')]]:[9 	BDDKKN	
b'*	 	s   BB!c                    t        dd       5  t        t        d      dgdz  d      }d|d<   dgt        |      z  }t	        j
                         5  d|d	   j                  d
<   d d d        |j                  |    t	        j
                         5  d|d	   j                  d
<   d d d        |d	   j                  d
   dk(  sJ 	 d d d        y # 1 sw Y   hxY w# 1 sw Y   6xY w# 1 sw Y   y xY w)Nr]   r   g@)aabbr   ccTgp=
ף?r   r   g333333?)r	   r   ro   r   r/   r3   rT   )r    r"   cks      r#   $test_iloc_setitem_chained_assignmentz1TestChaining.test_iloc_setitem_chained_assignmentP  s    0$7 	+%(3%!)<=BBtH#b'!B335 (#'4a ( GGBK335 (#'4a ( d8==#s***	+ 	+( (( (	+ 	+s<   AC#C$+C#C"C#C	C#C 	C##C,c                 *   t        dg di      }t        j                         5  d|d   j                  d<   d d d        t        j                  |t        dg di             t        j
                  |d   t        g dd             y # 1 sw Y   SxY w)Nr   )r         (   r_   )name)r   r/   r3   r   r0   r1   r   rs   s     r#   'test_getitem_loc_assignment_slice_statez4TestChaining.test_getitem_loc_assignment_slice_statec  sx    \*+//1 	 BsGKKN	 
b)S,,?"@A
r#w|#(FG	  	 s   B		BN)r<   r=   r>   r[   r?   r@   arm_slowrj   rq   rt   r{   r   r   r   r   r   r   r   r   r   r   rA   r   r   r   r   r   r   r   rB   r%   r#   rD   rD   J   s   %0N [[3 3 [[/ / [[
  
  [[" " [[/ / [[  [[Q Q [[9 9 [[  [[/ / [[# #,	/#!
 [[UQ	1l2C(D$EF/ G/7 
/++&Hr%   rD   )stringr   numpyr   r?   pandasr   r   r   r   r   r   r	   pandas._testing_testingr/   r   rD   rB   r%   r#   <module>r      s9          58 58p_H _Hr%   