§
    tŠtj  ã                  ó¢  — d Z ddlmZ ddlmZ ddlZddlZddlm	Z	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ erddlZ ej        d	d
g¬¦  «        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Zej        d„ ¦   «         Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z dS )aj  
This file contains a minimal set of tests for compliance with the extension
array interface test suite, and should contain no other tests.
The test suite for the full functionality of the array is located in
`pandas/tests/arrays/`.

The tests in this file are inherited from the BaseExtensionTests, and only
minimal tweaks should be applied to get the tests passing (by overwriting a
parent method).

Additional tests should either be added to one of the BaseExtensionTests
classes (if they are relevant for the extension interface for all dtypes), or
be added to the array-specific tests in `pandas/tests/arrays/`.

é    )Úannotations)ÚTYPE_CHECKINGN)ÚPeriodÚiNaT)ÚPeriodDtype©ÚPeriodArray)ÚbaseÚDÚ2D)Úparamsc                ó,   — t          | j        ¬¦  «        S )N©Úfreq)r   Úparam)Úrequests    ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/extension/test_period.pyÚdtyper   '   s   € å˜GœMÐ*Ñ*Ô*Ð*ó    c                óJ   — t          t          j        dd¦  «        | ¬¦  «        S )Ni²  i¼  ©r   )r	   ÚnpÚaranger   s    r   Údatar   ,   s!   € å•r”y  tÑ,Ô,°EÐ:Ñ:Ô:Ð:r   c                ó(   — t          g d¢| ¬¦  «        S )N)éâ  éã  éá  r   r   r   s    r   Údata_for_sortingr   1   s   € åÐ)Ð)Ð)°Ð7Ñ7Ô7Ð7r   c                ó2   — t          t          dg| ¬¦  «        S )Nr   r   ©r	   r   r   s    r   Údata_missingr"   6   s   € å�˜d�|¨5Ð1Ñ1Ô1Ð1r   c                ó4   — t          dt          dg| ¬¦  «        S )Nr   r   r   r!   r   s    r   Údata_missing_for_sortingr$   ;   s   € å˜�d DÐ)°Ð7Ñ7Ô7Ð7r   c           
     óN   — d}t           }d}d}t          ||||||||g| ¬¦  «        S )Nr   r   r   r   )r   r	   )r   ÚBÚNAÚAÚCs        r   Údata_for_groupingr*   @   s:   € à€AÝ	€BØ€AØ€AÝ˜˜1˜b " a¨¨A¨qÐ1¸Ð?Ñ?Ô?Ð?r   c                  ó  ‡ — e Zd Zˆ fd„Zdd„Zdd„Zdˆ fd„Zej         	                    dddg¦  «        ej         
                    d¦  «        ˆ fd„¦   «         ¦   «         Zej         	                    dddg¦  «        d„ ¦   «         Zˆ xZS )ÚTestPeriodArrayc                óV   •— |dv rd S t          ¦   «                              |||¦  «        S )N)Ú__sub__Ú__rsub__)ÚsuperÚ_get_expected_exception)ÚselfÚop_nameÚobjÚotherÚ	__class__s       €r   r1   z'TestPeriodArray._get_expected_exceptionJ   s0   ø€ ØÐ-Ð-Ð-Ø�4Ý‰wŒw×.Ò.¨w¸¸UÑCÔCÐCr   r3   ÚstrÚreturnÚboolc                ó
   — |dv S )N)ÚcumminÚcummax© )r2   Úserr3   s      r   Ú_supports_accumulationz&TestPeriodArray._supports_accumulationO   s   € ØÐ.Ð.Ð.r   c                ó
   — |dv S )N)ÚminÚmaxÚmedianr=   )r2   r4   r3   s      r   Ú_supports_reductionz#TestPeriodArray._supports_reductionR   s   € ØÐ2Ð2Ð2r   r>   ú	pd.SeriesÚskipnac                ó|  •— |dk    r“t          ||¦  «        }|                     d¦  «        }t          ||¦  «        } ||¬¦  «        } ||¬¦  «        }|j        j        }	t	          j        t          |¦  «        |	¬¦  «        }t          j        ||¦  «         d S t          ¦   «          
                    |||¦  «        S )NrC   Úint64)rF   r   )ÚgetattrÚastyper   r   r   Ú_from_ordinalÚintÚtmÚassert_almost_equalr0   Úcheck_reduce)r2   r>   r3   rF   Úres_opÚaltÚexp_opÚresultÚexpectedr   r6   s             €r   rO   zTestPeriodArray.check_reduceU   s¾   ø€ Ø�hÒÐÝ˜S 'Ñ*Ô*ˆFà—*’*˜WÑ%Ô%ˆCå˜S 'Ñ*Ô*ˆFØ�V 6Ð*Ñ*Ô*ˆFØ�v VÐ,Ñ,Ô,ˆHð ”9”>ˆDÝÔ+­C°©M¬MÀÐEÑEÔEˆHÝÔ" 6¨8Ñ4Ô4Ð4Ð4Ð4õ ‘7”7×'Ò'¨¨W°fÑ=Ô=Ð=r   Úperiodsé   éþÿÿÿzignore::RuntimeWarningc                óL   •— t          ¦   «                              ||¦  «         d S ©N)r0   Ú	test_diff)r2   r   r   rU   r6   s       €r   rZ   zTestPeriodArray.test_diffg   s%   ø€ õ 	‰Œ×Ò˜$ Ñ(Ô(Ð(Ð(Ð(r   Ú	na_actionNÚignorec                ó`   — |                      d„ |¬¦  «        }t          j        ||¦  «         d S )Nc                ó   — | S rY   r=   )Úxs    r   ú<lambda>z*TestPeriodArray.test_map.<locals>.<lambda>o   s   €  A€ r   )r[   )ÚmaprM   Úassert_extension_array_equal)r2   r   r[   rS   s       r   Útest_mapzTestPeriodArray.test_mapm   s2   € à—’˜+˜+°�Ñ;Ô;ˆÝ
Ô'¨°Ñ5Ô5Ð5Ð5Ð5r   )r3   r7   r8   r9   )r>   rE   r3   r7   rF   r9   )Ú__name__Ú
__module__Ú__qualname__r1   r?   rD   rO   ÚpytestÚmarkÚparametrizeÚfilterwarningsrZ   rc   Ú__classcell__)r6   s   @r   r,   r,   I   s  ø€ € € € € ðDð Dð Dð Dð Dð
/ð /ð /ð /ð3ð 3ð 3ð 3ð>ð >ð >ð >ð >ð >ð$ „[×Ò˜Y¨¨B¨Ñ0Ô0à„[×ÒÐ 8Ñ9Ô9ð)ð )ð )ð )ñ :Ô9ñ 1Ô0ð)ð „[×Ò˜[¨4°Ð*:Ñ;Ô;ð6ð 6ñ <Ô;ð6ð 6ð 6ð 6ð 6r   r,   c                  ó   — e Zd ZdS )ÚTest2DCompatN)rd   re   rf   r=   r   r   rm   rm   s   s   € € € € € Ø€Dr   rm   )!Ú__doc__Ú
__future__r   Útypingr   Únumpyr   rg   Úpandas._libsr   r   Úpandas.core.dtypes.dtypesr   Úpandas._testingÚ_testingrM   Úpandas.core.arraysr	   Úpandas.tests.extensionr
   ÚpandasÚpdÚfixturer   r   r   r"   r$   r*   ÚExtensionTestsr,   ÚNDArrayBacked2DTestsrm   r=   r   r   ú<module>r}      sø  ððð ð  #Ð "Ð "Ð "Ð "Ð "à  Ð  Ð  Ð  Ð  Ð  à Ð Ð Ð Ø €€€ðð ð ð ð ð ð ð ð
 2Ð 1Ð 1Ð 1Ð 1Ð 1à Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'àð ØÐÐÐð €„˜˜T�{Ð#Ñ#Ô#ð+ð +ñ $Ô#ð+ð „ð;ð ;ñ „ð;ð „ð8ð 8ñ „ð8ð „ð2ð 2ñ „ð2ð „ð8ð 8ñ „ð8ð „ð@ð @ñ „ð@ð'6ð '6ð '6ð '6ð '6�dÔ)ñ '6ô '6ð '6ðT	ð 	ð 	ð 	ð 	�4Ô,ñ 	ô 	ð 	ð 	ð 	r   