§
    Ù! h¬  ã                   óx  — d Z ddlZddlZddlZddlmZ ddlZddlm	Z	 ddl
mZ ddlmZ ddlmZ d„ Zej        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/`.

é    N)Úusing_pyarrow_string_dtype©ÚCategorical©ÚCategoricalDtype)Úbasec                  óÆ   — 	 t           j                             d¦  «                             t	          t
          j        ¦  «        d¬¦  «        } | d         | d         k    rnŒ_| S )NTé   éd   )Úsizer   é   )ÚnpÚrandomÚdefault_rngÚchoiceÚlistÚstringÚascii_letters)Úvaluess    úac:\xampp_lite_8_4\www\timesheet\venv\Lib\site-packages\pandas/tests/extension/test_categorical.pyÚ	make_datar      s_   € ðÝ”×&Ò& qÑ)Ô)×0Ò0µµfÔ6JÑ1KÔ1KÐRUÐ0ÑVÔVˆð �!Œ9˜˜qœ	Ò!Ð!Øðð €Mó    c                  ó   — t          ¦   «         S ©Nr   © r   r   Údtyper   )   s   € åÑÔÐr   c                  ó8   — t          t          ¦   «         ¦  «        S )zˆLength-100 array for this type.

    * data[0] and data[1] should both be non missing
    * data[0] and data[1] should not be equal
    )r   r   r   r   r   Údatar   .   s   € õ •y‘{”{Ñ#Ô#Ð#r   c                  ó8   — t          t          j        dg¦  «        S )zLength 2 array with [NA, Valid]ÚA)r   r   Únanr   r   r   Údata_missingr"   8   s   € õ �œ �}Ñ%Ô%Ð%r   c                  ó.   — t          g d¢g d¢d¬¦  «        S )N)r    ÚBÚC)r%   r    r$   T©Ú
categoriesÚorderedr   r   r   r   Údata_for_sortingr)   >   s   € å���°?°?°?ÈDÐQÑQÔQÐQr   c                  ó.   — t          g d¢ddgd¬¦  «        S )N)r    Nr$   r$   r    Tr&   r   r   r   r   Údata_missing_for_sortingr+   C   s"   € åÐ'Ð'Ð'°S¸#°JÈÐMÑMÔMÐMr   c                  ó$   — t          g d¢¦  «        S )N)Úar-   NNÚbr.   r-   Úcr   r   r   r   Údata_for_groupingr0   H   s   € åÐAÐAÐAÑBÔBÐBr   c                   ó¨  ‡ — e Zd Zej                             d¬¦  «        ˆ fd„¦   «         Zd„ Zd„ Zej         	                    d¬¦  «        ˆ fd„¦   «         Z
ej                             d¬¦  «        ˆ fd	„¦   «         Zd
„ Zej                             dddg¦  «        d„ ¦   «         Zˆ fd„Zˆ fd„Zdej        fˆ fd„Zej                             d¬¦  «        ej                             dddg¦  «        ˆ fd„¦   «         ¦   «         Zej                             d¬¦  «        ej                             dddg¦  «        ˆ fd„¦   «         ¦   «         Zˆ xZS )ÚTestCategoricalzMemory usage doesn't match©Úreasonc                 óJ   •— t          ¦   «                              |¦  «         d S r   )ÚsuperÚtest_memory_usage©Úselfr   Ú	__class__s     €r   r7   z!TestCategorical.test_memory_usageN   s#   ø€ õ 	‰Œ×!Ò! $Ñ'Ô'Ð'Ð'Ð'r   c                 óø   — |j         j        }||                     ¦   «                   }|d         |v sJ ‚|d         |v sJ ‚||v sJ ‚||vsJ ‚t          j        D ]!}||u rŒ||vsJ ‚t          ¦   «         s||v sJ ‚Œ"d S )Nr   )r   Úna_valueÚisnaÚtmÚNULL_OBJECTSr   )r9   r   r"   r<   Úna_value_objs        r   Útest_containszTestCategorical.test_containsS   sÊ   € ð
 ”:Ô&ˆà�T—Y’Y‘[”[�LÔ!ˆð �AŒw˜$ˆˆˆˆØ˜AŒ ,Ð.Ð.Ð.Ð.ð ˜<Ð'Ð'Ð'Ð'Ø˜tÐ#Ð#Ð#Ð#õ œOð 	4ð 	4ˆLØ˜xÐ'Ð'ØØ tÐ+Ð+Ð+Ð+å-Ñ/Ô/ð 4Ø# |Ð3Ð3Ð3Ð3øð	4ð 	4r   c                 ó´   — |                      ¦   «         }|                     d|¬¦  «        }t          ||¦  «        sJ ‚|j        t	          g ¦  «        k    sJ ‚d S )N)é   )r   )Úconstruct_array_typeÚ_emptyÚ
isinstancer   r   )r9   r   ÚclsÚresults       r   Ú
test_emptyzTestCategorical.test_emptym   sb   € Ø×(Ò(Ñ*Ô*ˆØ—’˜D¨�Ñ.Ô.ˆå˜& #Ñ&Ô&Ð&Ð&Ð&ð Œ|Õ/°Ñ3Ô3Ò3Ð3Ð3Ð3Ð3Ð3r   zBackwards compatibilityc                 óJ   •— t          ¦   «                              |¦  «         d S r   )r6   Útest_getitem_scalarr8   s     €r   rK   z#TestCategorical.test_getitem_scalarv   s#   ø€ õ
 	‰Œ×#Ò# DÑ)Ô)Ð)Ð)Ð)r   zUnobserved categories includedc                 óH   •— t          ¦   «                              ||¦  «        S r   )r6   Útest_value_counts)r9   Úall_dataÚdropnar:   s      €r   rM   z!TestCategorical.test_value_counts}   s   ø€ å‰wŒw×(Ò(¨°6Ñ:Ô:Ð:r   c           	      ó$  ‡—  |d¦  «        \  }}t          j        |¦  «        }t          j        |¦  «        }|                     |d„ ¦  «        }t          j        d„ t          t	          |¦  «        t	          |¦  «        ¦  «        D ¦   «         ¦  «        }t          j        ||¦  «         |j        d         Š|                     ‰d„ ¦  «        }t          j        ˆfd„t	          |¦  «        D ¦   «         ¦  «        }t          j        ||¦  «         d S )Nr
   c                 ó   — | |z   S r   r   ©Úx1Úx2s     r   ú<lambda>z2TestCategorical.test_combine_add.<locals>.<lambda>‡   s
   € ¨r°B©w€ r   c                 ó   — g | ]
\  }}||z   ‘ŒS r   r   )Ú.0r-   r.   s      r   ú
<listcomp>z4TestCategorical.test_combine_add.<locals>.<listcomp>‰   s    € ÐIÐIÐI‘v˜˜1ˆQ�‰UÐIÐIÐIr   r   c                 ó   — | |z   S r   r   rR   s     r   rU   z2TestCategorical.test_combine_add.<locals>.<lambda>Ž   s
   € °°R±€ r   c                 ó   •— g | ]}|‰z   ‘ŒS r   r   )rW   r-   Úvals     €r   rX   z4TestCategorical.test_combine_add.<locals>.<listcomp>�   s   ø€ Ð@Ð@Ð@¨!˜a #™gÐ@Ð@Ð@r   )ÚpdÚSeriesÚcombineÚzipr   r>   Úassert_series_equalÚiloc)	r9   Údata_repeatedÚ
orig_data1Ú
orig_data2Ús1Ús2rH   Úexpectedr[   s	           @r   Útest_combine_addz TestCategorical.test_combine_add�   s  ø€ ð "/ ¨qÑ!1Ô!1Ñˆ
�JÝŒY�zÑ"Ô"ˆÝŒY�zÑ"Ô"ˆØ—’˜BÐ 6Ð 6Ñ7Ô7ˆÝ”9ØIÐI¥¥T¨*Ñ%5Ô%5µt¸JÑ7GÔ7GÑ!HÔ!HÐIÑIÔIñ
ô 
ˆõ 	Ô˜v xÑ0Ô0Ð0àŒg�aŒjˆØ—’˜CÐ!7Ð!7Ñ8Ô8ˆÝ”9Ð@Ð@Ð@Ð@­t°JÑ/?Ô/?Ð@Ñ@Ô@ÑAÔAˆÝ
Ô˜v xÑ0Ô0Ð0Ð0Ð0r   Ú	na_actionNÚignorec                 ó`   — |                      d„ |¬¦  «        }t          j        ||¦  «         d S )Nc                 ó   — | S r   r   )Úxs    r   rU   z*TestCategorical.test_map.<locals>.<lambda>”   s   €  A€ r   )ri   )Úmapr>   Úassert_extension_array_equal)r9   r   ri   rH   s       r   Útest_mapzTestCategorical.test_map’   s2   € à—’˜+˜+°�Ñ;Ô;ˆÝ
Ô'¨°Ñ5Ô5Ð5Ð5Ð5r   c                 óÂ   •— |}|dk    r3|                      t          j                             d¬¦  «        ¦  «         t	          ¦   «                              ||¦  «         d S ©NÚ__rmod__z/rmod never called when string is first argumentr3   )ÚapplymarkerÚpytestÚmarkÚxfailr6   Útest_arith_frame_with_scalar©r9   r   Úall_arithmetic_operatorsÚrequestÚop_namer:   s        €r   rx   z,TestCategorical.test_arith_frame_with_scalar—   sj   ø€ à*ˆØ�jÒ Ð Ø×ÒÝ”×!Ò!ØLð "ñ ô ñô ð õ
 	‰Œ×,Ò,¨T°7Ñ;Ô;Ð;Ð;Ð;r   c                 óÂ   •— |}|dk    r3|                      t          j                             d¬¦  «        ¦  «         t	          ¦   «                              ||¦  «         d S rr   )rt   ru   rv   rw   r6   Útest_arith_series_with_scalarry   s        €r   r~   z-TestCategorical.test_arith_series_with_scalar¢   sj   ø€ Ø*ˆØ�jÒ Ð Ø×ÒÝ”×!Ò!ØLð "ñ ô ñô ð õ
 	‰Œ×-Ò-¨d°GÑ<Ô<Ð<Ð<Ð<r   Úserc                 óò   •— d|j         › d�}|dvrDd}t          j        t          |¬¦  «        5   |||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S t	          ¦   «                              ||||¦  «        S )NÚ__)Ú__eq__Ú__ne__z7Unordered Categoricals can only compare equality or not)Úmatch)Ú__name__ru   ÚraisesÚ	TypeErrorr6   Ú_compare_other)r9   r   r   ÚopÚotherr|   Úmsgr:   s          €r   rˆ   zTestCategorical._compare_other¬   sÎ   ø€ Ø&�r”{Ð&Ð&Ð&ˆØÐ.Ð.Ð.ØKˆCÝ”�y°Ð4Ñ4Ô4ð  ð  Ø��4˜‘”�ð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  õ ‘7”7×)Ò)¨#¨t°R¸Ñ?Ô?Ð?s   ®AÁAÁAzCategorical overrides __repr__r   ÚbigÚsmallc                 óL   •— t          ¦   «                              ||¦  «         d S r   )r6   Útest_array_repr)r9   r   r   r:   s      €r   r�   zTestCategorical.test_array_reprµ   s%   ø€ õ 	‰Œ×Ò  dÑ+Ô+Ð+Ð+Ð+r   ÚTBDÚas_indexTFc                 óL   •— t          ¦   «                              ||¦  «         d S r   )r6   Útest_groupby_extension_agg)r9   r‘   r0   r:   s      €r   r“   z*TestCategorical.test_groupby_extension_aggº   s&   ø€ õ 	‰Œ×*Ò*¨8Ð5FÑGÔGÐGÐGÐGr   )r…   Ú
__module__Ú__qualname__ru   rv   rw   r7   rA   rI   ÚskiprK   rM   rh   Úparametrizerp   rx   r~   r\   r]   rˆ   r�   r“   Ú__classcell__)r:   s   @r   r2   r2   M   sL  ø€ € € € € Ø„[×ÒÐ:ÐÑ;Ô;ð(ð (ð (ð (ñ <Ô;ð(ð4ð 4ð 4ð44ð 4ð 4ð „[×ÒÐ6ÐÑ7Ô7ð*ð *ð *ð *ñ 8Ô7ð*ð „[×ÒÐ>ÐÑ?Ô?ð;ð ;ð ;ð ;ñ @Ô?ð;ð1ð 1ð 1ð" „[×Ò˜[¨4°Ð*:Ñ;Ô;ð6ð 6ñ <Ô;ð6ð	<ð 	<ð 	<ð 	<ð 	<ð=ð =ð =ð =ð =ð@ "¤)ð @ð @ð @ð @ð @ð @ð „[×ÒÐ>ÐÑ?Ô?Ø„[×Ò˜V e¨WÐ%5Ñ6Ô6ð,ð ,ð ,ð ,ñ 7Ô6ñ @Ô?ð,ð „[×Ò˜eÐÑ$Ô$Ø„[×Ò˜Z¨$°¨Ñ7Ô7ðHð Hð Hð Hñ 8Ô7ñ %Ô$ðHð Hð Hð Hð Hr   r2   c                   ó   — e Zd Zd„ ZdS )ÚTest2DCompatc                 óþ   — t          |                     dd¦  «        ¦  «        }|                     d¦  «        dk    sJ ‚t          |                     dd¦  «        ¦  «        }|                     d¦  «        dk    sJ ‚d S )Nr   éÿÿÿÿz
Categories)ÚreprÚreshapeÚcount)r9   r   Úress      r   Útest_repr_2dzTest2DCompat.test_repr_2dÁ   sz   € õ �4—<’<  2Ñ&Ô&Ñ'Ô'ˆØ�yŠy˜Ñ(Ô(¨AÒ-Ð-Ð-Ð-å�4—<’<  AÑ&Ô&Ñ'Ô'ˆØ�yŠy˜Ñ(Ô(¨AÒ-Ð-Ð-Ð-Ð-Ð-r   N)r…   r”   r•   r¡   r   r   r   rš   rš   À   s#   € € € € € ð.ð .ð .ð .ð .r   rš   )Ú__doc__r   Únumpyr   ru   Úpandas._configr   Úpandasr\   r   Úpandas._testingÚ_testingr>   Úpandas.api.typesr   Úpandas.tests.extensionr   r   Úfixturer   r   r"   r)   r+   r0   ÚExtensionTestsr2   ÚNDArrayBacked2DTestsrš   r   r   r   ú<module>r­      sÐ  ððð ð €€€à Ð Ð Ð Ø €€€à 5Ð 5Ð 5Ð 5Ð 5Ð 5à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ðð ð ð „ðð ñ „ðð „ð$ð $ñ „ð$ð „ð&ð &ñ „ð&ð
 „ðRð Rñ „ðRð „ðNð Nñ „ðNð „ðCð Cñ „ðCðpHð pHð pHð pHð pH�dÔ)ñ pHô pHð pHðf.ð .ð .ð .ð .�4Ô,ñ .ô .ð .ð .ð .r   