
    Wh8                     r    d dl Zd dlZd dlZd dlmZmZmZ d dlm	Z
  G d d          Z G d d          ZdS )    N)	DataFrame
MultiIndexSeriesc                   B   e Zd Zd Zej                            dg d          d             Zd Zd Z	d Z
d Zd	 Zd
 Zd Zej                            dddg          ej                            dddg          ej                            dddg          d                                     Zej                            dddg          ej                            dddg          ej                            dddg          ej                            dddg          d                                                 Zej                            dddg          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$S )%TestMultiLevelc                    |}t          j        t                    5  |                    d          }d d d            n# 1 swxY w Y   |                    |j        d          }|                    d                              t          j                  }t          j	        ||           |d                             |j        d          }|d                             d                              t          j                  }t          j
        ||d           t          j        t                    5  |j                            dd          }d d d            n# 1 swxY w Y   |                    |j        d          }|                    d                              t          j                  j        }t          j	        ||           d S )	Nmonthlevel   AFcheck_namesaxisr   )columnsr   )tmassert_produces_warningFutureWarningsumreindexindexgroupby	transformnpassert_frame_equalassert_series_equalT)self/multiindex_year_month_day_dataframe_random_dataymd
month_sumsresultexpecteds         b/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/pandas/tests/test_multilevel.pytest_reindex_levelz!TestMultiLevel.test_reindex_level   s
   ='66 	0 	0w//J	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0##CIQ#77;;W;--77??
fh/// C((!(<<s8##'#22<<RVDD
vxUCCCC '66 	: 	:99J	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:##CIQ#??;;W;--77??A
fh/////s!   ?AA9E""E&)E&opname)subaddmuldivc                    |}t          t          |          }t          j        t                    5  |                    d          }d d d            n# 1 swxY w Y    |||d          }|                    d                              t          j                  } |||          }t          j	        ||           t          t          |          } ||d         |d         d          }|d                             d                              t          j                  } ||d         |          }d|_        t          j        ||           d S )Nr	   r
   r   )getattrr   r   r   r   r   r   r   r   r   r   namer   )	r   r'   r    r!   opr"   r#   broadcastedr$   s	            r%   test_binops_levelz TestMultiLevel.test_binops_level%   s|    >Y'''66 	0 	0w//J	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0C7333kkk00::26BB2c;''
fh/// VV$$CHjoW===#h&&W&55??GG2c#h,,
vx00000s   AAAc                 p    |}|j         ddg         }|j        ddg         }t          j        ||           d S )Nr      fooonebarr6   )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2    c                 f   |}|j         d d d         }|                    |          }|j         |u sJ |j        |         }|j                             |          sJ |j        }|                    |          }|j        |u sJ |j        d d |f         }|j                            |          sJ d S )N
   r   )r   r   r:   equalsr   r   )r   r    r!   	new_indexchunkymdTs         r%   test_reindex_preserve_levelsz+TestMultiLevel.test_reindex_preserve_levelsC   s     >IdddO	I&&{i''''	"{!!),,,,,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>^   s
    !a% r?   c                     | dz  S rK   rM   rN   s    r%   rP   z7TestMultiLevel.test_groupby_transform.<locals>.<lambda>_   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_transformV   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          gg d|	          }|                    d
           d S )Nr5   r8   bazr   )r6   twothreelevelscodesnames   abcd)r   r   r\   r
   )r   r   r   randomrandr   )r   midxdfs      r%   test_groupby_cornerz"TestMultiLevel.test_groupby_cornerc   s    GeWug.3aS/)))
 
 

 	q))*4H4H4HPTUUU



!!!!!r?   c                 b   t          j        g d          }t          g dg dg|          }|                    d          |j                            d                    }|                    dd	          }|                                }|j        d
dgk                                    sJ d S )N))f1s1)rm   s2)f2rn   )rp   ro   )f3rn   )rq   ro   )r   rL   r3   ra         )      	   rA         rB   r   )r   c                     | d         dv S )Nr   )rp   rq   rM   )us    r%   rP   z:TestMultiLevel.test_groupby_level_no_obs.<locals>.<lambda>z   s    adl6J r?   r   r   rp   rq   )	r   from_tuplesr   r:   r   mapr   r   all)r   ri   rj   df1rV   r#   s         r%   test_groupby_level_no_obsz(TestMultiLevel.test_groupby_level_no_obsm   s    %  	
 	
 ***,A,A,ABDQQQff!fnnRZ^^,J,JKKL++1A+..4,.335555555r?   c                     |}|d d         j         }|d         |d<   t          |j        t                    sJ |d         |d         k                                    sJ d S )Nrr   )  r   rt   )r   r   rA   )r   
isinstancer   r   r}   )r   r    r!   rj   s       r%   .test_setitem_with_expansion_multiindex_columnsz=TestMultiLevel.test_setitem_with_expansion_multiindex_columns   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   rL   r3   ))r   r   )r   rL   Br3   )datar   )ra   rr   rs   ))Zr   )r   rL   r   )r   r   r{   r   unionr   r   r   )r   rO   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?   r   r   r   skipnaTFsortc                 d  
 |}|
|                     ||          }|                    
fd          }t          j        t                    5   t          |
          |          }	d d d            n# 1 swxY w Y   |r|	                    |          }	t          j        ||	           d S )N)r   r   c                 8     t          |                     S )N)r   r-   )rO   r/   r   s    r%   rP   z:TestMultiLevel.test_series_group_min_max.<locals>.<lambda>   s    Bv)F)F)F r?   )r   r   r
   )r   aggr   r   r   r-   
sort_indexr   )r   all_numeric_reductionsr   r   r   series_with_multilevel_indexserrV   leftside	rightsider/   s      `      @r%   test_series_group_min_maxz(TestMultiLevel.test_series_group_min_max   s    +#++E+55;;FFFFFGG'66 	E 	E(R((uVDDDI	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	:!,,5,99I
x33333s   A88A<?A<r   c                 R   |}t           j        |j        dddgf<   t           j        |j        dddgf<   |j        j        |         }dk    r|}n|j        }|                    ||          }	g |fd}
|	                    |
          }t          j	        t                    5   t          |          |          }d d d            n# 1 swxY w Y   |r.|                    |          }|                    |          }|                              j        |                             |          }t          j        |                              |           t          j        |                              |           t          j        ||           d S )	Nr   rL   rt   r   )r   r   r   c                 d                         |             t          |                     S )N)r   r   )appendr-   )rO   r   r/   piecesr   s    r%   aggfz1TestMultiLevel.test_frame_group_ops.<locals>.aggf   s2    MM!!71b>>d;;;;r?   )r   r   r   )r   r   )r   nanr9   r   r`   r   r   r   r   r   r   r-   r   	_get_axisr^   renameassert_index_equalr   )r   r   r   r   r   r   r;   r<   
level_namerV   r   r   r   level_indexr/   r   s      ``         @@r%   test_frame_group_opsz#TestMultiLevel.test_frame_group_ops   s    1 "
1q!f9 "
1q!f9[&u-
199EEGE--e$T-BB#	< 	< 	< 	< 	< 	< 	< 	< ;;t$$'66 	R 	R*r**T&QQQI	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	R 	=!,,5t,DDI$$5t$<<E ood++259@@LL
h0066DDD
i11$77EEE
h	22222s   +CCCmethvarstdc                    t          j        t          j        d                              d          t          j        t          j        d          d          g          }t          t          j                            t          |          d          |          }dfd}t          j        t                    5   t          |d                   d          }d d d            n# 1 swxY w Y   |d                             d                              |          }t          j        ||           t          j        t                    5   t          |          d          }d d d            n# 1 swxY w Y   |                    d                              |          }t          j        ||           d S )	Nrr   rA   r   ra   c                 8     t          |                     S )N)ddofr   )rO   r   r   s    r%   rP   z7TestMultiLevel.test_std_var_pass_ddof.<locals>.<lambda>   s    (4((d333 r?   r   )r   r   r
   )r   from_arraysr   arangerepeattiler   rg   randnlenr   r   r   r-   r   r   r   r   )r   r   r   rj   altr#   r$   r   s    `     @r%   test_std_var_pass_ddofz%TestMultiLevel.test_std_var_pass_ddof   s   &Yq\\  $$bgbimmQ&?&?@
 
 rys5zz155UCCC33333'66 	> 	>)WRUD))===F	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>a5==q=))--c22
vx000'66 	; 	;&WR&&QT:::F	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;::A:&&**3//
fh/////s$    "C..C25C2E>>FFc                 D   |}t          j        ||          }t          j        t                    5  |                    ddg          }d d d            n# 1 swxY w Y   |                    ddg                                          }t          j        ||           d S )Nyearr	   r
   )r   get_objr   r   r   r   assert_equal)r   r    frame_or_seriesr!   r#   r$   s         r%   test_agg_multiple_levelsz'TestMultiLevel.test_agg_multiple_levels   s     >jo..'66 	6 	6WWFG#4W55F	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6;;fg%6;77;;==
)))))s   AAAc                 ,   |}|                     ddg                                          }|j                            d          }|j                            d          }|                     ||g                                          }t	          j        ||d           |j        j        |j        j        d d         k    sJ |                     |j        j        d d                                                   }t	          j        ||           d S )Nr   r   r
   Fr   rL   )r   meanr   rR   r   r   r`   )r   r    r!   r#   k1k2r$   result2s           r%   test_groupby_multilevelz&TestMultiLevel.test_groupby_multilevel  s    =Aq6**//11Y''**Y''**;;Bx((--// 	fhEBBBB|!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)r4   )r5   r[   r7   )r8   r[   ra   )r   r   r   )Totals )r   r{   r   r   rg   r   r   _consolidate)r   r   rj   s      r%   test_multilevel_consolidatez*TestMultiLevel.test_multilevel_consolidate  sj    &LLL
 
 ryq!,,E5III66!99<__r?   c                    t          g dddggg dg dg          }t          t          j                            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          |          }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)r5   r8   r   )r5   rZ   r   )r5   quxr   r   r   )r   r   r   r   rL   rL   )r   r   r   r   r   r   )r^   r_   rs   r   ra   r   rL   z^\(\('foo', 'bar', 0\), 2\)$)match)r   rL   )r5   r8   )r5   rZ   )r5   r   r   )r   r   r   rg   r   r   r:   r   	droplevelr   r   pytestraisesKeyErrorxsr   )r   r   seriesr<   r#   r   r$   s          r%   test_level_with_tuplesz%TestMultiLevel.test_level_with_tuples  s   MMMPQSTvV%%%'9'9'9:
 
 

 	**%888")//!Q//u===)**./"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:
 
 

 	**%888")//!Q//u==='*^,"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   >	D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 )	Nr5   r   r   r
   )r   r   rL   rt   ru   rv   r   r   r   )r   r9   r   r   r   r:   r   )r   r;   r<   r#   r$   s        r%   $test_reindex_level_partial_selectionz3TestMultiLevel.test_reindex_level_partial_selectionK  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?   rf   ra   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)rc   rd   re   r   rL   r3   rb   r]   )r   rc   r   firstr   r   r   r   )r   rf   rI   rj   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)r`   r   r3   )r   r{   r   r   r   r   r   )r   idx_tpdtidxrT   r#   s         r%   test_duplicate_groupby_issuesz,TestMultiLevel.test_duplicate_groupby_issuesl  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 )NrO   r   rc   rd   )rc   re   g        rB   )
r   r   r   r   r{   dtypesrc   rd   r   r   )r   r   r   rj   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?   N)__name__
__module____qualname__r&   r   markparametrizer1   r>   rG   rX   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rM   r?   r%   r   r      s       0 0 0. [X'C'C'CDD1 1 ED1,3 3 3/ / /&D D D" " "6 6 6&9 9 9) ) )( [Wq!f--[Xe}55[VdE]334 4 43 65 .-4  [Wq!f--[VaV,,[Xe}55[VdE]33,3 ,3 43 65 -, .-,3\ [VeU^440 0 540&	* 	* 	*/ / /"  .1 .1 .1`2 2 2& [S1c(++0 0 ,+0     1 1 1 1 1r?   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 )N)r   r   C)re   rd   rc   )r   r   rL   r   r   rL   )r   rL   r   r   r   rL   colint64)r   dtypeFT)r   ra   rr   rL   ))r   rc   )r   re   )r   rc   )r   rd   r   r   rc   re   )r   r   ranger   r   is_monotonic_increasingr   r{   r:   pd
IndexSlicer   r   )r   r   rj   sortedr$   r#   s         r%   test_sort_non_lexsortedz"TestSorted.test_sort_non_lexsorted  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   rM   r?   r%   r   r     s)        550 0 0 0 0r?   r   )numpyr   r   pandasr   r   r   r   pandas._testing_testingr   r   r   rM   r?   r%   <module>r     s                     
      u1 u1 u1 u1 u1 u1 u1 u1p0 0 0 0 0 0 0 0 0 0r?   