
    Eg^k                     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    U/var/www/sysmax/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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                   	  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_function&       tr   N)r   r   r   r   r   r(   )r#   s   r   r#   r!   !   sG        $ $ $ $ X$    r   r#   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._constructor2   s	    &&r   c                     dS r%   r   r'   s    r   custom_frame_functionzjTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.custom_frame_function8   r)   r   r,   N)
r   r   r   __doc__r/   r   r   _constructor_slicedr6   __classcell__)r2   r4   r#   s   @r   r4   r+   )   s         
. . . . . . ' ' ' ' X' #/      r   r4   
   )col1col2r&   r      )Ar?   )r?   Br   r   r   columnsr?   )r?    )r@   rC   )	r   r   range
isinstancer<   r(   r6   r   from_tuples)
r   datacdf
cdf_seriescdf_rowsmcol	cdf_multi
cdf_multi2r4   r#   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   )XYr   bcindexXXXrP   r   rS   r   r   )tmr   testattrlocilocround_trip_pickleassert_frame_equal	_metadata)r   df	unpickleds      r   test_dataframe_metadataz0TestDataFrameSubclassing.test_dataframe_metadataT   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      r>            	   rP   rQ   ZrR   rU   rP   abcrV   namer   rQ   rk   r   )r   rd   rg   XYZ)r   r>   rh   rS   rT   )r   re   ri   )rX   r   rZ   SubclassedSerieslistassert_series_equalrE   r[   r   r_   resexps       r   test_indexing_slicedz-TestDataFrameSubclassing.test_indexing_slicedh   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_existr'   s    r   nonexistencezSTestDataFrameSubclassing.test_subclass_attr_err_propagation.<locals>.A.nonexistence   s    ((r   N)r   r   r   r   r|   r   r   r   r?   ry      s-        ) ) X) ) )r   r?   z.*i_dont_exist.*)match)r   pytestraisesAttributeErrorr|   )r   r?   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   r>   r   rS   ACErU   r   r   rd   )rT   dABDr   axisr   r   r>   ABCDEr   rd   )rX   r   rq   alignnpnanrE   r]   r   rT   rp   rr   )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   rU   r   r   xrm   r   r   r   r   r>   r   r   rd   )
rX   r   rq   rp   r   r   r   rE   r]   rr   )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   )rX   r   iterrowsrE   rp   rr   rZ   )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   rc   rf   rR   rj   rV   rB   Tfuture_stack)	r   r   r   rd   r>   re   rg   rh   ri   	aaabbbccc	XYZXYZXYZrU   )rX   r   stackrp   rq   rr   rs   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r;                                  !   (   )   *   +   AABBcdcdaaacccnamesWWXXyzyzwwwyyyr   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   AAAABBBBccddccddyzyzyzyzr   r   r   WrP   rn   Tr   WXWXWXWXr   r   r   yz	rX   r   r   rF   rq   zipr   r   r]   r   r_   ru   rt   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r;   r         (@      *@r   r         6@      7@r   r         @@     @@r   r         E@     E@r   r   r   r   r   r   r   r   r   r   r;   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rP   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   rc   rf   rR   rj   r   )	r   rd   rg   r   r>   rh   r   re   ri   	XXXYYYZZZ	abcabcabcrU   )rX   r   unstackrp   rq   rr   rs   s       r   test_subclass_unstackz.TestDataFrameSubclassing.test_subclass_unstack[  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   )r;   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r?   r@   r   WWWWXXXXyyzzyyzzcdcdcdcdr   r   r   )r;   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rT   r   ABABABABr   r   r   	rX   r   r   rF   rq   r   r   r   r]   r   s       r   test_subclass_unstack_multiz4TestDataFrameSubclassing.test_subclass_unstack_multij  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   )r;   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r?   r@   r   r   r   r   r   )r;   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rT   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)r?   r@   Cr   r@   r?   )Oner   r   Twor   r   )      ?       @      @r   r   r   )rV   rB   valuesrV   rB   r   r   r   r   r?   r@   r   )r   r   r   )rX   r   pivotrV   rn   rB   r]   )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valuerA   )rX   r   pdmeltr]   )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   rS   rT   r   r   r   r   ef      @333333?ffffff?皙	@?皙?)A1970A1980B1970B1980rP   id)r   rS   rT   r   r  r  )r  r  r  r   r!  r"  )  r(  r(    r)  r)  )r   r   r   r   r   r   )rP   r?   r@   yearr'  r*  )rP   r?   r@   r?   r@   )r   j)r   randomdefault_rngstandard_normalrX   r   dictr   rD   rV   tolist	set_indexr  wide_to_longr]   )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   )rE   rX   rp   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   r8  s    r   stretchz?TestDataFrameSubclassing.test_subclassed_apply.<locals>.stretch  s,    :(**G#Jr   r  r  r  r  r  rA   c                      |           S r   r   r   r9  s    r   <lambda>z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>$      --a00 r   c                      |           S r   r   r=  s    r   r>  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>%  r?  r   r   r   )r   r  r
  r  )r  r  r
  g      @c                      |           S r   r   )r   r;  s    r   r>  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>1  s    GGAJJ r   r   c                 .    t          j        g d          S Nr   )rX   rp   r   s    r   r>  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>7  s    B$7			$B$B r   c                 
    g dS rC  r   rD  s    r   r>  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>;  
    III r   expand)r   result_typec                 
    g dS rC  r   rD  s    r   r>  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>A  rF  r   )rX   r   applyrE   r]   rp   rr   )r   r_   r   resultr9  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   rc   rf   r   rX   r   getattrrE   rp   )r   all_reductionsr_   rK  s       r   test_subclassed_reductionsz3TestDataFrameSubclassing.test_subclassed_reductionsE  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   rT  g      8@r   r      )FTTTF)PersonAgeSingle)r   r   r   )r   r>   re   )rg   rh   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rX   r   r   r   countrE   rp   r   rF   rq   r   r   r_   rK  s      r   test_subclassed_countz.TestDataFrameSubclassing.test_subclassed_countL  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   rd   r   )num_legs	num_wingsfalcondogrU   )rX   r   isinrE   r[  s      r   	test_isinz"TestDataFrameSubclassing.test_isink  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 rN  )rX   r   
duplicatedrE   rp   r[  s      r   test_duplicatedz(TestDataFrameSubclassing.test_duplicatedr  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 rN  rO  )r   rg  r_   rK  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   )rX   r   rp   dotrE   )r   r_   r   rK  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   rc   rf   r   FrU   )rX   r   memory_usagerE   rp   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   rS   rT   r   r  )onetwothreefourr   )r>   rd   r   )rd   rd   rd   r   Tkendall)r   dropmethod)r~   importorskiprX   r   r   r,  r-  r.  corrwithrE   rp   )r   rV   rB   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   rU   rm  z
1989-12-31)	r  
date_rangerX   r   r   r   asofrE   rp   )r   Nrngr_   rK  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 rN  )rX   r   ri  rE   rp   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 rN  )rX   r   rh  rE   rp   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 rN  )rX   r   convert_dtypesrE   type)r   r   r_   rK  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 rN  )rX   r   astyper   int64int32float64rE   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   rX   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 )Nr?   r  zAThe 'method' keyword in SubclassedDataFrame.replace is deprecatedF)r}   raise_on_extra_warningsr   r   ffill)r|  )r   r   r   )rX   r   assert_produces_warningFutureWarningreplacerE   r]   )r   r_   msgrK  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   rN   ra   rv   r   r   r   r   r   r   r   r   r   r   r   r  r5  rL  rR  r\  rc  rf  r~   markparametrizerk  rp  rs  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/   poprE   r  r  )r   r0   kwargsr  r2   s       r   r/   zMySubclassWithMetadata.__init__  sj    $)&)))jj55 	.JtAw(>?? 	.q'-K&r   c                     t           S r   )r  r'   s    r   r   z#MySubclassWithMetadata._constructor  s    %%r   r7   )r   r   r   r^   r/   r   r   r:   )r2   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   )r>   r   r   rA   r?   r@   )r  r   r,  r-  rE   )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   r8   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  rX   r]   r   r   rK  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 rC  )r   r  r  rX   rr   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 rC  )r   to_framer  r  r   rX   r]   )r   origr   rK  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_groupby*  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_testingrX   r  filterwarnings
pytestmarkfixturer   r   r  r  r  r  r  r   r   r   <module>r     s                            [''S 

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