§
    tŠtjQ  ã                   ó~  — 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ef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_string_dtype©ÚCategorical©ÚCategoricalDtype)ÚbaseÚnc                 óÆ   — 	 t           j                             d¦  «                             t	          t
          j        ¦  «        | ¬¦  «        }|d         |d         k    rnŒ_|S )NTé   )Úsizer   é   )ÚnpÚrandomÚdefault_rngÚchoiceÚlistÚstringÚascii_letters)r	   Úvaluess     úe/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/pandas/tests/extension/test_categorical.pyÚ	make_datar      s_   € ðÝ”×&Ò& qÑ)Ô)×0Ò0µµfÔ6JÑ1KÔ1KÐRSÐ0ÑTÔTˆð �!Œ9˜˜qœ	Ò!Ð!Øðð €Mó    c                  ó   — t          ¦   «         S ©Nr   © r   r   Údtyper   *   s   € åÑÔÐr   c                  ó:   — t          t          d¦  «        ¦  «        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#   9   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,   D   s"   € åÐ'Ð'Ð'°S¸#°JÈÐMÑMÔMÐMr   c                  ó$   — t          g d¢¦  «        S )N)Úar.   NNÚbr/   r.   Úcr   r   r   r   Údata_for_groupingr1   I   s   € åÐAÐAÐAÑBÔBÐBr   c                   ó  ‡ — e Zd Zd„ Z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 )ÚTestCategoricalc                 óø   — |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   )Úselfr   r#   r5   Úna_value_objs        r   Útest_containszTestCategorical.test_containsO   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_emptyi   sb   € Ø×(Ò(Ñ*Ô*ˆØ—’˜D¨�Ñ.Ô.ˆå˜& #Ñ&Ô&Ð&Ð&Ð&ð Œ|Õ/°Ñ3Ô3Ò3Ð3Ð3Ð3Ð3Ð3r   zBackwards compatibility©Úreasonc                 óJ   •— t          ¦   «                              |¦  «         d S r   )ÚsuperÚtest_getitem_scalar)r9   r   Ú	__class__s     €r   rH   z#TestCategorical.test_getitem_scalarr   s#   ø€ õ
 	‰Œ×#Ò# DÑ)Ô)Ð)Ð)Ð)r   c           	      ó(  ‡—  |d¦  «        \  }}t          j        |¦  «        }t          j        |¦  «        }|                     |d„ ¦  «        }t          j        d„ t          t	          |¦  «        t	          |¦  «        d¬¦  «        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    € ÐVÐVÐV‘v˜˜1ˆQ�‰UÐVÐVÐVr   T)Ústrictr   c                 ó   — | |z   S r   r   rL   s     r   rO   z2TestCategorical.test_combine_add.<locals>.<lambda>†   s
   € °°R±€ r   c                 ó   •— g | ]}|‰z   ‘ŒS r   r   )rQ   r.   Úvals     €r   rR   z4TestCategorical.test_combine_add.<locals>.<listcomp>‡   s   ø€ Ð@Ð@Ð@¨!˜a #™gÐ@Ð@Ð@r   )ÚpdÚSeriesÚcombineÚzipr   r7   Úassert_series_equalÚiloc)	r9   Údata_repeatedÚ
orig_data1Ú
orig_data2Ús1Ús2rB   ÚexpectedrV   s	           @r   Útest_combine_addz TestCategorical.test_combine_addy   s  ø€ ð "/ ¨qÑ!1Ô!1Ñˆ
�JÝŒY�zÑ"Ô"ˆÝŒY�zÑ"Ô"ˆØ—’˜BÐ 6Ð 6Ñ7Ô7ˆÝ”9ØVÐV¥¥T¨*Ñ%5Ô%5µt¸JÑ7GÔ7GÐPTÐ!UÑ!UÔ!UÐVÑVÔVñ
ô 
ˆõ 	Ô˜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   rO   z*TestCategorical.test_map.<locals>.<lambda>Œ   s   €  A€ r   )rd   )Úmapr7   Úassert_extension_array_equal)r9   r   rd   rB   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 argumentrD   )ÚapplymarkerÚpytestÚmarkÚxfailrG   Útest_arith_frame_with_scalar©r9   r   Úall_arithmetic_operatorsÚrequestÚop_namerI   s        €r   rs   z,TestCategorical.test_arith_frame_with_scalar�   sj   ø€ à*ˆØ�jÒ Ð Ø×ÒÝ”×!Ò!ØLð "ñ ô ñô ð õ
 	‰Œ×,Ò,¨T°7Ñ;Ô;Ð;Ð;Ð;r   c                 óÂ   •— |}|dk    r3|                      t          j                             d¬¦  «        ¦  «         t	          ¦   «                              ||¦  «         d S rm   )ro   rp   rq   rr   rG   Útest_arith_series_with_scalarrt   s        €r   ry   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__rp   ÚraisesÚ	TypeErrorrG   Ú_compare_other)r9   rz   r   ÚopÚotherrw   ÚmsgrI   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   )rG   Útest_array_repr)r9   r   r   rI   s      €r   rŠ   zTestCategorical.test_array_repr­   s%   ø€ õ 	‰Œ×Ò  dÑ+Ô+Ð+Ð+Ð+r   ÚTBDÚas_indexTFc                 óL   •— t          ¦   «                              ||¦  «         d S r   )rG   Útest_groupby_extension_agg)r9   rŒ   r1   rI   s      €r   rŽ   z*TestCategorical.test_groupby_extension_agg²   s&   ø€ õ 	‰Œ×*Ò*¨8Ð5FÑGÔGÐGÐGÐGr   )r€   Ú
__module__Ú__qualname__r;   rC   rp   rq   ÚskiprH   rc   Úparametrizerk   rs   ry   rW   rX   rƒ   rr   rŠ   rŽ   Ú__classcell__)rI   s   @r   r3   r3   N   sÙ  ø€ € € € € ð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   r3   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   rp   Úpandas._configr   ÚpandasrW   r   Úpandas._testingÚ_testingr7   Úpandas.api.typesr   Úpandas.tests.extensionr   Úintr   Úfixturer   r   r#   r*   r,   r1   ÚExtensionTestsr3   ÚNDArrayBacked2DTestsr•   r   r   r   ú<module>r©      sÜ  ððð ð  €€€à Ð Ð Ð Ø €€€à -Ð -Ð -Ð -Ð -Ð -à Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð�ð ð ð ð ð „ðð ñ „ðð „ð&ð &ñ „ð&ð „ð&ð &ñ „ð&ð
 „ðRð Rñ „ðRð „ðNð Nñ „ðNð „ðCð Cñ „ðCðgHð gHð gHð gHð gH�dÔ)ñ gHô gHð gHðT.ð .ð .ð .ð .�4Ô,ñ .ô .ð .ð .ð .r   