
    .i	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                  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y)    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j4                  j7                  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&y%)&TestDataFrameSubclassingc                     t        j                  g dg ddg d      }t        j                  d       5  |j                          |d   j                          d d d        y # 1 sw Y   y xY w)N         XYabcindexr   )tmSubclassedDataFrameassert_produces_warningisna)selfdfs     ^/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/frame/test_subclass.pytest_no_warning_on_mgrz/TestDataFrameSubclassing.test_no_warning_on_mgr   sY    ##),O
 ''- 	 GGIsGLLN		 	 	s   $A##A,c                 6  	  G 	fddt               	 G 	fddt              t        d      t        d      d} |      }t        |      sJ |j                  }t        |	      sJ |j                         dk(  sJ |dd	 }t        |      sJ |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 y )Nc                   (    e Zd Ze fd       Zd Zy)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                      yNOKr$   r   s    r   custom_series_functionzhTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries.custom_series_function'       r'   N)__name__
__module____qualname__propertyr&   r,   )r%   s   r   r%   r!   "   s    $ $r'   r%   c                   F     e Zd ZdZd fdZefd       ZW 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.
            c                 $    t        |   |i | y r#   )super__init__)r   argskw	__class__s      r   r6   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                      yr)   r$   r+   s    r   custom_frame_functionzjTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.custom_frame_function9   r-   r'   returnN)
r.   r/   r0   __doc__r6   r1   r&   _constructor_slicedr=   __classcell__)r9   r;   r%   s   @r   r;   r3   *   s.    
. ' ' #/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   s7   	6 		i 	$ b	595d# #/// XX
*l333002d::: q8(O444--/4777 %%z:&>?#aVaV$4dC	)C./:::%%y)&<=$q!fq!f%5tD
*S/<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 y )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   s   ##),O
 {{e###3%y!!U***vvsCj!m$--666ww1vqy!**e333 wwqsAv''5000 ((Y7	
b),||y22222{{i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 y )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   ##))<O
 ffQVn!!)4;SI
sC(#r22333ggadm!!)4;SI
sC(#r22333ffQVn!!)4;SI
sC(#r22333ffS!Vn!!)4;SI
sC(#r22333ggadm!!)4;SI
sC(#r22333ffS!Vn!!)4;SI
sC(#r22333r'   c                      G d dt               }t        j                  t        d      5   |       j                   d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zed        Zy)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    ) )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 	C	 	 	s   AAc                 h   t        j                  g dg ddt        d            }t        j                  g dg ddt        d            }|j                  |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                  |j                        \  }}t        |t         j                        sJ t        j                  ||j                         t        |t         j                        sJ t        j                  ||j                         y )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K
 $$),DK
 YYsY+
d%%bffa+1bffa2KLw-
 %%aBFF+1aBFF2KLw-
 $ 6 6777
dD)$ 6 6777
dD)UU[['
d$ 3 3444
tTVV,$ 3 3444
tTVV,r'   c                    t        j                  g dg ddt        d            }t        j                  g dt        d      d      }|j	                  |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                  ||       |j	                  |      \  }}t        |t         j                        sJ t        j                  ||       t        |t         j                        sJ t        j                  ||       y )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   sp   ##))$DDQVKX	e3G XXaaX(
d%%bffa+1bffa2KLw-

 ""2661bff%T']
 $ 6 6777
dD)$ 3 3444
tT* WWR[
d$ 3 3444
tT*$ 6 6777
dD)r'   c                     t        j                  ddgi      }|j                         D ]D  \  }}t        |t         j                        sJ t        j
                  ||j                  |          F y )Nr   r   )r   r   iterrowsrM   rp   rr   rZ   )r   r   irows       r   test_subclass_iterrowsz/TestDataFrameSubclassing.test_subclass_iterrows   s_    ##S1#J/kkm 	3FAsc2#6#6777""3q	2	3r'   c                     t        j                  g dg dg dgg dg d      }|j                         }t        j                  g dt	        d      t	        d	      g
      }t        j
                  ||       y )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   se    ##	9-!#
 hhj!!'[0A4CT/U
 	sC(r'   c                 0   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%            }|j                         }t        j                  ||       |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%            }|j                  d      }t        j                  ||       y )*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   ##/1ACST((SftF|45eU^ **SftF|45eU^
 $$RRRRRRRR	 ((Sj)4
+;T*=MNO+ 3*51
$ hhj
c3'hhuo
c3'$$RRRRRRRR	 ((Sj)4
+;T*=MNO+ 3*51
$ hhuo
c3'r'   c                 0   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%            }|j                         }t        j                  ||       |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%            }|j                  d      }t        j                  ||       y )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5eU^ **SftF|45eU^
 $$T
T
T
T
T
T
T
T
	 ((Sj)4
+;T*=MNO+ 3*51
$ hhj
c3'hhuo
c3'$$tttttttt	 ((Sj)4
+;T*=MNO+ 3*51
$ hhuo
c3'r'   c                     t        j                  g dg dg dgg dg d      }|j                         }t        j                  g dt	        d      t	        d	      g
      }t        j
                  ||       y )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\  se    ##	9-!#
 jjl!!'[0A4CT/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	            }|j                         }t        j                  ||       |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	            }|j                  d      }t        j                  ||       y )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  s   ##/1ACST((SftF|45eU^ **SftF|45eU^
 $$-/OPc
/**Sj)4
+;T*=MNO+
 jjl
c3'jj
c3'$$-/OPc
/**Sj)4
+;T*=MN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	            }|j                         }t        j                  ||       |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	            }|j                  d      }t        j                  ||       y )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  s   ##$$$$	 ((SftF|45eU^ **SftF|45eU^
 $$88 c
/**Sj)4
+;T*=MNO+

 jjl
c3'jj
c3'$$88 c
/**Sj)4
+;T*=MNO+

 jj
c3'r'   c                    t        j                  g dg dg dd      }|j                  ddd      }t        j                  dd	d
ddd	d
dd      }d\  |j                  _        |j
                  _        t        j                  ||       y )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E8
 (()H(M)) s5 s5
 6H2X--2
gx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                  ||       y )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         j                  j                  d      j                  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<   |j                         |j                         z   g dg dg dg dd}t	        j
                  |      }|j                  ddg      g d   }t        j                  |ddgdd      }t	        j                  ||       y )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  s     II!!!$44Q7## SS1 SS1 SS1 SS1#eAh*+
 884ahhj(//8$
 ))(3%%tVn5oF__R#stvF

j(3r'   c                    d d t        j                  g dg dg dg dgg d      }|j                  fd	       |j                  fd
d       t        j                  g dg dg dg dgg d      }|j                  fdd      }t        |t         j                        sJ t        j                  ||       t        j                  g dg dg dg dg      }|j                  d d      }t        |t         j                        sJ t        j                  ||       |j                  d dd      }t        |t         j                        sJ t        j                  ||       t        j
                  g dg dg dg dg      }|j                  d d      }t        |t         j                        rJ t        j                  ||       y )Nc                 <    t        | t        j                        sJ y r#   )rM   r   rp   r   s    r   check_row_subclasszJTestDataFrameSubclassing.test_subclassed_apply.<locals>.check_row_subclass  s    c2#6#6777r'   c                 0    | 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 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    GAJ r'   r
   c                 0    t        j                  g d      S Nr
   )r   rp   r   s    r   r;  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>8  s    B$7$7	$B r'   c                 
    g dS r@  r$   rA  s    r   r;  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda><      I 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  s   	8	
 ##.-.-	 ;
 	01
0q9)).-.-	 ;
 .Q7&""8"8999
fh/))9iI*VWBK&""8"8999
fh/-A8L&""8"8999
fh/&&	9i'ST-A6fb&<&<===
vx0r'   c                     t        j                  g dg dg dd      } t        ||             }t        |t         j                        sJ y Nr
   rc   rf   r   r   r   getattrrM   rp   )r   all_reductionsr   rH  s       r   test_subclassed_reductionsz3TestDataFrameSubclassing.test_subclassed_reductionsF  sB     ##)))$TU,^,.&""5"5666r'   c                 b   t        j                  g ddt        j                  dddgg dd      }|j	                         }t        |t         j                        sJ t        j                  g dg d	g d
d      }|j	                         }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            }|j	                         }t        |t         j                        sJ t        j                         }|j	                         }t        |t         j                        sJ y )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  sS   ##CbffdB3:
 &""5"5666##)))$TU&""5"5666##/1ACST((SftF|45eU^ **SftF|45eU^
 &""5"5666##%&""5"5666r'   c                     t        j                  ddgddgdddg      }|j                  ddg      }t        |t         j                        sJ y )Nr   rd   r   )num_legs	num_wingsfalcondogr   )r   r   isinrM   rX  s      r   	test_isinz"TestDataFrameSubclassing.test_isinl  sR    ##Qq!f5h=N
 !Q&""8"8999r'   c                    t        j                  g dg dg dd      }|j                         }t        |t         j                        sJ t        j                         }|j                         }t        |t         j                        sJ y rK  )r   r   
duplicatedrM   rp   rX  s      r   test_duplicatedz(TestDataFrameSubclassing.test_duplicateds  si    ##)))$TU&""5"5666##%&""5"5666r'   
idx_methodidxmaxidxminc                     t        j                  g dg dg dd      } t        ||             }t        |t         j                        sJ y rK  rL  )r   rd  r   rH  s       r   test_idxz!TestDataFrameSubclassing.test_idx|  s@    ##)))$TU(Z(*&""5"5666r'   c                    t        j                  g dg dg      }t        j                  g d      }|j                  |      }t	        |t         j                        sJ t        j                  g dg dg      }t        j                  g d      }|j                  |      }t	        |t         j                        sJ y )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-&""5"5666##^\$BC""<0&""8"8999r'   c                     t        j                  g dg dg dd      }|j                         }t        |t         j                        sJ |j                  d      }t        |t         j                        sJ y )Nr
   rc   rf   r   Fr   )r   r   memory_usagerM   rp   rX  s      r   test_memory_usagez*TestDataFrameSubclassing.test_memory_usage  sa    ##)))$TU"&""5"5666u-&""5"5666r'   c                    t        j                  d       g d}g d}t        j                  t        j
                  j                  d      j                  d      ||      }t        j                  t        j
                  j                  d      j                  d      |d d |      }|j                  |d	d
d      }t        |t        j                        sJ y )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$$II!!!$44V<

 $$II!!!$44V<)

 ,,si,H'B$7$7999r'   c                    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|      }|j                  |dd        }t        |t        j                        sJ |j                  |d         }t        |t        j                        sJ |j                  d      }t        |t        j                        sJ y )	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    mmJ>##ffbffbff-ffbffbff-ffbffbff-
 
 RS"&""8"8999R!&""5"5666&&""5"5666r'   c                     t        j                  g dg dg dd      }|j                         }t        |t         j                        sJ y rK  )r   r   rf  rM   rp   rX  s      r   test_idxmin_preserves_subclassz7TestDataFrameSubclassing.test_idxmin_preserves_subclass  <     ##)))$TU&""5"5666r'   c                     t        j                  g dg dg dd      }|j                         }t        |t         j                        sJ y 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      }|j                         }t        |t         j                        sJ y rK  )r   r   convert_dtypesrM   rX  s      r   &test_convert_dtypes_preserves_subclassz?TestDataFrameSubclassing.test_convert_dtypes_preserves_subclass  s=    ##)))$TU""$&""8"8999r'   c                 |     G fddt                dg di      }|j                         }t        |      sJ y )Nc                   "    e Zd Ze fd       Zy)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    s    + +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?    	+) 	+
 !#y!12""$&"5666r'   c                     t        j                  g dg dg dd      }|j                  t        j                  t        j
                  t        j                  d      }t        |t         j                        sJ y rK  )r   r   astyper   int64int32float64rM   rX  s      r   test_astype_preserves_subclassz7TestDataFrameSubclassing.test_astype_preserves_subclass  sP    ##)))$TUrzzJK&""8"8999r'   c                     t        dg di      }t        j                  dg di      }|j                  |      sJ |j                  |      sJ y Nr   r
   )r   r   r   equals)r   r   r   s      r   test_equals_subclassz-TestDataFrameSubclassing.test_equals_subclass  sH     i()$$c9%5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9n1(!4F-:*83)7(r<(|)%(N0(d1.024841l77>:7 [[\Hh+?@7 A7
	:7:$7*77:7:r'   r   c                   6     e Zd ZdgZd fdZed        Z xZS )MySubclassWithMetadatamy_metadatac                     t        |   |i | |j                  dd       }|r"t        |d   t              r|d   j
                  }|| _        y )Nr  r   )r5   r6   poprM   r  r  )r   r7   kwargsr  r9   s       r   r6   zMySubclassWithMetadata.__init__  sM    $)&)jj5JtAw(>?q'--K&r'   c                     t         S r#   )r  r+   s    r   r&   z#MySubclassWithMetadata._constructor  s    %%r'   r>   )r.   r/   r0   r^   r6   r1   r&   rB   )r9   s   @r   r  r    s#    I' & &r'   r  c                      t        t        j                  j                  d      j                  d      g d      } | ddg   }t	        |t               sJ y )Nr   )rF   r   r   rI   rG   rH   )r  r   r)  r*  rM   )r   subsets     r   test_constructor_with_metadatar    sM     
 
		a ''/
B c
^Ff4555r'   c                  x    t         j                  dddg      } | j                  J t        |       t         u sJ y )Nr   r   r   )r  from_recordsr  type)r   s    r   +test_constructor_with_metadata_from_recordsr    s=    		,	,AA.>-?	@B>>!!!8----r'   c                       e Zd ZdZy)SimpleDataFrameSubClassz;A subclass of DataFrame that does not define a constructor.Nr.   r/   r0   r@   r$   r'   r   r  r    s    Er'   r  c                       e Zd ZdZy)SimpleSeriesSubClassz8A subclass of Series that does not define a constructor.Nr  r$   r'   r   r  r    s    Br'   r  c                   $    e Zd Zd Zd Zd Zd Zy)TestSubclassWithoutConstructorc                     t        dg di      }t        |      j                         }t        |      t         u sJ t	        j
                  ||       y r  )r   r  copyr  r   r]   r   r   rH  s      r   test_copy_dfz+TestSubclassWithoutConstructor.test_copy_df  sJ    c9-.(2779 LI%	
%
fh/r'   c                 |    t        g d      }t        |      j                         }t        j                  ||       y r@  )r   r  r  r   rr   r  s      r   test_copy_seriesz/TestSubclassWithoutConstructor.test_copy_series  s/    )$%h/446
vx0r'   c                     t        g d      }|j                         }t        |      j                         }t        |      t        u sJ t        j                  ||       y r@  )r   to_framer  r  r   r   r]   )r   origr   rH  s       r   test_series_to_framez3TestSubclassWithoutConstructor.test_series_to_frame#  sP    i ==?%d+446 LI%	
%
fh/r'   c                     t        t        dg di            }|j                  d      D ]  \  }}t        |      t        u rJ  y r  )r  r   groupbyr  )r   r   _vs       r   test_groupbyz+TestSubclassWithoutConstructor.test_groupby-  sC    $YY/?%@AJJsO 	(DAq7i'''	(r'   N)r.   r/   r0   r  r  r  r  r$   r'   r   r  r    s    01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p&Y & 6.Fi FC6 C( (r'   