
    bMh/                     z    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 d dl	m
Z  G d d          Z G d d          ZdS )    N)	DataFrame
MultiIndexSeriesc                       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d Zej                            dddg          d             Zd Zd Zd Zd ZdS )TestMultiLevelc                 d   |}|                     d                                          }|                    |j        d          }|                     d                              d          }t          j        ||           |d                             |j        d          }|d                              d                              d          }t          j        ||d           d}t          j        t          |	          5  |j
                             dd
          }d d d            n# 1 swxY w Y   |                                }|                    |j        d          }|                     d                              d          j
        }t          j        ||           d S )Nmonth   levelsumAFcheck_names+DataFrame.groupby with axis=1 is deprecatedmatchaxis)columnsr   )groupbyr   reindexindex	transformtmassert_frame_equalassert_series_equalassert_produces_warningFutureWarningT)self/multiindex_year_month_day_dataframe_random_dataymd
month_sumsresultexpectedmsggbs           \/var/www/html/test/jupyter/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 <'SAAA 	0 	0wQ//B	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 VVXX
##CIQ#??;;W;--77>>@
fh/////s   	D22D69D6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2    c                    |}|j         d d d         }|                    |          }|r|j                             |          sJ n|j         |u sJ |j        |         }|j                             |          sJ |j        }|                    |          }|r|j                            |          sJ n|j        |u sJ |j        d d |f         }|j                            |          sJ d S )N
   r   )r   r   is_r3   equalsr    r   )r!   r"   using_copy_on_writer#   	new_indexchunkymdTs          r)   test_reindex_preserve_levelsz+TestMultiLevel.test_reindex_preserve_levels0   s    >IdddO	I&& 	,;??9------;)++++	"{!!),,,,,uY// 	.=$$Y//////=I----I&}##I.......r8   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>Q   s
    !a% r8   c                     | dz  S rF   rH   rI   s    r)   rK   z7TestMultiLevel.test_groupby_transform.<locals>.<lambda>R   s
    q1u r8   r   )r   get_level_valuesr   applyr   r   r   r   )	r!   r4   r5   sgroupergroupedappliedr&   r%   s	            r)   test_groupby_transformz%TestMultiLevel.test_groupby_transformI   s    0#J'**1--))G)66--00$$__5500
vxUCCCCCCr8   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.   r1   bazr   )r/   twothreelevelscodesnamesrG      abcd)r   r   rW   r   )r   r   nprandomdefault_rngr   )r!   midxdfs      r)   test_groupby_cornerz"TestMultiLevel.test_groupby_cornerV   s    GeWug.3aS/)))
 
 

 Y""1%%,,Q//0(((
 
 
 	


!!!!!r8   c                    t          j        g d          }t          g dg dg|          }|                    d          |j                            d                    }d}t          j        t          |	          5  |	                    dd
          }d d d            n# 1 swxY w Y   |
                                }|j        ddgk                                    sJ d S )N))f1s1)ri   s2)f2rj   )rl   rk   )f3rj   )rm   rk   )r
   rG   r,   r\         )      	   r:         r;   r
   r   c                     | d         dv S )Nr   )rl   rm   rH   )us    r)   rK   z:TestMultiLevel.test_groupby_level_no_obs.<locals>.<lambda>q   s    adl6J r8   r   r   r   r   r   rl   rm   )r   from_tuplesr   r3   r   mapr   r   r   r   r   all)r!   re   rf   df1r'   rQ   r%   s          r)   test_groupby_level_no_obsz(TestMultiLevel.test_groupby_level_no_obsd   s-   %  	
 	
 ***,A,A,ABDQQQff!fnnRZ^^,J,JKKL;'SAAA 	3 	3kkqk22G	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	34,.335555555s    B$$B(+B(c                     |}|d d         j         }|d         |d<   t          |j        t                    sJ |d         |d         k                                    sJ d S )Nrn   )  r
   rp   )r~   r
   r:   )r    
isinstancer   r   rz   )r!   r"   r#   rf   s       r)   .test_setitem_with_expansion_multiindex_columnsz=TestMultiLevel.test_setitem_with_expansion_multiindex_columnsy   sh     >!WYZ.;"*j11111;2j>1668888888r8   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
   rG   r,   ))r   r
   )r   rG   Br,   datar   )r\   rn   ro   ))Zr
   )r   rG   r   )r   r   rx   r   unionr   r   r   )r!   rJ   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(((((r8   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   rG   )r   meanr   rM   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.....r8   c                    t          j        g d          }t          t          j                            d                              d          ||          }|                    d          |d<   |                                }d S )N)r-   )r.   rV   r0   )r1   rV   rG   )r\   r\   )r   r   r
   )Totals )	r   rx   r   rb   rc   rd   standard_normalr   _consolidate)r!   r   rf   s      r)   test_multilevel_consolidatez*TestMultiLevel.test_multilevel_consolidate   s    &LLL
 
 I!!!$$44V<<ESX
 
 
 66!99<__r8   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.   r1   r   )r.   rU   r   )r.   quxr   r   r
   )r   r   r
   r
   rG   rG   )r   r
   r   r
   r   r
   )rY   rZ   rG   ro   r   )ro   r\   r   z^\(\('foo', 'bar', 0\), 2\)$r   )r   rG   )r.   r1   )r.   rU   )r.   r   r   )r   r   rb   rc   rd   r   r   r3   r   	droplevelr   r   pytestraisesKeyErrorxsr   )r!   r   seriesr5   r%   r   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
   rG   rp   rq   rr   r
   rw   r   )r   r2   r   r   r    r3   r   )r!   r4   r5   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1r8   ra   r\   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)r^   r_   r`   r
   rG   r,   r]   rX   )r   r^   r   firstr   r   r   assert_index_equal)r!   ra   rD   rf   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/////r8   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   r,   )r   rx   r   r   r   r   len)r!   idx_tpdtidxrO   r%   s         r)   test_duplicate_groupby_issuesz,TestMultiLevel.test_duplicate_groupby_issues  s    
 
 
 .--$VHj3IJJJ2S!!!17##))++6{{ar8   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 )NrJ   r
   r^   r_   )r^   r`           r;   )
rb   nanr   r   rx   dtypesr^   r_   r   r   )r!   r   r   rf   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0r8   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
   r:   )r   r   r\   rG   rs   rt      r   )orient)r
   rG   r,   r\   )r:   rs   rt   r   )r   r   r
   r
   r   )datetimedater   	from_dictr   r   )r!   data_dicr%   r   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/////r8   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_2r;   r   r   r   ))r   Fr   r   )r   rb   r   	set_indexatr   r   )r!   rf   r&   s      r)   test_multiindex_with_naz&TestMultiLevel.test_multiindex_with_na1  s    bfdD)&&&'''
 =<<
 
 
 )Y	*
+
+ 	 &)!"bfdD)&&&'''c263'	 =<<
 
 
 )Y	*
+
+ 	 	b(+++++r8   N)__name__
__module____qualname__r*   r7   rB   rS   rg   r|   r   r   r   r   r   r   r   markparametrizer   r   r   r   r   rH   r8   r)   r   r      s:       0 0 023 3 3/ / /2D D D" " "6 6 6*9 9 9) ) )(/ / /"  .1 .1 .1`2 2 2& [S1c(++0 0 ,+0     1 1 10 0 0,, , , , ,r8   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)r`   r_   r^   )r   r
   rG   r   r
   rG   )r   rG   r
   r
   r   rG   colint64)r   dtypeFT)r
   r\   rn   rG   ))r   r^   )r   r`   )r   r^   )r   r_   r   r   r^   r`   )r   r   ranger   r   is_monotonic_increasing
sort_indexrx   r3   pd
IndexSlicer   r   )r!   r   rf   sortedr&   r%   s         r)   test_sort_non_lexsortedz"TestSorted.test_sort_non_lexsortedM  s    __ooo.1C1C1CEWEWEW0X
 
 uSXX/s'JJJx/58888|3t;;;;LLL!(@@@  
 
 
 BM#c'3s7*:;QQQ>?
fh/////r8   N)r   r   r   __doc__r   rH   r8   r)   r   r   J  s)        550 0 0 0 0r8   r   )r   numpyrb   r   pandasr   r   r   r   pandas._testing_testingr   r   r   rH   r8   r)   <module>r      s                      
      x, x, x, x, x, x, x, x,v	0 0 0 0 0 0 0 0 0 0r8   