
    \
qi1                     ~    d dl Z d dlZd dl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 G d d          ZdS )    N)
ArrowDtype	DataFrame
MultiIndexSeriesc                   V   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zej                            dddg          d             Zd Zd Zd Zd Zej                            ddej        g          d             Zd Zej                            d          d             ZdS )TestMultiLevelc                    |}|                     d                                          }|                    |j        d          }|                     d                              d          }t          j        ||           |d                             |j        d          }|d                              d                              d          }t          j        ||d           d S )Nmonth   levelsumAFcheck_names)groupbyr   reindexindex	transformtmassert_frame_equalassert_series_equal)self/multiindex_year_month_day_dataframe_random_dataymd
month_sumsresultexpecteds         |/var/www/html/bestrading.cuttalo.com/services/ml-inference/venv/lib/python3.11/site-packages/pandas/tests/test_multilevel.pytest_reindex_levelz!TestMultiLevel.test_reindex_level   s    =[[))--//
##CIQ#77;;W;--77>>
fh/// C((!(<<s8##'#22<<UCC
vxUCCCCCC    c                 p    |}|j         ddg         }|j        ddg         }t          j        ||           d S )Nr      fooonebarr&   )iloclocr   r   )r    multiindex_dataframe_random_dataframer   	reindexeds        r   test_reindexzTestMultiLevel.test_reindex    sA    0:q!f%I~~>?	
i22222r!   c                    |}|j         d d d         }|                    |          }|j                             |          sJ |j        |         }|j                             |          sJ |j        }|                    |          }|j                            |          sJ |j        d d |f         }|j                            |          sJ d S )N
   columns)r   r   is_r*   equalsTr2   )r   r   r   	new_indexchunkymdTs         r   test_reindex_preserve_levelsz+TestMultiLevel.test_reindex_preserve_levels'   s     >IdddO	I&&{y)))))	"{!!),,,,,uY//}  +++++I&}##I.......r!   c                 6   |}|d         }|j                             d          }|                    |d          }|                    d           }|                    d           }|                    |j                   }t          j        ||d           d S )Nr   r   F)
group_keysc                     | dz  S N    xs    r   <lambda>z7TestMultiLevel.test_groupby_transform.<locals>.<lambda>B   s
    !a% r!   c                     | dz  S r=   r?   r@   s    r   rB   z7TestMultiLevel.test_groupby_transform.<locals>.<lambda>C   s
    q1u r!   r   )r   get_level_valuesr   applyr   r   r   r   )	r   r+   r,   sgroupergroupedappliedr   r   s	            r   test_groupby_transformz%TestMultiLevel.test_groupby_transform:   s    0#J'**1--))G)66--00$$__5500
vxUCCCCCCr!   c                     t          dgdgdggdgdgdggg d          }t          t          j                            d                              d          gg d	|
          }|                    d           d S )Nr%   r(   bazr   )r&   twothreelevelscodesnamesr>      abcd)r2   r   rN   r   )r   r   nprandomdefault_rngr   )r   midxdfs      r   test_groupby_cornerz"TestMultiLevel.test_groupby_cornerG   s    GeWug.3aS/)))
 
 

 Y""1%%,,Q//0(((
 
 
 	


!!!!!r!   c                     |}|d d         j         }|d         |d<   t          |j        t                    sJ |d         |d         k                                    sJ d S )N   )  r      )ra   r   r0   )r5   
isinstancer2   r   all)r   r   r   r]   s       r   .test_setitem_with_expansion_multiindex_columnsz=TestMultiLevel.test_setitem_with_expansion_multiindex_columnsU   sh     >!WYZ.;"*j11111;2j>1668888888r!   c                 V   t          g dt          j        g d                    }t          g dt          j        g d                    }||z
  }|j                            |j                  }|                    |          |                    |          z
  }t          j        ||           |d d d         |d d d         z
  }|j                            |j                  }|                    |          |                    |          z
  }t          j        ||           d S )Nr   r>   r#   ))r   r   )r   r>   Br#   datar   )rS   r`      ))Zr   )rm   r>   rh   )r   r   from_tuplesr   unionr   r   r   )r   rA   yres	exp_indexexps         r   test_alignmentzTestMultiLevel.test_alignment_   s'   *"89W9W9W"X"X
 
 
 *"89W9W9W"X"X
 
 
 !eGMM!'**	ii	""QYYy%9%99
sC((( "g$$B$GMM!'**	ii	""QYYy%9%99
sC(((((r!   c                 (   |}|                     ddg                                          }|j                            d          }|j                            d          }|                     ||g                                          }t	          j        ||           |j        j        |j        j        d d         k    sJ |                     |j        j        d d                                                   }t	          j        ||           d S )Nr   r   r   r>   )r   meanr   rD   r   r   rR   )r   r   r   r   k1k2r   result2s           r   test_groupby_multilevelz&TestMultiLevel.test_groupby_multilevels   s    =Aq6**//11Y''**Y''**;;Bx((--//
fh///|!SY_RaR%88888++CIOBQB$7+88==??
fg.....r!   c                    t          j        g d          }t          t          j                            d                              d          ||          }|                    d          |d<   |                                }d S )N)r$   )r%   rM   r'   )r(   rM   r>   )rS   rS   r   r2   r   )axis)Totals )	r   ro   r   rY   rZ   r[   standard_normalr   _consolidate)r   r   r]   s      r   test_multilevel_consolidatez*TestMultiLevel.test_multilevel_consolidate   s    &LLL
 
 I!!!$$44V<<ESX
 
 
 66q6>><__r!   c                 l   t          g dddggg dg dg          }t          t          j                            d                              d          |	          }t          t          j                            d                              d
          |	          }|d         }|j        d         }|d d         }|j        	                    d          |_        t          j        ||           t          j        ||           t          j        t          d          5  |d          d d d            n# 1 swxY w Y   |j        d         }|                    d          }|d d         }|j        	                    d          |_        t          j        ||           t          j        ||           t          g dddggg dg dg          }t          t          j                            d                              d          |	          }t          t          j                            d                              d
          |	          }|d         }|j        d         }|d d         }|j        	                    d          |_        t          j        ||           t          j        ||           |j        d         }|                    d          }|d d         }|j        	                    d          |_        t          j        ||           t          j        ||           d S )N)r%   r(   r   )r%   rL   r   )r%   quxr   r   r   )r   r   r   r   r>   r>   )r   r   r   r   r   r   )rP   rQ   r>   rl   r   )rl   rS   r   z^\(\('foo', 'bar', 0\), 2\)$)match)r   r>   )r%   r(   )r%   rL   )r%   r   r   )r   r   rY   rZ   r[   r   r   r*   r   	droplevelr   r   pytestraisesKeyErrorxsr   )r   r   seriesr,   r   rz   r   s          r   test_level_with_tuplesz%TestMultiLevel.test_level_with_tuples   sQ   MMMPQSTvV%%%'9'9'9:
 
 

 	--a00@@CC5QQQ")//22BB6JJRWXXX)**./"1":!11!44
vx000
w111]8+JKKK 	) 	)'((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) ,-((,--!9!11!44
fh///
gx000DDDq!fM%%%'9'9'9:
 
 

 	--a00@@CC5QQQ")//22BB6JJRWXXX'*^,"1":!11!44
vx000
w111>*((>**!9!11!44
fh///
gx00000s   #	D88D<?D<c                    |}|                     ddgd          }|j        g d         }t          j        ||           |j                             ddgdd          }t          j        ||j                   |j        ddg         }t          j        ||           |d         j        ddg         }t          j        ||d                    |j        j        d d ddgf         }t          j        ||j                   d S )	Nr%   r   r   r   )r   r   r>   rb      	   r   )r~   r   r   )r   r)   r   r   r5   r*   r   )r   r+   r,   r   r   s        r   $test_reindex_level_partial_selectionz3TestMultiLevel.test_reindex_level_partial_selection   s    0u~Q77:0001
fh///%aqAA
fhj111E5>*
fh///s/
vx}555QQQ./
fhj11111r!   rX   rS   c                    g d}t          dgdgdg|gd          }||j        dk                                 |          }|                                j        }t          dgdgdggg g g gg d          }t          j        ||           d S )N)rU   rV   rW   r   r>   r#   rT   rO   )r   rU   r   firstr   r   r   assert_index_equal)r   rX   r;   r]   gr   r   s          r   +test_empty_frame_groupby_dtypes_consistencyz:TestMultiLevel.test_empty_frame_groupby_dtypes_consistency   s     %__
aSs!A3??@@rtqyM!!*--C!qc?2r2,ooo
 
 
 	fh/////r!   c                     g d}g d}t          j        |ddg          }t          ||          }|                    |j                                                  }t          |          dk    sJ d S )N))60080920061231r   20070331)r   20070630r   )demor   r   r   STK_IDRPT_DaterR   r   r#   )r   ro   r   r   r   r   len)r   idx_tpdtidxrF   r   s         r   test_duplicate_groupby_issuesz,TestMultiLevel.test_duplicate_groupby_issues   s    
 
 
 .--$VHj3IJJJ2S!!!17##))++6{{ar!   c                     ddgg}ddt           j        fdg}t          |t          j        |                    }|j        j        j        }|j        j        j        }t          j	        ||           d S )NrA   r   rU   rV   )rU   rW           r1   )
rY   nanr   r   ro   dtypesrU   rV   r   r   )r   rk   r2   r]   r   r   s         r   test_subsets_multiindex_dtypez,TestMultiLevel.test_subsets_multiindex_dtype   sl    azbf%7tZ%;G%D%DEEE9;=
vx00000r!   c                     dt          j        ddd          fddddt          j        ddd          fdd	ddt          j        ddd          fdd
ddt          j        ddd          fdddi}t          j        |d          }g dg dd}g dt          j        ddd          t          j        ddd          t          j        ddd          t          j        ddd          gg}t          ||          }t	          j        ||           d S )Nr   i  r#   r   r0   )r   ri   rS   r>            r   )orient)r   r>   r#   rS   )r0   r   r   r   )r   r   r   r   rj   )datetimedater   	from_dictr   r   )r   data_dicr   rk   r   r   s         r   test_datetime_object_multiindexz.TestMultiLevel.test_datetime_object_multiindex   s<   dAq))*!",=,=dAq))*!",=,=dAq))*!",=,=dAq))*!",=,=	
 $Xg>>>!\\(8(8(899LLdAq))dAq))dAq))dAq))	
 $e444
fh/////r!   c           	      V   t          dt          j        ddgg dg dgg d                              dd	g          }d
|j        d<   t          dt          j        ddgg dg dddt          j        d
ggg d                              dd	g          }t          j        ||           d S )Nr   Gz?=
ףp=@)r   Gr   r   )r   Dg=
ףp#@gGz%@)pivot_0pivot_1col_1col_2r1   r   r   r   ))r   Fr   r   )r   rY   r   	set_indexatr   r   )r   r]   r   s      r   test_multiindex_with_naz&TestMultiLevel.test_multiindex_with_na  s    bfdD)&&&'''
 =<<
 
 
 )Y	*
+
+ 	 &)!"bfdD)&&&'''c263'	 =<<
 
 
 )Y	*
+
+ 	 	b(+++++r!   naNc                     t          dgdgdgg          }d||df<   t          j        ||         t          dgdg                     d S )Nr   r   ri   r1   r   )r   r   r   )r   r   r]   s      r   $test_multiindex_insert_level_with_naz3TestMultiLevel.test_multiindex_insert_level_with_na$  s[     scUSEN3332s7
bficU&C&C&CDDDDDr!   c                 ^   t          dt          j        dt          j        gdt          j        dt          j        gt          j        dt          j        dgt          j        dt          j        dggt          g d	t          d
          t          j        ddgt          j        ddd          t          j        ddd          ggd dg                    }|                                }||j	        d                  }t          g d	d
t          j        f          }t          j        ||           d S )Nr   r`   r>   rl   r#   rb   rS   r   rT   sub)dtypenamevalue1value2i  r   Dater   r}   r   )r   )r   rY   r   r   objectr   from_productr   reset_indexr2   r   r   )r   r]   r   r   s       r   test_multiindex_dt_with_nanz*TestMultiLevel.test_multiindex_dt_with_nan+  s!   BFArv&BFArv&BFA&BFA&	 ---V%HHH+x(&tR33X5FtRQR5S5ST Vn  
 
 
  ^^BJqM"...eRV_EEE
vx00000r!   z0ignore:Passing a BlockManager:DeprecationWarningc           	         t          j        d          }t          g dg dd                              t	          |                    |                                |                                                    dd          }|                    ddg          }t          t          j
        g dg dgddg          	          }t          j        ||d
d
           d S )Npyarrowr   ri   Crg   )string_columnnumber_columnzfloat[pyarrow]r   r   r   r   F)check_index_typecheck_column_type)r   importorskipr   astyper   
dictionaryint32stringr   r   from_arraysr   r   )r   par]   df_expecteds       r   (test_multiindex_with_pyarrow_categoricalz7TestMultiLevel.test_multiindex_with_pyarrow_categoricalB  s     ++-oo			JJ
 

&!+BMM"((**biikk,R,R!S!S!1 
 
 	 \\?O<==( ))),_o4V  
 
 

 	"#		
 	
 	
 	
 	
 	
r!   )__name__
__module____qualname__r    r.   r9   rJ   r^   re   ru   r{   r   r   r   r   markparametrizer   r   r   r   r   rY   r   r   r   filterwarningsr   r?   r!   r   r   r      s       D D D3 3 3/ / /&D D D" " "9 9 9) ) )(/ / /   .1 .1 .1`2 2 2& [S1c(++0 0 ,+0     1 1 10 0 0,, , ,0 [TD"&>22E E 32E1 1 1. [ RSS
 
 TS
 
 
r!   r   c                       e Zd ZdZd ZdS )
TestSortedz+everything you wanted to test about sortingc                    t          g dg dgg dg dg          }t          dt          t          |                    i|d          }|j        j        du sJ |                                }|j        j        d	u sJ t          dg d
it          j        g d          d          }|j        t          j
        ddddf         d d f         }t          j        ||           d S )Nr   )rW   rV   rU   )r   r   r>   r   r   r>   )r   r>   r   r   r   r>   colint64)r   r   FT)r   rS   r`   r>   ))ri   rU   )ri   rW   )r   rU   )r   rV   ri   r   rU   rW   )r   r   ranger   r   is_monotonic_increasing
sort_indexro   r*   pd
IndexSlicer   r   )r   r   r]   sortedr   r   s         r   test_sort_non_lexsortedz"TestSorted.test_sort_non_lexsortedb  s    __ooo.1C1C1CEWEWEW0X
 
 uSXX/s'JJJx/58888|3t;;;;LLL!(@@@  
 
 
 BM#c'3s7*:;QQQ>?
fh/////r!   N)r   r   r   __doc__r   r?   r!   r   r   r   _  s)        550 0 0 0 0r!   r   )r   numpyrY   r   pandasr   r   r   r   r   pandas._testing_testingr   r   r   r?   r!   r   <module>r      s                              L
 L
 L
 L
 L
 L
 L
 L
^
0 0 0 0 0 0 0 0 0 0r!   