
    .i
#              
       R   d dl Zd dlZd dlZd dlmZ ej                  j                  dd g dgddggdg gdg dgdd	d
ggdg gg      d        Z
d Zej                  j                  dd dgg dgg dg dg ed dd      g dgd dhg dggg d      d        Zd Zd Zd Zej                  j                  dd g dgg dg dg edd       edd      fg dgg      d        Zd Zd Zej                  j                  dg d      ej                  j                  ddd g      ej                  j                  d!d"d#g      d$                      Zej                  j                  d%g d&      ej                  j                  d'g d&      ej                  j                  d(g d)      d*                      Zd+ Zej                  j                  d(g d,      d-        Zd. Zej                  j                  d/eej6                  ej8                  ej:                  g      d0        Zd1 Zy)2    Nzarg, expected_rows)r               )   r      r      ic                 l    |j                   |   }| j                  |   }t        j                  ||       y N_positional_selectoriloctmassert_frame_equalslice_test_dfslice_test_groupedargexpected_rowsresultexpecteds         `/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/groupby/test_indexing.pytest_intr   
   s4      44S9F!!-0H&(+    c                 v    |j                   ddd   }| j                  g d   }t        j                  ||       y )Nr   r   r   r   r   r   r   r   r   r   r   r   s       r   
test_slicer       s8    44QqU;F!!,/H&(+r   r   r   r   r   r   r   r   r   r   r	   r   )listnegativerangeset)idsc                 l    |j                   |   }| j                  |   }t        j                  ||       y r   r   r   s         r   	test_listr)   %   s4    "  44S9F!!-0H&(+r   c                 p    |j                   d   }| j                  g d   }t        j                  ||       y )Nr!   r"   r   r   s       r   	test_intsr+   <   s3    44X>F!!"45H&(+r   c                 |    |j                   d ddd f   }| j                  g d   }t        j                  ||       y )Nr   r
   r   r   r   r   r   r   r	   r   r   s       r   test_slicesr.   D   s=    44RaRW=F!!"78H&(+r   c                 z    |j                   dddd f   }| j                  g d   }t        j                  ||       y )Nr   r   r
   r-   r   r   s       r   test_mixr0   L   s;    44Q23Y?F!!"78H&(+r   r-   c                     | j                  dd      j                  |   }| j                  |   }t        j                  ||       y )NGroupF)sort)groupbyr   r   r   r   )r   r   r   r   r   s        r   test_as_indexr5   T   sD     ""7"7LLSQF!!-0H&(+r   c                     t        j                  ddgddgddgddgddggdd	g
      } | j                  dd      }|j                  dd }t        j                  ddgddggdd	gddg      }t	        j
                  ||       |j                  d   }t        j                  ddgddgddggdd	gg d      }t	        j
                  ||       y )Nar   r   r   br   r   ABcolumnsFas_indexr<   index)r   r   )r   r   r   )pd	DataFramer4   r   r   r   )dfgroupedr   r   s       r   test_doc_examplesrE   d   s    	
qC8c1XQx#q:S#J
B jjuj-G))!A.F||c1XQx03*QPQFSH&(+))%0F||
qC8c1X&c
)H &(+r   c            
         d } t         j                  j                  d      }d}d}t        j                  d|d      }t        |      D cg c]  }d| 	 }}i }|D ]j  }||j                  d	d
      z
  }	|d |	 D 
cg c]-  }
|
|j                  d	d      dz  |j                  d	d      dz  f/ }}
|j                  d        |||<   l  | |      }|j                  dd      j                  t        dd            }|j                         D ci c]  \  }}||dd  }}} | |      }t        j                  ||       y c c}w c c}
w c c}}w )Nc                     i }| D ]  }| |   D ]  }|d   |d   d|||d   f<    ! t         j                  j                  |d      }d|j                  _        |S )Nr   r   )r9   r:   r   r@   )orient)DateItem)rA   rB   	from_dictr@   names)datarowsdatelevelrC   s        r   _make_df_from_dataz+test_multiindex.<locals>._make_df_from_data|   sx     	HDd H/4QxeAh)GdE!H%&H	H \\##D#9)	r   r   d      20130101D)periodsfreqzitem r      i'  c                     | d   S )Nr    )xs    r   <lambda>z!test_multiindex.<locals>.<lambda>   s
    !A$ r   )keyrI   Fr=   r   )nprandomdefault_rngrA   
date_ranger%   integersr3   r4   nthsliceitemsr   r   )rQ   rngndatesnitemsdatesirf   multiindex_datarO   nitems_for_dateitemlevelsrC   r   valuesslicedr   s                    r   test_multiindexrr   y   sk    ))


"CFFMM*f3?E"'-0QuQC[0E0O ' 3<<2#66 ./
 3<<5)C/a1G#1MN
 
 	' &' 
O	,BZZZ/33E!RLAF5D5J5J5LM\T6dF1RL MFM!&)H&(+% 1

 Ns   E=2E	Er   )r   r      i  r   iimethodheadtail	simulatedTFc           
      p   d}d}t        |      D cg c]  }t        |      D ]  }d| 	  c}}t        |      D cg c]  }t        |      D ]
  }d| d|   c}}d}t        j                  |      }|j                  dd      }	| d	k\  r| n|| z   }
|d
k(  rq|	j                  d |  }|rNt        |
      D cg c](  }t        |      D ]  }||z  |z   ||z  k  r||z  |z    * }}}|j
                  |   }n|	j                  |       }nz|	j                  |  d  }|rWt        |
      D cg c]1  }t        |      D ]!  }||z   |
z
  |z  |z   d	k\  r||z   |
z
  |z  |z   # 3 }}}|j
                  |   }n|	j                  |       }t        j                  ||       y c c}}w c c}}w c c}}w c c}}w )NrR   rs   zgroup z row groupvaluer{   Fr=   r   rv   )
r%   rA   rB   r4   r   r   rv   rw   r   r   )r   ru   rx   n_groupsn_rows_per_groupjgrM   rC   rD   sizer   rk   indicesr   s                  r   test_against_head_and_tailr      s)   
 H #((8"9
5?
>?fQCL


 +,
8_
  QCuQC 
 
		D 
d	Bjj5j1G(3 03 6D--ds3 tx x<!#h1A&AA Hq  G  www'H ||C(H --sde4 tx $q(4/8;a?1D "A%,81<<G  www'H ||C(H&(+W

s   F  F&=-F,/6F2start)Nr   r   
   r   istopstep)Nr   r   c                    d}dg|z  t        t        |            d}t        j                  |      }|j	                  dd      }|j
                  | ||   }|j                  | ||   }t        j                  ||       y )Nrs   zgroup 0rz   r{   Fr=   )	r#   r%   rA   rB   r4   r   r   r   r   )	r   r   r   n_rowsrM   rC   rD   r   r   s	            r   test_against_df_ilocr      s    
 F v%eFm$D 
d	Bjj5j1G))%T/:FwwuT$'H&(+r   c                      t        j                  g dg d      } | j                  d      }|j                  dd }t        j                  ddgd	d
g      }t	        j
                  ||       y )Nr   r   r   r   r   )r7   r7   r7   r8   r8   )r@   r   )rP   r   r   r   r7   r8   )rA   Seriesr4   r   r   assert_series_equal)serrD   r   r   s       r   test_seriesr      s]    
))O+D
ECkkk"G))!A.Fyy!QSz2H68,r   r   c                    t        d      D cg c]	  }dd| g }}|t        d      D cg c]	  }dd| g c}z  }|t        d      D cg c]	  }dd| g c}z  }t        j                  |ddg	      }|j                  dd
      }|j                  d d |    }t        dd|       D cg c]	  }dd| g }}|t        dd|       D cg c]	  }dd| g c}z  }|t        dd|       D cg c]	  }dd| g c}z  }t        dd|       D cg c]  }d|z   	 }}|t        dd|       D cg c]  }d|z   	 c}z  }|t        dd|       D cg c]  }d|z   	 c}z  }t        j                  |ddg|      }t        j                  ||       y c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )Nr   r[   r   yr   zr9   r:   r;   Fr=   r   	   r?   )r%   rA   rB   r4   r   r   r   )r   rk   rM   rC   rD   r   r@   r   s           r   	test_stepr      s    %*!H-qSAaS'N-D-U1X.cQqc7^..DU1X.cQqc7^..D	dS#J	/Bjjuj-G))&D&1F$)!Q$56qSAaS'N6D6U1a%67cQqc7^77DU1a%67cQqc7^77D!!Q-.qQU.E.	U1a./a!e//E	U1a./a!e//E||D3*EBH&(+' ... 777.//s4   FFF-F"F'0F,F10F6F;c            	      H   t        j                  dD  ci c]  } | t        d       c}       }ddg}|j                  |j                  dk        |   D ]H  \  }}t        j                  |j                  t        j                  |             d|j                  vrHJ  y c c} w )NABCr   r9   r:   r   C)	rA   rB   r%   r4   r9   r   assert_index_equalr<   Index)krC   cols_dgs        r   test_columns_on_iterr     s    	U3q%)|3	4B :DBDD1H%d+ %2
bjj"((4.9"**$$$%	 4s   Bfuncc                 (   t        j                  ddgddgddgd      }|j                  d       | g d         j                         }t        j                  g dgg dt        j                  dgd	      
      }t        j                  ||       y )Nr   r   r   G)r9   r:   r   r   )r9   r:   r9   )      ?g      @r   )namer?   )rA   rB   r4   meanr   r   r   )r   rC   r   r   s       r   test_groupby_duplicated_columnsr     s     
QQs	

B ZZ_T/2388:F||	?"((C5s:SH &(+r   c                      t        j                  g dg dg dd      } | j                  ddg      }d	}t        j                  t
        |
      5  |j                  d       d d d        y # 1 sw Y   y xY w)N)a1a2N)b1b2r   )r   r   r   )r9   r:   val)rM   r9   r:   )byz('a2', 'b1'))match)r   r   )rA   rB   r4   pytestraisesKeyError	get_group)rC   grpsmsgs      r   #test_groupby_get_nonexisting_groupsr   )  sh    	##

B ::#s:$D
C	xs	+ %|$% % %s   A--A6) numpyr_   r   pandasrA   pandas._testing_testingr   markparametrizer   r    r%   r)   r+   r.   r0   re   r5   rE   rr   r   r   r   r   r   r#   r   r   arrayr   r   rZ   r   r   <module>r      ss       	
I	
QC	
B	Y	aV	R
,
,, 
Q	'(	q!Q&
Q		  ,,,,, 	
I	'(
a.%D/	*,AB,,,*#,L  DEFF#34tUm41, 5 5 F1,h ";<!:;., / < =,"- 1, 2,0% $"))RXX!FG, H, %r   