Ë
    u™ãjcN  ã                   ó„   — 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  G d„ d«      Z G d„ d«      Z G d„ d	«      Zy)
é    N)ÚPandas4Warning)Úrecode_for_categoriesc                   ó®  — e Zd Zd„ Zd„ Zd„ Zej                  j                  dg d¢ddgg«      d„ «       Z	d	„ Z
d
„ Zd„ Zej                  j                  ddgg d¢g d¢g«      d„ «       Zd„ Zd„ Zd„ Zd„ Zej                  j                  dg d¢ddgddgfg d¢ddgddgfg d¢ddgddgfg d¢ddgddgfg d¢ddgddgfg d¢ddgddgfg d¢ddgddgfg d¢ddgddgfg d¢ddgdgfg d¢ddgdgfg d¢ddgdgfg d¢ddgdgfg d¢ddgddgfg«      d„ «       Zd„ Zd„ Zd„ Zej                  j                  d d!gd!ej.                  gd!d!d!gg«      d"„ «       Zd#„ Zy$)%ÚTestCategoricalAPIc                 óD  — t        j                  t        d«      d¬«      }t        j                  |j
                  t        j                  g d¢«      «       |j                  rJ ‚t        j                  t        d«      t        d«      d¬«      }t        j                  |j
                  t        j                  g d¢«      «       |j                  rJ ‚t        j                  t        d«      d¬«      }t        j                  |j
                  t        j                  g d¢«      «       |j                  sJ ‚t        j                  t        d«      t        d«      d¬«      }t        j                  |j
                  t        j                  g d¢«      «       |j                  sJ ‚y )	NÚacbF©Úordered©ÚaÚbÚcÚbca©Ú
categoriesr
   )r   r   r   T)ÚpdÚCategoricalÚlistÚtmÚassert_index_equalr   ÚIndexr
   )ÚselfÚcat1Úcat2Úcat3Úcat4s        ús/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/arrays/categorical/test_api.pyÚtest_ordered_apiz#TestCategoricalAPI.test_ordered_api   s  € ä�~‰~œd 5›k°5Ô9ˆÜ
×Ñ˜dŸo™o¬r¯x©xºÓ/HÔIØ—<’<ÐÐä�~‰~œd 5›k´d¸5³kÈ5ÔQˆÜ
×Ñ˜dŸo™o¬r¯x©xºÓ/HÔIØ—<’<ÐÐä�~‰~œd 5›k°4Ô8ˆÜ
×Ñ˜dŸo™o¬r¯x©xºÓ/HÔIØ�|Š|Ðˆ|ä�~‰~œd 5›k´d¸5³kÈ4ÔPˆÜ
×Ñ˜dŸo™o¬r¯x©xºÓ/HÔIØ�|Š|Ð‰|ó    c                 ó  — t        j                  g d¢d¬«      }|j                  «       }|j                  rJ ‚|j	                  «       }|j                  sJ ‚|j                  d«      j                  sJ ‚|j                  d«      j                  rJ ‚d}t        j                  t        |¬«      5  d|_        d d d «       t        j                  t        |¬«      5  d|_        d d d «       y # 1 sw Y   Œ5xY w# 1 sw Y   y xY w)N©r   r   r   r   Tr	   Fz8property 'ordered' of 'Categorical' object has no setter©Úmatch)	r   r   Úas_unorderedr
   Ú
as_orderedÚset_orderedÚpytestÚraisesÚAttributeError)r   Úcatr   Úmsgs       r   Útest_set_orderedz#TestCategoricalAPI.test_set_ordered    sÛ   € Ü�n‰nÒ1¸4Ô@ˆØ×ÑÓ!ˆØ—<’<ÐÐØ�~‰~ÓˆØ�|Š|Ðˆ|à×Ñ Ó%×-Ò-Ð-Ð-Ø×#Ñ# EÓ*×2Ò2Ð2Ð2ð IˆÜ�]‰]œ>°Ô5ñ 	ØˆCŒK÷	ä�]‰]œ>°Ô5ñ 	 ØˆCŒK÷	 ð 	 ÷	ð 	ú÷	 ð 	 ús   Â-C)ÃC5Ã)C2Ã5C>c                 óÖ  — t        j                  g d¢«      }|j                  g d¢«      }t        j                  |j                  «       t        j                  g d¢t        j                  ¬«      «       t        j                  |j                  t        j                  g d¢«      «       t        j                  g d¢t        j                  ¬«      }t        j                  |j                  «       |«       t        j                  g d¢«      }t        j                  |j                  |«       |j                  d„ «      }t        j                  g d¢«      }t        j                  ||«       y )Nr!   ©é   é   é   )r/   r0   r1   r/   ©Údtyper   c                 ó"   — | j                  «       S )N)Úupper)Úxs    r   ú<lambda>z;TestCategoricalAPI.test_rename_categories.<locals>.<lambda>B   s   € °·±³€ r   )ÚAÚBÚCr8   )r   r   Úrename_categoriesr   Úassert_numpy_array_equalÚ	__array__ÚnpÚarrayÚint64r   r   r   Úobject_Úassert_categorical_equal)r   r*   ÚresÚexp_catÚresultÚexpecteds         r   Útest_rename_categoriesz)TestCategoricalAPI.test_rename_categories1   sé   € Ü�n‰nÒ1Ó2ˆð ×#Ñ#¢IÓ.ˆÜ
×#Ñ#Ø�M‰M‹OœRŸX™X¢l¼"¿(¹(ÔCô	
ô 	×Ñ˜cŸn™n¬b¯h©h²yÓ.AÔBä—(‘(Ò/´r·z±zÔBˆÜ
×#Ñ# C§M¡M£O°WÔ=ä—(‘(š?Ó+ˆÜ
×Ñ˜cŸn™n¨gÔ6ð ×&Ñ&Ñ':Ó;ˆÜ—>‘>Ò"6Ó7ˆÜ
×#Ñ# F¨HÕ5r   Únew_categories©r/   r0   r1   é   r/   r0   c                 ó¸   — t        j                  g d¢«      }d}t        j                  t        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nr!   zKnew categories need to have the same number of items as the old categories!r"   )r   r   r'   r(   Ú
ValueErrorr;   ©r   rH   r*   r+   s       r   Ú*test_rename_categories_wrong_length_raisesz=TestCategoricalAPI.test_rename_categories_wrong_length_raisesF   sN   € ä�n‰nÒ1Ó2ˆðð 	ô �]‰]œ:¨SÔ1ñ 	2Ø×!Ñ! .Ô1÷	2÷ 	2ñ 	2ús   µAÁAc                 óà   — t        j                  ddg«      }|j                  t        j                  ddgddg¬«      «      }t        j                  ddg«      }t	        j
                  ||«       y )Nr   r   r   r/   ©Úindex)r   r   r;   ÚSeriesr   rB   )r   r   rE   rF   s       r   Útest_rename_categories_seriesz0TestCategoricalAPI.test_rename_categories_seriesP   sY   € ä�N‰N˜C ˜:Ó&ˆØ×$Ñ$¤R§Y¡Y°°1¨v¸cÀ3¸ZÔ%HÓIˆÜ—>‘> 1 a &Ó)ˆÜ
×#Ñ# F¨HÕ5r   c           	      ó   — t        j                  g d¢«      }|j                  dddddœ«      }t        j                  g d¢«      }t	        j
                  |j                  |«       t        j                  g d¢«      }|j                  dddœ«      }t        j                  g d¢«      }t	        j
                  |j                  |«       t        j                  g d¢«      }|j                  ddddd	d
dœ«      }t        j                  g d¢«      }t	        j
                  |j                  |«       t        j                  g d¢«      }|j                  dddœ«      }t        j                  g d¢«      }t	        j
                  |j                  |«       y )N©r   r   r   ÚdrJ   r1   r0   r/   ©rJ   r1   r0   r/   )r   r   )r/   r   r1   rV   é   é   )r   r   r   rV   ÚeÚfrI   )r[   Úg)r   r   r;   r   r   r   r   )r   r*   rC   rF   s       r   Útest_rename_categories_dictz.TestCategoricalAPI.test_rename_categories_dictW   s/  € ä�n‰nÒ1Ó2ˆØ×#Ñ#¨!°!¸!À!Ñ$DÓEˆÜ—8‘8šLÓ)ˆÜ
×Ñ˜cŸn™n¨hÔ7ô �n‰nÒ1Ó2ˆØ×#Ñ#¨!°!Ñ$4Ó5ˆä—8‘8Ò,Ó-ˆÜ
×Ñ˜cŸn™n¨hÔ7ô �n‰nÒ1Ó2ˆØ×#Ñ#¨!°!¸!À!È!ÐRSÑ$TÓUˆÜ—8‘8šLÓ)ˆÜ
×Ñ˜cŸn™n¨hÔ7ô �n‰nÒ1Ó2ˆØ×#Ñ#¨!°!Ñ$4Ó5ˆä—8‘8Ò0Ó1ˆÜ
×Ñ˜cŸn™n¨hÕ7r   c                 ó  — t        j                  g d¢d¬«      }|j                  «       }t        j                  g d¢g d¢d¬«      }|j                  g d¢«      }t	        j
                  ||«       t	        j
                  ||«       y )Nr!   Tr	   ©r   r   r   r   )r   r   ÚcopyÚreorder_categoriesr   rB   ©r   r*   ÚoldÚnewrC   s        r   Útest_reorder_categoriesz*TestCategoricalAPI.test_reorder_categoriesr   se   € Ü�n‰nÒ1¸4Ô@ˆØ�h‰h‹jˆÜ�n‰nÚ ª_Àdô
ˆð ×$Ñ$¢_Ó5ˆä
×#Ñ# C¨Ô-ä
×#Ñ# C¨Õ-r   r   ©r   r   rV   rU   c                 ó¼   — t        j                  g d¢d¬«      }d}t        j                  t        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nr!   Tr	   z=items in new_categories are not the same as in old categoriesr"   )r   r   r'   r(   rL   ra   rM   s       r   Útest_reorder_categories_raisesz1TestCategoricalAPI.test_reorder_categories_raises   sK   € ô �n‰nÒ1¸4Ô@ˆØMˆÜ�]‰]œ:¨SÔ1ñ 	3Ø×"Ñ" >Ô2÷	3÷ 	3ñ 	3ús   ·AÁAc                 óÒ  — t        j                  g d¢d¬«      }|j                  «       }t        j                  g d¢g d¢d¬«      }|j                  d«      }t	        j
                  ||«       t	        j
                  ||«       |j                  dg«      }t	        j
                  ||«       t	        j
                  ||«       t        j                  t        d«      d¬«      }t        j                  t        d«      t        d«      d¬«      }|j                  t        j                  dd	g«      «      }t	        j
                  ||«       |j                  t        j                  dd	g«      «      }t	        j
                  ||«       |j                  t        j                  dd	g«      «      }t	        j
                  ||«       |j                  dd	g«      }t	        j
                  ||«       y )
Nr!   Tr	   rU   r   rV   ÚabcÚabcderZ   )r   r   r`   Úadd_categoriesr   rB   r   rR   r>   r?   r   )r   r*   rc   rd   rC   rF   s         r   Útest_add_categoriesz&TestCategoricalAPI.test_add_categories�   st  € Ü�n‰nÒ1¸4Ô@ˆØ�h‰h‹jˆÜ�n‰nÚ Ò-AÈ4ô
ˆð × Ñ  Ó%ˆÜ
×#Ñ# C¨Ô-Ü
×#Ñ# C¨Ô-à× Ñ  # Ó'ˆÜ
×#Ñ# C¨Ô-Ü
×#Ñ# C¨Ô-ô �n‰nœT %›[°$Ô7ˆÜ—>‘>¤$ u£+¼$¸w»-ÐQUÔVˆà× Ñ ¤§¡¨C°¨:Ó!6Ó7ˆÜ
×#Ñ# C¨Ô2Ø× Ñ ¤§¡¨3°¨*Ó!5Ó6ˆÜ
×#Ñ# C¨Ô2Ø× Ñ ¤§¡¨3°¨*Ó!5Ó6ˆÜ
×#Ñ# C¨Ô2Ø× Ñ  # s Ó,ˆÜ
×#Ñ# C¨Õ2r   c                 óä   — t        j                  g d¢d¬«      }t        j                  d«      }t	        j
                  t        |¬«      5  |j                  dg«       d d d «       y # 1 sw Y   y xY w)NrU   Tr	   z5new categories must not include old categories: {'d'}r"   rV   )r   r   ÚreÚescaper'   r(   rL   rl   )r   r*   r+   s      r   Ú#test_add_categories_existing_raisesz6TestCategoricalAPI.test_add_categories_existing_raises©   sU   € ä�n‰nÒ1¸4Ô@ˆÜ�i‰iÐOÓPˆÜ�]‰]œ:¨SÔ1ñ 	&Ø×Ñ ˜uÔ%÷	&÷ 	&ñ 	&ús   Á
A&Á&A/c                 óT  — t        j                  t        j                  ddgd¬«      «      }t        j                  dgd¬«      }|j                  |«      }t        j                  t        j                  ddgd¬«      t        j                  g d¢d¬«      ¬«      }t	        j
                  ||«       t        j                  t        j                  g d¢t        j                  «       ¬«      «      }t        j                  d	gt        j                  «       ¬«      }|j                  |«      }t        j                  t        j                  g d¢t        j                  «       ¬«      t        j                  g d
¢t        j                  «       ¬«      ¬«      }t	        j
                  ||«       y )Nr/   r0   ÚInt64r2   rJ   )r/   r0   rJ   ©r   ©r   r   r   rV   rf   )r   r   rR   rl   r   rB   ÚStringDtype)r   r*   ÚserrE   rF   s        r   Ú,test_add_categories_losing_dtype_informationz?TestCategoricalAPI.test_add_categories_losing_dtype_information°   s  € ä�n‰nœRŸY™Y¨¨1 v°WÔ=Ó>ˆÜ�i‰i˜˜ 7Ô+ˆØ×#Ñ# CÓ(ˆÜ—>‘>Ü�I‰I�q˜!�f GÔ,Ü—y‘y¢°'Ô:ô
ˆô 	×#Ñ# F¨HÔ5ä�n‰nœRŸY™Y¢¼b¿n¹nÓ>NÔOÓPˆÜ�i‰i˜˜¤R§^¡^Ó%5Ô6ˆØ×#Ñ# CÓ(ˆÜ—>‘>Ü�I‰I’o¬R¯^©^Ó-=Ô>Ü—y‘y¢¼¿¹Ó8HÔIô
ˆô 	×#Ñ# F¨HÕ5r   c                 ó:
  — t        j                  g d¢d¬«      }t        j                  g d¢«      }t        j                  g d¢t        j
                  ¬«      }|j                  g d¢«      }|j                  g d¢«      }t        j                  |j                  |«       t        j                  |j                  «       |«       t        j                  g d¢«      }t        j                  |j                  |«       t        j                  |j                  «       |«       t        j                  g d¢d¬«      }|j                  dg«      }t        j                  |j                  t        j                  g d¢t        j                  ¬«      «       |j                  g d	¢«      }t        j                  |j                  t        j                  g d
¢t        j                  ¬«      «       t        j                  |j                  t        j                  g d	¢«      «       |j                  g d¢«      }t        j                  g d¢«      }t        j                  |j                  |«       t        j                  g d¢g d¢d¬«      }t        j                  |j                  t        j                  g d¢t        j                  ¬«      «       t        j                  |j                  t        j                  g d¢«      «       t        j                  g d¢t        j                  ¬«      }t        j                  t        j                   |«      |«       |j                  g d¢«      }t        j                  |j                  t        j                  g d¢t        j                  ¬«      «       t        j                  |j                  t        j                  g d¢«      «       t        j                  g d¢t        j                  ¬«      }t        j                  t        j                   |«      |«       |j#                  «       dk(  sJ ‚|j%                  «       dk(  sJ ‚|j                  g d¢d¬«      }|j&                  rJ ‚t        j                  t        j                   |«      t        j                   |«      «       |j)                  d«      j                  g d¢«      }|j&                  rJ ‚t        j                  t        j                   |«      t        j                   |«      «       y )Nr!   Tr	   r_   r2   r   r   )r   éÿÿÿÿrz   r   rf   )r   r/   rz   r   rU   )r/   r0   r1   rJ   r/   rI   r   )r   r/   r0   r1   r   rW   )r1   r0   r/   r   r1   rJ   r/   F)r   r   r   r>   r?   rA   Úset_categoriesr   r   r   r<   r=   ÚcodesÚint8Ú_codesr@   ÚasarrayÚminÚmaxr
   r&   )	r   r*   Úexp_categoriesÚ
exp_valuesrC   Úexp_categories_backr   ÚexpÚc2s	            r   Útest_set_categoriesz&TestCategoricalAPI.test_set_categoriesÄ   s<  € Ü�n‰nÒ1¸4Ô@ˆÜŸ™¢/Ó2ˆÜ—X‘XÒ2¼"¿*¹*ÔEˆ
à× Ñ ¢Ó1ˆØ× Ñ ¢Ó1ˆä
×Ñ˜cŸn™n¨nÔ=Ü
×#Ñ# C§M¡M£O°ZÔ@ä Ÿh™h¢Ó7ÐÜ
×Ñ˜cŸn™nÐ.AÔBÜ
×#Ñ# C§M¡M£O°ZÔ@ô �n‰nÒ1¸4Ô@ˆØ× Ñ  # Ó'ˆÜ
×#Ñ# C§I¡I¬r¯x©xºÌbÏgÉgÔ/VÔWð × Ñ ¢Ó1ˆÜ
×#Ñ# C§I¡I¬r¯x©xºÌRÏWÉWÔ/UÔVÜ
×Ñ˜cŸn™n¬b¯h©h²Ó.GÔHð × Ñ Ò!5Ó6ˆÜŸ™Ò"6Ó7ˆÜ
×Ñ˜cŸn™n¨nÔ=ô �N‰Nš?²|ÈTÔRˆÜ
×#Ñ# A§H¡H¬b¯h©h²ÌbÏgÉgÔ.VÔWÜ
×Ñ˜aŸl™l¬B¯H©H²\Ó,BÔCä�h‰h’¬b¯h©hÔ7ˆÜ
×#Ñ#¤B§J¡J¨q£M°3Ô7ð ×Ñš\Ó*ˆô 	×#Ñ# A§H¡H¬b¯h©h²ÌbÏgÉgÔ.VÔWô 	×Ñ˜aŸl™l¬B¯H©H²\Ó,BÔCô �h‰h’¬b¯h©hÔ7ˆÜ
×#Ñ#¤B§J¡J¨q£M°3Ô7Ø�u‰u‹w˜!Š|Ðˆ|Ø�u‰u‹w˜!Š|Ðˆ|ð ×Ñšl°EÐÓ:ˆØ—:’:Ðˆ~ä
×#Ñ#¤B§J¡J¨q£M´2·:±:¸b³>ÔBð �]‰]˜5Ó!×0Ñ0²Ó>ˆØ—:’:Ðˆ~ä
×#Ñ#¤B§J¡J¨q£M´2·:±:¸b³>ÕBr   z"values, categories, new_categoriesru   r   )r   r   r   r   )r   r   r   rV   rZ   c                 óì  — d}t        |«      j                  |«      rt        nd }t        j                  ||¬«      5  t        j                  ||«      }d d d «       t        |«      j                  |«      rt        nd }t        j                  ||¬«      5  t        j                  |||«      }	d d d «       j                  ||¬«      }
t        j                  |
	«       y # 1 sw Y   ŒŒxY w# 1 sw Y   Œ?xY w)Nz=Constructing a Categorical with a dtype and values containingr"   r	   )	ÚsetÚ
differencer   r   Úassert_produces_warningr   r   r{   rB   )r   Úvaluesr   rH   r
   r+   Úwarn1r   Úwarn2rF   rE   s              r   Útest_set_categories_manyz+TestCategoricalAPI.test_set_categories_many  sÓ   € ð4 Nˆä"% f£+×"8Ñ"8¸Ô"D•È$ˆÜ×'Ñ'¨°SÔ9ñ 	3Ü—‘˜v zÓ2ˆA÷	3ô #& f£+×"8Ñ"8¸Ô"H•ÈdˆÜ×'Ñ'¨°SÔ9ñ 	GÜ—~‘~ f¨n¸gÓFˆH÷	Gð ×!Ñ! .¸'Ð!ÓBˆÜ
×#Ñ# F¨HÕ5÷	3ð 	3ú÷	Gð 	Gús   ¼CÂC*ÃC'Ã*C3c                 óÐ   — t        j                  ddg«      }|j                  dgd¬«      }t        j                  dt        j                  g«      }t        j                  ||«       y )Nr8   r9   T)Úrename)r   r   r{   r>   Únanr   rB   )r   r*   rE   rF   s       r   Útest_set_categories_rename_lessz2TestCategoricalAPI.test_set_categories_rename_less-  sQ   € ä�n‰n˜c 3˜ZÓ(ˆØ×#Ñ# S E°$Ð#Ó7ˆÜ—>‘> 3¬¯© -Ó0ˆÜ
×#Ñ# F¨HÕ5r   c                 ó   — t        j                  g d¢g d¢¬«      }|j                  g d¢«       t        j                  g d¢t        d«      ¬«      }t	        j
                  ||«       t        j                  g d¢g d¢¬«      }|j                  g d¢d¬«       t        j                  g d¢t        d«      ¬«      }t	        j
                  ||«       y )	Nr   rU   rt   )r   r   rV   rZ   )r   r   rV   ÚacdeT)Úfastpath)r   r   Ú_set_categoriesr   r   rB   )r   r*   rF   s      r   Útest_set_categories_privatez.TestCategoricalAPI.test_set_categories_private4  s‘   € Ü�n‰nš_Ò9MÔNˆØ×ÑÒ0Ô1Ü—>‘>¢/¼dÀ6»lÔKˆÜ
×#Ñ# C¨Ô2ô �n‰nš_Ò9MÔNˆØ×ÑÒ0¸4ÐÔ@Ü—>‘>¢/¼dÀ6»lÔKˆÜ
×#Ñ# C¨Õ2r   c                 ó¤  — t        j                  g d¢d¬«      }|j                  «       }t        j                  ddt        j                  dgddgd¬«      }|j                  d«      }t        j                  ||«       t        j                  ||«       |j                  dg«      }t        j                  ||«       t        j                  ||«       y )Nr!   Tr	   r   r   r   r   )r   r   r`   r>   r’   Úremove_categoriesr   rB   rb   s        r   Útest_remove_categoriesz)TestCategoricalAPI.test_remove_categories@  s¨   € Ü�n‰nÒ1¸4Ô@ˆØ�h‰h‹jˆÜ�n‰nØ�#”r—v‘v˜sÐ#°°c°
ÀDô
ˆð ×#Ñ# CÓ(ˆÜ
×#Ñ# C¨Ô-Ü
×#Ñ# C¨Ô-à×#Ñ# S EÓ*ˆÜ
×#Ñ# C¨Ô-Ü
×#Ñ# C¨Õ-r   Úremovalsr   c                 óÞ   — t        j                  g d¢«      }t        j                  d«      }t	        j
                  t        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nru   z-removals must all be in old categories: {'c'}r"   )r   r   ro   rp   r'   r(   rL   rš   )r   rœ   r*   Úmessages       r   Útest_remove_categories_raisesz0TestCategoricalAPI.test_remove_categories_raisesO  sP   € ä�n‰nš_Ó-ˆÜ—)‘)ÐKÓLˆä�]‰]œ:¨WÔ5ñ 	,Ø×!Ñ! (Ô+÷	,÷ 	,ñ 	,ús   ÁA#Á#A,c           	      óÚ  — t        j                  g d¢g d¢¬«      }t        j                  g d¢«      }t        j                  g d¢«      }t        j                  |j
                  |«       |j                  «       }t        j                  |j
                  |«       t        j                  |j
                  |«       t        j                  dddt        j                  gg d¢¬«      }|j                  «       }t        j                  |j
                  t        j                  t        j                  g d¢«      «      «       t        j                  g d	¢t        j                  ¬
«      }t        j                  |j                  |«       t        j                  |j
                  |«       dt        j                  ddddt        j                  g}t        j                  |t        d«      ¬«      }|j                  «       }t        j                  |j
                  t        j                  g d¢«      «       t        j                  g d¢t        j                  ¬
«      }t        j                  |j                  |«       |j                  «       |k(  sJ ‚t        d«      }	t        j                  j!                  d«      j#                  |	d d d…   d«      j%                  d«      }t        j                  |t        j                  j!                  d«      j#                  t'        |«      d«      <   t        j                  ||	¬«      }|j                  «       }|j                  «       |j                  «       k(  sJ ‚y )N)r   r   r   rV   r   )r   r   r   rV   rZ   rt   rU   r   r   r   r   )r   r/   r0   rz   r2   ÚFÚDr9   ÚABCDEFG)rŒ   r   )r9   r¢   r¡   )r0   rz   r/   r   r/   r0   rz   Úabcdefghijklmnopqrstuvwxyzr0   i'  Úobjectéd   )r   r   r   r   r   r   Úremove_unused_categoriesr>   r’   r?   r}   r<   r|   r   ÚtolistÚrandomÚdefault_rngÚchoiceÚastypeÚlen)
r   r   Úexp_categories_allÚexp_categories_droppedrC   Ú	exp_codesÚvalr*   ÚoutÚalphas
             r   Útest_remove_unused_categoriesz0TestCategoricalAPI.test_remove_unused_categoriesW  sX  € Ü�N‰NÚ%Ò2Kô
ˆô  ŸX™XÒ&?Ó@ÐÜ!#§¡Ò*>Ó!?Ðä
×Ñ˜aŸl™lÐ,>Ô?à×(Ñ(Ó*ˆÜ
×Ñ˜cŸn™nÐ.DÔEÜ
×Ñ˜aŸl™lÐ,>Ô?ô �N‰NØ�#�sœBŸF™FÐ#Ò0Iô
ˆð ×(Ñ(Ó*ˆÜ
×Ñ˜cŸn™n¬b¯h©h´r·x±xÂÓ7PÓ.QÔRÜ—H‘Hš]´"·'±'Ô:ˆ	Ü
×#Ñ# C§I¡I¨yÔ9Ü
×Ñ˜aŸl™lÐ,>Ô?à”B—F‘F˜C  c¨3´·±Ð7ˆÜ�n‰n C´D¸³OÔDˆØ×*Ñ*Ó,ˆÜ
×Ñ˜cŸn™n¬b¯h©h²Ó.GÔHÜ—H‘HÒ4¼B¿G¹GÔDˆ	Ü
×#Ñ# C§I¡I¨yÔ9Ø�z‰z‹|˜sÒ"Ð"Ð"äÐ1Ó2ˆÜ�i‰i×#Ñ# AÓ&×-Ñ-¨e±C°a°C©j¸%Ó@×GÑGÈÓQˆÜ>@¿f¹fˆŒB�I‰I×!Ñ! !Ó$×+Ñ+¬C°«H°cÓ:Ñ;ä�n‰n C°EÔ:ˆØ×*Ñ*Ó,ˆØ�z‰z‹|˜sŸz™z›|Ò+Ð+Ñ+r   N)Ú__name__Ú
__module__Ú__qualname__r   r,   rG   r'   ÚmarkÚparametrizerN   rS   r]   re   rh   rm   rq   rx   r‡   r�   r“   r˜   r›   r>   r’   rŸ   r´   © r   r   r   r      sý  „ òò$ ò"6ð* ‡[�[×ÑÐ-²¸qÀ!¸fÐ/EÓFñ2ó Gð2ò6ò8ò6.ð ‡[�[×ÑØàˆEÚÚ ð	
óñ3óð3ò3ò8&ò6ò(@CðD ‡[�[×ÑØ,ò ˜s C˜j¨3°¨*Ð5â˜s C˜j¨3°¨*Ð5â˜s C˜j¨3°¨*Ð5â˜s C˜j¨3°¨*Ð5â˜s C˜j¨3°¨*Ð5Ú˜s C˜j¨3°¨*Ð5Ú˜s C˜j¨3°¨*Ð5Ú˜s C˜j¨3°¨*Ð5â˜s C˜j¨3¨%Ð0Ú˜s C˜j¨3¨%Ð0Ú˜s C˜j¨3¨%Ð0Ú˜s C˜j¨3¨%Ð0â˜s C˜j¨3°¨*Ð5ð)	
óñ26ó3ð26ò6ò
3ò.ð ‡[�[×Ñ˜Z¨3¨%°#°r·v±v°ÀÀcÈ3ÀZÐ)PÓQñ,ó Rð,ó%,r   r   c                   ó   — e Zd Zd„ Zy)ÚTestCategoricalAPIWithFactorc                 ól  — t        j                  g d¢d¬«      }|j                  «       }|j                  sJ ‚t        j                  g d¢d|j                  ¬«      }t        j
                  g d¢g d¢d	œ|¬
«      }t        j                  ||«       |j                  «       }|j                  g d¢«      }|j                  «       }t        j                  t        d«      |j                  d¬«      }t        j
                  g d¢g d¢d	œ|¬
«      }t        j                  ||«       t        j                  g d¢«      }|j                  «       }t        j                  g d¢|j                  d¬«      }t        j
                  g d¢g d¢d	œ|¬
«      }t        j                  ||«       t        j                  t        j                  dddg«      }|j                  «       }t        j
                  g d¢g d¢d	œt        j                  ddt        j                  gddgd¬«      ¬
«      }t        j                  ||«       y )N)r   r   r   r   r   r   r   r   Tr	   r   r   )Únamer
   )r1   r0   r1   )ç      Ø?ç      Ð?r¿   )ÚcountsÚfreqsrP   rU   Úabcd)r
   r¾   )r1   r0   r1   r   )r¿   rÀ   r¿   r   )r/   r0   r1   r/   r0   r1   r1   r0   r/   r/   r/   r.   )rX   r1   r1   )g]tÑEÝ?çtÑE]tÑ?rÄ   r/   r0   )r/   r0   r/   )rÀ   g      à?rÀ   )r   r¾   )r   r   Údescriber
   ÚCategoricalIndexÚ	DataFramer   Úassert_frame_equalr`   r{   r   r>   r’   )r   ÚfactorÚdescÚ	exp_indexrF   r*   s         r   Útest_describez*TestCategoricalAPIWithFactor.test_describe€  sÃ  € Ü—‘Ò HÐRVÔWˆà�‰Ó ˆØ�~Š~Ðˆ~Ü×'Ñ'Ú ,¸¿¹ô
ˆ	ô —<‘<Ú Ò+FÑGÈyô
ˆô 	×Ñ˜d HÔ-ð �k‰k‹mˆØ× Ñ Ò!5Ó6ˆØ�|‰|‹~ˆä×'Ñ'Ü�‹L &§.¡.°|ô
ˆ	ô —<‘<Ú#Ò.LÑMØô
ˆô 	×Ñ˜d HÔ-ô �n‰nÒ>Ó?ˆØ�|‰|‹~ˆÜ×'Ñ'Ú˜sŸ{™{°ô
ˆ	ô —<‘<Ú Ò+IÑJØô
ˆô 	×Ñ˜d HÔ-ô �n‰nœbŸf™f a¨¨AÐ.Ó/ˆØ�|‰|‹~ˆÜ—<‘<Ú Ò+FÑGÜ×%Ñ%Ø�A”r—v‘v�¨A¨q¨6¸ôô
ˆô 	×Ñ˜d HÕ-r   N)rµ   r¶   r·   rÌ   rº   r   r   r¼   r¼     s   „ ó1.r   r¼   c                   óˆ  — e Zd Zd„ Zej
                  j                  dddgddgddgddgfddgddgddgddgfddgddgddgddgfddgddgddgddgfg d¢ddgg d¢g d¢fg d	¢g d¢ddgg d
¢fg d¢g d¢g d¢g d¢fg d¢g d¢dgg d¢fg d¢g d¢dgg d¢fg d¢g d¢g g d¢fddgg ddgddgfddgddgddgddgfg«      d„ «       Zd„ Zy)ÚTestPrivateCategoricalAPIc                 óô  — t        j                  ddddt        j                  g«      }t        j                  g d¢d¬«      }t        j                  |j                  |«       d}t        j                  t        |¬«      5  t        j                  g d	¢d¬«      |_        d d d «       |j                  }t        j                  t        d
¬«      5  d|d<   d d d «       d|d<   t        j                  g d¢d¬«      }t        j                  |j                  |«       d|j                  d<   t        j                  g d¢d¬«      }t        j                  |j                  |«       y # 1 sw Y   ŒÅxY w# 1 sw Y   ŒœxY w)Nr   r   r   )r   r/   r0   r   rz   r}   r2   z6property 'codes' of 'Categorical' object has no setterr"   )r   r/   r0   r   r/   z#assignment destination is read-onlyr/   rJ   )r   r/   r0   r   r   r0   )r   r/   r0   r   r0   )r   r   r>   r’   r?   r   r<   r|   r'   r(   r)   rL   r~   )r   r   r…   r+   r|   s        r   Útest_codes_immutablez.TestPrivateCategoricalAPI.test_codes_immutableµ  s  € ä�N‰N˜C  c¨3´·±Ð7Ó8ˆÜ�h‰hÒ'¨vÔ6ˆÜ
×#Ñ# A§G¡G¨SÔ1ð GˆÜ�]‰]œ>°Ô5ñ 	>Ü—h‘hš°fÔ=ˆAŒG÷	>ð —‘ˆä�]‰]œ:Ð-RÔSñ 	ØˆE�!‰H÷	ð
 ˆˆ!‰Ü�h‰h’¨fÔ5ˆÜ
×#Ñ# A§G¡G¨SÔ1Øˆ�‰�‰Ü�h‰h’¨fÔ5ˆÜ
×#Ñ# A§G¡G¨SÕ1÷!	>ð 	>ú÷	ð 	ús   Á?E"ÃE.Å"E+Å.E7zcodes, old, new, expectedr   r/   r   r   )r   r/   r   r/   r   )r   r/   r0   r0   )r   r/   rz   rz   )r   r/   rz   )rz   r   rz   rV   )rz   rz   rz   rz   c                 ó6  — t        j                  |t         j                  ¬«      }t        j                  |t         j                  ¬«      }t        j                  |«      }t        j                  |«      }t        |||d¬«      }t        j                  ||«       y )Nr2   T©r`   )r>   Ú
asanyarrayr}   r   r   r   r   r<   )r   r|   rc   rd   rF   rE   s         r   Útest_recode_to_categoriesz3TestPrivateCategoricalAPI.test_recode_to_categoriesÏ  sf   € ô$ —‘˜e¬2¯7©7Ô3ˆÜ—=‘= ´·±Ô9ˆÜ�h‰h�s‹mˆÜ�h‰h�s‹mˆÜ& u¨c°3¸TÔBˆÜ
×#Ñ# F¨HÕ5r   c                 ó$  — d}t        j                  |«      }t        j                  |«      }t        j                  |dz
  ddt         j                  ¬«      }t        j                  |«      }t        |||d¬«      }t        j                  ||«       y )Niè  r/   rz   r2   TrÒ   )r>   Úaranger   r   Úint16r   r   r<   )r   ÚNr|   rc   rF   rd   rE   s          r   Útest_recode_to_categories_largez9TestPrivateCategoricalAPI.test_recode_to_categories_largeè  sk   € ØˆÜ—	‘	˜!“ˆÜ�h‰h�u‹oˆÜ—9‘9˜Q ™U B¨´"·(±(Ô;ˆÜ�h‰h�xÓ ˆÜ& u¨c°3¸TÔBˆÜ
×#Ñ# F¨HÕ5r   N)	rµ   r¶   r·   rÐ   r'   r¸   r¹   rÔ   rÙ   rº   r   r   rÎ   rÎ   ´  s/  „ ò2ð4 ‡[�[×ÑØ#à�ˆV�c˜3�Z # s ¨a°¨VÐ4Ø�ˆV�c˜3�Z # s ¨a°¨VÐ4Ø�ˆV�c˜3�Z # s ¨a°¨VÐ4Ø�ˆV�c˜3�Z # s ¨a°¨VÐ4Ú˜C ˜:¢ºÐEÚš?¨S°#¨JºÐGÚšª/º:ÐFÚš¨3¨%²Ð=Úš¨3¨%²Ð>Úš¨"ªlÐ;Ø�"ˆX�r˜C ˜:¨¨B xÐ0Ø�ˆV�c˜3�Z # s ¨a°¨VÐ4ð	
óñ"6ó#ð"6ó6r   rÎ   )ro   Únumpyr>   r'   Úpandas.errorsr   Úpandasr   Úpandas._testingÚ_testingr   Úpandas.core.arrays.categoricalr   r   r¼   rÎ   rº   r   r   ú<module>rà      s<   ðÛ 	ã Û å (ã Ý Ý @÷o,ñ o,÷d2.ñ 2.÷j;6ò ;6r   