o
    Û­j½m  ã                   @   s¸   d dl Zd dlZd dlZd dlmZmZmZmZ d dl	m
Z ej d¡Ze ¡ dd„ ƒZG dd„ dƒZG dd	„ d	eƒZd
d„ Zdd„ ZG dd„ deƒZG dd„ deƒZG dd„ dƒZdS )é    N)Ú	DataFrameÚIndexÚ
MultiIndexÚSerieszMignore:Passing a BlockManager|Passing a SingleBlockManager:DeprecationWarningc                      s$   G ‡ fdd„dt ƒ‰ ˆ dg d¢iƒS )Nc                       s   e Zd Ze‡ fdd„ƒZdS )z2gpd_style_subclass_df.<locals>.SubclassedDataFramec                    ó   ˆ S ©N© ©Úself©ÚSubclassedDataFramer   ú]/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/frame/test_subclass.pyÚ_constructor   ó   z?gpd_style_subclass_df.<locals>.SubclassedDataFrame._constructorN)Ú__name__Ú
__module__Ú__qualname__Úpropertyr   r   r   r   r   r      s    r   Úa©é   é   é   )r   r   r   r   r   Úgpd_style_subclass_df   s   r   c                   @   s&  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zej d-d.d/g¡d0d1„ ƒZd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Z d:d;„ Z!d<d=„ Z"d>d?„ Z#d@dA„ Z$dBdC„ Z%dDdE„ Z&dFS )GÚTestDataFrameSubclassingc                 C   sd   t jg d¢g d¢dœg d¢d�}t  d ¡� | ¡  |d  ¡  W d   ƒ d S 1 s+w   Y  d S )Nr   ©ÚXÚY©r   ÚbÚc©Úindexr   )Útmr   Úassert_produces_warningÚisna)r
   Údfr   r   r   Útest_no_warning_on_mgr   s   ÿ"üz/TestDataFrameSubclassing.test_no_warning_on_mgrc                    s  G ‡fdd„dt ƒ‰G ‡ ‡fdd„dtƒ‰ tdƒtdƒdœ}ˆ |ƒ}t|ˆ ƒs)J ‚|j}t|ˆƒs3J ‚| ¡ dks;J ‚|dd	… }t|ˆ ƒsHJ ‚| ¡ dksPJ ‚t d
dg¡}ˆ ddgddgg|d�}t|d ˆ ƒslJ ‚t ddg¡}ˆ ddgddgg|d�}t|d ˆƒsˆJ ‚d S )Nc                       s$   e Zd Ze‡ fdd„ƒZdd„ ZdS )zQTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeriesc                    r   r   r   r	   ©ÚCustomSeriesr   r   r   -   r   z^TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries._constructorc                 S   ó   dS ©NÚOKr   r	   r   r   r   Úcustom_series_function1   ó   zhTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries.custom_series_functionN)r   r   r   r   r   r-   r   r(   r   r   r)   ,   s    r)   c                       s>   e Zd ZdZd
‡ fdd„Ze‡fdd„ƒZ”Zdd	„ Z‡  Z	S )zTTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFramez‚
            Subclasses pandas DF, fills DF with simulation results, adds some
            custom plotting functions.
            ÚreturnNc                    s   t ƒ j|i |¤Ž d S r   )ÚsuperÚ__init__)r
   ÚargsÚkw©Ú	__class__r   r   r1   :   s   z]TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.__init__c                    r   r   r   r	   )ÚCustomDataFramer   r   r   =   r   zaTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame._constructorc                 S   r*   r+   r   r	   r   r   r   Úcustom_frame_functionC   r.   zjTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.custom_frame_function©r/   N)
r   r   r   Ú__doc__r1   r   r   Ú_constructor_slicedr7   Ú__classcell__r   ©r6   r)   r4   r   r6   4   s    r6   é
   )Úcol1Úcol2r,   r   é   )ÚArA   )rA   ÚBr   r   r   ©ÚcolumnsrA   )rA   Ú )rB   rE   )	r   r   ÚrangeÚ
isinstancer>   r-   r7   r   Úfrom_tuples)r
   ÚdataÚcdfÚ
cdf_seriesÚcdf_rowsÚmcolÚ	cdf_multiÚ
cdf_multi2r   r<   r   Ú"test_frame_subclassing_and_slicing(   s"   z;TestDataFrameSubclassing.test_frame_subclassing_and_slicingc                 C   sâ   t jg d¢g d¢dœg d¢d�}d|_|jdksJ ‚|dg jdks$J ‚|jddgd d …f jdks4J ‚|jd	d
gd d …f jdksDJ ‚|jd	d
…d d …f jdksTJ ‚t  |¡}t  ||¡ |j|jksgJ ‚|j|jksoJ ‚d S )Nr   r   r   r!   ÚXXXr   r   r   r   r   )r#   r   ÚtestattrÚlocÚilocÚround_trip_pickleÚassert_frame_equalÚ	_metadata)r
   r&   Ú	unpickledr   r   r   Útest_dataframe_metadata_   s   ÿ   
z0TestDataFrameSubclassing.test_dataframe_metadatac                 C   sÎ  t jg d¢g d¢g d¢dœg d¢d�}|jd d …df }t jg d¢tdƒdd	�}t  ||¡ t|t jƒs6J ‚|jd d …d
f }t jg d¢tdƒdd	�}t  ||¡ t|t jƒsYJ ‚|jd d …df }t jg d¢tdƒdd	�}t  ||¡ t|t jƒs|J ‚|jdd d …f }t jg d¢tdƒdd	�}t  ||¡ t|t jƒsŸJ ‚|jd
d d …f }t jg d¢tdƒdd	�}t  ||¡ t|t jƒsÂJ ‚|jdd d …f }t jg d¢tdƒdd	�}t  ||¡ t|t jƒsåJ ‚d S )Nr   ©é   r@   é   ©é   é   é	   ©r   r   ÚZr   r!   r   Úabc©r"   Únamer   r   rb   r   )r   r[   r^   ÚXYZ)r   r@   r_   r   r    )r   r\   r`   )r#   r   rS   ÚSubclassedSeriesÚlistÚassert_series_equalrG   rT   ©r
   r&   ÚresÚexpr   r   r   Útest_indexing_sliceds   s6   ÿz-TestDataFrameSubclassing.test_indexing_slicedc                 C   sL   G dd„ dt ƒ}tjtdd�� |ƒ j W d   ƒ d S 1 sw   Y  d S )Nc                   @   s   e Zd Zedd„ ƒZdS )zFTestDataFrameSubclassing.test_subclass_attr_err_propagation.<locals>.Ac                 S   s   | j S r   )Úi_dont_existr	   r   r   r   Únonexistence™   s   zSTestDataFrameSubclassing.test_subclass_attr_err_propagation.<locals>.A.nonexistenceN)r   r   r   r   ro   r   r   r   r   rA   ˜   s    rA   z.*i_dont_exist.*)Úmatch)r   ÚpytestÚraisesÚAttributeErrorro   )r
   rA   r   r   r   Ú"test_subclass_attr_err_propagation–   s   
"ÿz;TestDataFrameSubclassing.test_subclass_attr_err_propagationc                 C   sD  t jg d¢g d¢dœtdƒd�}t jg d¢g d¢dœtdƒd�}|j|dd	�\}}t jd
tjdtjdgd
tjdtjdgdœtdƒd�}t jd
dtjdtjgd
dtjdtjgdœtdƒd�}t|t jƒseJ ‚t  ||¡ t|t jƒssJ ‚t  ||¡ |j |j	¡\}}t|t j
ƒsŠJ ‚t  ||j¡ t|t j
ƒs™J ‚t  ||j	¡ d S )N©r   r   r@   ©r   r   ÚACEr!   ©r   r   r[   )r    ÚdÚABDr   ©Úaxisr   r   r@   ÚABCDEr   r[   )r#   r   rh   ÚalignÚnpÚnanrG   rV   r   r    rg   ri   )r
   Údf1Údf2Úres1Úres2Úexp1Úexp2r   r   r   Útest_subclass_align    s0   ÿÿ$þ$þz,TestDataFrameSubclassing.test_subclass_alignc                 C   s"  t jg d¢g d¢dœtdƒd�}t jg d¢tdƒdd�}|j|d	d
�\}}t jdtjdtjdgdtjdtjdgdœtdƒd�}t jddtjdtjgtdƒdd�}t|t jƒsXJ ‚t  ||¡ t|t jƒsfJ ‚t  	||¡ | |¡\}}t|t jƒs{J ‚t  	||¡ t|t jƒs‰J ‚t  ||¡ d S )Nru   rv   rw   r!   rx   rz   Úxrd   r   r{   r   r   r@   r}   r   r[   )
r#   r   rh   rg   r~   r   r€   rG   rV   ri   )r
   r&   Úsrƒ   r„   r…   r†   r   r   r   Ú test_subclass_align_combinations½   s&    $þÿz9TestDataFrameSubclassing.test_subclass_align_combinationsc                 C   sH   t  ddgi¡}| ¡ D ]\}}t|t jƒsJ ‚t  ||j| ¡ qd S )Nr   r   )r#   r   ÚiterrowsrG   rg   ri   rS   )r
   r&   ÚiÚrowr   r   r   Útest_subclass_iterrowsÙ   s
   þz/TestDataFrameSubclassing.test_subclass_iterrowsc                 C   sd   t jg d¢g d¢g d¢gg d¢g d¢d�}|jdd�}t jg d	¢td
ƒtdƒgd�}t  ||¡ d S )Nr   rZ   r]   r   ra   ©r"   rD   T©Úfuture_stack)	r   r   r   r[   r@   r\   r^   r_   r`   Ú	aaabbbcccÚ	XYZXYZXYZr!   )r#   r   Ústackrg   rh   ri   rj   r   r   r   Útest_subclass_stackà   s   ýÿz,TestDataFrameSubclassing.test_subclass_stackc              
   C   sœ  t jg d¢g d¢g d¢g d¢gtjtttdƒtdƒƒƒddgd	�tjtttd
ƒtdƒƒƒddgd	�d�}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"¢d	�td#d$gdd%�d�}|jd&d'�}t  ||¡ |jdd&d'�}t  ||¡ 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)¢d	�td*d+gdd%�d�}|jdd&d'�}t  ||¡ d S ),N©r=   é   é   é   ©é   é   é   é   ©é   é   é    é!   ©é(   é)   é*   é+   ÚAABBÚcdcdÚaaaÚccc©ÚnamesÚWWXXÚyzyzÚwwwÚyyyr�   r=   r˜   r—   r™   r›   r�   rœ   rž   r    r¢   r¡   r£   r¥   r§   r¦   r¨   ÚAAAABBBBÚccddccddÚyzyzyzyz©r«   r¬   r²   ÚWr   ©re   Tr�   ÚWXWXWXWX©r«   r¬   r±   ÚyÚz©	r#   r   r   rH   rh   Úzipr   r”   rV   ©r
   r&   rl   rk   r   r   r   Útest_subclass_stack_multiï   s^   ÿÿû
ø
þñø
þñz2TestDataFrameSubclassing.test_subclass_stack_multic              
   C   sœ  t jg d¢g d¢g d¢g d¢gtjtttdƒtdƒƒƒddgd	�tjtttd
ƒtdƒƒƒddgd	�d�}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"¢d	�td#d$gdd%�d�}|jd&d'�}t  ||¡ |jdd&d'�}t  ||¡ 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¢d	�td2d3gdd%�d�}|jdd&d'�}t  ||¡ d S )4N©r=   r—   ç      (@ç      *@©r›   rœ   ç      6@ç      7@©r    r¡   ç      @@ç     €@@©r¥   r¦   ç      E@ç     €E@r©   rª   r«   r¬   r­   r¯   r°   r±   r²   r�   r=   rÂ   r—   rÃ   r›   rÅ   rœ   rÆ   r    rÈ   r¡   rÉ   r¥   rË   r¦   rÌ   r³   r´   rµ   r¶   r·   r   r¸   Tr�   g      $@g      &@g      4@ç      5@g      >@g      ?@g      D@g     €D@r¹   rº   r»   r¼   r½   r¿   r   r   r   Útest_subclass_stack_multi_mixed(  sf   üÿÿöø
þñø
þñz8TestDataFrameSubclassing.test_subclass_stack_multi_mixedc                 C   s`   t jg d¢g d¢g d¢gg d¢g d¢d�}| ¡ }t jg d¢tdƒtd	ƒgd
�}t  ||¡ d S )Nr   rZ   r]   r   ra   r�   )	r   r[   r^   r   r@   r_   r   r\   r`   Ú	XXXYYYZZZÚ	abcabcabcr!   )r#   r   Úunstackrg   rh   ri   rj   r   r   r   Útest_subclass_unstackf  s   ýÿz.TestDataFrameSubclassing.test_subclass_unstackc              
   C   óH  t jg d¢g d¢g d¢g d¢gtjtttdƒtdƒƒƒddgd	�tjtttd
ƒtdƒƒƒddgd	�d�}t jg d¢g d¢gtddgdd�tjtttdƒtdƒtdƒƒƒg d¢d	�d�}| ¡ }t  ||¡ | d¡}t  ||¡ t jg d¢g d¢gtddgdd�tjtttdƒtdƒtdƒƒƒg d¢d	�d�}| d¡}t  ||¡ d S )Nr–   rš   rŸ   r¤   r©   rª   r«   r¬   r­   r¯   r°   r±   r²   r�   )r=   r›   r—   rœ   r˜   r�   r™   rž   )r    r¥   r¡   r¦   r¢   r§   r£   r¨   rA   rB   r¸   ÚWWWWXXXXÚyyzzyyzzÚcdcdcdcd©r±   r²   r¬   )r=   r    r—   r¡   r˜   r¢   r™   r£   )r›   r¥   rœ   r¦   r�   r§   rž   r¨   r    ry   ÚABABABAB©r±   r²   r«   ©	r#   r   r   rH   rh   r¾   r   rÑ   rV   r¿   r   r   r   Útest_subclass_unstack_multiu  s>   ÿÿû
þý	
þý
	z4TestDataFrameSubclassing.test_subclass_unstack_multic              
   C   rÓ   )NrÁ   rÄ   rÇ   rÊ   r©   rª   r«   r¬   r­   r¯   r°   r±   r²   r�   )r=   r›   r—   rœ   rÂ   rÅ   rÃ   rÆ   )r    r¥   r¡   r¦   rÈ   rË   rÉ   rÌ   rA   rB   r¸   rÔ   rÕ   rÖ   r×   )r=   r    r—   r¡   rÂ   rÈ   rÃ   rÉ   )r›   r¥   rœ   r¦   rÅ   rË   rÆ   rÌ   r    ry   rØ   rÙ   rÚ   r¿   r   r   r   Ú!test_subclass_unstack_multi_mixedœ  sN   üÿÿöþþú
þþú
z:TestDataFrameSubclassing.test_subclass_unstack_multi_mixedc                 C   sn   t  g d¢g d¢g d¢dœ¡}|jdddd�}t  dd	d
dœdd	d
dœdœ¡}d\|j_|j_t  ||¡ d S )N)rA   rB   ÚCrÝ   rB   rA   )ÚOnerÞ   rÞ   ÚTworß   rß   )ç      ð?ç       @ç      @râ   rá   rà   )r"   rD   Úvaluesr"   rD   rã   rà   rá   râ   ©rA   rB   rÝ   )rÞ   rß   r�   )r#   r   Úpivotr"   re   rD   rV   )r
   r&   ÚpivotedÚexpectedr   r   r   Útest_subclass_pivotÎ  s   ýÿ

þÿz,TestDataFrameSubclassing.test_subclass_pivotc                 C   sp   t  ddgddgddgddgd	œ¡}tj|d
dgd�}t jg d¢g d¢g d¢g d¢gg d¢d�}t  ||¡ 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ÚvaluerC   )r#   r   ÚpdÚmeltrV   )r
   ÚcheeseÚmeltedrç   r   r   r   Útest_subclassed_meltå  s"   üÿ	üù
z-TestDataFrameSubclassing.test_subclassed_meltc              
   C   sÒ   t j d¡ d¡}t ddddœddd	dœd
dddœddddœtttdƒ|ƒƒdœ¡}|j	|d< | 
¡ | 
¡  g d¢g d¢g d¢g d¢dœ}t |¡}| ddg¡g d¢ }tj|ddgddd�}t ||¡ d S )Nr   r   r   r   r    ©r   r   r   ry   ÚeÚfç      @ç333333ó?çffffffæ?çš™™™™™	@çÍÌÌÌÌÌô?çš™™™™™¹?)ÚA1970ÚA1980ÚB1970ÚB1980r   Úid)r   r   r    ry   r  r  )r  r  r  r  r	  r
  )é²  r  r  é¼  r  r  )r   r   r   r   r   r   )r   rA   rB   Úyearr  r  )r   rA   rB   rA   rB   )rŒ   Új)r   ÚrandomÚdefault_rngÚstandard_normalr#   r   Údictr¾   rF   r"   ÚtolistÚ	set_indexrý   Úwide_to_longrV   )r
   rˆ   r&   Úexp_datarç   Ú
long_framer   r   r   Útest_subclassed_wide_to_longþ  s(   



ûÿ

û
z5TestDataFrameSubclassing.test_subclassed_wide_to_longc                    s’  dd„ ‰ dd„ ‰t jg d¢g d¢g d¢g d¢gg d	¢d
�}| ‡ fdd„¡ |j‡ fdd„dd� t jg d¢g d¢g d¢g d¢gg d	¢d
�}|j‡fdd„dd�}t|t jƒsYJ ‚t  ||¡ t  g d¢g d¢g d¢g d¢g¡}|jdd„ dd�}t|t jƒs�J ‚t  ||¡ |jdd„ ddd�}t|t jƒs™J ‚t  ||¡ t  g d¢g d¢g d¢g d¢g¡}|jdd„ dd�}t|t jƒrÁJ ‚t  ||¡ d S )Nc                 S   s   t | tjƒsJ ‚d S r   )rG   r#   rg   ©r�   r   r   r   Úcheck_row_subclass  s   zJTestDataFrameSubclassing.test_subclassed_apply.<locals>.check_row_subclassc                 S   s    | d dkr| d  d7  < | S )Nrû   ró   rü   g      à?r   r  r   r   r   Ústretch   s   z?TestDataFrameSubclassing.test_subclassed_apply.<locals>.stretchrö   r÷   rø   rù   rú   rC   c                    ó   ˆ | ƒS r   r   ©rˆ   ©r  r   r   Ú<lambda>/  ó    z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>c                    r!  r   r   r"  r#  r   r   r$  0  r%  r   r{   )ré   rë   ró   rî   )rê   rì   ró   g      @c                    r!  r   r   r"  )r   r   r   r$  <  r%  r   c                 S   s   t  g d¢¡S ©Nr   )r#   rg   r"  r   r   r   r$  B  s    c                 S   ó   g d¢S r&  r   r"  r   r   r   r$  F  r%  Úexpand)r|   Úresult_typec                 S   r'  r&  r   r"  r   r   r   r$  L  r%  )r#   r   ÚapplyrG   rV   rg   ri   )r
   r&   rç   Úresultr   )r  r   r   Útest_subclassed_apply  sD   üù
üù
""z.TestDataFrameSubclassing.test_subclassed_applyc                 C   ó>   t  g d¢g d¢g d¢dœ¡}t||ƒƒ }t|t jƒsJ ‚d S ©Nr   rZ   r]   rä   ©r#   r   ÚgetattrrG   rg   )r
   Úall_reductionsr&   r+  r   r   r   Útest_subclassed_reductionsP  s   z3TestDataFrameSubclassing.test_subclassed_reductionsc              	   C   s  t  g d¢dtjdddgg d¢dœ¡}| ¡ }t|t jƒsJ ‚t  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d�tjt	t
t	dƒt	dƒƒƒddgd�d�}| ¡ }t|t jƒszJ ‚t  ¡ }| ¡ }t|t jƒsŠJ ‚d S )N)ré   ÚMylaÚLewisré   r3  g      8@rÍ   r£   é   )FTTTF)ÚPersonÚAgeÚSingle)r   r   r   )r   r@   r\   )r^   r_   r   rä   r–   rš   rŸ   r¤   r©   rª   r«   r¬   r­   r¯   r°   r±   r²   r�   )r#   r   r   r€   ÚcountrG   rg   r   rH   rh   r¾   ©r
   r&   r+  r   r   r   Útest_subclassed_countW  s2   ýÿÿÿû	z.TestDataFrameSubclassing.test_subclassed_countc                 C   sB   t jddgddgdœddgd�}| ddg¡}t|t jƒsJ ‚d S )Nr   r[   r   )Únum_legsÚ	num_wingsÚfalconÚdogr!   )r#   r   ÚisinrG   r:  r   r   r   Ú	test_isinv  s
   ÿz"TestDataFrameSubclassing.test_isinc                 C   sZ   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒsJ ‚t  ¡ }| ¡ }t|t jƒs+J ‚d S r.  )r#   r   Ú
duplicatedrG   rg   r:  r   r   r   Útest_duplicated}  s   z(TestDataFrameSubclassing.test_duplicatedÚ
idx_methodÚidxmaxÚidxminc                 C   r-  r.  r/  )r
   rD  r&   r+  r   r   r   Útest_idx†  s   z!TestDataFrameSubclassing.test_idxc                 C   s€   t  g d¢g d¢g¡}t  g d¢¡}| |¡}t|t jƒsJ ‚t  g d¢g d¢g¡}t  g d¢¡}| |¡}t|t jƒs>J ‚d S )N)r   r   éþÿÿÿéÿÿÿÿ)r   r   r   r   )r   r   r   r   )r#   r   rg   ÚdotrG   )r
   r&   r‰   r+  r   r   r   Útest_dotŒ  s   

z!TestDataFrameSubclassing.test_dotc                 C   sV   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒsJ ‚|jdd�}t|t jƒs)J ‚d S )Nr   rZ   r]   rä   Fr!   )r#   r   Úmemory_usagerG   rg   r:  r   r   r   Útest_memory_usage—  s
   z*TestDataFrameSubclassing.test_memory_usagec                 C   s„   t  d¡ g d¢}g d¢}tjtj d¡ d¡||d�}tjtj d¡ d¡|d d… |d�}|j|d	d
dd�}t	|tj
ƒs@J ‚d S )NÚscipy)r   r   r    ry   r  )ÚoneÚtwoÚthreeÚfourr   )r@   r[   r�   )r[   r[   r[   r   TÚkendall)r|   ÚdropÚmethod)rq   Úimportorskipr#   r   r   r  r  r  ÚcorrwithrG   rg   )r
   r"   rD   r�   r‚   Úcorrelsr   r   r   Útest_corrwithŸ  s   
ý
ýz&TestDataFrameSubclassing.test_corrwithc                 C   s¬   d}t jd|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d … ¡}t|tjƒs8J ‚| |d ¡}t|tjƒsGJ ‚| d¡}t|tjƒsTJ ‚d S )	Nr   z1/1/1990Ú53s)ÚperiodsÚfreqrä   r!   rH  z
1989-12-31)	rý   Ú
date_ranger#   r   r   r€   ÚasofrG   rg   )r
   ÚNÚrngr&   r+  r   r   r   Ú	test_asof±  s   ýú	
z"TestDataFrameSubclassing.test_asofc                 C   ó:   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒsJ ‚d S r.  )r#   r   rF  rG   rg   r:  r   r   r   Útest_idxmin_preserves_subclassÆ  ó   z7TestDataFrameSubclassing.test_idxmin_preserves_subclassc                 C   rb  r.  )r#   r   rE  rG   rg   r:  r   r   r   Útest_idxmax_preserves_subclassÍ  rd  z7TestDataFrameSubclassing.test_idxmax_preserves_subclassc                 C   sT   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒsJ ‚| ¡ }t|t|ƒƒs(J ‚d S r.  )r#   r   Úconvert_dtypesrG   Útype)r
   r   r&   r+  r   r   r   Ú&test_convert_dtypes_preserves_subclassÔ  s
   z?TestDataFrameSubclassing.test_convert_dtypes_preserves_subclassc                 C   sJ   t  g d¢g d¢g d¢dœ¡}| tjtjtjdœ¡}t|t jƒs#J ‚d S r.  )r#   r   Úastyper   Úint64Úint32Úfloat64rG   r:  r   r   r   Útest_astype_preserves_subclassÝ  s   z7TestDataFrameSubclassing.test_astype_preserves_subclassc                 C   sB   t dg d¢iƒ}t dg d¢i¡}| |¡sJ ‚| |¡sJ ‚d S ©Nr   r   )r   r#   r   Úequals)r
   r�   r‚   r   r   r   Útest_equals_subclassä  s   z-TestDataFrameSubclassing.test_equals_subclassc                 C   sŠ   t  dg d¢i¡}d}t jt|dd�� |jddgdd	�}W d   ƒ n1 s'w   Y  t  dg d
¢i¡}t|t jƒs=J ‚t  ||¡ d S )NrA   r  zAThe 'method' keyword in SubclassedDataFrame.replace is deprecatedF)rp   Úraise_on_extra_warningsr   r   Úffill)rU  )r   r   r   )r#   r   r$   ÚFutureWarningÚreplacerG   rV   )r
   r&   Úmsgr+  rç   r   r   r   Útest_replace_list_methodì  s   ÿýz1TestDataFrameSubclassing.test_replace_list_methodN)'r   r   r   r'   rP   rY   rm   rt   r‡   rŠ   rŽ   r•   rÀ   rÎ   rÒ   rÛ   rÜ   rè   r  r  r,  r2  r;  rA  rC  rq   ÚmarkÚparametrizerG  rK  rM  rY  ra  rc  re  rh  rm  rp  rv  r   r   r   r   r      sF    7#
9>'26	
	r   c                       s0   e Zd ZdgZd‡ fdd„Zedd„ ƒZ‡  ZS )	ÚMySubclassWithMetadataÚmy_metadatar/   Nc                    sD   t ƒ j|i |¤Ž | dd ¡}|rt|d tƒr|d j}|| _d S )Nrz  r   )r0   r1   ÚpoprG   ry  rz  )r
   r2   Úkwargsrz  r4   r   r   r1   ü  s
   

zMySubclassWithMetadata.__init__c                 C   s   t S r   )ry  r	   r   r   r   r     r   z#MySubclassWithMetadata._constructorr8   )r   r   r   rW   r1   r   r   r;   r   r   r4   r   ry  ù  s
    ry  c                  C   s<   t tj d¡ d¡g d¢d�} | ddg }t|t ƒsJ ‚d S )Nr   )r@   r   rä   rC   rA   rB   )ry  r   r  r  rG   )r&   Úsubsetr   r   r   Útest_constructor_with_metadata	  s
   ÿr~  c                  C   s4   t  dddœg¡} | jd u sJ ‚t| ƒt u sJ ‚d S )Nr   r   rv   )ry  Úfrom_recordsrz  rg  )r&   r   r   r   Ú+test_constructor_with_metadata_from_records  s   r€  c                   @   ó   e Zd ZdZdS )ÚSimpleDataFrameSubClassz;A subclass of DataFrame that does not define a constructor.N©r   r   r   r9   r   r   r   r   r‚    ó    r‚  c                   @   r�  )ÚSimpleSeriesSubClassz8A subclass of Series that does not define a constructor.Nrƒ  r   r   r   r   r…    r„  r…  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestSubclassWithoutConstructorc                 C   s<   t dg d¢iƒ}t|ƒ ¡ }t|ƒt u sJ ‚t ||¡ d S rn  )r   r‚  Úcopyrg  r#   rV   ©r
   rç   r+  r   r   r   Útest_copy_df#  s   z+TestSubclassWithoutConstructor.test_copy_dfc                 C   s(   t g d¢ƒ}t|ƒ ¡ }t ||¡ d S r&  )r   r…  r‡  r#   ri   rˆ  r   r   r   Útest_copy_series,  s   z/TestSubclassWithoutConstructor.test_copy_seriesc                 C   s@   t g d¢ƒ}| ¡ }t|ƒ ¡ }t|ƒtu sJ ‚t ||¡ d S r&  )r   Úto_framer…  rg  r   r#   rV   )r
   Úorigrç   r+  r   r   r   Útest_series_to_frame2  s
   z3TestSubclassWithoutConstructor.test_series_to_framec                 C   s<   t tdg d¢iƒƒ}| d¡D ]\}}t|ƒtu sJ ‚qd S rn  )r‚  r   Úgroupbyrg  )r
   r&   Ú_Úvr   r   r   Útest_groupby<  s   ÿz+TestSubclassWithoutConstructor.test_groupbyN)r   r   r   r‰  rŠ  r�  r‘  r   r   r   r   r†  "  s
    	
r†  )Únumpyr   rq   Úpandasrý   r   r   r   r   Úpandas._testingÚ_testingr#   rw  ÚfilterwarningsÚ
pytestmarkÚfixturer   r   ry  r~  r€  r‚  r…  r†  r   r   r   r   Ú<module>   s,    ÿ
	     b
