
    Owg0                         d dl mZ d dlZd dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlZd dlmZmZmZmZ d dlmZ  G d d      Zy)    )deepcopyN)using_pyarrow_string_dtype)option_context)	DataFrameSeries
date_rangetimedelta_rangec            
          e Zd Zd Zd Zd Zd Zd Zd Ze	j                  j                   e       d      d	        Zd
 Zd Zd Zd Zd Zd Zd Zd Ze	j                  j-                  d e        edg       edg       edg i      g      d        Zd Zd Zd Zd Zd Zd Ze	j                  j-                  dg d      d        Zd  Z d! Z!y")#TestDataFrameMiscc                     |d   }|j                   dk(  sJ |j                  d      }|j                   dk(  sJ |j                  d d df   }|j                   dk(  sJ |j                  d d  }|j                   dk(  sJ y )NAB)namepoploc)selffloat_framess2s       R/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/frame/test_api.pytest_getitem_pop_assign_namez.TestDataFrameMisc.test_getitem_pop_assign_name   sy    vv}}OOC vv}}OOAsF#vv}}UU1Xww#~~    c                 D   |}|j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      dk(  sJ |j                  d      |j                  u sJ |j                  d      |j                  u sJ t        j                  t        d      5  |j                  d       d d d        t        j                  t        d	      5  |j                  d
       d d d        t        j                  t        d      5  |j                  d        d d d        t        j                  t        d      5  |j                  d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   WxY w# 1 sw Y   y xY w)Nr      indexrowscolumnszNo axis namedmatch   zNo axis.*foofoozNo axis.*None)_get_axis_number_get_axis_name	_get_axisr   r   pytestraises
ValueError)r   r   fs      r   test_get_axiszTestDataFrameMisc.test_get_axis#   s   !!!$)))!!!$)))!!'*a///!!&)Q...!!),111"g---"i///(G333'7222	*i777{{1~((({{1~***]]:_= 	"q!	" ]]:^< 	$U#	$ ]]:_= 	#T"	# ]]:_= 	%t$	% 	%	" 	"	$ 	$	# 	#	% 	%s0   8G2-G>"H
H2G;>H
HHc                     t        j                  t        d      5  |j                  |v  d d d        y # 1 sw Y   y xY w)Nzunhashable type: 'Index'r   )r%   r&   	TypeErrorr   )r   r   s     r   test_column_contains_raisesz-TestDataFrameMisc.test_column_contains_raises@   s4    ]]9,FG 	/;.	/ 	/ 	/s   4=c                 8   t        t        d      t        d      gt        d            }t        d      D ]  }|t        |      v rJ  t        |j	                  d      t
              sJ t        t        d      t        d      gt        j                  j                  t        t        dd                        }t        d      D ]  }|t        |      v rJ  t        d      D ]  }|t        |      vrJ  t        |j	                  d      t               sJ y )NabcdefghABCDr   r   EFGH)
r   listdir
isinstance__getitem__r   pd
MultiIndexfrom_tupleszip)r   dfkeys      r   test_tab_completionz%TestDataFrameMisc.test_tab_completionD   s    Vd6l3T&\J< 	"C#b'>!>	""..-v666 &\4<(MM--d3vv3F.GH
 < 	"C#b'>!>	"< 	&Cc"g%%%	&"..-y999r   c                    t        d      D cg c]  }dt        |      z    }}t        d      t        d      g}t        ||      }dt        |      v sJ dt        |      vsJ t	        dd      5  t        ||      }dt        |      v sJ d	t        |      vsJ 	 d d d        t	        dd       5  t        ||      }d
t        |      v sJ 	 d d d        y c c}w # 1 sw Y   AxY w# 1 sw Y   y xY w)Ni  ar1   a99a100zdisplay.max_dir_itemsi,  a299a300a419)rangestrr   r4   r   )r   ir   valuesr;   s        r   test_display_max_dir_itemsz,TestDataFrameMisc.test_display_max_dir_itemsW   s    ).s4A3Q<44*eCj)vw/ BSW$$$3S9 	)673BSW$$$R(((	)
 3T: 	%673BSW$$$	% 	% 5	) 	)
	% 	%s   C2,C3C+C(+C4c                     t               }t        dg      }d}t        j                  t        |      5  t	        |       d d d        t        j                  t        |      5  t	        |       d d d        y # 1 sw Y   9xY w# 1 sw Y   y xY w)Nr   zunhashable type: 'DataFrame'r   )r   r%   r&   r+   hash)r   empty_framer;   msgs       r   test_not_hashablez#TestDataFrameMisc.test_not_hashablej   ss    ks^,]]9C0 	H	]]9C0 		 		 		 	s   A8#B8BBzsurrogates not allowed)reasonc                 h    d}t        |g i      }|t        |      vsJ |j                  d   |k(  sJ y )Nu   r   )r   r4   r   )r   colnamer;   s      r   +test_column_name_contains_unicode_surrogatez=TestDataFrameMisc.test_column_name_contains_unicode_surrogatet   s?     }%c"g%%%zz!}'''r   c                 2   t        t        j                  j                  d      j	                  d            }t        t        j                  j                  d      j	                  d            }d|j
                  _        |j
                  j                  J y )Nr    )r      r!   )r   nprandomdefault_rngstandard_normalr   r   )r   df1df2s      r   test_new_empty_indexz&TestDataFrameMisc.test_new_empty_index}   si    		--a0@@HI		--a0@@HI		yy~~%%%r   c                    |j                  d      }||j                  u sJ |j                  d      }||j                  u sJ d}t        j                  t
        |      5  |j                  d       d d d        y # 1 sw Y   y xY w)Nr   r   zAxis must be 0 or 1 \(got 2\)r   r    )_get_agg_axisr   r   r%   r&   r'   )r   r   colsidxrM   s        r   test_get_agg_axisz#TestDataFrameMisc.test_get_agg_axis   s    ((+{*****''*k'''''.]]:S1 	)%%a(	) 	) 	)s    A;;Bc                     t               }|j                  sJ |j                  rJ |j                  rJ t        g dg ddt        j                  d            }|d= |j                  rJ y )N)g      ?g       @g      @r?   bcr   r   rT   r   r   )r   emptyrU   arange)r   r   float_string_framerL   r;   s        r   
test_emptyzTestDataFrameMisc.test_empty   sg    k    $$$$%++++ _?C299UV<XsG88|8r   c                     t        |      t        |j                        k(  sJ |ddg   j                  }|j                  ddg      j                  }t	        j
                  ||       y )Nr   r   r1   )lenr   rH   reindextmassert_almost_equal)r   r   arrexpecteds       r   test_lenzTestDataFrameMisc.test_len   sc    ;3{'8'8#9999 3*%,,&&Sz&:AA
sH-r   c                     |}|j                  d      }|j                  d      }t        j                  ||       |j                  d      }|j                  d      }t        j                  ||       y )Nr   )axisr   r   r   )sumrn   assert_series_equal)r   r   r(   rq   results        r   test_axis_aliasesz#TestDataFrameMisc.test_axis_aliases   sg     55a5=G$
vx055a5=I&
vx0r   c                     t        j                  t        j                        sJ t        j                  t        j                        sJ y N)pydocgetdocr   r   r   )r   s    r   test_class_axisz!TestDataFrameMisc.test_class_axis   s2     ||IOO,,,||I--...r   c                 n    |j                   }|j                         D ]  \  }}|j                  |k(  rJ  y rz   )_seriesitemsr   )r   ri   serieskvs        r   test_series_put_namesz'TestDataFrameMisc.test_series_put_names   s6    #++LLN 	DAq66Q;;	r   c                     t        g d      }|j                  rJ t        dgdg      }|j                  rJ t        ddgddg      j                         }|j                  sJ |j                  j                  sJ y )N)r   r    rT   r   )r   r   r?   rc   rd   d)r   rg   dropnaTr   r;   s     r   test_empty_nonzeroz$TestDataFrameMisc.test_empty_nonzero   sl    y!88|aS1#.88|c3Z#s<CCExxxttzzzr   r;   r   rf   r1   c                 P    |j                   sJ |j                  j                   sJ y rz   )rg   r   r   s     r   test_empty_likez!TestDataFrameMisc.test_empty_like   s     xxxttzzzr   c                    t        t        dd      t        dd      d      }|j                  }|j                  j                         }t        t        j                  d      did      }t        j                  ||       y )	N20130101
   )periodsz1 dayre   objectcount)r   )r   r   r	   r   dtypesvalue_countsr   rU   dtypern   rv   )r   r;   trw   rq   s        r   test_with_datetimelikesz)TestDataFrameMisc.test_with_datetimelikes   sl    
B7$Wb9
 DD&&(288H-r2A
vx0r   c                 ^    t        |      }d|j                  d<   |j                  |      rJ y )Nr   )r   r   )r   r   equals)r   r   cps      r   test_deepcopyzTestDataFrameMisc.test_deepcopy   s0    k"v%%b))))r   c                    t        g dg dg dd      }d }d } ||j                         |       d } ||j                  d      |       d	 } ||j                         |       d
 } ||j                         |       d } ||j                         |       d } ||j                         |       d } ||j                         |       d } ||j                         |       |j                         d   }d } ||j                  d      d   |       d } ||j                         |       d } ||j                         |       d } ||j                         |       y )N)r!   barbazqux)r   r   r   r   )r   r    rT      rb   c                      ||       }|J y rz    )baser(   rw   s      r   _check_fz<TestDataFrameMisc.test_inplace_return_self.<locals>._check_f   s    tWF>!>r   c                 (    | j                  dd      S )Nr?   Tinplace)	set_indexxs    r   <lambda>z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>   s    akk#tk4 r   c                 &    | j                  d      S NTr   reset_indexr   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>   s    ammDm1 r   r?   c                 &    | j                  d      S r   )drop_duplicatesr   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>   s    a'''5 r   c                 (    | j                  dd      S )Nrc   Tr   )sort_valuesr   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>   s    ammCm6 r   c                 &    | j                  d      S r   )
sort_indexr   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>   s    all4l0 r   c                 (    | j                  dd      S Nr   Tr   fillnar   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>      ahhq$h/ r   c                 *    | j                  ddd      S Nr   r   Tr   replacer   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>      aii1di3 r   c                 ,    | j                  ddid      S Nr   r!   Tr   renamer   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>      ahh5z4h8 r   rd   c                 (    | j                  dd      S )NT)r   dropr   r   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>  s    ammDtm< r   c                 (    | j                  dd      S r   r   r   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>  r   r   c                 *    | j                  ddd      S r   r   r   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>  r   r   c                 ,    | j                  ddid      S r   r   r   s    r   r   z<TestDataFrameMisc.test_inplace_return_self.<locals>.<lambda>  r   r   )r   copyr   )r   datar   r(   r   s        r   test_inplace_return_selfz*TestDataFrameMisc.test_inplace_return_self   sN    .\U
	" 5a  2$a( 6a  7a  1a  0a  4a  9a  IIK =$S)1- 01 41 91r   c                 V   t        j                  dd       ddlm} |t        u rd}nd}|j                  |       t        j                  d d	      5   |d
      5  t        |j                  j                  dd             d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NIPythonz6.0.0)
minversionr   )provisionalcompleterz/from pandas import DataFrame; obj = DataFrame()z5from pandas import Series; obj = Series(dtype=object)F)raise_on_extra_warningsignorezobj.r   )r%   importorskipIPython.core.completerr   r   run_cellrn   assert_produces_warningr3   	Completercompletions)r   ipframe_or_seriesr   codes        r   test_tab_complete_warningz+TestDataFrameMisc.test_tab_complete_warning!  s    I':?i'DDJD
D ''eL 	:%h/ :R\\--fa89:	: 	:: :	: 	:s$   	B&BBB	BB(c                     t        dddgi      }|j                  i k(  sJ d|j                  d<   |j                  t              }|j                  ddik(  sJ y )Nr   r    rT   r   versionr1   r   attrsr   rF   r   r;   rw   s      r   
test_attrszTestDataFrameMisc.test_attrs2  sX    aV}%xx2~~3'||	1~---r   c                    t        dddgi      }|j                  i k(  sJ ddh|j                  d<   |j                  t              }|j                  |j                  k(  sJ |j                  d   |j                  d   usJ y )Nr   r    rT   spamhamtagsr1   r   r   s      r   test_attrs_deepcopyz%TestDataFrameMisc.test_attrs_deepcopy:  s|    aV}%xx2~~"E?3'||rxx'''||F#288F+;;;;r   allows_duplicate_labels)TFNc                    t        dddgi      }d}|t        u r|d   }d}|j                  |      }||j                  j                  du sJ |j                  j                  |u sJ ||usJ |j                  j                  du sJ |t        u r,t        j                  |j                  |j                        s4J t        j                  |d   j                  |d   j                        sJ t        j                  |      5  d|j                  |<   d d d        |r|j                  |   dk(  sCJ |j                  |   dk(  sJ t        j                  |      5  d|j                  |<   d d d        |j                  d|      }d	|j                  |<   |j                  |   dk(  sJ y # 1 sw Y   xY w# 1 sw Y   LxY w)
Nr   r   r    )r   r   r   )r   T)r   r   r   )r   r   	set_flagsflagsr   rU   may_share_memoryrH   rn   assert_cow_warningiloc)r   r   r   using_copy_on_writewarn_copy_on_writeobjr<   rw   s           r   test_set_flagsz TestDataFrameMisc.test_set_flagsC  s    q!f&f$c(CC7NO"*<<774???<<77;RRRR &    yy00D888 f$&&szz6==AAA&&s3xs8J8JKKK""#56 	! FKK	!88C=A%%%88C=A%%%&&'9: %#$C % /F  
 Cxx}!!!	! 	!% %s   F*F6*F36F?c                     t               }d}t        j                  t        |      5  |j	                  t        j                  d      j                  ddd             d d d        y # 1 sw Y   y xY w)Nz<'DataFrame' object has no attribute '_constructor_expanddim'r      rT   )r   r%   r&   AttributeError_constructor_expanddimrU   rh   reshaper   r;   rM   s      r   test_constructor_expanddimz,TestDataFrameMisc.test_constructor_expanddimv  s\     [L]]>5 	F%%biim&;&;Aq!&DE	F 	F 	Fs   6A''A0c                     t        j                  d       t               }d}t        j                  t
        |d      5  t        j                  |       d d d        y # 1 sw Y   y xY w)Njinja2zDataFrame._data is deprecatedF)r   check_stacklevel)r%   r   r   rn   r   DeprecationWarninginspect
getmembersr   s      r   test_inspect_getmembersz)TestDataFrameMisc.test_inspect_getmembers  sV    H%[-''cE
 	# r"	# 	# 	#s   AA&N)"__name__
__module____qualname__r   r)   r,   r=   rI   rN   r%   markxfailr   rR   r[   r`   rj   rr   rx   r}   r   r   parametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      s   %:/:&%& [[13<TU( V(&	)
.
1/
 [[KQC qc"q"g		
1*
>@:".< [[68KL0" M0"dF#r   r   )r   r   r   r{   numpyrU   r%   pandas._configr   pandas._config.configr   pandasr7   r   r   r   r	   pandas._testing_testingrn   r   r   r   r   <module>r     s8         5 0   s# s#r   