
    Owg/                     l    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y)    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                   j#                  dddg      d        Zd Zd Zd Zd Zy)TestMultiLevelc                     |}|j                  d      j                         }|j                  |j                  d      }|j                  d      j	                  d      }t        j                  ||       |d   j                  |j                  d      }|d   j                  d      j	                  d      }t        j                  ||d       d}t        j                  t        |	      5  |j                  j                  dd
      }d d d        j                         }|j                  |j                  d      }|j                  d      j	                  d      j                  }t        j                  ||       y # 1 sw Y   xxY w)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           S/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/test_multilevel.pytest_reindex_levelz!TestMultiLevel.test_reindex_level   sN   =[[)--/
##CIIQ#7;;W;-77>
fh/ C((!(<s8##'#2<<UC
vxUC <''SA 	0wQ/B	0 VVX
##CIIQ#?;;W;-77>@@
fh/	0 	0s   /FFc                 x    |}|j                   ddg   }|j                  ddg   }t        j                  ||       y )Nr      fooonebarr/   )iloclocr   r   )r!    multiindex_dataframe_random_dataframer&   	reindexeds        r)   test_reindexzTestMultiLevel.test_reindex)   s<    0::q!f%II~~>?	
i2    c                    |}|j                   d d d   }|j                  |      }|r|j                   j                  |      sJ |j                   |u sJ |j                  |   }|j                   j	                  |      sJ |j
                  }|j                  |      }|r|j                  j                  |      sJ |j                  |u sJ |j                  d d |f   }|j                  j	                  |      sJ y )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     >IIddO	I&;;??9---;;)+++	"{{!!),,,uuY/==$$Y///==I---I&}}##I...r8   c                    |}|d   }|j                   j                  d      }|j                  |d      }|j                  d       }|j	                  d       }|j                  |j                         }t        j                  ||d       y )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   sx    0#J''**1-))G)6--0$$_50
vxUCr8   c                     t        dgdgdggdgdgdggg d      }t        t        j                  j	                  d      j                  d      gg d	|
      }|j                  d       y )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   sp    GeWug.3aS/)

 YY""1%,,Q/0(
 	


!r8   c                    t        j                  g d      }t        g dg dg|      }|j                  d      |j                  j                  d          }d}t        j                  t        |	      5  |j                  dd
      }d d d        j                         }|j                  ddgk(  j                         sJ y # 1 sw Y   ;xY w)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BDQff!fnRZZ^^,JKL;''SA 	3kkqk2G	34,.33555	3 	3s   7CCc                     |}|d d j                   }|d   |d<   t        |j                  t              sJ |d   |d   k(  j	                         sJ y )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   sX     >!WYYZ.;"**j111;2j>166888r8   c                 8   t        g dt        j                  g d            }t        g dt        j                  g d            }||z
  }|j                  j	                  |j                        }|j                  |      |j                  |      z
  }t        j                  ||       |d d d   |d d d   z
  }|j                  j	                  |j                        }|j                  |      |j                  |      z
  }t        j                  ||       y )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    *"8"89W"X
 *"8"89W"X
 !eGGMM!''*	ii	"QYYy%99
sC( "g$B$GGMM!''*	ii	"QYYy%99
sC(r8   c                 (   |}|j                  ddg      j                         }|j                  j                  d      }|j                  j                  d      }|j                  ||g      j                         }t	        j
                  ||d       |j                  j                  |j                  j                  d d k(  sJ |j                  |j                  j                  d d       j                         }t	        j
                  ||       y )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YY''*YY''*;;Bx(--/ 	fhEB||!!SYY__Ra%8888++CIIOOBQ$7+8==?
fg.r8   c                     t        j                  g d      }t        t        j                  j                  d      j                  d      ||      }|j                  d      |d<   |j                         }y )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   sc    &&L
 II!!!$44V<ESX
 66!9<__r8   c                    t        g dddggg dg dg      }t        t        j                  j	                  d      j                  d      |	      }t        t        j                  j	                  d      j                  d
      |	      }|d   }|j                  d   }|d d }|j                  j                  d      |_        t        j                  ||       t        j                  ||       t        j                  t        d      5  |d    d d d        |j                  d   }|j                  d      }|d d }|j                  j                  d      |_        t        j                   ||       t        j                   ||       t        g dddggg dg dg      }t        t        j                  j	                  d      j                  d      |	      }t        t        j                  j	                  d      j                  d
      |	      }|d   }|j                  d   }|d d }|j                  j                  d      |_        t        j                  ||       t        j                  ||       |j                  d   }|j                  d      }|d d }|j                  j                  d      |_        t        j                   ||       t        j                   ||       y # 1 sw Y   xY w)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   s   MPQSTvV%'9:

 		--a0@@C5Q"))//2BB6JRWX)***./"1:!11!4
vx0
w1]]8+JK 	)'(	) ,-((,-!9!11!4
fh/
gx0Dq!fM%'9:

 		--a0@@C5Q"))//2BB6JRWX'**^,"1:!11!4
vx0
w1>*((>*!9!11!4
fh/
gx0=	) 	)s   K--K7c                 &   |}|j                  ddgd      }|j                  g d   }t        j                  ||       |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                         y )	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::01
fh/%aqA
fhjj1E5>*
fh/s/
vx}5Q./
fhjj1r8   ra   r\   c                    g d}t        dgdgdg|gd      }||j                  dk(     j                  |      }|j                         j                  }t        dgdgdggg g g gg d      }t        j                  ||       y )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?@rttqyM!!*-C!qc?2r2,o
 	fh/r8   c                     g d}g d}t        j                  |ddg      }t        ||      }|j                  |j                        j                         }t        |      dk(  sJ y )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2S!177#))+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                  ||       y )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  sk    azbff%7tZ%;%;G%DE99;;==
vx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
                  ||       y )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9dAq)dAq)dAq)dAq)	
 $e4
fh/r8   c           	      X   t        dt        j                  ddgg dg dgg d      j                  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      j                  dd	g      }t        j                  ||       y )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    bffdD)&'
 =
 )Y	*
+ 	 &)!"bffdD)&'c2663'	 =
 )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}    023/2D"6*9)(/".1`2& [[S1c(+0 ,0 10,,r8   r   c                       e Zd ZdZd Zy)
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                  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                  ||       y )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     o.1CEW0X
 uSX/s'Jxx//5888||33t;;;L!((@ 
 BMM#c'3s7*:;Q>?
fh/r8   N)r   r   r   __doc__r   rH   r8   r)   r   r   J  s
    50r8   r   )r   numpyrb   r   pandasr   r   r   r   pandas._testing_testingr   r   r   rH   r8   r)   <module>r      s7        
 x, x,v	0 0r8   