
    .i+5                        d Z ddlZddlZddlZddlZddlmZ	 ej                  j                  d      Z G d d      Z G d d      Zej                  j                  d	 ej                   d
d
g       ej                   ddg       ej                   ddg       ej"                   ej$                  dd      gdz         ej&                   ej(                  d      gdz         ej*                   ej,                  d      gdz         ej.                  ddg       ej0                   ej2                  dd
      gdz        ej4                  j7                  ddg      g	d       d        Zd Zd Zd Zej                  j                  d ej@                  ddd      df ej@                  dd      df ej@                  dd d      d fg      d!        Z!d" Z"y)#z1Tests dealing with the NDFrame.allows_duplicates.    NzNot implemented.)reasonc                      e Zd Zej                  j                  dej                   ej                  g       fej                  ddgfej                  i fej                  dddgifg      d        Zej                  j                  d ej                  dg       ej                  dd       ej                  d	ej                          ej                  d	d
       ej                  d      ej"                  g      d        Zej                  j                  dg dddgg      ed               Zd Zd Zej                  j                  dddg      ej                  j                  dddg      ej                  j                  dd ej                  ddgd      g      d                      Zd Zej                  j                  d ej                  dddg       ej                  dddg      gi f ej                  dddg       ej                  dddg      gddif ej                  dddg       ej                  dddg      gd dif ej                  dddgiddg       ej                  dddgiddg      gi f ej                  dddgiddg       ej                  dddgiddg      gddif ej                  dddgiddg       ej                  d!ddgiddg      gd dif ej                  dddgiddg       ej                  ddgddgd!"      gd difg      d#        Zej                  j                  d$ ej4                   ej                  dd%dgiddg      j7                  d&       ej                  d!d%dgiddg      j7                  d&      d       ej4                   ej                  dd%dgiddg      j7                  d&       ej                  d!d%dgiddg      d       ej                  dd%dgiddg       ej                  d!d%dgiddg      dfg      d'        Zed(        Zej                  j                  dddg      ed)               Zy*)+TestPreservesz	cls, data      Ac                      ||      }|j                   j                  du sJ  ||      j                  d      }|j                   j                  du sJ y )NTFallows_duplicate_labels)flagsr   	set_flags)selfclsdataresults       h/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/generic/test_duplicate_labels.pytest_construction_okz"TestPreserves.test_construction_ok   sT     T||33t;;;T$$U$C||33u<<<    funcaaddrenamenameabsc                     t        j                  ddgddg      j                  d      } ||      j                  j                  du sJ y )Nr   r   r   bindexFr
   )pdSeriesr   r   r   )r   r   ss      r   test_preserved_seriesz#TestPreserves.test_preserved_series"   sG     IIq!fS#J/99RW9XAw}}44===r   r   r   r   cr   c                    t        j                  d|      }t        j                  ddgddg      j                  d      }|j                  |      \  }}|j                  j
                  du sJ |j                  j
                  du sJ y )Nr   r   r   r   r   Fr
   )r   r    r   alignr   r   )r   r   otherr!   r   r   s         r   
test_alignzTestPreserves.test_align1   s|     		!5)IIq!fS#J/99RW9Xwwu~1ww..%777ww..%777r   c                    t        j                  ddgddgdddg      j                  d	
      }|j                  dg   j                  j
                  d	u sJ |j                  d d ddgf   j                  j
                  d	u sJ y )Nr   r         r   Br   r   r   Fr
   r   r-   )r   	DataFramer   locr   r   r   dfs     r   test_preserved_framez"TestPreserves.test_preserved_frame;   s    \\AaV4S#JGQQ$) R 
 vvse}""::eCCCvva#sm$**BBeKKKr   c                     t        j                  t              j                  d      }|j	                         j
                  j                  du sJ y )N)dtypeFr
   )r   r    floatr   to_framer   r   )r   sers     r   test_to_framezTestPreserves.test_to_frameB   s>    iie$..u.M||~##;;uDDDr   subframeFTr'   r   c                 x   t        j                  ddgdddg      j                  d      }|r|j                         }t	        |t         j                        r|r|j                         }t        j                  ||      }|j                  j                  du sJ  ||      j                  j                  du sJ y )	Nr   r   r   r   r   )r   r   Fr
   )	r   r    r   r6   
isinstanceoperatormethodcallerr   r   )r   r   r'   r:   r1   s        r   test_binopszTestPreserves.test_binopsF   s     YY1vCSz:DD$) E 
 BeRYY'ENN$E$$T51xx//5888Bx~~55>>>r   c                    t        j                  dddgi      j                  d      }|dg   j                  j                  du sJ |d   j                  j                  du sJ |j
                  d   j                  j                  du sJ |j
                  dg   j                  j                  du sJ |j
                  ddgf   j                  j                  du sJ y )Nr   r   r   Fr
   r   )r   r.   r   r   r   r/   r0   s     r   test_preserve_getitemz#TestPreserves.test_preserve_getitemU   s    \\3A-(2252Q3%y66%???#w}}44===vvay66%???vvqc{  88EAAAvva#h%%==FFFr   zobjs, kwargsr   r$   dignore_indexaxisr-   r   r   c                     |D cg c]  }|j                  d       }}t        j                  |fi |}|j                  j                  du sJ y c c}w )NFr
   )r   r   concatr   r   )r   objskwargsxr   s        r   test_concatzTestPreserves.test_concat]   sV    t EIIqE:II4*6*||33u<<< Js   Azleft, right, expectedr   r
   c                 j    t        j                  ||dd      }|j                  j                  |u sJ y )NT
left_indexright_index)r   merger   r   )r   leftrightexpectedr   s        r   
test_mergezTestPreserves.test_merge   s0    < $$DI||33x???r   c                     t        j                  dg di      j                  d      }|j                  g d      j	                  d      }|j
                  j                  du sJ y )Nr   )r   r   r*   Fr
   )r   r   r   count)r   r.   r   groupbyaggr   r   )r   r1   r   s      r   test_groupbyzTestPreserves.test_groupby   sV     \\3	*+55e5TI&**73||33u<<<r   c                    t        j                  dt        j                  dd      dd      }|r|j                         }|j	                  d      j                         j                  j                  du sJ |j                  d      j                         j                  j                  du sJ |j                  d      j                         j                  j                  du sJ y )	Nr   2000   )periodsr   F)r   r   r   r*   )
r   r    
date_ranger6   rollingmeanr   r   ewm	expanding)r   r:   r1   s      r   test_windowzTestPreserves.test_window   s     YY--3$)	
 Bzz!}!!#))AAUJJJvvay~~%%==FFF||A##%++CCuLLLr   N)__name__
__module____qualname__pytestmarkparametrizer   r    nparrayr.   r   r>   
itemgetterr?   strupperr   r"   not_implementedr(   r2   r8   r@   rB   rL   paramr   rU   rZ   rd    r   r   r   r      s^   [[YY%YYA\\2\\C!Q=)		
== [[H&!H!!%+!H!!(CII6!H!!(F3!H!!%(FF	

>
> [[Wc
&CD8  E8LE [[VeU^4[[Wudm4[[Wq)"))QF*E&FG
? H 5 5
?G [[
 BIIaSz2BIIaSz2  BIIaSz2BIIaSz2  & BIIaSz2BIIaSz2  !BLL#1vsCjA BLL#1vsCjA  !BLL#1vsCjA BLL#1vsCjA  & !BLL#1vsCjA BLL#1vsCjA  !BLL#1vsCjABIIq!fS#JSA ]5	
8r=s8r=
 [[ FLLcAq6]3*=GG,1 H  cAq6]3*=GG,1 H   FLLcAq6]3*=GG,1 H  cAq6]3*= cAq6]3*=cAq6]3*=)	
:@;:@ = = [[WtUm4M  5Mr   r   c                      e Zd Zej                  j                  dej                  ddgedfej                  dddgifej                  ddgddgdfej                  dddgifg      d        Z
ej                  j                  d	 ej                  d
d
ge       ej                  d
d
g       ej                  d
d
g      g      d        Zd Zej                  j                  d ej                  ddg      df ej                  ddg      df ej                   ej                  dddgf      d       ej                  ddgdf      df ej                  d
d
g      df ej                   ej                  d
d
d
gf      d       ej                   ej                  d
d
gd
f      d      g      d        Zd Zd Zy)
TestRaisesz	cls, axesr   )r   r4   r   r   )r   columnsru   c                     |di |}|j                   j                  du sJ d}t        j                  t        j
                  j                  |      5   |di |j                  d       d d d        y # 1 sw Y   y xY w)NTIndex has duplicates.matchFr
   rr   )r   r   rh   raisesr   errorsDuplicateLabelErrorr   )r   r   axesr   msgs        r   test_set_flags_with_duplicatesz)TestRaises.test_set_flags_with_duplicates   st     t||33t;;;%]]29988D 	AK$K!!%!@	A 	A 	As   A66A?r   r   r   ru   c                     d}t        j                  t        j                  j                  |      5  d|j
                  _        d d d        |j
                  j                  du sJ y # 1 sw Y   $xY w)Nrw   rx   FT)rh   rz   r   r{   r|   r   r   )r   r   r~   s      r   +test_setting_allows_duplicate_labels_raisesz6TestRaises.test_setting_allows_duplicate_labels_raises   s\     &]]29988D 	716DJJ.	7 zz11T999	7 	7s   A''A0c                 F   t        j                  dddg      }t        j                  ddgddg      j                  d      }d}t        j                  t         j
                  j                  |	      5  t        j                  ||g       d d d        y # 1 sw Y   y xY w)
Nr   r   r   r   r   Fr
   rw   rx   r   r    r   rh   rz   r{   r|   rH   r   r   r   r~   s       r   test_series_raiseszTestRaises.test_series_raises   s    IIaSz*IIq!fS#J/99RW9X%]]29988D 	IIq!f	 	 	s   6BB zgetter, targetr   Nr/   ilocc                 "   t        j                  ddgddgdddg      j                  d	
      }|rt        ||      }n|}d}t	        j
                  t         j                  j                  |      5   ||       d d d        y # 1 sw Y   y xY w)Nr   r   r*   r+   r,   r   r   r   Fr
   rw   rx   )r   r.   r   getattrrh   rz   r{   r|   )r   gettertargetr1   r~   s        r   test_getitem_raiseszTestRaises.test_getitem_raises  s     \\AaV4S#JGQQ$) R 
 R(FF%]]29988D 	6N	 	 	s   3	BBc                 n   t        j                  dddgd      t        j                  dddgd      g}|D cg c]  }|j                  d       }}d}t        j                  t         j
                  j                  |	      5  t        j                  |d
       d d d        y c c}w # 1 sw Y   y xY w)Nr   r   r   rF   r   Fr
   rw   rx   )rE   r   )r   rI   rK   r~   s       r   test_concat_raiseszTestRaises.test_concat_raises  s    IIa1vC0IIa1vC0
 EIIqE:II%]]29988D 	$IId#	$ 	$ J	$ 	$s   B&B++B4c                 V   t        j                  dg dig d      j                  d      }t        j                  dg dig d      }d	}t        j                  t         j
                  j                  |
      5  t        j                  ||dd       d d d        y # 1 sw Y   y xY w)Nr   )r   r   r   r#   r   Fr
   r-   )r   r   r   rw   rx   TrN   )r   r.   r   rh   rz   r{   r|   rQ   r   s       r   test_merge_raiseszTestRaises.test_merge_raises)  s    LL#y)AKK$) L 
 LL#y)A%]]29988D 	>HHQd=	> 	> 	>s   <BB()re   rf   rg   rh   ri   rj   r   r    r5   r.   r   r   r   r>   rm   rq   r   r   r   rr   r   r   rt   rt      s   [[YY3*u=>\\Gc3Z01\\c3ZS#JGH\\ISz23		
AA [[BIIQF%0BLL1v&BLL!Q(	
:: [[ X  #s,d3 X  #s,e4FLL,,,cC:->?G X  3*c!23U; X  !Q(&1FLL,,,a!Q[96BFLL,,,q!fa[96B
	
$>r   rt   idxr   r   g?r\   Dr   1D)r   r   c                 ,    t        |       j                  S N)typere   rK   s    r   <lambda>r   @  s    $q'"" r   )idsc                    d}t        j                  t        j                  j                  |      5  t        j
                  d|       j                  d       d d d        t        j                  t        j                  j                  |      5  t        j                  dddgi|       j                  d       d d d        t        j                  t        j                  j                  |      5  t        j                  ddgg| 	      j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   y xY w)
Nrw   rx   r   r   Fr
   r   r   r   )rh   rz   r   r{   r|   r    r   r.   )r   r~   s     r   test_raises_basicr   3  s	     "C	ryy44C	@ I
		!3))%)HI 
ryy44C	@ X
cAq6]#.88QV8WX 
ryy44C	@ U
q!fXs+55e5TU UI IX XU Us#   (D(,D44+E (D14D= E	c                      t        j                  g d      } | j                         }t        j                  dddgddggit        j                  ddgd	
            }t	        j
                  ||       y )Nr   r   r   r   r$   	positionsr   r   r   r*   r   r   labelr;   r   )r   Index_format_duplicate_messager.   tmassert_frame_equalr   r   rT   s      r   $test_format_duplicate_labels_messager   N  se    
((,
-C**,F||	1v1v&'rxxc
/QH &(+r   c                     t         j                  j                  dgg dg      } | j                         }t        j                  dddgddggit         j                  j                  dgdd	gg      
      }t        j                  ||       y )Nr   r   r   r   r   r   r*   r   r   r   )r   
MultiIndexfrom_productr   r.   r   r   r   s      r   *test_format_duplicate_labels_message_multir   W  s~    
--
$
$se-F%G
HC**,F||	1v1v&'mm((3%#s)<=H &(+r   c                      t        j                  dddgi      j                  d      } d}t        j                  t
        |      5  | j                  ddd	d
gd       d d d        y # 1 sw Y   y xY w)Nr   r   r   Fr
   Cannot specifyrx   r   r*   r+   T)allow_duplicates)r   r.   r   rh   rz   
ValueErrorinsert)r1   r~   s     r   test_dataframe_insert_raisesr   a  sf    	sQFm	$	.	.u	.	MB
C	z	- 9
		!S1a&4	89 9 9s   A((A1zmethod, frame_only	set_indexr   T)inplacereset_indexr   c                     | S r   rr   r   s    r   r   r   m  s    1 r   Fc                 r   t        j                  ddgddgd      j                  d      }|d   }d|j                  _        d}t        j                  t        |	      5   | |       d d d        |s-t        j                  t        |	      5   | |       d d d        y y # 1 sw Y   9xY w# 1 sw Y   y xY w)
Nr   r   r   r,   Fr
   r   r   rx   )r   r.   r   r   r   rh   rz   r   )method
frame_onlyr1   r!   r~   s        r   test_inplace_raisesr   h  s     
QF!Q0	1	;	; % 
< 
B 	3A&+AGG#
C	z	- r
]]:S1 	1I	 	  	 	s    	B!	B-!B*-B6c                 P   t        j                  ddg      j                  d      }t        j                  ||       }t        j
                  ||       t        j                  dg i      j                  d      }t        j                  ||       }t        j                  ||       y )Nr   r   Fr
   r   )r   r    r   r   round_trip_pickleassert_series_equalr.   r   )	temp_filer   r   s      r   test_pickler     s    
		1a&##E#BA
Q	*A1a 
c2Y))%)HA
Q	*A!Qr   )#__doc__r>   numpyrk   rh   pandasr   pandas._testing_testingr   ri   xfailrp   r   rt   rj   r   PeriodIndexPeriodDatetimeIndex	TimestampTimedeltaIndex	TimedeltaCategoricalIndexIntervalIndexIntervalr   from_tuplesr   r   r   r   r?   r   r   rr   r   r   <module>r      s   7     ++##+=#>CM CMTU> U>p 	!Q#s#s			&#./!34,",,v./!34<2<<-.23S#J'+"++a+,q01
!!8X"67
 	#  	U	U,,9 			{C	>E			}d	;TB			xd	CUK r   