
    bMhl                     4   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 ej                            d          Z ej                    d             Z G d d          Z G d de          Zd	 Z G d
 de          Z G d de          Z G d d          ZdS )    N)	DataFrameIndex
MultiIndexSerieszMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc                  L      G  fddt                        dg di          S )Nc                   *    e Zd Ze fd            ZdS )2gpd_style_subclass_df.<locals>.SubclassedDataFramec                     S N )selfSubclassedDataFrames    `/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/frame/test_subclass.py_constructorz?gpd_style_subclass_df.<locals>.SubclassedDataFrame._constructor   s	    &&    N)__name__
__module____qualname__propertyr   r   s   r   r   r	      s8        		' 	' 	' 	' 
	' 	' 	'r   r   a         )r   r   s   @r   gpd_style_subclass_dfr      sS    ' ' ' ' ' ' 'i ' ' '
 YYY/000r   c                      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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 Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d%S )&TestDataFrameSubclassingc                     t          j        g dg ddg d          }t          j        d           5  |                                 |d                                          d d d            d S # 1 swxY w Y   d S )Nr   XYr   bcindexr!   )tmr   assert_produces_warningisna)r   dfs     r   test_no_warning_on_mgrz/TestDataFrameSubclassing.test_no_warning_on_mgr   s    #))))),,OOO
 
 
 '-- 	 	 GGIIIsGLLNNN		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   /A00A47A4c                   	  G 	fddt                     	 G 	fddt                    t          d          t          d          d} |          }t          |          sJ |j        }t          |	          sJ |                                dk    sJ |dd	         }t          |          sJ |                                dk    sJ t          j        d
dg          } ddgddgg|          }t          |d                   sJ t          j        ddg          } ddgddgg|          }t          |d         	          sJ d S )Nc                   0    e Zd Ze fd            Zd ZdS )QTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeriesc                     S r   r   )r   CustomSeriess    r   r   z^TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries._constructor-   s	    ##r   c                     dS NOKr   r   s    r   custom_series_functionzhTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries.custom_series_function1       tr   N)r   r   r   r   r   r6   )r1   s   r   r1   r/   ,   sG        $ $ $ $ X$    r   r1   c                   J     e Zd ZdZd fdZefd            ZZd Z xZ	S )TTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFramez
            Subclasses pandas DF, fills DF with simulation results, adds some
            custom plotting functions.
            returnNc                 :     t                      j        |i | d S r   )super__init__)r   argskw	__class__s      r   r=   z]TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.__init__:   s%      $-"-----r   c                     S r   r   )r   CustomDataFrames    r   r   zaTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame._constructor=   s	    &&r   c                     dS r3   r   r5   s    r   custom_frame_functionzjTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.custom_frame_functionC   r7   r   r:   N)
r   r   r   __doc__r=   r   r   _constructor_slicedrD   __classcell__)r@   rB   r1   s   @r   rB   r9   4   s         
. . . . . . ' ' ' ' X' #/      r   rB   
   )col1col2r4   r      )ArM   )rM   Br   r   r   columnsrM   )rM    )rN   rQ   )	r   r   range
isinstancerJ   r6   rD   r   from_tuples)
r   datacdf
cdf_seriescdf_rowsmcol	cdf_multi
cdf_multi2rB   r1   s
           @@r   "test_frame_subclassing_and_slicingz;TestDataFrameSubclassing.test_frame_subclassing_and_slicing(   s   	 	 	 	 	 	 	6 	 	 		 	 	 	 	 	 	 	i 	 	 	$ b		59955od## #///// X
*l333330022d:::: qs8(O44444--//47777 %z:&>??#OaVaV$4dCCC	)C./:::::%y)&<==$_q!fq!f%5tDDD
*S/<8888888r   c                    t          j        g dg ddg d          }d|_        |j        dk    sJ |dg         j        dk    sJ |j        ddgd d f         j        dk    sJ |j        d	d
gd d f         j        dk    sJ |j        d	d
d d f         j        dk    sJ t          j        |          }t          j        ||           |j        |j        k    sJ |j        |j        k    sJ d S )Nr   r    r#   r&   XXXr!   r   r$   r   r   )r(   r   testattrlocilocround_trip_pickleassert_frame_equal	_metadata)r   r+   	unpickleds      r   test_dataframe_metadataz0TestDataFrameSubclassing.test_dataframe_metadata_   s5   #))))),,OOO
 
 
 {e####3%y!U****vsCj!!!m$-6666w1vqqqy!*e3333 wqsAAAv'50000 (,,	
b),,,|y22222{i0000000r   c                 *   t          j        g dg dg ddg d          }|j        d d df         }t          j        g dt	          d          d	          }t          j        ||           t          |t           j                  sJ |j        d d d
f         }t          j        g dt	          d          d	          }t          j        ||           t          |t           j                  sJ |j        d d df         }t          j        g dt	          d          d	          }t          j        ||           t          |t           j                  sJ |j        dd d f         }t          j        g dt	          d          d	          }t          j        ||           t          |t           j                  sJ |j        d
d d f         }t          j        g dt	          d          d	          }t          j        ||           t          |t           j                  sJ |j        dd d f         }t          j        g dt	          d          d	          }t          j        ||           t          |t           j                  sJ d S )Nr      rL            	   r!   r"   Zr#   r&   r!   abcr'   namer   r"   rp   r   )r   ri   rl   XYZ)r   rL   rm   r$   r%   )r   rj   rn   )r(   r   r`   SubclassedSerieslistassert_series_equalrS   ra   r   r+   resexps       r   test_indexing_slicedz-TestDataFrameSubclassing.test_indexing_sliceds   s   #))))))))<<OOO
 
 
 fQQQVn!)))4;;SIII
sC(((#r233333gaaadm!)))4;;SIII
sC(((#r233333fQQQVn!)))4;;SIII
sC(((#r233333fS!!!Vn!)))4;;SIII
sC(((#r233333gadm!)))4;;SIII
sC(((#r233333fS!!!Vn!)))4;;SIII
sC(((#r23333333r   c                      G d dt                     }t          j        t          d          5   |            j         d d d            d S # 1 swxY w Y   d S )Nc                   $    e Zd Zed             ZdS )FTestDataFrameSubclassing.test_subclass_attr_err_propagation.<locals>.Ac                     | j         S r   )i_dont_existr5   s    r   nonexistencezSTestDataFrameSubclassing.test_subclass_attr_err_propagation.<locals>.A.nonexistence   s    ((r   N)r   r   r   r   r   r   r   r   rM   r~      s-        ) ) X) ) )r   rM   z.*i_dont_exist.*)match)r   pytestraisesAttributeErrorr   )r   rM   s     r   "test_subclass_attr_err_propagationz;TestDataFrameSubclassing.test_subclass_attr_err_propagation   s    	) 	) 	) 	) 	)	 	) 	) 	)
 ]>1CDDD 	 	ACC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                 "   t          j        g dg ddt          d                    }t          j        g dg ddt          d                    }|                    |d	          \  }}t          j        d
t          j        dt          j        dgd
t          j        dt          j        dgdt          d                    }t          j        d
dt          j        dt          j        gd
dt          j        dt          j        gdt          d                    }t          |t           j                  sJ t          j        ||           t          |t           j                  sJ t          j        ||           |j                            |j	                  \  }}t          |t           j
                  sJ t          j        ||j                   t          |t           j
                  sJ t          j        ||j	                   d S )Nr   r   rL   r   r$   ACEr&   r   r   ri   )r%   dABDr   axisr   r   rL   ABCDEr   ri   )r(   r   rv   alignnpnanrS   rc   r   r%   ru   rw   )r   df1df2res1res2exp1exp2s          r   test_subclass_alignz,TestDataFrameSubclassing.test_subclass_align   s   $))))),,DKK
 
 
 $))))),,DKK
 
 
 YYsY++
d%bfa+1bfa2KLLw--
 
 
 %aBF+1aBF2KLLw--
 
 
 $ 677777
dD)))$ 677777
dD)))U[[''
d$ 344444
tTV,,,$ 344444
tTV,,,,,r   c                    t          j        g dg ddt          d                    }t          j        g dt          d          d          }|                    |d	
          \  }}t          j        dt
          j        dt
          j        dgdt
          j        dt
          j        dgdt          d                    }t          j        ddt
          j        dt
          j        gt          d          d          }t          |t           j                  sJ t          j        ||           t          |t           j                  sJ t          j	        ||           |                    |          \  }}t          |t           j                  sJ t          j	        ||           t          |t           j                  sJ t          j        ||           d S )Nr   r   r   r&   r   r   xrr   r   r   r   r   rL   r   r   ri   )
r(   r   rv   ru   r   r   r   rS   rc   rw   )r   r+   sr   r   r   r   s          r    test_subclass_align_combinationsz9TestDataFrameSubclassing.test_subclass_align_combinations   s   #))))))$D$DDQVKKXXX			e3GGG XXaaX((
d%bfa+1bfa2KLLw--
 
 

 "261bf%T']]
 
 
 $ 677777
dD)))$ 344444
tT*** WWR[[
d$ 344444
tT***$ 677777
dD)))))r   c                     t          j        ddgi          }|                                D ]A\  }}t          |t           j                  sJ t          j        ||j        |                    Bd S )Nr   r   )r(   r   iterrowsrS   ru   rw   r`   )r   r+   irows       r   test_subclass_iterrowsz/TestDataFrameSubclassing.test_subclass_iterrows   sr    #S1#J//kkmm 	3 	3FAsc2#677777"3q	2222	3 	3r   c                    t          j        g dg dg dgg dg d          }|                    d          }t          j        g d	t	          d
          t	          d          g          }t          j        ||           d S )Nr   rh   rk   r#   ro   r'   rP   Tfuture_stack)	r   r   r   ri   rL   rj   rl   rm   rn   	aaabbbccc	XYZXYZXYZr&   )r(   r   stackru   rv   rw   rx   s       r   test_subclass_stackz,TestDataFrameSubclassing.test_subclass_stack   s    #YY			999-!//#OO
 
 
 hhDh))!'''[0A0A4CTCT/U
 
 
 	sC(((((r   c                    t          j        g dg dg dg dgt          j        t	          t          t	          d          t	          d                              ddg	          t          j        t	          t          t	          d
          t	          d                              ddg	                    }t          j        ddgddgddgddgddgddgddgddggt          j        t	          t          t	          d          t	          d           t	          d!                              g d"	          t          d#d$gd%                    }|                    d&'          }t          j        ||           |                    dd&'          }t          j        ||           t          j        ddgddgddgddgddgddgddgddggt          j        t	          t          t	          d          t	          d           t	          d(                              g d)	          t          d*d+gd%                    }|                    dd&'          }t          j        ||           d S ),NrI                                  !   (   )   *   +   AABBcdcdaaacccnamesWWXXyzyzwwwyyyr   rI   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   AAAABBBBccddccddyzyzyzyzr   r   r   Wr!   rs   Tr   WXWXWXWXr   r   r   yz	r(   r   r   rT   rv   zipr   r   rc   r   r+   rz   ry   s       r   test_subclass_stack_multiz2TestDataFrameSubclassing.test_subclass_stack_multi   s   #///1A1A1ACSCSCST(SftF||4455eU^   *SftF||4455eU^  
 
 
 $RRRRRRRR	 (Sj))4
+;+;T*=M=MNNOO+++   3*5111
 
 
$ hhDh))
c3'''hhu4h00
c3'''$RRRRRRRR	 (Sj))4
+;+;T*=M=MNNOO+++   3*5111
 
 
$ hhu4h00
c3'''''r   c                    t          j        g dg dg dg dgt          j        t	          t          t	          d          t	          d                              ddg	          t          j        t	          t          t	          d
          t	          d                              ddg	                    }t          j        ddgddgddgddgddgddgddgddggt          j        t	          t          t	          d          t	          d           t	          d!                              g d"	          t          d#d$gd%                    }|                    d&'          }t          j        ||           |                    dd&'          }t          j        ||           t          j        d(d)gddgd*d+gddgd,d-gddgd.d/gddggt          j        t	          t          t	          d          t	          d           t	          d0                              g d1	          t          d2d3gd%                    }|                    dd&'          }t          j        ||           d S )4NrI   r         (@      *@r   r         6@      7@r   r         @@     @@r   r         E@     E@r   r   r   r   r   r   r   r   r   r   rI   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   Tr   g      $@g      &@g      4@      5@g      >@g      ?@g      D@g     D@r   r   r   r   r   r   s       r   test_subclass_stack_multi_mixedz8TestDataFrameSubclassing.test_subclass_stack_multi_mixed(  s   #$$$$$$$$$$$$	 (SftF||4455eU^   *SftF||4455eU^  
 
 
 $T
T
T
T
T
T
T
T
	 (Sj))4
+;+;T*=M=MNNOO+++   3*5111
 
 
$ hhDh))
c3'''hhu4h00
c3'''$tttttttt	 (Sj))4
+;+;T*=M=MNNOO+++   3*5111
 
 
$ hhu4h00
c3'''''r   c                    t          j        g dg dg dgg dg d          }|                                }t          j        g dt	          d          t	          d	          g
          }t          j        ||           d S )Nr   rh   rk   r#   ro   r   )	r   ri   rl   r   rL   rm   r   rj   rn   	XXXYYYZZZ	abcabcabcr&   )r(   r   unstackru   rv   rw   rx   s       r   test_subclass_unstackz.TestDataFrameSubclassing.test_subclass_unstackf  s    #YY			999-!//#OO
 
 
 jjll!'''[0A0A4CTCT/U
 
 
 	sC(((((r   c                    t          j        g dg dg dg dgt          j        t	          t          t	          d          t	          d                              ddg	          t          j        t	          t          t	          d
          t	          d                              ddg	                    }t          j        g dg dgt          ddgd          t          j        t	          t          t	          d          t	          d          t	          d                              g d	                    }|                                }t          j        ||           |                    d          }t          j        ||           t          j        g dg dgt          ddgd          t          j        t	          t          t	          d          t	          d          t	          d                              g d	                    }|                    d          }t          j        ||           d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   )rI   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rM   rN   r   WWWWXXXXyyzzyyzzcdcdcdcdr   r   r   )rI   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r%   r   ABABABABr   r   r   	r(   r   r   rT   rv   r   r   r   rc   r   s       r   test_subclass_unstack_multiz4TestDataFrameSubclassing.test_subclass_unstack_multiu  sH   #///1A1A1ACSCSCST(SftF||4455eU^   *SftF||4455eU^  
 
 
 $---/O/O/OPc
///*Sj))4
+;+;T*=M=MNNOO+++  
 
 
 jjll
c3'''jj
c3'''$---/O/O/OPc
///*Sj))4
+;+;T*=M=MNNOO+++  
 
 
 jj
c3'''''r   c                    t          j        g dg dg dg dgt          j        t	          t          t	          d          t	          d                              ddg	          t          j        t	          t          t	          d
          t	          d                              ddg	                    }t          j        g dg dgt          ddgd          t          j        t	          t          t	          d          t	          d          t	          d                              g d	                    }|                                }t          j        ||           |                    d          }t          j        ||           t          j        g dg dgt          ddgd          t          j        t	          t          t	          d          t	          d          t	          d                              g d	                    }|                    d          }t          j        ||           d S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   )rI   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rM   rN   r   r   r   r   r   )rI   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r%   r   r   r   r   r   s       r   !test_subclass_unstack_multi_mixedz:TestDataFrameSubclassing.test_subclass_unstack_multi_mixed  sT   #$$$$$$$$$$$$	 (SftF||4455eU^   *SftF||4455eU^  
 
 
 $888888 c
///*Sj))4
+;+;T*=M=MNNOO+++  

 

 

 jjll
c3'''jj
c3'''$888888 c
///*Sj))4
+;+;T*=M=MNNOO+++  

 

 

 jj
c3'''''r   c                    t          j        g dg dg dd          }|                    ddd          }t          j        dd	d
ddd	d
dd          }d\  |j        _        |j        _        t          j        ||           d S )N)rM   rN   Cr   rN   rM   )Oner   r   Twor   r   )      ?       @      @r   r   r   )r'   rP   valuesr'   rP   r   r   r   r   rM   rN   r   )r   r   r   )r(   r   pivotr'   rs   rP   rc   )r   r+   pivotedexpecteds       r   test_subclass_pivotz,TestDataFrameSubclassing.test_subclass_pivot  s    #777EEE888 
 
 (()H(MM) s55 s55 
 
 6H2X-2
gx00000r   c                     t          j        ddgddgddgddgd	          }t          j        |d
dg          }t          j        g dg dg dg dgg d          }t          j        ||           d S )NJohnMaryDoeBo      @      @      )firstlastheightweightr  r  )id_varsr  r  r  r	  r  r  r  r
  r  r  r  r  r  r  r  r  r  r  variablevaluerO   )r(   r   pdmeltrc   )r   cheesemeltedr  s       r   test_subclassed_meltz-TestDataFrameSubclassing.test_subclassed_melt  s    ' &)**	 
 
 '6):;;;)...---...---	 ;::
 
 
 	fh/////r   c                 T   t           j                            d                              d          }t	          j        ddddddd	dd
dddddddt          t          t          d          |                    d          }|j	        |d<   |
                                |
                                z   g dg dg dg dd}t	          j        |          }|                    ddg          g d         }t          j        |ddgdd          }t	          j        ||           d S )Nr   r   r   r$   r%   r   r   r   r   ef      @333333?ffffff?皙	@?皙?)A1970A1980B1970B1980r!   id)r   r$   r%   r   r   r!  )r"  r#  r$  r%  r&  r'  )  r-  r-    r.  r.  )r   r   r   r   r   r   )r!   rM   rN   yearr,  r/  )r!   rM   rN   rM   rN   )r   j)r   randomdefault_rngstandard_normalr(   r   dictr   rR   r'   tolist	set_indexr  wide_to_longrc   )r   r   r+   exp_datar  
long_frames         r   test_subclassed_wide_to_longz5TestDataFrameSubclassing.test_subclassed_wide_to_long  sN    I!!!$$44Q77# SS11 SS11 SS11 SS11#eAhh**++ 
 
 84ahhjj(//////888$$$
 
 )(33%%tVn55oooF_R#stvFFF

j(33333r   c                    d d t          j        g dg dg dg dgg d          }|                    fd	           |                    fd
d           t          j        g dg dg dg dgg d          }|                    fdd          }t          |t           j                  sJ t          j        ||           t          j        g dg dg dg dg          }|                    d d          }t          |t           j                  sJ t          j        ||           |                    d dd          }t          |t           j                  sJ t          j        ||           t          j        g dg dg dg dg          }|                    d d          }t          |t           j                  rJ t          j        ||           d S )Nc                 >    t          | t          j                  sJ d S r   )rS   r(   ru   r   s    r   check_row_subclasszJTestDataFrameSubclassing.test_subclassed_apply.<locals>.check_row_subclass  s!    c2#67777777r   c                 >    | d         dk    r| dxx         dz  cc<   | S )Nr  r  r  g      ?r   r=  s    r   stretchz?TestDataFrameSubclassing.test_subclassed_apply.<locals>.stretch   s,    :(**G#Jr   r  r  r  r  r  rO   c                      |           S r   r   r   r>  s    r   <lambda>z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>/      --a00 r   c                      |           S r   r   rB  s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>0  rD  r   r   r   )r  r  r  r
  )r  r  r  g      @c                      |           S r   r   )r   r@  s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda><  s    GGAJJ r   r   c                 .    t          j        g d          S Nr   )r(   ru   r   s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>B  s    B$7			$B$B r   c                 
    g dS rH  r   rI  s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>F  
    III r   expand)r   result_typec                 
    g dS rH  r   rI  s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>L  rK  r   )r(   r   applyrS   rc   ru   rw   )r   r+   r  resultr>  r@  s       @@r   test_subclassed_applyz.TestDataFrameSubclassing.test_subclassed_apply  sn   	8 	8 	8	 	 	
 #...---...---	 ;::
 
 
 	0000111
0000q999)...---...---	 ;::
 
 
 ....Q77&""899999
fh///)999iiiIII*VWWBBKK&""899999
fh///--A8LL&""899999
fh///&			999iii'STT--A66fb&<=====
vx00000r   c                     t          j        g dg dg dd          } t          ||                      }t          |t           j                  sJ d S Nr   rh   rk   r   r(   r   getattrrS   ru   )r   all_reductionsr+   rP  s       r   test_subclassed_reductionsz3TestDataFrameSubclassing.test_subclassed_reductionsP  s`     #)))))))))$T$TUU,^,,..&""56666666r   c                    t          j        g ddt          j        dddgg dd          }|                                }t          |t           j                  sJ t          j        g dg d	g d
d          }|                                }t          |t           j                  sJ t          j        g dg dg dg dgt          j        t          t          t          d          t          d                              ddg          t          j        t          t          t          d          t          d                              ddg                    }|                                }t          |t           j                  sJ t          j                    }|                                }t          |t           j                  sJ d S )N)r  MylaLewisr  rY  g      8@r   r      )FTTTF)PersonAgeSingle)r   r   r   )r   rL   rj   )rl   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r(   r   r   r   countrS   ru   r   rT   rv   r   r   r+   rP  s      r   test_subclassed_countz.TestDataFrameSubclassing.test_subclassed_countW  s   #CCCbfdB3::: 
 
 &""566666#)))))))))$T$TUU&""566666#///1A1A1ACSCSCST(SftF||4455eU^   *SftF||4455eU^  
 
 
 &""566666#%%&""56666666r   c                     t          j        ddgddgdddg          }|                    ddg          }t          |t           j                  sJ d S )Nr   ri   r   )num_legs	num_wingsfalcondogr&   )r(   r   isinrS   r`  s      r   	test_isinz"TestDataFrameSubclassing.test_isinv  sg    #Qq!f55h=N
 
 
 !Q&""89999999r   c                 (   t          j        g dg dg dd          }|                                }t          |t           j                  sJ t          j                    }|                                }t          |t           j                  sJ d S rS  )r(   r   
duplicatedrS   ru   r`  s      r   test_duplicatedz(TestDataFrameSubclassing.test_duplicated}  s    #)))))))))$T$TUU&""566666#%%&""56666666r   
idx_methodidxmaxidxminc                     t          j        g dg dg dd          } t          ||                      }t          |t           j                  sJ d S rS  rT  )r   rl  r+   rP  s       r   test_idxz!TestDataFrameSubclassing.test_idx  s^    #)))))))))$T$TUU(Z((**&""56666666r   c                    t          j        g dg dg          }t          j        g d          }|                    |          }t	          |t           j                  sJ t          j        g dg dg          }t          j        g d          }|                    |          }t	          |t           j                  sJ d S )N)r   r   )r   r   r   r   )r   r   r   r   )r(   r   ru   dotrS   )r   r+   r   rP  s       r   test_dotz!TestDataFrameSubclassing.test_dot  s    #^^^\\\$BCC--&""566666#^^^\\\$BCC"<<<00&""89999999r   c                    t          j        g dg dg dd          }|                                }t          |t           j                  sJ |                    d          }t          |t           j                  sJ d S )Nr   rh   rk   r   Fr&   )r(   r   memory_usagerS   ru   r`  s      r   test_memory_usagez*TestDataFrameSubclassing.test_memory_usage  s    #)))))))))$T$TUU""&""566666u--&""56666666r   c                    t          j        d           g d}g d}t          j        t          j                            d                              d          ||          }t          j        t          j                            d                              d          |d d         |          }|                    |d	d
d          }t          |t          j
                  sJ d S )Nscipy)r   r$   r%   r   r   )onetwothreefourr   )rL   ri   r   )ri   ri   ri   r   Tkendall)r   dropmethod)r   importorskipr(   r   r   r1  r2  r3  corrwithrS   ru   )r   r'   rP   r   r   correlss         r   test_corrwithz&TestDataFrameSubclassing.test_corrwith  s    G$$$)))111$I!!!$$44V<<
 
 

 $I!!!$$44V<<)
 
 

 ,,si,HH'B$79999999r   c                 t   d}t          j        d|d          }t          j        t          j        t          j        t          j        gt          j        t          j        t          j        gt          j        t          j        t          j        gd|          }|                    |dd                    }t          |t          j                  sJ |                    |d                   }t          |t          j                  sJ |                    d          }t          |t          j                  sJ d S )	Nr   z1/1/199053s)periodsfreqr   r&   rr  z
1989-12-31)	r  
date_ranger(   r   r   r   asofrS   ru   )r   Nrngr+   rP  s        r   	test_asofz"TestDataFrameSubclassing.test_asof  s   mJ>>>#fbfbf-fbfbf-fbfbf- 
 
 
 
 RSS""&""899999R!!&""566666&&&""56666666r   c                     t          j        g dg dg dd          }|                                }t          |t           j                  sJ d S rS  )r(   r   rn  rS   ru   r`  s      r   test_idxmin_preserves_subclassz7TestDataFrameSubclassing.test_idxmin_preserves_subclass  V     #)))))))))$T$TUU&""56666666r   c                     t          j        g dg dg dd          }|                                }t          |t           j                  sJ d S rS  )r(   r   rm  rS   ru   r`  s      r   test_idxmax_preserves_subclassz7TestDataFrameSubclassing.test_idxmax_preserves_subclass  r  r   c                    t          j        g dg dg dd          }|                                }t          |t           j                  sJ |                                }t          |t	          |                    sJ d S rS  )r(   r   convert_dtypesrS   type)r   r   r+   rP  s       r   &test_convert_dtypes_preserves_subclassz?TestDataFrameSubclassing.test_convert_dtypes_preserves_subclass  s    #)))))))))$T$TUU""$$&""899999&5577&$'<"="=>>>>>>>r   c                     t          j        g dg dg dd          }|                    t          j        t          j        t          j        d          }t          |t           j                  sJ d S rS  )r(   r   astyper   int64int32float64rS   r`  s      r   test_astype_preserves_subclassz7TestDataFrameSubclassing.test_astype_preserves_subclass  sh    #)))))))))$T$TUUrzJJKK&""89999999r   c                     t          dg di          }t          j        dg di          }|                    |          sJ |                    |          sJ d S Nr   r   )r   r(   r   equals)r   r   r   s      r   test_equals_subclassz-TestDataFrameSubclassing.test_equals_subclass  se     iii())$c999%566zz#zz#r   c                 f   t          j        dg di          }d}t          j        t          |d          5  |                    ddgd	          }d d d            n# 1 swxY w Y   t          j        dg d
i          }t          |t           j                  sJ t          j        ||           d S )NrM   r  zAThe 'method' keyword in SubclassedDataFrame.replace is deprecatedF)r   raise_on_extra_warningsr   r   ffill)r  )r   r   r   )r(   r   r)   FutureWarningreplacerS   rc   )r   r+   msgrP  r  s        r   test_replace_list_methodz1TestDataFrameSubclassing.test_replace_list_method  s    #S)))$455Q'e
 
 
 	8 	8 ZZAwZ77F	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 )3			*:;;&""899999
fh/////s   AA!$A!N)'r   r   r   r,   r\   rf   r{   r   r   r   r   r   r   r   r   r   r   r  r  r:  rQ  rW  ra  rh  rk  r   markparametrizerp  ru  rx  r  r  r  r  r  r  r  r  r   r   r   r   r      s/       	 	 	59 59 59n1 1 1(!4 !4 !4F  - - -:* * *83 3 3) ) )7( 7( 7(r<( <( <(|) ) )%( %( %(N0( 0( 0(d1 1 1.0 0 024 4 4841 41 41l7 7 77 7 7>: : :7 7 7 [\Hh+?@@7 7 A@7
	: 	: 	:7 7 7: : :$7 7 7*7 7 77 7 7? ? ?: : :  
0 
0 
0 
0 
0r   r   c                   <     e Zd ZdgZd fdZed             Z xZS )MySubclassWithMetadatamy_metadatar:   Nc                      t                      j        |i | |                    dd           }|r(t          |d         t                    r|d         j        }|| _        d S )Nr  r   )r<   r=   poprS   r  r  )r   r>   kwargsr  r@   s       r   r=   zMySubclassWithMetadata.__init__  sj    $)&)))jj55 	.JtAw(>?? 	.q'-K&r   c                     t           S r   )r  r5   s    r   r   z#MySubclassWithMetadata._constructor  s    %%r   rE   )r   r   r   rd   r=   r   r   rH   )r@   s   @r   r  r    s_        I' ' ' ' ' ' & & X& & & & &r   r  c                      t          t          j                            d                              d          g d          } | ddg         }t	          |t                     sJ d S )Nr   )rL   r   r   rO   rM   rN   )r  r   r1  r2  rS   )r+   subsets     r   test_constructor_with_metadatar  	  sk     
 
	a  ''//
 
 
B c
^Ff45555555r   c                       e Zd ZdZdS )SimpleDataFrameSubClassz;A subclass of DataFrame that does not define a constructor.Nr   r   r   rF   r   r   r   r  r    s        EEEEr   r  c                       e Zd ZdZdS )SimpleSeriesSubClassz8A subclass of Series that does not define a constructor.Nr  r   r   r   r  r    s        BBBBr   r  c                   &    e Zd Zd Zd Zd Zd ZdS )TestSubclassWithoutConstructorc                     t          dg di          }t          |                                          }t          |          t           u sJ t	          j        ||           d S r  )r   r  copyr  r(   rc   r   r  rP  s      r   test_copy_dfz+TestSubclassWithoutConstructor.test_copy_df  sc    c999-..(227799 LLI%%%%
fh/////r   c                     t          g d          }t          |                                          }t          j        ||           d S rH  )r   r  r  r(   rw   r  s      r   test_copy_seriesz/TestSubclassWithoutConstructor.test_copy_series%  sE    )))$$%h//4466
vx00000r   c                     t          g d          }|                                }t          |                                          }t          |          t          u sJ t          j        ||           d S rH  )r   to_framer  r  r   r(   rc   )r   origr  rP  s       r   test_series_to_framez3TestSubclassWithoutConstructor.test_series_to_frame+  sk    iii  ==??%d++4466 LLI%%%%
fh/////r   c                     t          t          dg di                    }|                    d          D ]\  }}t          |          t          u sJ d S r  )r  r   groupbyr  )r   r+   _vs       r   test_groupbyz+TestSubclassWithoutConstructor.test_groupby5  sa    $YYYY/?%@%@AAJJsOO 	( 	(DAq77i'''''	( 	(r   N)r   r   r   r  r  r  r  r   r   r   r  r    sP        0 0 01 1 10 0 0( ( ( ( (r   r  )numpyr   r   pandasr  r   r   r   r   pandas._testing_testingr(   r  filterwarnings
pytestmarkfixturer   r   r  r  r  r  r  r   r   r   <module>r     s                            [''S 

 1 1 1Z0 Z0 Z0 Z0 Z0 Z0 Z0 Z0z& & & & &Y & & & 6 6 6F F F F Fi F F FC C C C C6 C C C( ( ( ( ( ( ( ( ( (r   