
    .i 3                         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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_string_dtype)option_context)HAS_PYARROW)	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       xr 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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       Y/var/www/app/trading-bot/venv/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_raisesB   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_completionF   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  ar2   a99a100zdisplay.max_dir_itemsi,  a299a300a419)rangestrr   r5   r   )r   ir   valuesr<   s        r   test_display_max_dir_itemsz,TestDataFrameMisc.test_display_max_dir_itemsY   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_hashablel   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   r5   r   )r   colnamer<   s      r   +test_column_name_contains_unicode_surrogatez=TestDataFrameMisc.test_column_name_contains_unicode_surrogatev   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idxrN   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   rU   r   r   )r   emptyrV   arange)r   r   float_string_framerM   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   r2   )lenr   rI   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   )sumrp   assert_series_equal)r   r   r)   rs   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 r|   )_seriesitemsr   )r   rk   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!   rU   r   )r   r   r@   re   rf   d)r   ri   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   rh   r2   c                 P    |j                   sJ |j                  j                   sJ y r|   )ri   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 dayrg   objectcount)r   )r   r	   r
   r   dtypesvalue_countsr   rV   dtyperp   rx   )r   r<   try   rs   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 }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!   rU      rd   c                      ||       }|J y r|    baser)   ry   s      r   _check_nonez?TestDataFrameMisc.test_inplace_return_self.<locals>._check_none   s    tWF>!>r   c                       ||       }|| u sJ y r|   r   r   s      r   _check_returnzATestDataFrameMisc.test_inplace_return_self.<locals>._check_return   s    tWFT>!>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 )Nre   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   rf   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)   r   s         r   test_inplace_return_selfz*TestDataFrameMisc.test_inplace_return_self   sS    .\U
	"	" 5DIIK# 2DNN3'+ 6DIIK# 7DIIK# 1DIIK# 0diik1% 4diik1% 9DIIK# IIK =DNN3',a0 0affh" 4affh" 9AFFHa 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_cellrp   assert_produces_warningr4   	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!   rU   r   versionr2   r   attrsr   rG   r   r<   ry   s      r   
test_attrszTestDataFrameMisc.test_attrs:  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!   rU   spamhamtagsr2   r   r   s      r   test_attrs_is_deepcopyz(TestDataFrameMisc.test_attrs_is_deepcopyB  s|    aV}%xx2~~"E?3'||rxx'''||F#288F+;;;;r   c                    t        dddgi      }ddd|_        t        dddgi      }|j                  j                         |_        t        ddd	gi      }|j                  j                         |_        t        j                  |||g      j                  |j                  k(  sJ d
di|_        t        j                  |||g      j                  i k(  sJ y )Nr   r!   rU   r   r@   re   r            rf   )r   r   r   r8   concat)r   r[   r\   df3s       r   test_attrs_concatz#TestDataFrameMisc.test_attrs_concatK  s    q!f&!$	q!f&IINN$	q!f&IINN$	yy#sC)//399<<<!H	yy#sC)//2555r   c                 X   t        ddgddgd      }ddd|_        t        ddgddgd	      }|j                  j                         |_        t        j                  ||      j                  |j                  k(  sJ d
di|_        t        j                  ||      j                  i k(  sJ y )Nr@   re   r   r!   )r=   val1r   rU   r   )r=   val2rf   )r   r   r   r8   mergerZ   s      r   test_attrs_mergez"TestDataFrameMisc.test_attrs_mergeX  s    c
QF;<!$	c
QF;<IINN$	xxS!''399444!H	xxS!''2---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 d|j                  |<   |j                  |   dk(  sJ |j                  |      }d|j                  |<   |j                  |   dk(  sJ y )	Nr   r   r!   )r   r   r   )r   Tr   )	r   r   	set_flagsflagsr   rV   may_share_memoryrI   iloc)r   r   r   objr=   ry   s         r   test_set_flagsz TestDataFrameMisc.test_set_flagsc  sN    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Cxx}!!! 7NOCxx}!!!r   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      rU   )r   r&   r'   AttributeError_constructor_expanddimrV   rj   reshape)r   r<   rN   s      r   test_constructor_expanddimz,TestDataFrameMisc.test_constructor_expanddim  s\     [L]]>5 	F%%biim&;&;Aq!&DE	F 	F 	Fs   6A''A0c                 B    t               }t        j                  |       y r|   )r   inspect
getmembersr   s     r   test_inspect_getmembersz)TestDataFrameMisc.test_inspect_getmembers  s    [2r   N)%__name__
__module____qualname__r   r*   r-   r>   rJ   rO   r&   markxfailr   r   rS   r]   rb   rl   rt   rz   r   r   r   parametrizer   r   r   r   r   r   r   r   r   r   r  r  r  r   r   r   r   r      s,   %:/:&%& [[,5M  ((&	)
.
1/
 [[KQC qc"q"g		
1*
B!H:".<6	. [[68KL%" M%"NFr   r   )r   r   r	  r}   numpyrV   r&   pandas._configr   pandas._config.configr   pandas.compatr   pandasr8   r   r   r	   r
   pandas._testing_testingrp   r   r   r   r   <module>r     s;         - 0 %   A Ar   