a
    é´«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   ˆ S ©N© ©Úself©ÚSubclassedDataFramer   ú_/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/frame/test_subclass.pyÚ_constructor   s    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   sb   t jg d¢g d¢dœg d¢d�}t  d ¡�$ | ¡  |d  ¡  W d   ƒ n1 sT0    Y  d S )Nr   ©ÚXÚY©r   ÚbÚc©Úindexr   )Útmr   Úassert_produces_warningZ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|ˆ ƒsRJ ‚|j}t|ˆƒsfJ ‚| ¡ dksvJ ‚|dd	… }t|ˆ ƒs�J ‚| ¡ dks J ‚t d
dg¡}ˆ ddgddgg|d�}t|d ˆ ƒsØJ ‚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                    s   ˆ S r   r   r   ©ÚCustomSeriesr   r   r   -   s    z^TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomSeries._constructorc                 S   s   dS ©NÚOKr   r   r   r   r   Úcustom_series_function1   s    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                       sB   e Zd ZdZd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.
            N©Úreturnc                    s   t ƒ j|i |¤Ž d S r   )ÚsuperÚ__init__)r	   ÚargsÚkw©Ú	__class__r   r   r-   :   s    z]TestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.__init__c                    s   ˆ S r   r   r   )ÚCustomDataFramer   r   r   =   s    zaTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame._constructorc                 S   s   dS r'   r   r   r   r   r   Úcustom_frame_functionC   s    zjTestDataFrameSubclassing.test_frame_subclassing_and_slicing.<locals>.CustomDataFrame.custom_frame_function)
r   r   r   Ú__doc__r-   r   r   Z_constructor_slicedr3   Ú__classcell__r   ©r2   r&   r0   r   r2   4   s   r2   é
   )Úcol1Zcol2r(   r   é   )ÚAr:   )r:   ÚBr   r   r   ©Úcolumnsr:   )r:   Ú )r;   r>   )	r   r   ÚrangeÚ
isinstancer8   r)   r3   r   Úfrom_tuples)r	   ÚdataZcdfZ
cdf_seriesZcdf_rowsZmcolZ	cdf_multiZ
cdf_multi2r   r6   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s4J ‚|dg jdksHJ ‚|jddgd d …f jdkshJ ‚|jd	d
gd d …f jdksˆJ ‚|jd	d
…d d …f jdks¨J ‚t  |¡}t  ||¡ |j|jksÎJ ‚|j|jksÞJ ‚d S )Nr   r   r   r   ÚXXXr   r   r   r   r   )r!   r   ZtestattrÚlocÚilocZround_trip_pickleÚassert_frame_equalÚ	_metadata)r	   r#   Z	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ƒslJ ‚|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 ‚|jdd d …f }t jg d¢tdƒdd	�}t  ||¡ t|t jƒ�sÐJ ‚d S )Nr   ©é   r9   é   ©é   é   é	   ©r   r   ÚZr   r   r   Úabc©r    Únamer   r   rR   r   )r   rK   rN   ZXYZ)r   r9   rO   r   r   )r   rL   rP   )r!   r   rE   ÚSubclassedSeriesÚlistÚassert_series_equalr@   rF   ©r	   r#   ÚresÚexpr   r   r   Útest_indexing_sliceds   s6    ÿz-TestDataFrameSubclassing.test_indexing_slicedc                 C   sJ   G dd„ dt ƒ}tjtdd�� |ƒ j W d   ƒ n1 s<0    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   )Zi_dont_existr   r   r   r   Únonexistence™   s    zSTestDataFrameSubclassing.test_subclass_attr_err_propagation.<locals>.A.nonexistenceN)r   r   r   r   r]   r   r   r   r   r:   ˜   s   r:   z.*i_dont_exist.*)Úmatch)r   ÚpytestZraisesÚAttributeErrorr]   )r	   r:   r   r   r   Ú"test_subclass_attr_err_propagation–   s    z;TestDataFrameSubclassing.test_subclass_attr_err_propagationc                 C   sH  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ƒsÊJ ‚t  ||¡ t|t jƒsæJ ‚t  ||¡ |j |j	¡\}}t|t j
ƒ�sJ ‚t  ||j¡ t|t j
ƒ�s6J ‚t  ||j	¡ d S )N©r   r   r9   ©r   r   ÚACEr   ©r   r   rK   )r   ÚdÚABDr   ©Úaxisr   r   r9   ÚABCDEr   rK   )r!   r   rW   ÚalignÚnpÚnanr@   rG   r   r   rV   rX   )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ƒs°J ‚t  ||¡ t|t jƒsÌJ ‚t  	||¡ | |¡\}}t|t jƒsöJ ‚t  	||¡ t|t jƒ�sJ ‚t  ||¡ d S )Nrb   rc   rd   r   re   rg   ÚxrT   r   rh   r   r   r9   rj   r   rK   )
r!   r   rW   rV   rk   rl   rm   r@   rG   rX   )r	   r#   Úsrp   rq   rr   rs   r   r   r   Ú test_subclass_align_combinations½   s&     $þÿz9TestDataFrameSubclassing.test_subclass_align_combinationsc                 C   sH   t  ddgi¡}| ¡ D ]*\}}t|t jƒs0J ‚t  ||j| ¡ qd S )Nr   r   )r!   r   Ziterrowsr@   rV   rX   rE   )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   rJ   rM   r   rQ   ©r    r=   T©Zfuture_stack)	r   r   r   rK   r9   rL   rN   rO   rP   Z	aaabbbcccZ	XYZXYZXYZr   )r!   r   ÚstackrV   rW   rX   rY   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©r7   é   é   é   ©é   é   é   é   ©é   é   é    é!   ©é(   é)   é*   é+   ÚAABBÚcdcdÚaaaÚccc©ÚnamesÚWWXXÚyzyzÚwwwÚyyyr{   r7   r�   r€   r‚   r„   r†   r…   r‡   r‰   r‹   rŠ   rŒ   rŽ   r�   r�   r‘   ÚAAAABBBBÚccddccddÚyzyzyzyz©r”   r•   r›   ÚWr   ©rU   Tr|   ÚWXWXWXWX©r”   r•   rš   ÚyÚz©	r!   r   r   rA   rW   Úzipr   r}   rG   ©r	   r#   r[   rZ   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©r7   r€   ç      (@ç      *@©r„   r…   ç      6@ç      7@©r‰   rŠ   ç      @@ç     €@@©rŽ   r�   ç      E@ç     €E@r’   r“   r”   r•   r–   r˜   r™   rš   r›   r{   r7   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   rJ   rM   r   rQ   r{   )	r   rK   rN   r   r9   rO   r   rL   rP   Z	XXXYYYZZZZ	abcabcabcr   )r!   r   ÚunstackrV   rW   rX   rY   r   r   r   Útest_subclass_unstackf  s    ýÿz.TestDataFrameSubclassing.test_subclass_unstackc              
   C   sH  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{   )r7   r„   r€   r…   r�   r†   r‚   r‡   )r‰   rŽ   rŠ   r�   r‹   r�   rŒ   r‘   r:   r;   r¡   ÚWWWWXXXXÚyyzzyyzzÚcdcdcdcd©rš   r›   r•   )r7   r‰   r€   rŠ   r�   r‹   r‚   rŒ   )r„   rŽ   r…   r�   r†   r�   r‡   r‘   r   rf   ÚABABABAB©rš   r›   r”   ©	r!   r   r   rA   rW   r§   r   r¸   rG   r¨   r   r   r   Útest_subclass_unstack_multiu  s>    ÿÿû
þý	
þý	
z4TestDataFrameSubclassing.test_subclass_unstack_multic              
   C   sH  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{   )r7   r„   r€   r…   r«   r®   r¬   r¯   )r‰   rŽ   rŠ   r�   r±   r´   r²   rµ   r:   r;   r¡   rº   r»   r¼   r½   )r7   r‰   r€   rŠ   r«   r±   r¬   r²   )r„   rŽ   r…   r�   r®   r´   r¯   rµ   r   rf   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)r:   r;   ÚCrÃ   r;   r:   )ÚOnerÄ   rÄ   ÚTworÅ   rÅ   )ç      ð?ç       @ç      @rÈ   rÇ   rÆ   )r    r=   Úvaluesr    r=   rÉ   rÆ   rÇ   rÈ   ©r:   r;   rÃ   )rÄ   rÅ   r{   )r!   r   Zpivotr    rU   r=   rG   )r	   r#   Z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Ö   )Zid_vars©rÍ   rÏ   r×   rÑ   ©rÎ   rÐ   r×   rÒ   ©rÍ   rÏ   rØ   rÓ   ©rÎ   rÐ   rØ   rÔ   ©rÕ   rÖ   ÚvariableÚvaluer<   )r!   r   ÚpdZmeltrG   )r	   ZcheeseZ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   rf   ÚeÚfç      @ç333333ó?çffffffæ?çš™™™™™	@çÍÌÌÌÌÌô?çš™™™™™¹?)ZA1970ZA1980ZB1970ZB1980r   Úid)r   r   r   rf   rã   rä   )rå   ræ   rç   rè   ré   rê   )é²  rì   rì   é¼  rí   rí   )r   r   r   r   r   r   )r   r:   r;   Úyearrë   rî   )r   r:   r;   r:   r;   )rx   Új)rl   ÚrandomÚdefault_rngÚstandard_normalr!   r   Údictr§   r?   r    ÚtolistZ	set_indexrà   Zwide_to_longrG   )r	   ru   r#   Zexp_datarË   Z
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ƒs²J ‚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ƒ�s6J ‚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   )r@   r!   rV   ©ry   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Ý   r<   c                    s   ˆ | ƒS r   r   ©ru   ©r÷   r   r   Ú<lambda>/  ó    z@TestDataFrameSubclassing.test_subclassed_apply.<locals>.<lambda>c                    s   ˆ | ƒS r   r   rù   rú   r   r   rû   0  rü   r   rh   )rÍ   rÏ   r×   rÒ   )rÎ   rÐ   r×   g      @c                    s   ˆ | ƒS r   r   rù   )rø   r   r   rû   <  rü   r   c                 S   s   t  g d¢¡S ©Nr   )r!   rV   rù   r   r   r   rû   B  rü   c                 S   s   g d¢S rý   r   rù   r   r   r   rû   F  rü   Úexpand)ri   Zresult_typec                 S   s   g d¢S rý   r   rù   r   r   r   rû   L  rü   )r!   r   Úapplyr@   rG   rV   rX   )r	   r#   rË   Úresultr   )r÷   rø   r   Útest_subclassed_apply  sD    üù
üù
""z.TestDataFrameSubclassing.test_subclassed_applyc                 C   s>   t  g d¢g d¢g d¢dœ¡}t||ƒƒ }t|t jƒs:J ‚d S ©Nr   rJ   rM   rÊ   ©r!   r   Úgetattrr@   rV   )r	   Z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ƒstJ ‚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ƒsôJ ‚t  ¡ }| ¡ }t|t jƒ�sJ ‚d S )N)rÍ   ÚMylaZLewisrÍ   r  g      8@r¶   rŒ   é   )FTTTF)ZPersonZAgeÚSingle)r   r   r   )r   r9   rL   )rN   rO   r   rÊ   r   rƒ   rˆ   r�   r’   r“   r”   r•   r–   r˜   r™   rš   r›   r{   )r!   r   rl   rm   Úcountr@   rV   r   rA   rW   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   rK   r   )Znum_legsZ	num_wingsZfalconÚdogr   )r!   r   Úisinr@   r
  r   r   r   Ú	test_isinv  s
    ÿz"TestDataFrameSubclassing.test_isinc                 C   sZ   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒs6J ‚t  ¡ }| ¡ }t|t jƒsVJ ‚d S r  )r!   r   Z
duplicatedr@   rV   r
  r   r   r   Útest_duplicated}  s    z(TestDataFrameSubclassing.test_duplicatedÚ
idx_methodÚidxmaxÚidxminc                 C   s>   t  g d¢g d¢g d¢dœ¡}t||ƒƒ }t|t jƒs:J ‚d S r  r  )r	   r  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   rV   Údotr@   )r	   r#   rv   r   r   r   r   Útest_dotŒ  s    

z!TestDataFrameSubclassing.test_dotc                 C   sV   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒs6J ‚|jdd�}t|t jƒsRJ ‚d S )Nr   rJ   rM   rÊ   Fr   )r!   r   Zmemory_usager@   rV   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 )NZscipy)r   r   r   rf   rã   )ÚoneÚtwoÚthreeÚfourr   )r9   rK   r{   )rK   rK   rK   r   TZkendall)ri   ZdropÚmethod)r_   Zimportorskipr!   r   rl   rð   rñ   rò   Zcorrwithr@   rV   )r	   r    r=   rn   ro   Z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ƒspJ ‚| |d ¡}t|tjƒsŽJ ‚| d¡}t|tjƒs¨J ‚d S )	Nr   z1/1/1990Z53s)ZperiodsÚfreqrÊ   r   r  z
1989-12-31)	rà   Z
date_ranger!   r   rl   rm   Zasofr@   rV   )r	   ÚNÚrngr#   r   r   r   r   Ú	test_asof±  s    ýú	
z"TestDataFrameSubclassing.test_asofc                 C   s:   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒs6J ‚d S r  )r!   r   r  r@   rV   r
  r   r   r   Útest_idxmin_preserves_subclassÆ  s    z7TestDataFrameSubclassing.test_idxmin_preserves_subclassc                 C   s:   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒs6J ‚d S r  )r!   r   r  r@   rV   r
  r   r   r   Útest_idxmax_preserves_subclassÍ  s    z7TestDataFrameSubclassing.test_idxmax_preserves_subclassc                 C   sT   t  g d¢g d¢g d¢dœ¡}| ¡ }t|t jƒs6J ‚| ¡ }t|t|ƒƒsPJ ‚d S r  )r!   r   Zconvert_dtypesr@   Ú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ƒsFJ ‚d S r  )r!   r   Zastyperl   Zint64Zint32Zfloat64r@   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¡}| |¡s0J ‚| |¡s>J ‚d S ©Nr   r   )r   r!   r   Úequals)r	   rn   ro   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 sN0    Y  t  dg d
¢i¡}t|t jƒszJ ‚t  ||¡ d S )Nr:   râ   zAThe 'method' keyword in SubclassedDataFrame.replace is deprecatedF)r^   Zraise_on_extra_warningsr   r   Zffill)r  )r   r   r   )r!   r   r"   ÚFutureWarningÚreplacer@   rG   )r	   r#   Úmsgr   rË   r   r   r   Útest_replace_list_methodì  s    ÿ0z1TestDataFrameSubclassing.test_replace_list_methodN)'r   r   r   r$   rC   rI   r\   ra   rt   rw   rz   r~   r©   r·   r¹   rÁ   rÂ   rÌ   rá   rõ   r  r  r  r  r  r_   ÚmarkZparametrizer  r  r  r  r"  r#  r$  r&  r'  r*  r.  r   r   r   r   r      sD   7#
9>'26	
	r   c                       s4   e Zd ZdgZddœ‡ fdd„Zedd„ ƒZ‡  ZS )ÚMySubclassWithMetadataÚmy_metadataNr*   c                    sD   t ƒ j|i |¤Ž | dd ¡}|r:t|d tƒr:|d j}|| _d S )Nr1  r   )r,   r-   Úpopr@   r0  r1  )r	   r.   Úkwargsr1  r0   r   r   r-   ü  s
    
zMySubclassWithMetadata.__init__c                 C   s   t S r   )r0  r   r   r   r   r     s    z#MySubclassWithMetadata._constructor)r   r   r   rH   r-   r   r   r5   r   r   r0   r   r0  ù  s   r0  c                  C   s<   t tj d¡ d¡g d¢d�} | ddg }t|t ƒs8J ‚d S )Nr   )r9   r   rÊ   r<   r:   r;   )r0  rl   rð   rñ   r@   )r#   Zsubsetr   r   r   Útest_constructor_with_metadata	  s
    ÿr4  c                  C   s4   t  dddœg¡} | jd u s J ‚t| ƒt u s0J ‚d S )Nr   r   rc   )r0  Zfrom_recordsr1  r%  )r#   r   r   r   Ú+test_constructor_with_metadata_from_records  s    r5  c                   @   s   e Zd ZdZdS )ÚSimpleDataFrameSubClassz;A subclass of DataFrame that does not define a constructor.N©r   r   r   r4   r   r   r   r   r6    s   r6  c                   @   s   e Zd ZdZdS )ÚSimpleSeriesSubClassz8A subclass of Series that does not define a constructor.Nr7  r   r   r   r   r8    s   r8  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 r(  )r   r6  Úcopyr%  r!   rG   ©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   r8  r:  r!   rX   r;  r   r   r   Útest_copy_series,  s    z/TestSubclassWithoutConstructor.test_copy_seriesc                 C   s@   t g d¢ƒ}| ¡ }t|ƒ ¡ }t|ƒtu s0J ‚t ||¡ d S rý   )r   Zto_framer8  r%  r   r!   rG   )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 r(  )r6  r   Úgroupbyr%  )r	   r#   Ú_Úvr   r   r   Útest_groupby<  s    z+TestSubclassWithoutConstructor.test_groupbyN)r   r   r   r<  r=  r?  rC  r   r   r   r   r9  "  s   	
r9  )Únumpyrl   r_   Zpandasrà   r   r   r   r   Zpandas._testingZ_testingr!   r/  ÚfilterwarningsZ
pytestmarkZfixturer   r   r0  r4  r5  r6  r8  r9  r   r   r   r   Ú<module>   s*   ÿ
	     b
