
    Owgl                        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 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y)    N)	DataFrameIndex
MultiIndexSerieszMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc                  >      G  fddt                  dg di      S )Nc                   "    e Zd Ze fd       Zy)2gpd_style_subclass_df.<locals>.SubclassedDataFramec                     S N )selfSubclassedDataFrames    W/var/www/horilla/myenv/lib/python3.12/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	      s    		' 
	'r   r   a         )r   r   s   @r   gpd_style_subclass_dfr      s!    'i '
 Y/00r   c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Ze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)Nr   XYr   bcindexr!   )tmr   assert_produces_warningisna)r   dfs     r   test_no_warning_on_mgrz/TestDataFrameSubclassing.test_no_warning_on_mgr   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 r   r   )r   CustomSeriess    r   r   z^TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries._constructor-   s	    ##r   c                      yNOKr   r   s    r   custom_series_functionzhTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries.custom_series_function1       r   N)r   r   r   r   r   r6   )r1   s   r   r1   r/   ,   s    $ $r   r1   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   r<   z]TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.__init__:   s     $-"-r   c                     S r   r   )r   CustomDataFrames    r   r   zaTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame._constructor=   s	    &&r   c                      yr3   r   r5   s    r   custom_frame_functionzjTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.custom_frame_functionC   r7   r   returnN)
r   r   r   __doc__r<   r   r   _constructor_slicedrC   __classcell__)r?   rA   r1   s   @r   rA   r9   4   s.    
. ' ' #/r   rA   
   )col1col2r4   r      )ArM   )rM   Br   r   r   columnsrM   )rM    )rN   rQ   )	r   r   range
isinstancerJ   r6   rC   r   from_tuples)
r   datacdf
cdf_seriescdf_rowsmcol	cdf_multi
cdf_multi2rA   r1   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                 8   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   r+   	unpickleds      r   test_dataframe_metadataz0TestDataFrameSubclassing.test_dataframe_metadata_   s   ##),O
 {{e###3%y!!U***vvsCj!m$--666ww1vqy!**e333 wwqsAv''5000 ((,	
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      rL            	   r!   r"   Zr#   r&   r!   abcr'   namer   r"   rp   r   )r   ri   rl   XYZ)r   rL   rm   r$   r%   )r   rj   rn   )r(   r   r`   SubclassedSerieslistassert_series_equalrS   ra   r   r+   resexps       r   test_indexing_slicedz-TestDataFrameSubclassing.test_indexing_sliceds   s   ##))<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_existr5   s    r   nonexistencezSTestDataFrameSubclassing.test_subclass_attr_err_propagation.<locals>.A.nonexistence   s    (((r   N)r   r   r   r   r   r   r   r   rM   r~      s    ) )r   rM   z.*i_dont_exist.*)match)r   pytestraisesAttributeErrorr   )r   rM   s     r   "test_subclass_attr_err_propagationz;TestDataFrameSubclassing.test_subclass_attr_err_propagation   s?    	)	 	)
 ]]>1CD 	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   rL   r   r$   ACEr&   r   r   ri   )r%   dABDr   axisr   r   rL   ABCDEr   ri   )r(   r   rv   alignnpnanrS   rc   r   r%   ru   rw   )r   df1df2res1res2exp1exp2s          r   test_subclass_alignz,TestDataFrameSubclassing.test_subclass_align   s   $$),D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   xrr   r   r   r   r   rL   r   r   ri   )
r(   r   rv   ru   r   r   r   rS   rc   rw   )r   r+   sr   r   r   r   s          r    test_subclass_align_combinationsz9TestDataFrameSubclassing.test_subclass_align_combinations   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   iterrowsrS   ru   rw   r`   )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                  d      }t        j                  g d	t	        d
      t	        d      g      }t        j
                  ||       y )Nr   rh   rk   r#   ro   r'   rP   Tfuture_stack)	r   r   r   ri   rL   rj   rl   rm   rn   	aaabbbccc	XYZXYZXYZr&   )r(   r   stackru   rv   rw   rx   s       r   test_subclass_stackz,TestDataFrameSubclassing.test_subclass_stack   sj    ##	9-!#
 hhDh)!!'[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                  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                  ||       |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%            }|j                  dd&'      }t        j                  ||       y ),NrI                                  !   (   )   *   +   AABBcdcdaaacccnamesWWXXyzyzwwwyyyr   rI   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   AAAABBBBccddccddyzyzyzyzr   r   r   Wr!   rs   Tr   WXWXWXWXr   r   r   yz	r(   r   r   rT   rv   zipr   r   rc   r   r+   rz   ry   s       r   test_subclass_stack_multiz2TestDataFrameSubclassing.test_subclass_stack_multi   s   ##/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
$ hhDh)
c3'hhu4h0
c3'$$RRRRRRRR	 ((Sj)4
+;T*=MNO+ 3*51
$ hhu4h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%            }|j                  d&'      }t        j                  ||       |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%            }|j                  dd&'      }t        j                  ||       y )4NrI   r         (@      *@r   r         6@      7@r   r         @@     @@r   r         E@     E@r   r   r   r   r   r   r   r   r   r   rI   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r!   r   Tr   g      $@g      &@g      4@      5@g      >@g      ?@g      D@g     D@r   r   r   r   r   r   s       r   test_subclass_stack_multi_mixedz8TestDataFrameSubclassing.test_subclass_stack_multi_mixed(  s   ##$$$$	 ((SftF|45eU^ **SftF|45eU^
 $$T
T
T
T
T
T
T
T
	 ((Sj)4
+;T*=MNO+ 3*51
$ hhDh)
c3'hhu4h0
c3'$$tttttttt	 ((Sj)4
+;T*=MNO+ 3*51
$ hhu4h0
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   rh   rk   r#   ro   r   )	r   ri   rl   r   rL   rm   r   rj   rn   	XXXYYYZZZ	abcabcabcr&   )r(   r   unstackru   rv   rw   rx   s       r   test_subclass_unstackz.TestDataFrameSubclassing.test_subclass_unstackf  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   )rI   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rM   rN   r   WWWWXXXXyyzzyyzzcdcdcdcdr   r   r   )rI   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r%   r   ABABABABr   r   r   	r(   r   r   rT   rv   r   r   r   rc   r   s       r   test_subclass_unstack_multiz4TestDataFrameSubclassing.test_subclass_unstack_multiu  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   )rI   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   rM   rN   r   r   r   r   r   )rI   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r%   r   r   r   r   r   s       r   !test_subclass_unstack_multi_mixedz:TestDataFrameSubclassing.test_subclass_unstack_multi_mixed  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)rM   rN   Cr   rN   rM   )Oner   r   Twor   r   )      ?       @      @r   r   r   )r'   rP   valuesr'   rP   r   r   r   r   rM   rN   r   )r   r   r   )r(   r   pivotr'   rs   rP   rc   )r   r+   pivotedexpecteds       r   test_subclass_pivotz,TestDataFrameSubclassing.test_subclass_pivot  s    ##7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valuerO   )r(   r   pdmeltrc   )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!   rM   rN   yearr,  r/  )r!   rM   rN   rM   rN   )r   j)r   randomdefault_rngstandard_normalr(   r   dictr   rR   r'   tolist	set_indexr  wide_to_longrc   )r   r   r+   exp_datar  
long_frames         r   test_subclassed_wide_to_longz5TestDataFrameSubclassing.test_subclassed_wide_to_long  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   )rS   r(   ru   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   r=  s    r   stretchz?TestDataFrameSubclassing.test_subclassed_apply.<locals>.stretch   s!    :(*G#Jr   r  r  r  r  r  rO   c                      |       S r   r   r   r>  s    r   <lambda>z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>/      -a0 r   c                      |       S r   r   rB  s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>0  rD  r   r   r   )r  r  r  r
  )r  r  r  g      @c                      |       S r   r   )r   r@  s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda><  s    GAJ r   r   c                 0    t        j                  g d      S Nr   )r(   ru   r   s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>B  s    B$7$7	$B r   c                 
    g dS rH  r   rI  s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>F      I r   expand)r   result_typec                 
    g dS rH  r   rI  s    r   rC  z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>L  rK  r   )r(   r   applyrS   rc   ru   rw   )r   r+   r  resultr>  r@  s       @@r   test_subclassed_applyz.TestDataFrameSubclassing.test_subclassed_apply  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   rh   rk   r   r(   r   getattrrS   ru   )r   all_reductionsr+   rP  s       r   test_subclassed_reductionsz3TestDataFrameSubclassing.test_subclassed_reductionsP  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  rY  g      8@r   r      )FTTTF)PersonAgeSingle)r   r   r   )r   rL   rj   )rl   rm   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r(   r   r   r   countrS   ru   r   rT   rv   r   r   r+   rP  s      r   test_subclassed_countz.TestDataFrameSubclassing.test_subclassed_countW  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   ri   r   )num_legs	num_wingsfalcondogr&   )r(   r   isinrS   r`  s      r   	test_isinz"TestDataFrameSubclassing.test_isinv  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 rS  )r(   r   
duplicatedrS   ru   r`  s      r   test_duplicatedz(TestDataFrameSubclassing.test_duplicated}  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 rS  rT  )r   rl  r+   rP  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   ru   dotrS   )r   r+   r   rP  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   rh   rk   r   Fr&   )r(   r   memory_usagerS   ru   r`  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   )rL   ri   r   )ri   ri   ri   r   Tkendall)r   dropmethod)r   importorskipr(   r   r   r1  r2  r3  corrwithrS   ru   )r   r'   rP   r   r   correlss         r   test_corrwithz&TestDataFrameSubclassing.test_corrwith  s    G$)1$$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&   rr  z
1989-12-31)	r  
date_ranger(   r   r   r   asofrS   ru   )r   Nrngr+   rP  s        r   	test_asofz"TestDataFrameSubclassing.test_asof  s    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 rS  )r(   r   rn  rS   ru   r`  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 rS  )r(   r   rm  rS   ru   r`  s      r   test_idxmax_preserves_subclassz7TestDataFrameSubclassing.test_idxmax_preserves_subclass  r  r   c                     t        j                  g dg dg dd      }|j                         }t        |t         j                        sJ |j                         }t        |t	        |            sJ y rS  )r(   r   convert_dtypesrS   type)r   r   r+   rP  s       r   &test_convert_dtypes_preserves_subclassz?TestDataFrameSubclassing.test_convert_dtypes_preserves_subclass  sa    ##)))$TU""$&""8"8999&557&$'<"=>>>r   c                     t        j                  g dg dg dd      }|j                  t        j                  t        j
                  t        j                  d      }t        |t         j                        sJ y rS  )r(   r   astyper   int64int32float64rS   r`  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   c                 \   t        j                  dg di      }d}t        j                  t        |d      5  |j	                  ddgd	      }d d d        t        j                  dg d
i      }t        t         j                        sJ t        j                  ||       y # 1 sw Y   UxY w)NrM   r  zAThe 'method' keyword in SubclassedDataFrame.replace is deprecatedF)r   raise_on_extra_warningsr   r   ffill)r  )r   r   r   )r(   r   r)   FutureWarningreplacerS   rc   )r   r+   msgrP  r  s        r   test_replace_list_methodz1TestDataFrameSubclassing.test_replace_list_method  s    ##S)$45Q''e
 	8 ZZAwZ7F	8 ))3	*:;&""8"8999
fh/	8 	8s   B""B+N)'r   r   r   r,   r\   rf   r{   r   r   r   r   r   r   r   r   r   r   r  r  r:  rQ  rW  ra  rh  rk  r   markparametrizerp  ru  rx  r  r  r  r  r  r  r  r  r   r   r   r   r      s    	5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?:
0r   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   )r;   r<   poprS   r  r  )r   r=   kwargsr  r?   s       r   r<   zMySubclassWithMetadata.__init__  sM    $)&)jj5JtAw(>?q'--K&r   c                     t         S r   )r  r5   s    r   r   z#MySubclassWithMetadata._constructor  s    %%r   rD   )r   r   r   rd   r<   r   r   rH   )r?   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   )rL   r   r   rO   rM   rN   )r  r   r1  r2  rS   )r+   subsets     r   test_constructor_with_metadatar  	  sM     
 
		a ''/
B c
^Ff4555r   c                       e Zd ZdZy)SimpleDataFrameSubClassz;A subclass of DataFrame that does not define a constructor.Nr   r   r   rF   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(   rc   r   r  rP  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 rH  )r   r  r  r(   rw   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 rH  )r   to_framer  r  r   r(   rc   )r   origr  rP  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_groupby5  sC    $YY/?%@AJJsO 	(DAq7i'''	(r   N)r   r   r   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
pytestmarkfixturer   r   r  r  r  r  r  r   r   r   <module>r     s        [[''S

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