
    Pi	k                     
   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 G d d          Z G d de          Zd 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                      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 )N         XYabcindexr   )tmSubclassedDataFrameassert_produces_warningisna)selfdfs     t/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/pandas/tests/frame/test_subclass.py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 N )r   CustomSeriess    r   _constructorz^TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries._constructor#   s	    ##    c                     dS NOKr$   r   s    r   custom_series_functionzhTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries.custom_series_function'       tr'   N)__name__
__module____qualname__propertyr&   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   r7   z]TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.__init__0   s%      $-"-----r'   c                     S r#   r$   )r   CustomDataFrames    r   r&   zaTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame._constructor3   s	    &&r'   c                     dS r)   r$   r+   s    r   custom_frame_functionzjTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.custom_frame_function9   r-   r'   r4   N)
r.   r/   r0   __doc__r7   r1   r&   _constructor_slicedr>   __classcell__)r:   r<   r%   s   @r   r<   r3   *   s         
. . . . . . ' ' ' ' X' #/      r'   r<   
   )col1col2r*   r      )ArG   )rG   Br   r   r   columnsrG   )rG    )rH   rK   )	r   r   range
isinstancerD   r,   r>   r   from_tuples)
r   datacdf
cdf_seriescdf_rowsmcol	cdf_multi
cdf_multi2r<   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
   r   r   r   XXXr   r   r   r   r   )r   r   testattrlocilocround_trip_pickleassert_frame_equal	_metadata)r   	temp_filer   	unpickleds       r   test_dataframe_metadataz0TestDataFrameSubclassing.test_dataframe_metadataU   s7   #))))),,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 (Y77	
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
      rF            	   r   r   Zr   r   r   abcr   namer   r   rk   r   )r   rd   rg   XYZ)r   rF   rh   r   r   )r   re   ri   )r   r   rZ   SubclassedSerieslistassert_series_equalrM   r[   r   r   resexps       r   test_indexing_slicedz-TestDataFrameSubclassing.test_indexing_slicedi   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/   r0   r1   r|   r$   r'   r   rG   ry      s-        ) ) X) ) )r'   rG   z.*i_dont_exist.*)match)r   pytestraisesAttributeErrorr|   )r   rG   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   rF   r   r   ACEr   r   r   rd   )r   dABDr   axisr   r   rF   ABCDEr   rd   )r   r   rq   alignnpnanrM   r]   r   r   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   r   r   r   xrm   r   r   r   r   rF   r   r   rd   )
r   r   rq   rp   r   r   r   rM   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   )r   r   iterrowsrM   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          }|                                }t          j        g dt	          d          t	          d	          g
          }t          j        ||           d S )Nr
   rc   rf   r   rj   r   rJ   )	r   r   r   rd   rF   re   rg   rh   ri   	aaabbbccc	XYZXYZXYZr   )r   r   stackrp   rq   rr   rs   s       r   test_subclass_stackz,TestDataFrameSubclassing.test_subclass_stack   s    #YY			999-!//#OO
 
 
 hhjj!'''[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%                    }|                                }t          j        ||           |                    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          }t          j        ||           d S )*NrC                                  !   (   )   *   +   AABBcdcdaaacccnamesWWXXyzyzwwwyyyr   rC   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   AAAABBBBccddccddyzyzyzyzr   r   r   Wr   rn   WXWXWXWXr   r   r   yz	r   r   r   rN   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
 
 
$ hhjj
c3'''hhuoo
c3'''$RRRRRRRR	 (Sj))4
+;+;T*=M=MNNOO+++   3*5111
 
 
$ hhuoo
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%                    }|                                }t          j        ||           |                    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          d0d1gd%                    }|                    d          }t          j        ||           d S )2NrC   r         (@      *@r   r         6@      7@r   r         @@     @@r   r         E@     E@r   r   r   r   r   r   r   r   r   r   rC   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   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
 
 
$ hhjj
c3'''hhuoo
c3'''$tttttttt	 (Sj))4
+;+;T*=M=MNNOO+++   3*5111
 
 
$ hhuoo
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   r   rj   r   )	r   rd   rg   r   rF   rh   r   re   ri   	XXXYYYZZZ	abcabcabcr   )r   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   )rC   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rG   rH   r   WWWWXXXXyyzzyyzzcdcdcdcdr   r   r   )rC   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   ABABABABr   r   r   	r   r   r   rN   rq   r   r   r   r]   r   s       r   test_subclass_unstack_multiz4TestDataFrameSubclassing.test_subclass_unstack_multik  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   )rC   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rG   rH   r   r   r   r   r   )rC   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)rG   rH   Cr   rH   rG   )Oner   r   Twor   r   )      ?       @      @r   r   r   )r   rJ   valuesr   rJ   r   r   r   r   rG   rH   r   )r   r   r   )r   r   pivotr   rn   rJ   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valuerI   )r   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   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   rG   rH   yearr$  r'  )r   rG   rH   rG   rH   )r   j)r   randomdefault_rngstandard_normalr   r   dictr   rL   r   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#   )rM   r   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$   r5  s    r   stretchz?TestDataFrameSubclassing.test_subclassed_apply.<locals>.stretch  s,    :(**G#Jr'   r  r  r  r  r  rI   c                      |           S r#   r$   r   r6  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   r8  s    r   r;  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>2  s    GGAJJ r'   r
   c                 .    t          j        g d          S Nr
   )r   rp   r   s    r   r;  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>8  s    B$7			$B$B r'   c                 
    g dS r@  r$   rA  s    r   r;  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda><  
    III r'   expand)r   result_typec                 
    g dS r@  r$   rA  s    r   r;  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>B  rC  r'   )r   r   applyrM   r]   rp   rr   )r   r   r   resultr6  r8  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   r   r   getattrrM   rp   )r   all_reductionsr   rH  s       r   test_subclassed_reductionsz3TestDataFrameSubclassing.test_subclassed_reductionsF  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   rQ  g      8@r   r      )FTTTF)PersonAgeSingle)r   r   r   )r   rF   re   )rg   rh   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   countrM   rp   r   rN   rq   r   r   r   rH  s      r   test_subclassed_countz.TestDataFrameSubclassing.test_subclassed_countM  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dogr   )r   r   isinrM   rX  s      r   	test_isinz"TestDataFrameSubclassing.test_isinl  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 rK  )r   r   
duplicatedrM   rp   rX  s      r   test_duplicatedz(TestDataFrameSubclassing.test_duplicateds  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 rK  rL  )r   rd  r   rH  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   rp   dotrM   )r   r   r   rH  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   Fr   )r   r   memory_usagerM   rp   rX  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   )rF   rd   r   )rd   rd   rd   r   Tkendall)r   dropmethod)r~   importorskipr   r   r   r)  r*  r+  corrwithrM   rp   )r   r   rJ   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   rj  z
1989-12-31)	r  
date_ranger   r   r   r   asofrM   rp   )r   Nrngr   rH  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 rK  )r   r   rf  rM   rp   rX  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 rK  )r   r   re  rM   rp   rX  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 d S rK  )r   r   convert_dtypesrM   rX  s      r   &test_convert_dtypes_preserves_subclassz?TestDataFrameSubclassing.test_convert_dtypes_preserves_subclass  sX    #)))))))))$T$TUU""$$&""89999999r'   c                      G fddt                      dg di          }|                                }t          |          sJ d S )Nc                   *    e Zd Ze fd            ZdS )mTestDataFrameSubclassing.test_convert_dtypes_preserves_subclass_with_constructor.<locals>.SubclassedDataFramec                     S r#   r$   )r   r   s    r   r&   zzTestDataFrameSubclassing.test_convert_dtypes_preserves_subclass_with_constructor.<locals>.SubclassedDataFrame._constructor  s	    **r'   N)r.   r/   r0   r1   r&   )r   s   r   r   r    s8        + + + + X+ + +r'   r   r   r
   )r   r  rM   )r   r   rH  r   s      @r   7test_convert_dtypes_preserves_subclass_with_constructorzPTestDataFrameSubclassing.test_convert_dtypes_preserves_subclass_with_constructor  s    	+ 	+ 	+ 	+ 	+ 	+ 	+) 	+ 	+ 	+
 ! #yyy!122""$$&"56666666r'   c                     t          j        g dg dg dd          }|                    t          j        t          j        t          j        d          }t          |t           j                  sJ d S rK  )r   r   astyper   int64int32float64rM   rX  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  sc     iii())$c999%566zz#zz#r'   N)'r.   r/   r0   r   rV   ra   rv   r   r   r   r   r   r   r   r   r   r   r   r  r2  rI  rO  rY  r`  rc  r~   markparametrizerh  rm  rp  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: : :7 7 7: : :    r'   r   c                   <     e Zd ZdgZd fdZed             Z xZS )MySubclassWithMetadatamy_metadatar4   Nc                      t                      j        |i | |                    dd           }|r(t          |d         t                    r|d         j        }|| _        d S )Nr  r   )r6   r7   poprM   r  r  )r   r8   kwargsr  r:   s       r   r7   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'   r?   )r.   r/   r0   r^   r7   r1   r&   rB   )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   )rF   r   r   rI   rG   rH   )r  r   r)  r*  rM   )r   subsets     r   test_constructor_with_metadatar    sk     
 
	a  ''//
 
 
B c
^Ff45555555r'   c                      t                               dddg          } | j        J t          |           t           u sJ d S )Nr   r   r   )r  from_recordsr  type)r   s    r   +test_constructor_with_metadata_from_recordsr    sL    		,	,AA.>.>-?	@	@B>!!!88-------r'   c                       e Zd ZdZdS )SimpleDataFrameSubClassz;A subclass of DataFrame that does not define a constructor.Nr.   r/   r0   r@   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   r]   r   r   rH  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 r@  )r   r  r  r   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 r@  )r   to_framer  r  r   r   r]   )r   origr   rH  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/   r0   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
pytestmarkr   r  r  r  r  r  r  r$   r'   r   <module>r     s                            [''S 

U U U U U U U Up& & & & &Y & & & 6 6 6. . .F F F F Fi F F FC C C C C6 C C C( ( ( ( ( ( ( ( ( (r'   