
    4i1                     p    S SK r S SKrS SKrS SKrS SKJrJrJrJ	r	  S SK
Jr   " S S5      r " S S5      rg)    N)
ArrowDtype	DataFrame
MultiIndexSeriesc                   Z   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS r\R                   R#                  SSS/5      S 5       rS rS rS rS r\R                   R#                  SS\R0                  /5      S 5       rS r\R                   R7                  S5      S 5       rSrg)TestMultiLevel   c                    UnUR                  S5      R                  5       nUR                  UR                  SS9nUR                  SS9R	                  S5      n[
        R                  " XE5        US   R                  UR                  SS9nUS   R                  SS9R	                  S5      n[
        R                  " XESS9  g )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/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/test_multilevel.pytest_reindex_level!TestMultiLevel.test_reindex_level   s    =[[)--/
##CIIQ#7;;W;-77>
f/ C((!(<s8##'#2<<UC
vUC    c                 x    UnUR                   SS/   nUR                  SS/   n[        R                  " XC5        g )Nr      fooonebarr(   )iloclocr   r   )r    multiindex_dataframe_random_dataframer   	reindexeds        r    test_reindexTestMultiLevel.test_reindex    s:    0::q!f%II~~>?	
i2r#   c                    UnUR                   S S S2   nUR                  U5      nUR                   R                  U5      (       d   eUR                  U   nUR                   R	                  U5      (       d   eUR
                  nUR                  US9nUR                  R                  U5      (       d   eUR                  S S 2U4   nUR                  R	                  U5      (       d   eg )N
   columns)r   r   is_r,   equalsTr5   )r   r   r   	new_indexchunkymdTs         r    test_reindex_preserve_levels+TestMultiLevel.test_reindex_preserve_levels'   s     >IIddO	I&{{y))))	"{{!!),,,,uuY/}}  ++++I&}}##I....r#   c                    UnUS   nUR                   R                  S5      nUR                  USS9nUR                  S 5      nUR	                  S 5      nUR                  UR                   5      n[        R                  " XSS9  g )Nr   r   F)
group_keysc                     U S-  $ N    xs    r    <lambda>7TestMultiLevel.test_groupby_transform.<locals>.<lambda>B   s    !a%r#   c                     U S-  $ rA   rC   rD   s    r    rF   rG   C   s    q1ur#   r   )r   get_level_valuesr   applyr   r   r   r   )	r   r-   r.   sgroupergroupedappliedr   r   s	            r    test_groupby_transform%TestMultiLevel.test_groupby_transform:   sv    0#J''**1-))G)6--0$$_50
vUCr#   c                     [        S/S/S//S/S/S/// SQS9n[        [        R                  R	                  S5      R                  S5      // S	QUS
9nUR                  SS9  g )Nr'   r*   bazr   )r(   twothreelevelscodesnamesrB      abcd)r5   r   rT   r   )r   r   nprandomdefault_rngr   )r   midxdfs      r    test_groupby_corner"TestMultiLevel.test_groupby_cornerG   sp    GeWug.3aS/)

 YY""1%,,Q/0(
 	


!r#   c                     UnUS S R                   nUS   US'   [        UR                  [        5      (       d   eUS   US   :H  R	                  5       (       d   eg )N   )  r      )rh   r   r3   )r8   
isinstancer5   r   all)r   r   r   rc   s       r    .test_setitem_with_expansion_multiindex_columns=TestMultiLevel.test_setitem_with_expansion_multiindex_columnsU   s^     >!WYYZ.;"**j1111;2j>1668888r#   c                 .   [        / SQ[        R                  " / SQ5      S9n[        / SQ[        R                  " / SQ5      S9nX-
  nUR                  R	                  UR                  5      nUR                  U5      UR                  U5      -
  n[        R                  " X55        US S S2   US S S2   -
  nUR                  R	                  UR                  5      nUR                  U5      UR                  U5      -
  n[        R                  " X55        g )Nr   rB   r%   ))r   r   )r   rB   Br%   datar   )rY   rg      ))Zr   )ru   rB   rp   )r   r   from_tuplesr   unionr   r   r   )r   rE   yres	exp_indexexps         r    test_alignmentTestMultiLevel.test_alignment_   s    *"8"89W"X
 *"8"89W"X
 eGGMM!''*	ii	"QYYy%99
s( "g$B$GGMM!''*	ii	"QYYy%99
s(r#   c                    UnUR                  SS/S9R                  5       nUR                  R                  S5      nUR                  R                  S5      nUR                  XE/5      R                  5       n[        R
                  " X65        UR                  R                  UR                  R                  S S :X  d   eUR                  UR                  R                  S S S9R                  5       n[        R
                  " X75        g )Nr   r   r   rB   )r   meanr   rI   r   r   rX   )r   r   r   r   k1k2r   result2s           r    test_groupby_multilevel&TestMultiLevel.test_groupby_multilevels   s    =Aq6*//1YY''*YY''*;;x(--/
f/||!!SYY__Ra%8888++CIIOOBQ$7+8==?
f.r#   c                     [         R                  " / SQ5      n[        [        R                  R                  S5      R                  S5      XS9nUR                  SS9US'   UR                  5       ng )N)r&   )r'   rS   r)   )r*   rS   rB   )rY   rY   r   r5   r   )axis)Totals )	r   rw   r   r_   r`   ra   standard_normalr   _consolidate)r   r   rc   s      r    test_multilevel_consolidate*TestMultiLevel.test_multilevel_consolidate   sb    &&L
 II!!!$44V<E
 66q6><__r#   c                    [        / SQSS/// SQ/ SQ/S9n[        [        R                  R	                  S5      R                  S5      US	9n[        [        R                  R	                  S5      R                  S
5      US	9nUS   nUR                  S   nUS S nUR                  R                  S5      Ul        [        R                  " XF5        [        R                  " XV5        [        R                  " [        SS9   US     S S S 5        UR                  S   nUR                  S5      nUS S nUR                  R                  S5      Ul        [        R                   " XF5        [        R                   " XV5        [        / SQSS/// SQ/ SQ/S9n[        [        R                  R	                  S5      R                  S5      US	9n[        [        R                  R	                  S5      R                  S
5      US	9nUS   nUR                  S   nUS S nUR                  R                  S5      Ul        [        R                  " XF5        [        R                  " XV5        UR                  S   nUR                  S5      nUS S nUR                  R                  S5      Ul        [        R                   " XF5        [        R                   " XV5        g ! , (       d  f       GN= f)N)r'   r*   r   )r'   rR   r   )r'   quxr   r   r   )r   r   r   r   rB   rB   )r   r   r   r   r   r   )rV   rW   rB   rt   r   )rt   rY   r   z^\(\('foo', 'bar', 0\), 2\)$)match)r   rB   )r'   r*   )r'   rR   )r'   r   r   )r   r   r_   r`   ra   r   r   r,   r   	droplevelr   r   pytestraisesKeyErrorxsr   )r   r   seriesr.   r   r   r   s          r    test_level_with_tuples%TestMultiLevel.test_level_with_tuples   sj   MPQSTvV%'9:

 		--a0@@C5Q"))//2BB6JRWX)***./"1:!11!4
v0
w1]]8+JK'( L ,-((,-!9!11!4
f/
g0Dq!fM%'9:

 		--a0@@C5Q"))//2BB6JRWX'**^,"1:!11!4
v0
w1>*((>*!9!11!4
f/
g0= LKs   K
K(c                    UnUR                  SS/SS9nUR                  / SQ   n[        R                  " X45        UR                  R                  SS/SSS9n[        R                  " X4R                  5        UR
                  SS/   n[        R                  " X45        US   R
                  SS/   n[        R                  " X4S   5        UR                  R
                  S S 2SS/4   n[        R                  " X4R                  5        g )	Nr'   r   r   r   )r   r   rB   ri      	   r   )r   r   r   )r   r+   r   r   r8   r,   r   )r   r-   r.   r   r   s        r    $test_reindex_level_partial_selection3TestMultiLevel.test_reindex_level_partial_selection   s    0u~Q7::01
f/%aqA
fjj1E5>*
f/s/
v}5Q./
fjj1r#   r^   rY   c                     / SQn[        S/S/S/U/S.5      nX3R                  S:H     R                  U5      nUR                  5       R                  n[        S/S/S/// / / // SQS9n[        R                  " XV5        g )N)r[   r\   r]   r   rB   r%   rZ   rU   )r   r[   r   firstr   r   r   assert_index_equal)r   r^   r?   rc   gr   r   s          r    +test_empty_frame_groupby_dtypes_consistency:TestMultiLevel.test_empty_frame_groupby_dtypes_consistency   s     %
aSs!A3?@ttqyM!!*-C!qc?2r2,o
 	f/r#   c                     / SQn/ SQn[         R                  " USS/S9n[        X#S9nUR                  UR                  5      R                  5       n[        U5      S:X  d   eg )N))60080920061231r   20070331)r   20070630r   )demor   r   r   STK_IDRPT_DaterX   r   r%   )r   rw   r   r   r   r   len)r   idx_tpdtidxrK   r   s         r    test_duplicate_groupby_issues,TestMultiLevel.test_duplicate_groupby_issues   s^    
 .$$VHj3IJ2!177#))+6{ar#   c                     SS//nSS[         R                  4S/n[        U[        R                  " U5      S9nUR
                  R                  R                  nUR                  R                  R
                  n[        R                  " XT5        g )NrE   r   r[   r\   )r[   r]           r4   )
r_   nanr   r   rw   dtypesr[   r\   r   r   )r   rs   r5   rc   r   r   s         r    test_subsets_multiindex_dtype,TestMultiLevel.test_subsets_multiindex_dtype   si    azbff%7tZ%;%;G%DE99;;==
v0r#   c                 .   S[         R                  " SSS5      4SSS.S[         R                  " SSS5      4SS	S.S[         R                  " SSS5      4SS
S.S[         R                  " SSS5      4SSS.0n[        R                  " USS9n/ SQ/ SQS.n/ SQ[         R                  " SSS5      [         R                  " SSS5      [         R                  " SSS5      [         R                  " SSS5      //n[        X4S9n[        R
                  " X%5        g )Nr   i  r%   r   r3   )r   rq   rY   rB            r   )orient)r   rB   r%   rY   )r3   r   r   r   )r   r   r   r   rr   )datetimedater   	from_dictr   r   )r   data_dicr   rs   r   r   s         r    test_datetime_object_multiindex.TestMultiLevel.test_datetime_object_multiindex   s   dAq)*!",=dAq)*!",=dAq)*!",=dAq)*!",=	
 $$Xg>!(89dAq)dAq)dAq)dAq)	
 $4
f/r#   c           	      L   [        S[        R                  SS// SQ/ SQ// SQS9R                  SS	/5      nS
UR                  S'   [        S[        R                  SS// SQ/ SQSS[        R                  S
/// SQS9R                  SS	/5      n[
        R                  " X5        g )Nr   Gz?=
ףp=@)r   Gr   r   )r   Dg=
ףp#@gGz%@)pivot_0pivot_1col_1col_2r4   r   r   r   ))r   Fr   r   )r   r_   r   	set_indexatr   r   )r   rc   r   s      r    test_multiindex_with_na&TestMultiLevel.test_multiindex_with_na  s    bffdD)&'
 =
 )Y	*
+ 	 &)!"bffdD)&'c2663'	 =
 )Y	*
+ 	 	b+r#   naNc                 t    [        S/S/S//S9nSX!S4'   [        R                  " X!   [        S/S/S95        g )Nr   r   rq   r4   r   )r   r   r   )r   r   rc   s      r    $test_multiindex_insert_level_with_na3TestMultiLevel.test_multiindex_insert_level_with_na$  sB     scUSEN3s7
bficU&CDr#   c                 t   [        S[        R                  S[        R                  /S[        R                  S[        R                  /[        R                  S[        R                  S/[        R                  S[        R                  S//[        / S	Q[        S
S9[
        R                  " SS/[        R                  " SSS5      [        R                  " SSS5      //S S/S9S9nUR                  5       nXR                  S      n[        / S	QS
[        R                  4S9n[        R                  " X#5        g )Nr   rg   rB   rt   r%   ri   rY   r   rZ   sub)dtypenamevalue1value2i  r   Dater   r   r   )r   )r   r_   r   r   objectr   from_productr   reset_indexr5   r   r   )r   rc   r   r   s       r    test_multiindex_dt_with_nan*TestMultiLevel.test_multiindex_dt_with_nan+  s    BFFArvv&BFFArvv&BFFA&BFFA&	 -V%H++x(&&tR3X5F5FtRQR5ST Vn
  ^^JJqM".eRVV_E
v0r#   z0ignore:Passing a BlockManager:DeprecationWarningc           	      ~   [         R                  " S5      n[        / SQ/ SQS.5      R                  [	        UR                  UR                  5       UR                  5       5      5      SS.5      nUR                  SS/5      n[        [        R                  " / SQ/ SQ/SS/S9S	9n[        R                  " UUS
S
S9  g )Npyarrowr   rq   Cro   )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   parc   df_expecteds       r    (test_multiindex_with_pyarrow_categorical7TestMultiLevel.test_multiindex_with_pyarrow_categoricalB  s       +-	J

&!+BMM"((*biik,R!S!1
 	 \\?O<=(( ),_o4V

 	"#		
r#   rC   )__name__
__module____qualname____firstlineno__r!   r0   r<   rO   rd   rl   r}   r   r   r   r   r   markparametrizer   r   r   r   r   r_   r   r   r   filterwarningsr   __static_attributes__rC   r#   r    r   r      s    D3/&D"9)(/ .1`2& [[S1c(+0 ,0 10,,0 [[TD"&&>2E 3E1. [[ RS
 T
r#   r   c                       \ rS rSrSrS rSrg)
TestSortedi_  z+everything you wanted to test about sortingc                    [        / SQ/ SQ// SQ/ SQ/5      n[        S[        [        U5      5      0USS9nUR                  R
                  SL d   eUR                  5       nUR                  R
                  S	L d   e[        S/ S
Q0[         R                  " / SQ5      SS9nUR                  [        R                  SS2SS24   S S 24   n[        R                  " XT5        g )Nr   )r]   r\   r[   )r   r   rB   r   r   rB   )r   rB   r   r   r   rB   colint64)r   r   FT)r   rY   rg   rB   ))rq   r[   )rq   r]   )r   r[   )r   r\   rq   r   r[   r]   )r   r   ranger   r   is_monotonic_increasing
sort_indexrw   r,   pd
IndexSlicer   r   )r   r   rc   sortedr   r   s         r    test_sort_non_lexsorted"TestSorted.test_sort_non_lexsortedb  s     o.1CEW0X
 uSX/s'Jxx//5888||33t;;;L!((@ 
 BMM#c'3s7*:;Q>?
f/r#   rC   N)r   r   r   r   __doc__r  r   rC   r#   r    r  r  _  s
    50r#   r  )r   numpyr_   r   pandasr	  r   r   r   r   pandas._testing_testingr   r   r  rC   r#   r    <module>r     s7         L
 L
^
0 0r#   