§
    rŠtjí? ã                   óÒ$  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZ d dlmZ d„ Zd	„ Zej                             d
g d¢¦  «        d„ ¦   «         Zej                             d
g d¢¦  «        d„ ¦   «         Zej                             dej        ej        ej        g¦  «        ej                             dej        ej        ej        g¦  «        d„ ¦   «         ¦   «         Zej                             dej        ej        ej        g¦  «        d„ ¦   «         Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#ej                             dg d¢g d¢g ej$        g d¢g d¢g¦  «         ej$        g d¢g d¢ge%¬¦  «         ej$        g d¢d ej&        d!gge%¬¦  «         ej$        g d¢d  e'd"¦  «        d!gge%¬¦  «         ej$        g d#¢g d$¢ge%¬¦  «         ej$        g d%¢d ej&        dgge%¬¦  «         ej$        g d%¢d  e'd"¦  «        dgge%¬¦  «        gg d&¢¬'¦  «        d(„ ¦   «         Z(ej                             d
g d¢¦  «        ej                             d)d*d+g¦  «        ej                             d,dd-g¦  «        d.„ ¦   «         ¦   «         ¦   «         Z)ej                             d)d*d+g¦  «        ej                             d/d0d1gd2d1gd0d1ggg d3¢g d4¢g d3¢gfd5d gd6d gd7d8gd6d ggg d9¢g d:¢g d;¢gfg¦  «        d<„ ¦   «         ¦   «         Z*d=„ Z+ej                             d,g d>¢¦  «        ej                             d?g d>¢¦  «        d@„ ¦   «         ¦   «         Z,ej                             dAdBdCg¦  «        ej                             dd2d0g ej$        dDdEg¦  «        g¦  «        dF„ ¦   «         ¦   «         Z-ej                             dAdBdCg¦  «        dG„ ¦   «         Z.ej                             dHdId1gdJd1ggdIdJgd1ggej/        f ej$        d2d0gdKd0gg¦  «        d2dKgd0ggej0        f ej$        dLd!gdMd!gge%¬¦  «        dLdMgd!ggej/        f ej$        dLd!gdMd!gg¦  «        dLdMgd!ggej1        f ej$        d2d0gej&        d0gg¦  «        d2ej&        gd0ggej        f ej$        dLej&        gdej&        gge%¬¦  «        dLdgej&        ggej/        f ej$        dL e'd"¦  «        gd e'd"¦  «        gge%¬¦  «        dLdg e'd"¦  «        ggej/        fgg dN¢¬'¦  «        dO„ ¦   «         Z2ej                             d
g d¢¦  «        ej                             dP ej$        d d8gge%¬¦  «        j3         ej$        d dQgge%¬¦  «        j3        g dR¢gej/        f ej$        d2d0ggdS¬¦  «        j3         ej$        d2dTggdS¬¦  «        j3        g dU¢gej4        f ej$        d d8gge%¬¦  «        j3         ej$        d dQgge%¬¦  «        j3         ej$        g dR¢¦  «        gej/        f ej$        dd gge%¬¦  «        j3         ej$        dd8gge%¬¦  «        j3        g dV¢ge%f ej$        d d8gge%¬¦  «        j3         ej$        d ej&        gge%¬¦  «        j3        g dW¢ge%f ej$        d dgge%¬¦  «        j3         ej$        d ej&        gge%¬¦  «        j3        g dX¢ge%fgg dY¢¬'¦  «        dZ„ ¦   «         ¦   «         Z5d[„ Z6ej                             d\e
eg¦  «        d]„ ¦   «         Z7d^„ Z8d_„ Z9ej                             d`d-dadbgfdcg dd¢fg de¢dfdggfgg dh¢¬'¦  «        di„ ¦   «         Z:dj„ Z;ej                             dg d¢g d¢g ej$        g dk¢g dl¢g¦  «         ej$        g d¢g d¢ge%¬¦  «        gg dm¢¬'¦  «        dn„ ¦   «         Z<ej                             dP ej$        d d8gge%¬¦  «        j3         ej$        d dQgge%¬¦  «        j3        g dR¢gej/        f ej$        d2d0ggdS¬¦  «        j3         ej$        d2dTggdS¬¦  «        j3        g dU¢gej4        f ej$        d d8gge%¬¦  «        j3         ej$        d dQgge%¬¦  «        j3         ej$        g dR¢¦  «        gej/        fgg do¢¬'¦  «        dp„ ¦   «         Z=dq„ Z>dr„ Z?ej                             dse'e@g¦  «        dt„ ¦   «         ZAdu„ ZBdv„ ZCdw„ ZDdx„ ZEdy„ ZFdz„ ZGej                             d,dcd-g¦  «        d{„ ¦   «         ZHej                             d|ej&        d e'd"¦  «        g¦  «        d}„ ¦   «         ZIej                             d,dIdKgg d~¢g¦  «        d„ ¦   «         ZJej                             d€d+d*gd�d‚g¬'¦  «        ej                             d,d-g dƒ¢gd-d„g¬'¦  «        d…„ ¦   «         ¦   «         ZKej                             d\e
eg¦  «        d†„ ¦   «         ZLej                             d‡dˆd0id‰dŠid‰d‹id0dŒd�œdTdŽd�œg¦  «        ej                             d�d�g d‘¢gg¦  «        d’„ ¦   «         ¦   «         ZMej                             d,dcd-d8gg¦  «        d“„ ¦   «         ZNej                             d,d gdQgg¦  «        d”„ ¦   «         ZOej                             d‡dˆdKid‰dŒid‰d•id‰d–id‰d—idKd˜d�œdTdŒd�œg¦  «        d™„ ¦   «         ZPej                             d,d-d8gg¦  «        dš„ ¦   «         ZQej                             d,d gdQgg¦  «        d›„ ¦   «         ZRdœ„ ZSej                             d‡dKd2d�œd‰dTig¦  «        d�„ ¦   «         ZTdž„ ZUdŸ„ ZVd „ ZWd¡„ ZXd¢„ ZYej                             d‡d£d2d¤œg¦  «        d¥„ ¦   «         ZZej                             d‡d0dKd¤œg¦  «        d¦„ ¦   «         Z[ej                             d§g d¨¢¦  «        ej                             d©g dª¢¦  «        d«„ ¦   «         ¦   «         Z\d¬„ Z]ej                             d|ej&        dg¦  «        d­„ ¦   «         Z^d®„ Z_ej                             d
g d¢¦  «        ej                             d¯d°d±g¦  «        d²„ ¦   «         ¦   «         Z`ej                             d
g d¢¦  «        d³„ ¦   «         Zaej                             d
g d¢¦  «        d´„ ¦   «         Zbej                             d
g d¢¦  «        dµ„ ¦   «         Zcd¶„ Zdd·„ Zeej                             d¸ej&        d¹g¦  «        dº„ ¦   «         Zfej                             d¯d°d±g¦  «        ej                             d¸ej&        d¹g¦  «        d»„ ¦   «         ¦   «         Zgej                             dP ej$        d ej&        gge%¬¦  «        j3         ej$        d d8gge%¬¦  «        j3         ej$        d dQej&        ge%¬¦  «        gej/        f ej$        d ej&        gge%¬¦  «        j3         ej$        d d8gge%¬¦  «        j3         ej$        d dQej&        ge%¬¦  «        gej/        f ej$        d¼ej&        ggej        ¬¦  «        j3         ej$        dDggej        ¬¦  «        j3         ej$        d¼dEej&        g¦  «        gej        fgg d½¢¬'¦  «        d¾„ ¦   «         Zhej                             d\e
eg¦  «        d¿„ ¦   «         Ziej                             dÀ ej$        dÁej&        dDgg¦  «        j3         ej$        dÂej&        dÁgg¦  «        j3         ej$        dEgg¦  «        f ej$        g dÃ¢g¦  «        j3         ej$        g dÄ¢g¦  «        j3         ej$        ej&        gg¦  «        f ej$        dÅej&        d8gge%¬¦  «        j3         ej$        dÁej&        dÂgg¦  «        j3         ej$        dQgge%¬¦  «        f ej$        g dÆ¢ge%¬¦  «        j3         ej$        g dÇ¢g¦  «        j3         ej$        ej&        gge%¬¦  «        fg¦  «        dÈ„ ¦   «         Zjej                             dÉe¦  «        dÊ„ ¦   «         ZkdË„ Zlej                             dÌdÍdMgg ej$        dÍdMggdÎ¬¦  «         ej$        dÍdMggdÏ¬¦  «        g¦  «        ej                             dÐdLdMgg ej$        dLdMggdÎ¬¦  «         ej$        dLdMggdÏ¬¦  «        g¦  «        dÑ„ ¦   «         ¦   «         ZmdÒ„ ZndÓ„ ZodÔ„ Zpej                             dÕd+d*g¦  «        dÖ„ ¦   «         Zqej                             d× ej$        d gdØgge%¬¦  «        d gej&        gej&        gg ejr        dØgdgdgge%¬¦  «        f ej$        ej&        gdØgd gge%¬¦  «        d gej&        gej&        gg ejr        dØgej&        gej&        gge%¬¦  «        fg¦  «        dÙ„ ¦   «         ZsdÚ„ ZtdÛ„ ZudÜ„ ZvdÝ„ ZwdÞ„ Zxej                             d‡dˆdKid‰dŒid‰d•id‰d–id‰d—idKd˜d�œdTdŒd�œg¦  «        dß„ ¦   «         Zydà„ Zzdá„ Z{dâ„ Z|dã„ Z}ej                             d‡dˆdŒid‰d0ig¦  «        dä„ ¦   «         Z~ej                             d‡dˆd2id‰dåig¦  «        dæ„ ¦   «         Zdç„ Z€dè„ Z�ej                             d\e
eg¦  «        dé„ ¦   «         Z‚dê„ ZƒdS )ëé    N)Úsparse)ÚNotFittedError)ÚOneHotEncoderÚOrdinalEncoder)Úis_scalar_nan)Ú_convert_containerÚassert_allcloseÚassert_array_equal)ÚCSR_CONTAINERSc                  óê  — t          j        g d¢g d¢g¦  «        } t          ¦   «         }t          d¬¦  «        }|                     | ¦  «        }|                     | ¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚t          j        |¦  «        sJ ‚t          j        |¦  «        rJ ‚t          |                     ¦   «         g d¢g d¢g¦  «         t          |                     ¦   «         |¦  «         d S )N©é   é   é   ©r   r   r   F©Úsparse_output©r   é   )ç        ç      ð?r   r   r   )r   r   r   r   r   )	ÚnpÚarrayr   Úfit_transformÚshaper   Úissparser
   Útoarray)ÚXÚ
enc_sparseÚ	enc_denseÚX_trans_sparseÚX_trans_denses        úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/preprocessing/tests/test_encoders.pyÚ!test_one_hot_encoder_sparse_denser$      s  € õ 	Œ�)�)�)˜Y˜Y˜YÐ'Ñ(Ô(€AÝ‘”€JÝ¨EÐ2Ñ2Ô2€Ià×-Ò-¨aÑ0Ô0€NØ×+Ò+¨AÑ.Ô.€MàÔ 6Ò)Ð)Ð)Ð)ØÔ &Ò(Ð(Ð(Ð(åŒ?˜>Ñ*Ô*Ð*Ð*Ð*ÝŒ˜}Ñ-Ô-Ð-Ð-Ð-õ Ø×ÒÑ Ô Ð#<Ð#<Ð#<Ð>WÐ>WÐ>WÐ"Xñô ð õ �~×-Ò-Ñ/Ô/°Ñ?Ô?Ð?Ð?Ð?ó    c                  ó  — t          j        g d¢g d¢g¦  «        } t          d¬¦  «        }|                     | ¦  «        }|j        dk    sJ ‚|j        j        t           j        k    sJ ‚|j        j        t           j        k    sJ ‚d S )Nr   r   Tr   Úcsr)	r   r   r   r   ÚformatÚindicesÚdtypeÚint32Úindptr)r   r   r!   s      r#   Ú-test_one_hot_encoder_sparse_index_array_int32r-   *   s�   € Ý
Œ�)�)�)˜Y˜Y˜YÐ'Ñ(Ô(€AÝ¨TÐ2Ñ2Ô2€Jà×-Ò-¨aÑ0Ô0€NØÔ  EÒ)Ð)Ð)Ð)ØÔ!Ô'­2¬8Ò3Ð3Ð3Ð3ØÔ Ô&­"¬(Ò2Ð2Ð2Ð2Ð2Ð2r%   Úhandle_unknown)ÚignoreÚinfrequent_if_existÚwarnc                 ón  — t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢g¦  «        }t          d¬¦  «        }|                     |¦  «         t	          j        t          d¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          | ¬¦  «        }|                     |¦  «         |                     ¦   «         }t          |                     |¦  «         
                    ¦   «         t          j        g d	¢g¦  «        ¦  «         t          ||¦  «         d S )
N)r   r   r   )r   r   r   )r   r   r   )é   r   r   Úerror©r.   úFound unknown categories©Úmatch)r   r   r   r   r   r   r   )r   r   r   ÚfitÚpytestÚraisesÚ
ValueErrorÚ	transformÚcopyr
   r   r	   ©r.   r   ÚX2ÚohÚ	X2_passeds        r#   Ú#test_one_hot_encoder_handle_unknownrC   4   sa  € å
Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	Ð2Ñ3Ô3€AÝ	Œ�9�9�9�+Ñ	Ô	€Bõ 
 gÐ	.Ñ	.Ô	.€BØ‡F‚Fˆ1�I„I€IÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ø
�Š�RÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
 nÐ	5Ñ	5Ô	5€BØ‡F‚Fˆ1�I„I€IØ—’‘	”	€IÝØ
�Š�YÑÔ×'Ò'Ñ)Ô)Ý
ŒÐ5Ð5Ð5Ð6Ñ7Ô7ñô ð õ
 �B˜	Ñ"Ô"Ð"Ð"Ð"s   Á5BÂBÂBc                 óÖ  — t          j        g d¢¦  «                             d¦  «        }t          j        ddg¦  «                             d¦  «        }t          | ¬¦  «        }|                     |¦  «         |                     ¦   «         }t          |                     |¦  «                             ¦   «         t          j        g d¢g d¢g¦  «        ¦  «         t          ||¦  «         d S )N)Ú11111111Ú22Ú333Ú4444)éÿÿÿÿr   Ú55555rF   r5   )r   r   r   r   ©r   r   r   r   )	r   r   Úreshaper   r9   r>   r
   r=   r   r?   s        r#   Ú+test_one_hot_encoder_handle_unknown_stringsrM   L   sÚ   € å
ŒÐ2Ð2Ð2Ñ3Ô3×;Ò;¸GÑDÔD€AÝ	Œ�7˜D�/Ñ	"Ô	"×	*Ò	*¨7Ñ	3Ô	3€Bõ
 
 nÐ	5Ñ	5Ô	5€BØ‡F‚Fˆ1�I„I€IØ—’‘	”	€IÝØ
�Š�YÑÔ×'Ò'Ñ)Ô)Ý
ŒÐ&Ð&Ð&Ð(<Ð(<Ð(<Ð=Ñ>Ô>ñô ð õ
 �r˜9Ñ%Ô%Ð%Ð%Ð%r%   Úoutput_dtypeÚinput_dtypec                 ól  — t          j        ddgg| ¬¦  «        j        }t          j        ddgddgg|¬¦  «        }t          d|¬¦  «        }t	          |                     |¦  «                             ¦   «         |¦  «         t	          |                     |¦  «                             |¦  «                             ¦   «         |¦  «         t          d|d¬¦  «        }t	          |                     |¦  «        |¦  «         t	          |                     |¦  «                             |¦  «        |¦  «         d S )Nr   r   ©r*   Úauto)Ú
categoriesr*   F)rS   r*   r   )	r   ÚasarrayÚTr   r
   r   r   r9   r=   )rO   rN   r   Ú
X_expectedrA   s        r#   Útest_one_hot_encoder_dtyperW   _   s  € õ 	Œ
�Q˜�F�8 ;Ð/Ñ/Ô/Ô1€AÝ”˜a ˜V a¨ VÐ,°LÐAÑAÔA€Jå	 &°Ð	=Ñ	=Ô	=€BÝ�r×'Ò'¨Ñ*Ô*×2Ò2Ñ4Ô4°jÑAÔAÐAÝ�r—v’v˜a‘y”y×*Ò*¨1Ñ-Ô-×5Ò5Ñ7Ô7¸ÑDÔDÐDå	 &°ÈEÐ	RÑ	RÔ	R€BÝ�r×'Ò'¨Ñ*Ô*¨JÑ7Ô7Ð7Ý�r—v’v˜a‘y”y×*Ò*¨1Ñ-Ô-¨zÑ:Ô:Ð:Ð:Ð:r%   c                 óŒ  — t          j        d¦  «        }|                     ddgddgdœ¦  «        }t          j        g d¢g d¢g| ¬	¦  «        }t          | ¬	¦  «        }t          |                     |¦  «                             ¦   «         |¦  «         t          | 	                    |¦  «         
                    |¦  «                             ¦   «         |¦  «         t          | d
¬¦  «        }t          |                     |¦  «        |¦  «         t          | 	                    |¦  «         
                    |¦  «        |¦  «         d S )NÚpandasÚaÚbr   r   ©ÚAÚB©r   r   r   r   ©r   r   r   r   rQ   F)r*   r   )r:   ÚimportorskipÚ	DataFramer   r   r   r
   r   r   r9   r=   )rN   ÚpdÚX_dfrV   rA   s        r#   Ú!test_one_hot_encoder_dtype_pandasre   n   s   € å	Ô	˜XÑ	&Ô	&€Bà�<Š<˜s C˜j°°1¨vÐ6Ð6Ñ7Ô7€DÝ”˜<˜<˜<¨¨¨Ð6¸lÐKÑKÔK€Jå	˜\Ð	*Ñ	*Ô	*€BÝ�r×'Ò'¨Ñ-Ô-×5Ò5Ñ7Ô7¸ÑDÔDÐDÝ�r—v’v˜d‘|”|×-Ò-¨dÑ3Ô3×;Ò;Ñ=Ô=¸zÑJÔJÐJå	˜\¸Ð	?Ñ	?Ô	?€BÝ�r×'Ò'¨Ñ-Ô-¨zÑ:Ô:Ð:Ý�r—v’v˜d‘|”|×-Ò-¨dÑ3Ô3°ZÑ@Ô@Ð@Ð@Ð@r%   c                  óœ  — t          ¦   «         } g d¢g d¢g d¢g d¢g}|                      |¦  «         |                      ¦   «         }t          g d¢|¦  «         |                      g d¢¦  «        }t          g d¢|¦  «         t	          j        t          d¬	¦  «        5  |                      d
dg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)ÚMaler   Úgirlr   r   )ÚFemaleé)   rh   r   é
   )rg   é3   Úboyé   r   )rg   é[   rh   é   é   )Ú	x0_FemaleÚx0_MaleÚx1_1Úx1_41Úx1_51Úx1_91Úx2_boyÚx2_girlÚx3_1Úx3_2Úx3_12Úx3_21Úx4_3Úx4_10Úx4_30)ÚoneÚtwoÚthreeÚfourÚfive)Ú
one_FemaleÚone_MaleÚtwo_1Útwo_41Útwo_51Útwo_91Ú	three_boyÚ
three_girlÚfour_1Úfour_2Úfour_12Úfour_21Úfive_3Úfive_10Úfive_30z!input_features should have lengthr7   r�   r‚   )r   r9   Úget_feature_names_outr
   r:   r;   r<   )Úencr   Úfeature_namesÚfeature_names2s       r#   Ú"test_one_hot_encoder_feature_namesr™   ~   sT  € Ý
‰/Œ/€Cà!Ð!Ð!Ø%Ð%Ð%Ø"Ð"Ð"Ø$Ð$Ð$ð		€Að ‡G‚GˆA�J„J€JØ×-Ò-Ñ/Ô/€Måð	
ð 	
ð 	
ð" 	ñ%ô ð ð* ×.Ò.Ð/VÐ/VÐ/VÑWÔW€Nåð	
ð 	
ð 	
ð" 	ñ%ô ð õ* 
Œ•zÐ)LÐ	MÑ	MÔ	Mð 2ð 2Ø×!Ò! 5¨% .Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s   ÂCÃCÃCc                  ó0  — t          ¦   «         } t          j        ddggt          ¬¦  «        j        }|                      |¦  «         |                      ¦   «         }t          ddg|¦  «         |                      dg¬¦  «        }t          dd	g|¦  «         d S )
Nu   câ�¤t1Údat2rQ   u	   x0_câ�¤t1Úx0_dat2u   nðŸ‘�me©Úinput_featuresu   nðŸ‘�me_câ�¤t1u   nðŸ‘�me_dat2)r   r   r   ÚobjectrU   r9   r•   r
   )r–   r   r—   s      r#   Ú*test_one_hot_encoder_feature_names_unicoder    º   s“   € Ý
‰/Œ/€CÝ
Œ�8˜VÐ$Ð%­VÐ4Ñ4Ô4Ô6€AØ‡G‚GˆA�J„J€JØ×-Ò-Ñ/Ô/€MÝ˜ YÐ/°Ñ?Ô?Ð?Ø×-Ò-¸i¸[Ð-ÑIÔI€MÝÐ(¨.Ð9¸=ÑIÔIÐIÐIÐIr%   c                  ó  — d„ } t          | ¬¦  «        }t          j        ddggt          ¬¦  «        j        }|                     |¦  «         |                     ¦   «         }t          ddg|¦  «         |                     dg¬	¦  «        }t          d
dg|¦  «         d„ }t          |¬¦  «                             |¦  «        }d}t          j	        t          |¬¦  «        5  |                     ¦   «          ddd¦  «         dS # 1 swxY w Y   dS )z=Check the behaviour of `feature_name_combiner` as a callable.c                 ó,   — | dz   t          |¦  «        z   S )NÚ_)Úrepr©ÚfeatureÚcategorys     r#   Úname_combinerzHtest_one_hot_encoder_custom_feature_name_combiner.<locals>.name_combinerÇ   s   € Ø˜‰}�t H™~œ~Ñ-Ð-r%   )Úfeature_name_combinerÚNoneNrQ   z	x0_'None'Úx0_NonerZ   r�   za_'None'Úa_Nonec                 ó   — dS )Nr   © r¥   s     r#   Úwrong_combinerzItest_one_hot_encoder_custom_feature_name_combiner.<locals>.wrong_combinerÒ   s   € àˆqr%   zMWhen `feature_name_combiner` is a callable, it should return a Python string.r7   )r   r   r   rŸ   rU   r9   r•   r
   r:   r;   Ú	TypeError)r¨   r–   r   r—   r¯   Úerr_msgs         r#   Ú1test_one_hot_encoder_custom_feature_name_combinerr²   Ä   sg  € ð.ð .ð .õ ¨mÐ
<Ñ
<Ô
<€CÝ
Œ�6˜4�.Ð!­Ð0Ñ0Ô0Ô2€AØ‡G‚GˆA�J„J€JØ×-Ò-Ñ/Ô/€MÝ˜ YÐ/°Ñ?Ô?Ð?Ø×-Ò-¸c¸UÐ-ÑCÔC€MÝ˜
 HÐ-¨}Ñ=Ô=Ð=ðð ð õ ¨nÐ
=Ñ
=Ô
=×
AÒ
AÀ!Ñ
DÔ
D€CàWð õ 
Œ•y¨Ð	0Ñ	0Ô	0ð $ð $Ø×!Ò!Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   ÃD Ä DÄDc                  óÌ  — t          j        ddgg¦  «        j        } t          ¦   «         }|                     g d¢g¬¦  «         |                     ¦   «         d         g d¢gk    sJ ‚|                     | ¦  «                             ¦   «         j        dk    sJ ‚|                     g d¢g¬¦  «         |                     | ¦  «                             ¦   «         j        dk    sJ ‚d S )	Nr   r   )r   r   r   r   ©rS   rS   )r   r3   )r   r   r   r   r3   r   )	r   r   rU   r   Ú
set_paramsÚ
get_paramsr   r   r   )r   rA   s     r#   Útest_one_hot_encoder_set_paramsr·   Þ   sÞ   € Ý
Œ�1�a�&�ÑÔÔ€AÝ	‰Œ€Bà‡M‚M˜l˜l˜l˜^€MÑ,Ô,Ð,Ø�=Š=‰?Œ?˜<Ô(¨\¨\¨\¨NÒ:Ð:Ð:Ð:Ø×Ò˜AÑÔ×&Ò&Ñ(Ô(Ô.°&Ò8Ð8Ð8Ð8à‡M‚M˜o˜o˜oÐ.€MÑ/Ô/Ð/Ø×Ò˜AÑÔ×&Ò&Ñ(Ô(Ô.°&Ò8Ð8Ð8Ð8Ð8Ð8r%   c                 óF  — t          d¬¦  «        }|                     | ¦  «        }t          dd¬¦  «        }|                     | ¦  «        }t          |                     ¦   «         |¦  «         t	          j        |¦  «        r|j        dk    sJ ‚|                     ¦   «         S )NrR   r´   F©rS   r   r'   )r   r   r	   r   r   r   r(   )r   r–   ÚXtr1ÚXtr2s       r#   Úcheck_categorical_onehotr¼   ê   s’   € Ý
 6Ð
*Ñ
*Ô
*€CØ×Ò˜QÑÔ€Då
 6¸Ð
?Ñ
?Ô
?€CØ×Ò˜QÑÔ€Då�D—L’L‘N”N DÑ)Ô)Ð)åŒ?˜4Ñ Ô Ð9 T¤[°EÒ%9Ð%9Ð%9Ð9Ø�<Š<‰>Œ>Ðr%   r   ©Údefr   é7   ©Úabcr   r¿   )rk   r   r¿   )r   r   r¿   )r[   r]   Úcat)rZ   r^   rÂ   rQ   )r[   r   rÂ   rZ   rÂ   Únan)Nr   rÂ   )rZ   r   rÂ   )Nr   N)ÚmixedÚnumericrŸ   z	mixed-nanzmixed-float-nanz
mixed-Nonezmixed-None-nanzmixed-None-float-nan)Úidsc                 ó¦  — t          t          j        | ¦  «        d d …dgf         ¦  «        }t          |ddgddgg¦  «         t          t          j        | ¦  «        d d …ddgf         ¦  «        }t          |g d¢g d¢g¦  «         t	          d¬¦  «                             | ¦  «        }t          |                     ¦   «         g d¢g d¢g¦  «         d S )	Nr   r   )r   r   r   r   ©r   r   r   r   rR   r´   )r   r   r   r   r   )r   r   r   r   r   )r¼   r   r   r	   r   r   r   )r   ÚXtrs     r#   Útest_one_hot_encoderrÊ   ÷   sÑ   € õ0 #¥2¤8¨A¡;¤;¨q¨q¨q°1°#¨vÔ#6Ñ
7Ô
7€CÝ�C˜1˜a˜& 1 a &Ð)Ñ*Ô*Ð*å
"¥2¤8¨A¡;¤;¨q¨q¨q°1°a°&¨yÔ#9Ñ
:Ô
:€CÝ�C˜,˜,˜,¨¨¨Ð5Ñ6Ô6Ð6å
 6Ð
*Ñ
*Ô
*×
8Ò
8¸Ñ
;Ô
;€CÝ�C—K’K‘M”M O O O°_°_°_Ð#EÑFÔFÐFÐFÐFr%   Úsparse_FTÚdropÚfirstc                 ó®  — g d¢g d¢g d¢g}t          ||¬¦  «        }|                     |¦  «        }t          j        |t          ¬¦  «        }t          |                     |¦  «        |¦  «         ddgddgd	dgg}t          |d
|¬¦  «        }|                     |¦  «        }t          j        |¦  «        }t          |                     |¦  «        |¦  «         |�€g d¢g d¢g d¢g}t          || ddgddgg d¢g¬¦  «        }|                     |¦  «        }t          j        |t          ¬¦  «        }d |d<   t          |                     |¦  «        |¦  «         ddgddgd	dgg}t          |ddgddgg| ¬¦  «        }|                     |¦  «        }t          j        |t          ¬¦  «        }d |d<   d |d d …df<   t          |                     |¦  «        |¦  «         t          j        g d¢g d¢g¦  «        }t          j        d¦  «        }t          j
        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÀ   r½   )rÁ   r   r¿   ©r   rÌ   rQ   r   r¿   r   r   rR   )r   rS   rÌ   rÁ   r¾   )é6   r¿   é8   )r   r.   rS   )r   r   rÐ   rÑ   )r   rS   r.   ©r   r   r   ©r   r   r   ú)Shape of the passed X data is not correctr7   )r   r   r   r   rŸ   r
   Úinverse_transformÚreÚescaper:   r;   r<   )r.   rË   rÌ   r   r–   ÚX_trÚexpÚmsgs           r#   Útest_one_hot_encoder_inverserÛ     sÜ  € ð 
ˆˆ˜˜˜¨¨¨Ð8€AÝ
 g°DÐ
9Ñ
9Ô
9€CØ×Ò˜QÑÔ€DÝ
Œ(�1�FÐ
#Ñ
#Ô
#€CÝ�s×,Ò,¨TÑ2Ô2°CÑ8Ô8Ð8à
ˆRˆ�1�b�'˜A˜r˜7Ð#€AÝ
 g¸&ÀtÐ
LÑ
LÔ
L€CØ×Ò˜QÑÔ€DÝ
Œ(�1‰+Œ+€CÝ�s×,Ò,¨TÑ2Ô2°CÑ8Ô8Ð8à�|ð ˆ^ˆ^˜^˜^˜^¨^¨^¨^Ð<ˆÝØ!Ø)Ø ˜¨¨A¨°°°Ð=ð
ñ 
ô 
ˆð
 × Ò  Ñ#Ô#ˆÝŒh�q¥Ð'Ñ'Ô'ˆØˆˆD‰	Ý˜3×0Ò0°Ñ6Ô6¸Ñ<Ô<Ð<ð �ˆW�q˜"�g  2˜wÐ'ˆÝØ!Ø˜A˜  R Ð)Ø)ð
ñ 
ô 
ˆð
 × Ò  Ñ#Ô#ˆÝŒh�q¥Ð'Ñ'Ô'ˆØˆˆD‰	ØˆˆAˆAˆAˆqˆD‰	Ý˜3×0Ò0°Ñ6Ô6¸Ñ<Ô<Ð<õ Œ8�Y�Y�Y 	 	 	Ð*Ñ+Ô+€DÝ
Œ)Ð?Ñ
@Ô
@€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð $ð $Ø×Ò˜dÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   È'I
É
IÉIz
X, X_transr   r¿   r   r   ©r   r   r   r�   r‚   rƒ   r[   ©r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   c                 ó  — t          |¬¦  «                             | ¦  «        }d}|rt          |d¦  «        }t          j        t
          |¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zØCheck that `inverse_transform` raise an error with unknown samples, no
    dropped feature, and `handle_unknown="error`.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/14934
    r   zqSamples \[(\d )*\d\] can not be inverted when drop=None and handle_unknown='error' because they contain all zerosr   r7   N)r   r9   r   r:   r;   r<   rÕ   )r   ÚX_transrË   r–   rÚ   s        r#   Ú?test_one_hot_encoder_inverse_transform_raise_error_with_unknownrà   K  sÓ   € õ&  gÐ
.Ñ
.Ô
.×
2Ò
2°1Ñ
5Ô
5€Cð	Að ð
 ð 8å$ W¨hÑ7Ô7ˆÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 'ð 'Ø×Ò˜gÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   ÁA6Á6A:Á=A:c                  óà   — t          j        ddgddgddggt          ¬¦  «        } t          dd¬	¦  «        }|                     | ¦  «        }t          |                     |¦  «        | ¦  «         d S )
Nrg   r   ri   r   r   rQ   Ú	if_binaryF©rÌ   r   )r   r   rŸ   r   r   r
   rÕ   )r   ÚoherØ   s      r#   Ú&test_one_hot_encoder_inverse_if_binaryrå   k  sr   € Ý
Œ�6˜1�+ ¨!˜}¨x¸¨mÐ<ÅFÐKÑKÔK€AÝ
˜[¸Ð
>Ñ
>Ô
>€CØ×Ò˜QÑÔ€DÝ�s×,Ò,¨TÑ2Ô2°AÑ6Ô6Ð6Ð6Ð6r%   )râ   rÍ   NÚ
reset_dropc                 óè  — t          j        ddgddgddggt          ¬¦  «        }t          | d¬¦  «        }|                     |¦  «         |                     |¦  «        }|                     ¦   «         }|                     |¬	¦  «         t          | 	                    |¦  «        |¦  «         t          |                     |¦  «        |¦  «         t          |                     ¦   «         |¦  «         d S )
Nrg   r   ri   r   r   rQ   Frã   ©rÌ   )r   r   rŸ   r   r9   r=   r•   rµ   r
   rÕ   r	   )rÌ   ræ   r   rä   rØ   r—   s         r#   Útest_one_hot_encoder_drop_resetré   r  sÞ   € õ 	Œ�6˜1�+ ¨!˜}¨x¸¨mÐ<ÅFÐKÑKÔK€AÝ
˜T°Ð
7Ñ
7Ô
7€CØ‡G‚GˆA�J„J€JØ�=Š=˜ÑÔ€DØ×-Ò-Ñ/Ô/€MØ‡N‚N˜
€NÑ#Ô#Ð#Ý�s×,Ò,¨TÑ2Ô2°AÑ6Ô6Ð6Ý�C—M’M !Ñ$Ô$ dÑ+Ô+Ð+Ý�s×0Ò0Ñ2Ô2°MÑBÔBÐBÐBÐBr%   Úmethodr9   r   ç      @ç      @c                 óÀ   — t          ¦   «         }d}t          j        t          |¬¦  «        5   t	          ||¦  «        | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz'Expected 2D array, got 1D array insteadr7   )r   r:   r;   r<   Úgetattr)r   rê   rA   rÚ   s       r#   Útest_X_is_not_1Drï   �  s¥   € õ 
‰Œ€Bà
3€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø���FÑÔ˜AÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¬AÁAÁAc                 ó8  — t          j        d¦  «        }|                     g d¢¦  «        }t          ¦   «         }dt	          |¦  «        › d�}t          j        t          |¬¦  «        5   t          || ¦  «        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrY   )é   r   r3   rñ   z+Expected a 2-dimensional container but got z	 instead.r7   )r:   ra   ÚSeriesr   Útyper;   r<   rî   )rê   rc   r   rA   rÚ   s        r#   Útest_X_is_not_1D_pandasrô   ‹  sÙ   € å	Ô	˜XÑ	&Ô	&€BØ
�	Š	�,�,�,ÑÔ€AÝ	‰Œ€Bà
J½¸Q¹¼Ð
JÐ
JÐ
J€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø���FÑÔ˜AÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á(BÂBÂBzX, cat_exp, cat_dtyperÁ   r¾   r   r]   r^   )rÄ   rÅ   rŸ   Ústringzmissing-floatzmissing-np.nan-objectzmissing-float-nan-objectc                 óü  — | | d d d…         fD ]í}t          d¬¦  «        }|                     |¦  «         t          |j        t          ¦  «        sJ ‚t          |j        |¦  «        D ]”\  }}|                     ¦   «         }t          |d         ¦  «        r0t          |d         ¦  «        sJ ‚|d d…         |d d…         k    sJ ‚n|                     ¦   «         |k    sJ ‚t          j	        |j
        |¦  «        sJ ‚Œ•Œîd S )NrI   rR   r´   )r   r9   Ú
isinstanceÚcategories_ÚlistÚzipÚtolistr   r   Ú
issubdtyper*   )r   Úcat_expÚ	cat_dtypeÚXir–   ÚresrÙ   Úres_lists           r#   Útest_one_hot_encoder_categoriesr  –  s  € ðF �!�D�D�b�D”'ˆlð 7ð 7ˆÝ vÐ.Ñ.Ô.ˆØ�Š�‰Œˆå˜#œ/­4Ñ0Ô0Ð0Ð0Ð0Ý˜CœO¨WÑ5Ô5ð 	7ð 	7‰HˆC�Ø—z’z‘|”|ˆHÝ˜S œWÑ%Ô%ð +Ý$ X¨b¤\Ñ2Ô2Ð2Ð2Ð2Ø   ”}¨¨C¨R¨C¬Ò0Ð0Ð0Ð0Ð0à—z’z‘|”| sÒ*Ð*Ð*Ð*Ý”= ¤¨IÑ6Ô6Ð6Ð6Ð6Ð6ð	7ð7ð 7r%   zX, X2, cats, cat_dtypeÚd©rZ   r[   ÚcÚint64r3   ©r   r   r   )NrZ   Úz)rZ   r[   r  )rZ   Nr  )rŸ   rÅ   zobject-stringzobject-string-nonezobject-string-nanzobject-None-and-nanc                 ó`  — t          |¬¦  «        }t          j        g d¢g d¢g¦  «        }t          |                     | ¦  «                             ¦   «         |¦  «         t          |j        d         ¦  «        t          |d         ¦  «        k    sJ ‚|j        d          	                    ¦   «         t          |d         ¦  «        k    sJ ‚|j        d         j
        |k    sJ ‚t          |¬¦  «        }t          j        t          d¬¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ||¬¦  «        }t          j        g d¢g d¢g¦  «        }t          |                     |¦  «                             |¦  «                             ¦   «         |¦  «         d S )	Nr´   ©r   r   r   ©r   r   r   r   r6   r7   ©rS   r.   )r   r   r   )r   r   r   r
   r   r   rù   rS   rø   rû   r*   r:   r;   r<   r9   r=   )r   r@   Úcatsrþ   r.   r–   rÙ   s          r#   Ú)test_one_hot_encoder_specified_categoriesr  È  sÄ  € õf  4Ð
(Ñ
(Ô
(€CÝ
Œ(�O�O�O _ _ _Ð5Ñ
6Ô
6€CÝ�s×(Ò(¨Ñ+Ô+×3Ò3Ñ5Ô5°sÑ;Ô;Ð;Ý�”˜qÔ!Ñ"Ô"¥d¨4°¬7¡m¤mÒ3Ð3Ð3Ð3ØŒ?˜1Ô×$Ò$Ñ&Ô&­$¨t°A¬w©-¬-Ò7Ð7Ð7Ð7ð Œ?˜1ÔÔ# yÒ0Ð0Ð0Ð0õ  4Ð
(Ñ
(Ô
(€CÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ø�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å
 4¸Ð
GÑ
GÔ
G€CÝ
Œ(�O�O�O _ _ _Ð5Ñ
6Ô
6€CÝ�s—w’w˜r‘{”{×,Ò,¨RÑ0Ô0×8Ò8Ñ:Ô:¸CÑ@Ô@Ð@Ð@Ð@s   ÄD0Ä0D4Ä7D4c                  óD  — t          j        ddggt          ¬¦  «        j        } t	          g d¢g¬¦  «        }t          j        g d¢g d¢g¦  «        }t          |                     | ¦  «                             | ¦  «                             ¦   «         |¦  «         t          | 	                    | ¦  «                             ¦   «         |¦  «         |j
        d                              ¦   «         g d¢k    sJ ‚t          j        |j
        d         j        t           j        ¦  «        sJ ‚t          j        d	d
gg¦  «        j        } t	          g d¢g¬¦  «        }d}t          j        t"          |¬¦  «        5  | 	                    | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrZ   r[   rQ   )r[   rZ   r  r´   r  r
  r   r   r   )r   r   r   z%Unsorted categories are not supportedr7   )r   r   rŸ   rU   r   r
   r9   r=   r   r   rø   rû   rü   r*   Úobject_r:   r;   r<   )r   r–   rÙ   rÚ   s       r#   Ú(test_one_hot_encoder_unsorted_categoriesr    s¾  € Ý
Œ�3˜�*�¥VÐ,Ñ,Ô,Ô.€Aå
 O O OÐ#4Ð
5Ñ
5Ô
5€CÝ
Œ(�O�O�O _ _ _Ð5Ñ
6Ô
6€CÝ�s—w’w˜q‘z”z×+Ò+¨AÑ.Ô.×6Ò6Ñ8Ô8¸#Ñ>Ô>Ð>Ý�s×(Ò(¨Ñ+Ô+×3Ò3Ñ5Ô5°sÑ;Ô;Ð;ØŒ?˜1Ô×$Ò$Ñ&Ô&¨/¨/¨/Ò9Ð9Ð9Ð9ÝŒ=˜œ¨Ô+Ô1µ2´:Ñ>Ô>Ð>Ð>Ð>õ 	Œ�1�a�&�ÑÔÔ€AÝ
 I I I ;Ð
/Ñ
/Ô
/€CØ
1€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Å2FÆFÆFÚEncoderc                 ó:  — t          j        dt           j        dg¦  «        g} | |¬¦  «        }t          j        ddggt          ¬¦  «        j        }t          j        t          d¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zžTest encoder for specified categories that nan is at the end.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27088
    r   r   r´   rQ   zNan should be the last elementr7   N)	r   r   rÃ   rŸ   rU   r:   r;   r<   r9   ©r  r  r–   r   s       r#   Ú,test_encoder_nan_ending_specified_categoriesr     sÖ   € õ ŒH�a�œ �^Ñ$Ô$Ð%€DØ
ˆ'˜TÐ
"Ñ
"Ô
"€CÝ
Œ�1�a�&�¥Ð(Ñ(Ô(Ô*€AÝ	Œ•zÐ)IÐ	JÑ	JÔ	Jð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   Á-BÂBÂBc                  ó|  — t          j        ddgddggt          ¬¦  «        j        } t	          g d¢g d¢g¬¦  «        }t          j        g d	¢g d
¢g¦  «        }t          |                     | ¦  «                             ¦   «         |¦  «         |j        d          	                    ¦   «         g d¢k    sJ ‚t          j
        |j        d         j        t           j        ¦  «        sJ ‚|j        d          	                    ¦   «         g d¢k    sJ ‚t          j
        |j        d         j        t           j        ¦  «        sJ ‚d S )NrZ   r[   r   r   rQ   r  )r   r   r   r´   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   rŸ   rU   r   r
   r   r   rø   rû   rü   r*   r  ©r   r–   rÙ   s      r#   Ú7test_one_hot_encoder_specified_categories_mixed_columnsr  .  s-  € å
Œ�3˜�*˜q !˜fÐ%­VÐ4Ñ4Ô4Ô6€AÝ
 O O O°Y°Y°YÐ#?Ð
@Ñ
@Ô
@€CÝ
Œ(Ð2Ð2Ð2Ð4RÐ4RÐ4RÐSÑ
TÔ
T€CÝ�s×(Ò(¨Ñ+Ô+×3Ò3Ñ5Ô5°sÑ;Ô;Ð;ØŒ?˜1Ô×$Ò$Ñ&Ô&¨/¨/¨/Ò9Ð9Ð9Ð9ÝŒ=˜œ¨Ô+Ô1µ2´:Ñ>Ô>Ð>Ð>Ð>ØŒ?˜1Ô×$Ò$Ñ&Ô&¨)¨)¨)Ò3Ð3Ð3Ð3åŒ=˜œ¨Ô+Ô1µ2´:Ñ>Ô>Ð>Ð>Ð>Ð>Ð>r%   c                  ó°   — t          j        d¦  «        } |                      ddgddgdœ¦  «        }t          |¦  «        }t	          |g d¢g d¢g¦  «         d S )	NrY   rZ   r[   r   r   r\   r_   r`   )r:   ra   rb   r¼   r	   )rc   rd   rÉ   s      r#   Útest_one_hot_encoder_pandasr  ;  sc   € Ý	Ô	˜XÑ	&Ô	&€Bà�<Š<˜s C˜j°°1¨vÐ6Ð6Ñ7Ô7€Då
" 4Ñ
(Ô
(€CÝ�C˜,˜,˜,¨¨¨Ð5Ñ6Ô6Ð6Ð6Ð6r%   zdrop, expected_namesÚx0_cÚx2_brâ   )r  Úx1_2r  )r  r   r[   Úx0_bÚx2_a)rÍ   ÚbinaryÚmanualc                 ó¨   — g d¢g d¢g}t          | ¬¦  «        }|                     |¦  «         |                     ¦   «         }t          ||¦  «         d S )N)r  r   rZ   )r[   r   r[   rè   )r   r9   r•   r
   )rÌ   Úexpected_namesr   rä   r—   s        r#   Ú'test_one_hot_encoder_feature_names_dropr%  D  s\   € ð 
ˆˆ˜˜˜Ð&€Aå
˜TÐ
"Ñ
"Ô
"€CØ‡G‚GˆA�J„J€JØ×-Ò-Ñ/Ô/€MÝ�~ }Ñ5Ô5Ð5Ð5Ð5r%   c                  ó*  — ddgddgddgg} t          j        g d¢g d¢g d¢g¦  «        }t          j        d d	g¦  «        }t          d
d¬¦  «        }|                     | ¦  «        }t	          |j        |¦  «         t          ||¦  «         ddgddgddgg} t          j        ddgddgddgg¦  «        }t          j        d	d g¦  «        }t          d
d¬¦  «        }|                     | ¦  «        }t	          |j        |¦  «         t          ||¦  «         d S )Nrk   Úyesé   Únorq   )r   r   r   r   rK   )r   r   r   r   r   râ   Frã   ÚtruerZ   Úfalser   r   )r   r   r   r   r
   Ú	drop_idx_r	   )r   ÚexpectedÚexpected_drop_idxrä   Úresults        r#   Ú*test_one_hot_encoder_drop_equals_if_binaryr0  V  sE  € à
ˆeˆ�r˜4�j 2 u +Ð.€AÝŒxØ	Ð	Ð	Ð3Ð3Ð3Ð5IÐ5IÐ5IÐJñô €Hõ œ $¨ Ñ+Ô+Ðå
˜[¸Ð
>Ñ
>Ô
>€CØ×Ò˜qÑ!Ô!€FÝ�s”}Ð&7Ñ8Ô8Ð8Ý�F˜HÑ%Ô%Ð%ð �#ˆ˜ #˜¨°#¨Ð7€AÝŒx˜#˜s˜ c¨3 Z°#°s°Ð<Ñ=Ô=€HÝœ ! T Ñ+Ô+Ðå
˜[¸Ð
>Ñ
>Ô
>€CØ×Ò˜qÑ!Ô!€FÝ�s”}Ð&7Ñ8Ô8Ð8Ý�F˜HÑ%Ô%Ð%Ð%Ð%r%   )rk   r   r¿   )r(  r   r¿   )rÄ   rÅ   rŸ   c                 ó,  — t          ¦   «         }t          j        g d¢g d¢gd¬¦  «        }t          |                     | ¦  «        |                     d¦  «        ¦  «         t          d¬¦  «        }t          |                     | ¦  «        |¦  «         d S )N©r   r   r   ©r   r   r   r  rQ   Úfloat64)r   r   r   r
   r   Úastyper  s      r#   Útest_ordinal_encoderr6  n  sŽ   € õ Ñ
Ô
€CÝ
Œ(�I�I�I˜y˜y˜yÐ)°Ð
9Ñ
9Ô
9€CÝ�s×(Ò(¨Ñ+Ô+¨S¯ZªZ¸	Ñ-BÔ-BÑCÔCÐCÝ
˜wÐ
'Ñ
'Ô
'€CÝ�s×(Ò(¨Ñ+Ô+¨SÑ1Ô1Ð1Ð1Ð1r%   )rŸ   rÅ   zobject-string-catc                 óT  — t          |¬¦  «        }t          j        dgdgg¦  «        }t          |                     | ¦  «        |¦  «         t          |j        d         ¦  «        t          |d         ¦  «        k    sJ ‚|j        d                              ¦   «         t          |d         ¦  «        k    sJ ‚|j        d         j	        |k    sJ ‚t          |¬¦  «        }t          j        t          d¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr´   r   r   r   r6   r7   )r   r   r   r
   r   rù   rS   rø   rû   r*   r:   r;   r<   r9   )r   r@   r  rþ   r–   rÙ   s         r#   Ú)test_ordinal_encoder_specified_categoriesr8    sY  € õ2  DÐ
)Ñ
)Ô
)€CÝ
Œ(�S�E˜C˜5�>Ñ
"Ô
"€CÝ�s×(Ò(¨Ñ+Ô+¨SÑ1Ô1Ð1Ý�”˜qÔ!Ñ"Ô"¥d¨4°¬7¡m¤mÒ3Ð3Ð3Ð3ØŒ?˜1Ô×$Ò$Ñ&Ô&­$¨t°A¬w©-¬-Ò7Ð7Ð7Ð7ð Œ?˜1ÔÔ# yÒ0Ð0Ð0Ð0õ  DÐ
)Ñ
)Ô
)€CÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ø�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ã:DÄD!Ä$D!c                  óÆ  — g d¢g d¢g} t          ¦   «         }|                     | ¦  «        }t          j        | t          ¬¦  «        }t          |                     |¦  «        |¦  «         t          j        g d¢g d¢g¦  «        }t          j        d¦  «        }t          j
        t          |¬¦  «        5  |                     |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÀ   r½   rQ   )r   r   r   r   r_   rÔ   r7   )r   r   r   r   rŸ   r
   rÕ   rÖ   r×   r:   r;   r<   )r   r–   rØ   rÙ   rÚ   s        r#   Útest_ordinal_encoder_inverser:  ¨  s  € Ø	ˆˆ˜˜˜Ð(€AÝ
Ñ
Ô
€CØ×Ò˜QÑÔ€DÝ
Œ(�1�FÐ
#Ñ
#Ô
#€CÝ�s×,Ò,¨TÑ2Ô2°CÑ8Ô8Ð8õ Œ8�\�\�\ < < <Ð0Ñ1Ô1€DÝ
Œ)Ð?Ñ
@Ô
@€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð $ð $Ø×Ò˜dÑ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   Â3CÃCÃCc                  óü  — t          dd¬¦  «        } t          j        ddgddgdd	ggt          ¬
¦  «        }t          j        ddgddgddggt          ¬
¦  «        }|                      |¦  «         |                      |¦  «        }t          j        ddgddgddggd¬
¦  «        }t          ||¦  «         |                      |¦  «        }t          j        dd gd dgddggt          ¬
¦  «        }t          ||¦  «         d S )NÚuse_encoded_valueéþÿÿÿ©r.   Úunknown_valuerZ   Úxr[   Úyr  r  rQ   ÚxyÚblar   r   r   r  )r   r   r   rŸ   r9   r=   r
   rÕ   )r–   ÚX_fitrß   ÚX_trans_encrÙ   ÚX_trans_invÚinv_exps          r#   Ú+test_ordinal_encoder_handle_unknowns_stringrH  ¶  s
  € Ý
Ð(;È2Ð
NÑ
NÔ
N€CÝŒH�s˜C�j 3¨ *¨s°C¨jÐ9ÅÐHÑHÔH€EÝŒh˜˜d˜ e¨S \°C¸°:Ð>ÅfÐMÑMÔM€GØ‡G‚GˆE�N„N€Nà—-’- Ñ(Ô(€KÝ
Œ(�Q˜�G˜b !˜W q¨! fÐ-°WÐ
=Ñ
=Ô
=€CÝ�{ CÑ(Ô(Ð(à×'Ò'¨Ñ4Ô4€KÝŒh˜˜d˜ d¨C [°3¸°*Ð=ÅVÐLÑLÔL€GÝ�{ GÑ,Ô,Ð,Ð,Ð,r%   r*   c                 óè  — t          dd¬¦  «        }t          j        ddgddgdd	gg| ¬
¦  «        }t          j        ddgddgddgg| ¬
¦  «        }|                     |¦  «         |                     |¦  «        }t          j        ddgddgddggd¬
¦  «        }t          ||¦  «         |                     |¦  «        }t          j        dd gd dgddggt          ¬
¦  «        }t          ||¦  «         d S )Nr<  éüÿÿr>  r   é   r   é   r   é	   rQ   rn   é   r   r  )r   r   r   r9   r=   r
   rÕ   rŸ   )r*   r–   rD  rß   rE  rÙ   rF  rG  s           r#   Ú,test_ordinal_encoder_handle_unknowns_numericrO  Å  s
  € å
Ð(;È4Ð
PÑ
PÔ
P€CÝŒH�q˜!�f˜q !˜f q¨! fÐ-°UÐ;Ñ;Ô;€EÝŒh˜˜B˜ " a ¨1¨a¨&Ð1¸Ð?Ñ?Ô?€GØ‡G‚GˆE�N„N€Nà—-’- Ñ(Ô(€KÝ
Œ(�Q˜�I  a˜y¨1¨a¨&Ð1¸Ð
AÑ
AÔ
A€CÝ�{ CÑ(Ô(Ð(à×'Ò'¨Ñ4Ô4€KÝŒh˜˜D˜	 D¨! 9¨q°!¨fÐ5½VÐDÑDÔD€GÝ�{ GÑ,Ô,Ð,Ð,Ð,r%   c                  ó  — t          dt          j        ¬¦  «        } t          j        dgdgdgg¦  «        }|                      |¦  «         |                      dgdgdgg¦  «        }t          |dgdgt          j        gg¦  «         d S )Nr<  r>  r   r   r   r3   r   )r   r   rÃ   r   r9   r=   r
   )r–   rD  rß   s      r#   Ú(test_ordinal_encoder_handle_unknowns_nanrQ  Õ  s…   € õ Ð(;Í2Ì6Ð
RÑ
RÔ
R€CåŒH�q�c˜A˜3  �_Ñ%Ô%€EØ‡G‚GˆE�N„N€NØ�mŠm˜a˜S 1 #¨ s˜OÑ,Ô,€GÝ�w !  q c­B¬F¨8Ð 4Ñ5Ô5Ð5Ð5Ð5r%   c                  ó  — t          dt          j        t          ¬¦  «        } t          j        dgdgdgg¦  «        }t          j        t          d¬¦  «        5  |                      |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr<  )r.   r?  r*   r   r   r   z'dtype parameter should be a float dtyper7   )	r   r   rÃ   Úintr   r:   r;   r<   r9   )r–   rD  s     r#   Ú8test_ordinal_encoder_handle_unknowns_nan_non_float_dtyperT  à  sÇ   € õ Ø*½"¼&Íðñ ô €Cõ ŒH�q�c˜A˜3  �_Ñ%Ô%€EÝ	Œ•zÐ)RÐ	SÑ	SÔ	Sð ð Ø�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA:Á:A>ÂA>c                  ó
  — t          j        g d¢gt          ¬¦  «        j        } g d¢}t	          |¬¦  «        }d}t          j        t          |¬¦  «        5  |                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)ÚLowÚMediumÚHighrW  rV  rQ   )rV  rW  rX  r´   z*Shape mismatch: if categories is an array,r7   )	r   r   rŸ   rU   r   r:   r;   r<   r9   )r   r  r–   rÚ   s       r#   Ú+test_ordinal_encoder_raise_categories_shaperY  ì  sË   € Ý
ŒÐ<Ð<Ð<Ð=ÅVÐLÑLÔLÔN€AØ$Ð$Ð$€DÝ
 DÐ
)Ñ
)Ô
)€CØ
6€Cå	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA8Á8A<Á?A<c            	      óL  ‡‡— t          d¬¦  «        Št          j        g d¢g d¢gd¬¦  «        } t          j        ddgd	d
ggd¬¦  «        t          j        ddgd	d
ggd¬¦  «        t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        t          j        ddgd	dggd¬¦  «        fD ]wŠ‰                     ‰¦  «         t	          ˆˆfd„t          d¦  «        D ¦   «         ¦  «        sJ ‚t          ‰                     ‰¦  «                             ¦   «         | ¦  «         Œxddgd	d
ggŠ‰                     ‰¦  «         t	          ˆfd„t          d¦  «        D ¦   «         ¦  «        sJ ‚t          ‰                     ‰¦  «                             ¦   «         | ¦  «         ddgd	dggŠ‰                     ‰¦  «         t	          ˆfd„t          d¦  «        D ¦   «         ¦  «        sJ ‚t          ‰                     ‰¦  «                             ¦   «         | ¦  «         d S )NrR   r´   )r   r   r   r   )r   r   r   r   r4  rQ   r   r   r   r3   r  rZ   r[   r  r  ó   aó   bó   có   drŸ   c                 óF   •— g | ]}‰j         |         j        ‰j        k    ‘ŒS r®   ©rø   r*   )Ú.0Úir   r–   s     €€r#   ú
<listcomp>z'test_encoder_dtypes.<locals>.<listcomp>  s*   ø€ ÐJÐJÐJ¸A�C”O AÔ&Ô,°´Ò7ÐJÐJÐJr%   c                 ón   •— g | ]1}t          j        ‰j        |         j        t           j        ¦  «        ‘Œ2S r®   )r   rü   rø   r*   Úinteger©ra  rb  r–   s     €r#   rc  z'test_encoder_dtypes.<locals>.<listcomp>  s1   ø€ ÐVÐVÐVÈ•”˜cœo¨aÔ0Ô6½¼
ÑCÔCÐVÐVÐVr%   c                 ó<   •— g | ]}‰j         |         j        d k    ‘ŒS )rŸ   r`  rf  s     €r#   rc  z'test_encoder_dtypes.<locals>.<listcomp>  s(   ø€ ÐGÐGÐG¸�” Ô"Ô(¨HÒ4ÐGÐGÐGr%   )	r   r   r   r9   ÚallÚranger
   r=   r   )rÙ   r   r–   s    @@r#   Útest_encoder_dtypesrj  ö  sD  øø€ å
 6Ð
*Ñ
*Ô
*€CÝ
Œ(Ð(Ð(Ð(Ð*>Ð*>Ð*>Ð?ÀyÐ
QÑ
QÔ
Q€Cõ 	Œ�1�a�&˜1˜a˜&Ð!¨Ð1Ñ1Ô1Ý
Œ�1�a�&˜1˜a˜&Ð!¨Ð3Ñ3Ô3Ý
Œ�3˜�*˜s C˜jÐ)Ñ*Ô*Ý
Œ�4˜�,  t Ð-Ñ.Ô.Ý
Œ�1�c�(˜Q ˜HÐ%¨XÐ6Ñ6Ô6ðð 	<ð 	<ˆð 	�Š�‰
Œ
ˆ
ÝÐJÐJÐJÐJÐJÅÀqÁÄÐJÑJÔJÑKÔKÐKÐKÐKÝ˜3Ÿ=š=¨Ñ+Ô+×3Ò3Ñ5Ô5°sÑ;Ô;Ð;Ð;à
ˆQˆ�!�Q�Ð€AØ‡G‚GˆA�J„J€JÝÐVÐVÐVÐVÍUÐSTÉXÌXÐVÑVÔVÑWÔWÐWÐWÐWÝ�s—}’} QÑ'Ô'×/Ò/Ñ1Ô1°3Ñ7Ô7Ð7à
ˆSˆ�A�s�8Ð€AØ‡G‚GˆA�J„J€JÝÐGÐGÐGÐG½eÀA¹h¼hÐGÑGÔGÑHÔHÐHÐHÐHÝ�s—}’} QÑ'Ô'×/Ò/Ñ1Ô1°3Ñ7Ô7Ð7Ð7Ð7r%   c                  óä  ‡‡— t          j        d¦  «        } t          d¬¦  «        Št          j        g d¢g d¢gd¬¦  «        }|                      dd	gd
dgddgdœd¬¦  «        }‰                     |¦  «         t          ˆfd„t          d	¦  «        D ¦   «         ¦  «        sJ ‚t          ‰ 
                    |¦  «                             ¦   «         |¦  «         |                      dd	gddgddgdœ¦  «        }g d¢Š‰                     |¦  «         t          ˆˆfd„t          d
¦  «        D ¦   «         ¦  «        sJ ‚t          ‰ 
                    |¦  «                             ¦   «         |¦  «         d S )NrY   rR   r´   )r   r   r   r   r   r   )r   r   r   r   r   r   r4  rQ   r   r   r   r3   r   rñ   ©r]   r^   ÚCr  c                 ó<   •— g | ]}‰j         |         j        d k    ‘ŒS )r  r`  rf  s     €r#   rc  z.test_encoder_dtypes_pandas.<locals>.<listcomp>  s(   ø€ ÐFÐFÐF¸�” Ô"Ô(¨GÒ3ÐFÐFÐFr%   rZ   r[   rë   rì   )r  rŸ   r4  c                 óH   •— g | ]}‰j         |         j        ‰|         k    ‘ŒS r®   r`  )ra  rb  r–   Úexpected_cat_types     €€r#   rc  z.test_encoder_dtypes_pandas.<locals>.<listcomp>#  s.   ø€ ÐSÐSÐSÀQ�” Ô"Ô(Ð,=¸aÔ,@Ò@ÐSÐSÐSr%   )r:   ra   r   r   r   rb   r9   rh  ri  r
   r=   r   )rc   rÙ   r   r–   rp  s      @@r#   Útest_encoder_dtypes_pandasrq    sˆ  øø€ å	Ô	˜XÑ	&Ô	&€Bå
 6Ð
*Ñ
*Ô
*€CÝ
Œ(Ø	'Ð	'Ð	'Ð)GÐ)GÐ)GÐHØðñ ô €Cð
 	�Š˜A˜q˜6¨¨A¨°a¸°VÐ<Ð<ÀGˆÑLÔL€AØ‡G‚GˆA�J„J€JÝÐFÐFÐFÐF½UÀ1¹X¼XÐFÑFÔFÑGÔGÐGÐGÐGÝ�s—}’} QÑ'Ô'×/Ò/Ñ1Ô1°3Ñ7Ô7Ð7à
�Š˜A˜q˜6¨¨c¨
¸#¸s¸ÐDÐDÑEÔE€AØ6Ð6Ð6ÐØ‡G‚GˆA�J„J€JÝÐSÐSÐSÐSÐSÍ%ÐPQÉ(Ì(ÐSÑSÔSÑTÔTÐTÐTÐTÝ�s—}’} QÑ'Ô'×/Ò/Ñ1Ô1°3Ñ7Ô7Ð7Ð7Ð7r%   c                  óÜ   — t          ¦   «         } ddgddgg}t          j        ¦   «         5  t          j        d¦  «         |                      |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrg   r   ri   r   r4   )r   ÚwarningsÚcatch_warningsÚsimplefilterr   )r–   r   s     r#   Útest_one_hot_encoder_warningrv  '  sµ   € Ý
‰/Œ/€CØ
�!ˆ�x �mÐ$€AÝ	Ô	 Ñ	"Ô	"ð ð ÝÔ˜gÑ&Ô&Ð&Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ª*A!Á!A%Á(A%c                 ód  — ddgddgddgg}t          | ddddgddgg¬¦  «        }|                     |¦  «         d	dgg}t          j        ddgg¦  «        }d
}t	          j        t          |¬¦  «        5  |                     |¦  «        }ddd¦  «         n# 1 swxY w Y   t          ||¦  «         dS )z,Check handle_unknown='warn' works correctly.rZ   r   r[   r   r   Fr1   ©rÌ   r   r.   rS   r  ú€Found unknown categories in columns \[0\] during transform. These unknown categories will be encoded as the infrequent category.r7   N©	r   r9   r   r   r:   ÚwarnsÚUserWarningr=   r	   )rÌ   r   rä   ÚX_testrV   Úwarn_msgrß   s          r#   Útest_ohe_handle_unknown_warnr  /  s  € ð ˆqˆ�C˜�8˜c 1˜XÐ&€Aå
ØØØØ˜#�J  A Ð'ð	ñ ô €Cð ‡G‚GˆA�J„J€Jà�AˆhˆZ€FÝ”˜A˜q˜6˜(Ñ#Ô#€Jð	 ð õ
 
Œ•k¨Ð	2Ñ	2Ô	2ð (ð (Ø—-’- Ñ'Ô'ˆð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å�G˜ZÑ(Ô(Ð(Ð(Ð(s   Á3BÂBÂBÚmissing_valuec                 ó�  — dddd| g}t          |¬¦  «        }g d¢g d¢dddd| gg}|                     |¦  «                             ¦   «         }g d¢g d	¢g d
¢g}t          ||¦  «         |j        |u sJ ‚d„ t          |j        |j        ¦  «        D ¦   «         }|                     |¦  «        }t          j
        |t          ¬¦  «        }t          |d         ¦  «        rÊt          |d d…         |d d…         ¦  «         t          |d         ¦  «        sJ ‚t          |d         ¦  «        sJ ‚t          |d d …d d…f         |d d …d d…f         ¦  «         t          |dd d…f         |dd d…f         ¦  «         t          |d         ¦  «        sJ ‚t          |d         ¦  «        sJ ‚d S t          ||¦  «         t          ||¦  «         d S )Nr¾   rn   r   rÑ   rè   )rÁ   rn   r   r¿   rZ   )r¾   rn   r   r¿   rZ   )r   r   r   r   r   )r   r   r   r   r   rÝ   c                 ó$   — g | ]\  }}||         ‘ŒS r®   r®   )ra  rÂ   r¦   s      r#   rc  z4test_one_hot_encoder_drop_manual.<locals>.<listcomp>X  s-   € ð ð ð Ù%˜˜gˆˆGŒðð ð r%   rQ   rI   )rI   rI   )r   r   r   r
   rÌ   rú   rø   r,  rÕ   r   r   rŸ   r   )	r€  Úcats_to_dropr–   r   ÚtransrÙ   Údropped_catsÚX_inv_transÚX_arrays	            r#   Ú test_one_hot_encoder_drop_manualrˆ  J  s  € à˜2˜q " mÐ4€LÝ
˜\Ð
*Ñ
*Ô
*€CàÐÐØÐÐØ	��A�r˜=Ð)ð	€Að
 ×Ò˜aÑ Ô ×(Ò(Ñ*Ô*€EØˆ?ˆ?˜O˜O˜O¨_¨_¨_Ð
=€CÝ�u˜cÑ"Ô"Ð"ØŒ8�|Ð#Ð#Ð#Ð#ðð Ý),¨S¬_¸c¼mÑ)LÔ)Lðñ ô €Lð ×'Ò'¨Ñ.Ô.€KÝŒh�q¥Ð'Ñ'Ô'€Gõ �\ "Ô%Ñ&Ô&ð 1Ý˜<¨¨¨Ô,¨l¸3¸B¸3Ô.?Ñ@Ô@Ð@Ý˜\¨"Ô-Ñ.Ô.Ð.Ð.Ð.Ý˜\¨"Ô-Ñ.Ô.Ð.Ð.Ð.å˜7 1 1 1 c r c 6œ?¨K¸¸¸¸3¸B¸3¸Ô,?Ñ@Ô@Ð@õ 	˜7 2 s¨ s 7Ô+¨[¸¸S¸b¸S¸Ô-AÑBÔBÐBÝ˜W Vœ_Ñ-Ô-Ð-Ð-Ð-Ý˜[¨Ô0Ñ1Ô1Ð1Ð1Ð1Ð1Ð1å˜<¨Ñ6Ô6Ð6Ý˜7 KÑ0Ô0Ð0Ð0Ð0r%   )rÁ   r   rj   rZ   c                 óÎ   — t          | ¬¦  «        }d}t          j        t          |¬¦  «        5  |                     g d¢g d¢g d¢g¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrè   z-`drop` should have length equal to the numberr7   rÀ   r½   )r¾   r   é;   )r   r:   r;   r<   r9   )rÌ   r–   r±   s      r#   Útest_invalid_drop_lengthr‹  o  sÉ   € å
˜TÐ
"Ñ
"Ô
"€CØ=€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Bð BØ�Š���   °°°Ð@ÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs   ®AÁAÁ!AÚdensityr   Údense©rZ   r   r[   r"  c                 ó  — t          | ¬¦  «        }t          | |¬¦  «        }g d¢g d¢g}|                     |¦  «         |                     |¦  «         t          |j        |j        ¦  «         |dk    rt          |j        d¦  «         n=t          ||j        |j        ¦  «        D ]!\  }}}|t          |¦  «                 |k    sJ ‚Œ"t          |j        t          j	        ¦  «        sJ ‚|j        j
        t          k    sJ ‚d S )Nr   rÏ   )r  r   rZ   rŽ  rÍ   r   )r   r9   r
   rø   r,  rú   rS  r÷   r   Úndarrayr*   rŸ   )rŒ  rÌ   Úohe_baseÚohe_testr   Údrop_catÚdrop_idxÚcat_lists           r#   Útest_categoriesr–  w  s  € õ ¨7Ð3Ñ3Ô3€HÝ¨7¸Ð>Ñ>Ô>€HØ	ˆˆ˜˜˜Ð&€AØ‡L‚L��O„O€OØ‡L‚L��O„O€OÝ�xÔ+¨XÔ-AÑBÔBÐBØˆw‚€Ý˜8Ô-¨qÑ1Ô1Ð1Ð1å,/Ø�(Ô$ hÔ&:ñ-
ô -
ð 	7ð 	7Ñ(ˆH�h ð �C ™MœMÔ*¨hÒ6Ð6Ð6Ð6Ð6Ý�hÔ(­"¬*Ñ5Ô5Ð5Ð5Ð5ØÔÔ#¥vÒ-Ð-Ð-Ð-Ð-Ð-r%   c                 óV   —  | ¦   «                               ¦   «         j        j        sJ ‚d S )N)Ú__sklearn_tags__Ú
input_tagsÚcategorical)r  s    r#   Ú"test_encoders_has_categorical_tagsr›  ‹  s,   € àˆ7‰9Œ9×%Ò%Ñ'Ô'Ô2Ô>Ð>Ð>Ð>Ð>Ð>r%   ÚkwargsÚmax_categoriesÚmin_frequencyé   g�Âõ(\�Ò?rñ   )r�  rž  rn   rS   rR   ©rZ   r[   r  r  c                 óH  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        }t          d|d	d
dœ| ¤Ž                     |¦  «        }t          |j        g d¢g¦  «         dgdgdgdgdgg}t          j        ddgddgddgddgddgg¦  «        }|                     |¦  «        }t          ||¦  «         d„ dgdgdz  z   D ¦   «         }| 	                    |¦  «        }t          ||¦  «         | 
                    ¦   «         }	t          ddg|	¦  «         dS )zpTest that different parameters for combine 'a', 'c', and 'd' into
    the infrequent category works as expected.rZ   r   r[   r(  r  rk   r  r   r0   F)rS   r.   r   ©rZ   r  r  Úer   r   c                 ó   — g | ]}|g‘ŒS r®   r®   ©ra  Úcols     r#   rc  z2test_ohe_infrequent_two_levels.<locals>.<listcomp>®  ó   € ÐHÐHÐH˜c�S�EÐHÐHÐHr%   Úinfrequent_sklearnr3   r  Úx0_infrequent_sklearnNr®   ©r   r   rU   r   r9   r
   Úinfrequent_categories_r=   r	   rÕ   r•   )
rœ  rS   ÚX_trainrä   r}  r-  rß   Úexpected_invÚX_invr—   s
             r#   Útest_ohe_infrequent_two_levelsr¯  �  st  € õ Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€GÝ
ð ØØ,Øðð ð ð	ð ÷
 
‚cˆ'�l„lð õ �sÔ1°O°O°OÐ3DÑEÔEÐEàˆe�c�U˜S˜E C 5¨3¨%Ð0€FÝŒx˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸Ð@ÑAÔA€Hà�mŠm˜FÑ#Ô#€GÝ�H˜gÑ&Ô&Ð&àHÐH c UÐ.BÐ-CÀaÑ-GÑ%GÐHÑHÔH€LØ×!Ò! 'Ñ*Ô*€EÝ�| UÑ+Ô+Ð+à×-Ò-Ñ/Ô/€MÝ˜Ð 7Ð8¸-ÑHÔHÐHÐHÐHr%   c                 ó  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        }t          d	d
d| ¬¦  «                             |¦  «        }|j        d         |j        d                  dk    sJ ‚t          j        dgdgg¦  «        }|                     |¦  «        }t          dgdgg|¦  «         | 	                    ¦   «         }t          dg|¦  «         |                     |¦  «        }t          dgdgg|¦  «         dS )z3Test two levels and dropping the frequent category.rZ   r   r[   r(  r  rk   r  r   r0   Fr   ©r.   r   r�  rÌ   r   r   r©  r¨  N)r   r   rU   r   r9   rø   r,  r=   r	   r•   r
   rÕ   )rÌ   r¬  rä   r}  rß   r—   Ú	X_inverses          r#   Ú,test_ohe_infrequent_two_levels_drop_frequentr³  ¶  s/  € õ Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€GÝ
Ø,ØØØð	ñ ô ÷
 
‚cˆ'�l„lð ð Œ?˜1Ô˜cœm¨AÔ.Ô/°3Ò6Ð6Ð6Ð6åŒX˜�u˜s˜e�nÑ%Ô%€FØ�mŠm˜FÑ#Ô#€GÝ�a�S˜1˜#�J Ñ(Ô(Ð(à×-Ò-Ñ/Ô/€MÝÐ/Ð0°-Ñ@Ô@Ð@à×%Ò% gÑ.Ô.€IÝ˜˜Ð 4Ð5Ð6¸	ÑBÔBÐBÐBÐBr%   c                 ó<  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        }t          d	d
d| ¬¦  «        }d| d         ›d�}t	          j        t          |¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z_Test two levels and dropping any infrequent category removes the
    whole infrequent category.rZ   r   r[   r(  r  rk   r  r   r0   Fr   r±  úUnable to drop category r   ú( from feature 0 because it is infrequentr7   N©r   r   rU   r   r:   r;   r<   r9   ©rÌ   r¬  rä   rÚ   s       r#   Ú5test_ohe_infrequent_two_levels_drop_infrequent_errorsr¹  Î  s  € õ
 Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€GÝ
Ø,ØØØð	ñ ô €Cð Y T¨!¤WÐ
XÐ
XÐ
X€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   Á.BÂBÂBrM  g¸…ëQ¸Î?g{®GázÄ?rL  c                 ó6  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        }t          dd	d
dœ| ¤Ž                     |¦  «        }t          |j        ddgg¦  «         dgdgdgdgdgg}t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        }|                     |¦  «        }t          ||¦  «         dgdgdgdgdgg}| 	                    |¦  «        }t          ||¦  «         | 
                    ¦   «         }t          g d¢|¦  «         dS )zkTest that different parameters for combing 'a', and 'd' into
    the infrequent category works as expected.rZ   r   r[   r(  r  rk   r  r   r0   F©r.   r   r£  r3  ©r   r   r   r2  r¨  )r  r  r©  Nr®   rª  )	rœ  r¬  rä   r}  r-  rß   r­  r®  r—   s	            r#   Ú test_ohe_infrequent_three_levelsr¾  à  sp  € õ  Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€GÝ
ð Ø,¸Eðð ØEKðð ç	‚cˆ'�l„lð õ �sÔ1°S¸#°J°<Ñ@Ô@Ð@àˆe�c�U˜S˜E C 5¨3¨%Ð0€FÝŒx˜˜˜ I I I¨y¨y¨y¸)¸)¸)ÀYÀYÀYÐOÑPÔP€Hà�mŠm˜FÑ#Ô#€GÝ�H˜gÑ&Ô&Ð&ð 
ˆØ	ÐØ	ˆØ	ÐØ	Ðð€Lð ×!Ò! 'Ñ*Ô*€EÝ�| UÑ+Ô+Ð+à×-Ò-Ñ/Ô/€MÝÐ@Ð@Ð@À-ÑPÔPÐPÐPÐPr%   c                 ó^  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        }t          d	d
d| ¬¦  «                             |¦  «        }t          j        dgdgdgg¦  «        }t          ddgddgddgg|                     |¦  «        ¦  «         |                     d¬¦  «                             |¦  «         d}t          j	        t          |¬¦  «        5  |                     dgdgg¦  «        }ddd¦  «         n# 1 swxY w Y   t          ddgddgg|¦  «         dS )z5Test three levels and dropping the frequent category.rZ   r   r[   r(  r  rk   r  r   r0   Fr±  r   r   r/   r5   r6   r7   r£  N)r   r   rU   r   r9   r	   r=   rµ   r:   r{  r|  )rÌ   r¬  rä   r}  rÚ   rß   s         r#   Ú.test_ohe_infrequent_three_levels_drop_frequentrÀ  
  sŽ  € õ Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€GÝ
Ø,ØØØð	ñ ô ÷
 
‚cˆ'�l„lð õ ŒX˜�u˜s˜e c UÐ+Ñ,Ô,€FÝ�a˜�V˜a ˜V a¨ VÐ,¨c¯mªm¸FÑ.CÔ.CÑDÔDÐDð ‡N‚N (€NÑ+Ô+×/Ò/°Ñ8Ô8Ð8Ø
$€CÝ	Œ•k¨Ð	-Ñ	-Ô	-ð 0ð 0Ø—-’- # ¨¨ Ñ/Ô/ˆð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0õ �a˜�V˜a ˜VÐ$ gÑ.Ô.Ð.Ð.Ð.s   Ã&DÄDÄDc                 ó<  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        }t          d	d
d| ¬¦  «        }d| d         ›d�}t	          j        t          |¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z7Test three levels and dropping the infrequent category.rZ   r   r[   r(  r  rk   r  r   r0   Fr±  rµ  r   r¶  r7   Nr·  r¸  s       r#   Ú7test_ohe_infrequent_three_levels_drop_infrequent_errorsrÂ  "  s  € õ Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€GÝ
Ø,ØØØð	ñ ô €Cð Y T¨!¤WÐ
XÐ
XÐ
X€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð rº  c                  ó"  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        } t          d	d
d¬¦  «                             | ¦  «        }t          |j        ddgg¦  «         dgdgdgdgg}t          j        g d¢g d¢g d¢g d¢g¦  «        }|                     |¦  «        }t          ||¦  «         dgg}d}t          j
        t          |¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zmTest that different parameters for combining 'a', and 'd' into
    the infrequent category works as expected.rZ   r   r[   r(  r  rk   r  r   r4   F)r.   r   r�  r3  r½  r2  Úbadz.Found unknown categories \['bad'\] in column 0r7   N)r   r   rU   r   r9   r
   r«  r=   r	   r:   r;   r<   )r¬  rä   r}  r-  rß   rÚ   s         r#   Ú(test_ohe_infrequent_handle_unknown_errorrÅ  2  s€  € õ Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€GÝ
Ø¨eÀAðñ ô ç	‚cˆ'�l„lð õ �sÔ1°S¸#°J°<Ñ@Ô@Ð@ð ˆe�c�U˜S˜E C 5Ð)€FÝŒx˜˜˜ I I I¨y¨y¨y¸)¸)¸)ÐDÑEÔE€Hà�mŠm˜FÑ#Ô#€GÝ�H˜gÑ&Ô&Ð&ð ˆgˆY€FØ
;€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�fÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Ã!DÄDÄDc                 ó  — t          j        dgdz  dgdz  z   gt          ¬¦  «        j        }t	          dg d¢gddd	œ| ¤Ž                     |¦  «        }dgd
gdgdgdgg}t          j        ddgddgddgddgddgg¦  «        }|                     |¦  «        }t          ||¦  «         dddgg}dgdgg}|D ]R}|                     |¬¦  «                             |¦  «         t          dgdgg|                     |¦  «        ¦  «         ŒSdS )zG'a' is the only frequent category, all other categories are infrequent.rZ   r   r£  rq   rQ   ©r  r  rZ   r[   Fr0   ©rS   r   r.   r[   r  r  r   r   rÍ   râ   rè   Nr®   )	r   r   rŸ   rU   r   r9   r=   r	   rµ   )rœ  r¬  rä   r}  r-  rß   ÚdropsrÌ   s           r#   Ú5test_ohe_infrequent_two_levels_user_cats_one_frequentrÊ  J  s^  € õ Œh˜˜ ™	 S E¨B¡JÑ.Ð/µvÐ>Ñ>Ô>Ô@€GÝ
ð Ø(Ð(Ð(Ð)ØØ,ðð ð ð	ð ÷
 
‚cˆ'�l„lð ð ˆe�c�U˜S˜E C 5¨3¨%Ð0€FÝŒx˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸Ð@ÑAÔA€Hà�mŠm˜FÑ#Ô#€GÝ�H˜gÑ&Ô&Ð&ð �k C 5Ð)€EØˆe�c�Uˆ^€FØð ;ð ;ˆØ�Š˜DˆÑ!Ô!×%Ò% gÑ.Ô.Ð.Ý˜!˜˜q˜c˜
 C§M¢M°&Ñ$9Ô$9Ñ:Ô:Ð:Ð:ð;ð ;r%   c                  ó  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   gt          ¬	¦  «        j        } t	          g d
¢gddd¬¦  «                             | ¦  «        }t          |j        g d¢g¦  «         dgdgdgdgdgg}t          j        ddgddgddgddgddgg¦  «        }|                     |¦  «        }t          ||¦  «         d„ dgdgdz  z   D ¦   «         }| 
                    |¦  «        }t          ||¦  «         dS )zFTest that the order of the categories provided by a user is respected.rZ   r   r[   r(  r  rk   r  r   rQ   rÇ  Fr0   r   ©rS   r   r.   r�  )r  r  rZ   r£  r   r   c                 ó   — g | ]}|g‘ŒS r®   r®   r¥  s     r#   rc  z<test_ohe_infrequent_two_levels_user_cats.<locals>.<listcomp>|  r§  r%   r¨  r3   N©r   r   rŸ   rU   r   r9   r
   r«  r=   r	   rÕ   ©r¬  rä   r}  r-  rß   r­  r®  s          r#   Ú(test_ohe_infrequent_two_levels_user_catsrÐ  f  s\  € åŒhØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Åðñ ô äð õ Ø(Ð(Ð(Ð)ØØ,Øð	ñ ô ÷
 
‚cˆ'�l„lð õ �sÔ1°O°O°OÐ3DÑEÔEÐEàˆe�c�U˜S˜E C 5¨3¨%Ð0€FÝŒx˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸Ð@ÑAÔA€Hà�mŠm˜FÑ#Ô#€GÝ�H˜gÑ&Ô&Ð&ð IÐH c UÐ.BÐ-CÀaÑ-GÑ%GÐHÑHÔH€LØ×!Ò! 'Ñ*Ô*€EÝ�| UÑ+Ô+Ð+Ð+Ð+r%   c                  ó  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   gt          ¬	¦  «        j        } t	          g d
¢gddd¬¦  «                             | ¦  «        }t          |j        ddgg¦  «         dgdgdgdgdgg}t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        }|                     |¦  «        }t          ||¦  «         dgdgdgdgdgg}| 
                    |¦  «        }t          ||¦  «         dS )z¦Test that the order of the categories provided by a user is respected.
    In this case 'c' is encoded as the first category and 'b' is encoded
    as the second one.rZ   r   r[   r(  r  rk   r  r   rQ   ©r  r  r[   rZ   Fr0   rÌ  r£  r2  r½  r3  r¨  NrÎ  rÏ  s          r#   Ú*test_ohe_infrequent_three_levels_user_catsrÓ  �  s^  € õ
 ŒhØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Åðñ ô äð õ Ø(Ð(Ð(Ð)ØØ,Øð	ñ ô ÷
 
‚cˆ'�l„lð õ �sÔ1°S¸#°J°<Ñ@Ô@Ð@àˆe�c�U˜S˜E C 5¨3¨%Ð0€FÝŒx˜˜˜ I I I¨y¨y¨y¸)¸)¸)ÀYÀYÀYÐOÑPÔP€Hà�mŠm˜FÑ#Ô#€GÝ�H˜gÑ&Ô&Ð&ð
 
ˆØ	ÐØ	ˆØ	ÐØ	Ðð€Lð ×!Ò! 'Ñ*Ô*€EÝ�| UÑ+Ô+Ð+Ð+Ð+r%   c                  óê   — t           j        g d¢g d¢f         } t          ddd¬¦  «        }|                     | ¦  «         ddgddgg}|                     |¦  «        }t          |g d	¢g d
¢g¦  «         dS )zaTest infrequent categories where feature 0 has infrequent categories,
    and feature 1 does not.©	r   r   r   r   r   r   r   r   r   ©	r   r   r   r   r   r   r   r   r   r   râ   F)r�  rÌ   r   r   r   ©r   r   r   r   )r   r   r   r   N)r   Úc_r   r9   r=   r	   )r   rä   r}  rß   s       r#   Útest_ohe_infrequent_mixedrÙ  ¥  sŽ   € õ 	ŒÐ)Ð)Ð)Ð+FÐ+FÐ+FÐFÔG€Aå
 q¨{È%Ð
PÑ
PÔ
P€CØ‡G‚GˆA�J„J€Jà�!ˆf�q˜!�fÐ€FØ�mŠm˜FÑ#Ô#€Gõ �G˜l˜l˜l¨L¨L¨LÐ9Ñ:Ô:Ð:Ð:Ð:r%   c            
      ó  — t           j        g d¢g d¢g d¢f         } t          ddd¬¦  «        }|                     | ¦  «                             ¦   «         }t          |j        d         d	d
g¦  «         t          |j        d	         d	dg¦  «         t          |j        d
         d¦  «         |                     ¦   «         }t          g d¢|¦  «         g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	}t          ||¦  «         g d¢g d¢g}| 	                    |¦  «        }g d¢g d¢g}t          ||                     ¦   «         ¦  «         | 
                    |¦  «        }t          j        g d¢g d¢gt          ¬¦  «        }t          ||¦  «         t          ddd¬¦  «                             | ¦  «        }t          j        t           d¬¦  «        5  | 	                    |¦  «         ddd¦  «         n# 1 swxY w Y   g d ¢g d!¢g}| 	                    |¦  «        }g d"¢g d¢g}t          ||                     ¦   «         ¦  «         | 
                    |¦  «        }t          j        g d#¢g d$¢gt          ¬¦  «        }t          ||¦  «         dS )%z?Test infrequent categories with feature matrix with 3 features.rÕ  )	r   r   r   r   r   rk   r   r   r   )	r   r   r   r   r   r   r   r   r   rR   r   r0   ©rS   r�  r.   r   r   r   rk   N)Úx0_0Úx0_3r©  Úx1_0Úx1_5Úx1_infrequent_sklearnÚx2_0Úx2_1)r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   )r3   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r¨  N)r¨  r   NrQ   r4   r6   r7   )r   r   r   )r   rk   r   )r   r   r   r   r   r   r   r   )r¨  r¨  r   )r   r¨  r   )r   rØ  r   r   r   r
   r«  r•   r	   r=   rÕ   r   rŸ   r9   r:   r;   r<   )	r   rä   rß   r—   r-  r}  ÚX_test_transr®  r­  s	            r#   Ú'test_ohe_infrequent_multiple_categoriesrä  ·  sj  € õ 	ŒØ#Ð#Ð#Ø$Ð$Ð$Ø#Ð#Ð#ð	%ô	€Aõ Ø¨!Ð<Qðñ ô €Cð ×Ò Ñ"Ô"×*Ò*Ñ,Ô,€GÝ�sÔ1°!Ô4°q¸!°fÑ=Ô=Ð=Ý�sÔ1°!Ô4°q¸"°gÑ>Ô>Ð>Ý�sÔ1°!Ô4°dÑ;Ô;Ð;ð
 ×-Ò-Ñ/Ô/€MÝð		
ð 		
ð 		
ð 	ñô ð ð 	!Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð
€Hõ �H˜gÑ&Ô&Ð&àˆiˆi˜˜˜Ð#€Fà—=’= Ñ(Ô(€Lð )Ð(Ð(Ð*BÐ*BÐ*BÐC€HÝ�H˜l×2Ò2Ñ4Ô4Ñ5Ô5Ð5à×!Ò! ,Ñ/Ô/€EÝ”8Ø	(Ð	(Ð	(Ð*IÐ*IÐ*IÐJÕRXðñ ô €Lõ �| UÑ+Ô+Ð+õ Ø¨!¸Gðñ ô ç	‚cˆ!�f„fð õ 
Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ø�Š�fÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆiˆi˜˜˜Ð$€FØ—=’= Ñ(Ô(€Là(Ð(Ð(Ð*BÐ*BÐ*BÐC€HÝ�H˜l×2Ò2Ñ4Ô4Ñ5Ô5Ð5à×!Ò! ,Ñ/Ô/€Eå”8Ø	8Ð	8Ð	8Ð:VÐ:VÐ:VÐWÝðñ ô €Lõ �| UÑ+Ô+Ð+Ð+Ð+s   Ç
G,Ç,G0Ç3G0c            
      óB  — t          j        d¦  «        } |                      g d¢g d¢dœddg¬¦  «        }t          dd	d
¬¦  «        }|                     |¦  «                             ¦   «         }t          |j        d         ddg¦  «         t          |j        d         g d¢¦  «         g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g	}t          ||¦  «         |                      ddgddgdœddg¬¦  «        }g d¢g d¢g}| 	                    |¦  «        }t          ||                     ¦   «         ¦  «         | 
                    |¦  «        }t          j        ddgddggt          ¬¦  «        }t          ||¦  «         |                      ddgddgdœddg¬¦  «        }| 	                    |¦  «                             ¦   «         }g d¢g d¢g}t          ||¦  «         | 
                    |¦  «        }t          j        ddgddggt          ¬¦  «        }t          ||¦  «         dS )zHTest infrequent categories with a pandas dataframe with multiple dtypes.rY   ©	rZ   Úfr  rç  rç  rZ   r  r[   r[   ©	r   r   r   rk   rk   rn   r   r   r   )ÚstrrS  ré  rS  ©ÚcolumnsrR   r   r0   rÛ  r   rZ   r[   r   ©r   r   rn   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   rç  é   rn   r¨  rQ   r  r   N)r:   ra   rb   r   r   r   r
   r«  r	   r=   rÕ   r   r   rŸ   )	rc   r   rä   rß   r-  r}  rã  r®  r­  s	            r#   Ú.test_ohe_infrequent_multiple_categories_dtypesrî    sº  € õ 
Ô	˜XÑ	&Ô	&€BØ
�Šà@Ð@Ð@Ø1Ð1Ð1ð	
ð 	
ð ˜�ð 	ñ 	ô 	€Aõ Ø¨!Ð<Qðñ ô €Cð ×Ò Ñ"Ô"×*Ò*Ñ,Ô,€GÝ�sÔ1°!Ô4°s¸C°jÑAÔAÐAÝ�sÔ1°!Ô4°j°j°jÑAÔAÐAð 	ÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐð
€Hõ �H˜gÑ&Ô&Ð&à�\Š\ 3¨ *°b¸"°XÐ>Ð>ÈÐPUÈˆ\ÑWÔW€Fà"Ð"Ð"Ð$6Ð$6Ð$6Ð7€HØ—=’= Ñ(Ô(€LÝ�H˜l×2Ò2Ñ4Ô4Ñ5Ô5Ð5à×!Ò! ,Ñ/Ô/€EÝ”8Ø
Ð 4Ð	5¸Ð=QÐ7RÐSÝðñ ô €Lõ �| UÑ+Ô+Ð+ð �\Š\ 3¨ *°b¸!°WÐ=Ð=ÈÈuÀ~ˆ\ÑVÔV€FØ—=’= Ñ(Ô(×0Ò0Ñ2Ô2€LØ"Ð"Ð"Ð$6Ð$6Ð$6Ð7€HÝ�H˜lÑ+Ô+Ð+à×!Ò! ,Ñ/Ô/€EÝ”8Ø
Ð#Ð	$Ð';¸QÐ&?Ð@Íðñ ô €Lõ �| UÑ+Ô+Ð+Ð+Ð+r%   rp   )rž  r�  c                 ó  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        }t          dd	d
dœ| ¤Ž}|                     |¦  «         |                     dgg¦  «        }t          |dgg¦  «         dS )ú,All user provided categories are infrequent.rZ   r   r[   r(  r  rk   r  r   r0   Fr¼  r   Nr®   )r   r   rU   r   r9   r=   r	   ©rœ  r¬  rä   rß   s       r#   Ú$test_ohe_infrequent_one_level_errorsrò  S  s©   € õ Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€Gå
ð Ø,¸Eðð ØEKðð €Cð ‡G‚GˆGÑÔÐà�mŠm˜c˜U˜GÑ$Ô$€GÝ�G˜q˜c˜UÑ#Ô#Ð#Ð#Ð#r%   c                 óö   — t          j        dgdz  gt          ¬¦  «        j        }t	          dg d¢gdddœ| ¤Ž                     |¦  «        }|                     dgdgg¦  «        }t          |d	gd	gg¦  «         d
S )rð  r£  r   rQ   rÇ  Fr0   rÈ  rZ   r   Nr®   )r   r   rŸ   rU   r   r9   r=   r	   rñ  s       r#   Ú5test_ohe_infrequent_user_cats_unknown_training_errorsrô  a  s¡   € õ Œh˜˜ ™	�{­&Ð1Ñ1Ô1Ô3€GÝ
ð Ø(Ð(Ð(Ð)ØØ,ðð ð ð	ð ÷
 
‚cˆ'�l„lð ð �mŠm˜c˜U S E˜NÑ+Ô+€GÝ�G˜q˜c A 3˜ZÑ(Ô(Ð(Ð(Ð(r%   zinput_dtype, category_dtype)ÚOOÚOUÚUOÚUUÚSOÚSUÚSSÚ
array_type)rù   r   rY   c                 ó:  — t          j        dgdgg| ¬¦  «        }t          j        ddg|¬¦  «        g}t          |d¬¦  «                             |¦  «        }t	          dgdgdgdgg|| ¬¦  «        }|                     |¦  «        }t          j        ddgddgddgddgg¦  «        }t          ||¦  «         t          |¬¦  «                             |¦  «        }	|	                     |¦  «        }t          j        dgdgdgdgg¦  «        }t          ||¦  «         d	S )
a"  Check that encoding work with object, unicode, and byte string dtypes.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/15616
    https://github.com/scikit-learn/scikit-learn/issues/15726
    https://github.com/scikit-learn/scikit-learn/issues/19677
    r[   rZ   rQ   Fr¹   r   r   r´   N)	r   r   r   r9   r   r=   r	   r   r
   )
rO   Úcategory_dtyperü  r   rS   rä   r}  rß   r-  Úoes
             r#   Útest_encoders_string_categoriesr   r  s7  € õ 	Œ�3�%˜#˜� {Ð3Ñ3Ô3€AÝ”(˜C ˜:¨^Ð<Ñ<Ô<Ð=€JÝ
 :¸UÐ
CÑ
CÔ
C×
GÒ
GÈÑ
JÔ
J€CåØ
ˆ��˜�u˜s˜eÐ$ j¸ðñ ô €Fð �mŠm˜FÑ#Ô#€GåŒx˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°Ð8Ñ9Ô9€HÝ�G˜XÑ&Ô&Ð&å	 :Ð	.Ñ	.Ô	.×	2Ò	2°1Ñ	5Ô	5€BØ�lŠl˜6Ñ"Ô"€GåŒx˜!˜˜q˜c A 3¨¨Ð,Ñ-Ô-€HÝ�w Ñ)Ô)Ð)Ð)Ð)r%   c                  óH  — t          j        dgdggd¬¦  «        } t          j        ddgd¬¦  «        g}t          |d¬¦  «        }t          j        d¦  «        }t          j        t          |¬	¦  «        5  |                     | ¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )z¦Check that this mixture of predefined categories and X raises an error.

    Categories defined as bytes can not easily be compared to data that is
    a string.
    r[   rZ   ÚUrQ   ÚSFr¹   zjIn column 0, the predefined categories have type 'bytes' which is incompatible with values of type 'str_'.r7   N)	r   r   r   rÖ   r×   r:   r;   r<   r9   )r   rS   rä   rÚ   s       r#   Ú$test_mixed_string_bytes_categoricalsr  ‘  sí   € õ 	Œ�3�%˜#˜� sÐ+Ñ+Ô+€Aå”(˜C ˜:¨SÐ1Ñ1Ô1Ð2€JÝ
 :¸UÐ
CÑ
CÔ
C€Cå
Œ)ð	'ñô €Cõ
 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á4BÂBÂBc                 óî   — t          j        dd| d| ggt          ¬¦  «        j        }t	          dd¬¦  «                             |¦  «        }|                     ¦   «         }t          |ddd	| › �g¦  «         d S )
NrZ   r[   rQ   Fr/   ©r   r.   Úx0_ar  Úx0_)r   r   rŸ   rU   r   r9   r•   r
   )r€  r   rä   Únamess       r#   Ú)test_ohe_missing_values_get_feature_namesr
  ¦  s€   € õ 	Œ�3˜˜]¨C°Ð?Ð@ÍÐOÑOÔOÔQ€AÝ
 e¸HÐ
EÑ
EÔ
E×
IÒ
IÈ!Ñ
LÔ
L€CØ×%Ò%Ñ'Ô'€EÝ�u˜v vÐ/D°]Ð/DÐ/DÐEÑFÔFÐFÐFÐFr%   c            	      ó6  — t          j        d¦  «        } |                      g d¢t          j        dddt          j        gt          ¬¦  «        dœdd	g¬
¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          |¦  «        }t          ||¦  «         d S )NrY   )ÚdogrÂ   NrÂ   r   r   r3   rQ   )Úcol1Úcol2r  r  rê  )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )	r:   ra   rb   r   r   rÃ   Úfloatr¼   r	   )rc   ÚdfÚexpected_df_transrÉ   s       r#   Ú%test_ohe_missing_value_support_pandasr  ¯  sÇ   € å	Ô	˜XÑ	&Ô	&€BØ	�Šà/Ð/Ð/Ý”H˜a  A¥r¤vÐ.µeÐ<Ñ<Ô<ð	
ð 	
ð ˜Ð ð 
ñ 
ô 
€Bõ œà!Ð!Ð!Ø!Ð!Ð!Ø!Ð!Ð!Ø!Ð!Ð!ð		
ñô Ðõ # 2Ñ
&Ô
&€CÝ�CÐ*Ñ+Ô+Ð+Ð+Ð+r%   Úpd_nan_typeúpd.NAznp.nanc           
      ó@  — t          j        d¦  «        }| dk    r|j        nt          j        }|                     d|                     dd|ddgd¬¦  «        i¦  «        }t          j        g d	¢g d
¢g d¢g d¢g d
¢g¦  «        }t          d|¬¦  «        }| 	                    |¦  «        }t          ||¦  «         t          |j        ¦  «        dk    sJ ‚t          |j        d         d d…         g d¢¦  «         t          j        |j        d         d         ¦  «        sJ ‚d S )NrY   r  r  r  rZ   r[   r§   rQ   )r   r   r   r   )r   r   r   r   )r   r   r   r   r×  Fr  r   r   rI   r  )r:   ra   ÚNAr   rÃ   rb   rò   r   r   r   r	   Úlenrø   r
   Úisnan)r  r.   rc   Úpd_missing_valuer  r  rä   Údf_transs           r#   Ú1test_ohe_missing_value_support_pandas_categoricalr  Æ  s@  € õ 
Ô	˜XÑ	&Ô	&€Bà +¨wÒ 6Ð 6�r”u�u½B¼FÐà	�Šà�B—I’I˜s CÐ)9¸3ÀÐDÈJ�IÑWÔWð	
ñ
ô 
€Bõ
 œàˆLˆLØˆLˆLØˆLˆLØˆLˆLØˆLˆLð	
ñô Ðõ  e¸NÐ
KÑ
KÔ
K€CØ× Ò  Ñ$Ô$€HÝÐ% xÑ0Ô0Ð0åˆsŒÑÔ 1Ò$Ð$Ð$Ð$Ý�s” qÔ)¨#¨2¨#Ô.°°°Ñ@Ô@Ð@ÝŒ8�C”O AÔ& rÔ*Ñ+Ô+Ð+Ð+Ð+Ð+Ð+r%   c                 óD  — ddgddgddgg}t          dd| ¬¦  «        }|                     |¦  «        }t          j        g d	¢g d
¢g d¢g¦  «        }t	          ||¦  «         ddgg}t          j        g d	¢g¦  «        }| dk    rd}nd}t          j        t          |¬¦  «        5  |                     |¦  «        }ddd¦  «         n# 1 swxY w Y   t	          ||¦  «         | 	                    |¦  «        }t          |t          j        ddggt          ¬¦  «        ¦  «         dS )zZCheck drop='first' and handle_unknown='ignore'/'infrequent_if_exist'
    during transform.rZ   r   r[   r   r   rÍ   F©rÌ   r   r.   rÜ   rÓ   )r   r   r   r  r   r/   útFound unknown categories in columns \[0, 1\] during transform. These unknown categories will be encoded as all zerosúƒFound unknown categories in columns \[0, 1\] during transform. These unknown categories will be encoded as the infrequent category.r7   NrQ   ©r   r   r   r   r	   r:   r{  r|  r=   rÕ   r
   rŸ   ©r.   r   rä   rß   rV   r}  r~  r®  s           r#   Ú/test_ohe_drop_first_handle_unknown_ignore_warnsr"  æ  s™  € ð ˆqˆ�C˜�8˜c 1˜XÐ&€Aå
Ø E¸.ðñ ô €Cð ×Ò Ñ"Ô"€Gå”àˆIˆIØˆIˆIØˆIˆIð	
ñô €Jõ �G˜ZÑ(Ô(Ð(ð �AˆhˆZ€FÝ”˜9˜9˜9˜+Ñ&Ô&€Jà˜Ò!Ð!ðð 	ˆð$ð 	õ
 
Œ•k¨Ð	2Ñ	2Ô	2ð (ð (Ø—-’- Ñ'Ô'ˆð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å�G˜ZÑ(Ô(Ð(ð ×!Ò! *Ñ-Ô-€EÝ�u�bœh¨¨a¨ z½Ð@Ñ@Ô@ÑAÔAÐAÐAÐAó   Â"CÃCÃCc                 óD  — ddgddgddgg}t          dd| ¬¦  «        }|                     |¦  «        }t          j        g d	¢g d
¢g d¢g¦  «        }t	          ||¦  «         ddgg}t          j        g d¢g¦  «        }| dk    rd}nd}t          j        t          |¬¦  «        5  |                     |¦  «        }ddd¦  «         n# 1 swxY w Y   t	          ||¦  «         | 	                    |¦  «        }t          |t          j        ddggt          ¬¦  «        ¦  «         dS )zDCheck drop='if_binary' and handle_unknown='ignore' during transform.rZ   r   r[   r   r   râ   Fr  r×  rÈ   r_   r  r   )r   r   r   r   r/   r  r  r7   NrQ   r   r!  s           r#   Ú3test_ohe_drop_if_binary_handle_unknown_ignore_warnsr%    s™  € ð ˆqˆ�C˜�8˜c 1˜XÐ&€Aå
Ø¨¸nðñ ô €Cð ×Ò Ñ"Ô"€Gå”àˆLˆLØˆLˆLØˆLˆLð	
ñô €Jõ �G˜ZÑ(Ô(Ð(ð �AˆhˆZ€FÝ”˜<˜<˜<˜.Ñ)Ô)€Jà˜Ò!Ð!ðð 	ˆð$ð 	õ
 
Œ•k¨Ð	2Ñ	2Ô	2ð (ð (Ø—-’- Ñ'Ô'ˆð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å�G˜ZÑ(Ô(Ð(ð ×!Ò! *Ñ-Ô-€EÝ�u�bœh¨¨d¨ }½FÐCÑCÔCÑDÔDÐDÐDÐDr#  c                 óv  — ddgddgddgg}t          dd| ddgddgg¬¦  «        }|                     |¦  «         d	dgg}t          j        ddgg¦  «        }| d
k    rd}nd}t	          j        t          |¬¦  «        5  |                     |¦  «        }ddd¦  «         n# 1 swxY w Y   t          ||¦  «         dS )znCheck drop='first' and handle_unknown='ignore'/'infrequent_if_exist'
    during fit with categories passed in.rZ   r   r[   r   r   rÍ   Frx  r  r/   zqFound unknown categories in columns \[0\] during transform. These unknown categories will be encoded as all zerosry  r7   Nrz  )r.   r   rä   r}  rV   r~  rß   s          r#   Ú'test_ohe_drop_first_explicit_categoriesr'  ?  s/  € ð
 ˆqˆ�C˜�8˜c 1˜XÐ&€Aå
ØØØ%Ø˜#�J  A Ð'ð	ñ ô €Cð ‡G‚GˆA�J„J€Jà�AˆhˆZ€FÝ”˜A˜q˜6˜(Ñ#Ô#€Jà˜Ò!Ð!ðEð 	ˆð$ð 	õ
 
Œ•k¨Ð	2Ñ	2Ô	2ð (ð (Ø—-’- Ñ'Ô'ˆð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å�G˜ZÑ(Ô(Ð(Ð(Ð(s   Á<BÂB"Â%B"c                  ó
  — t          j        d¦  «        } |                      g d¢g d¢dœddg¬¦  «        }t          d¬	¦  «        }|                     d¬
¦  «         d}t          j        t          |¬¦  «        5  |                     |¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¦  «         t          j        t          |¬¦  «        5  | 	                    |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zJRaise informative error message when pandas output and sparse_output=True.rY   r  )r  r[   r[   )rZ   r[   rZ   r[   rê  Tr   ©r=   zxPandas output does not support sparse data. Set sparse_output=False to output pandas dataframes or disable Pandas outputr7   N)
r:   ra   rb   r   Ú
set_outputr;   r<   r   r9   r=   )rc   r  rä   rÚ   s       r#   Ú'test_ohe_more_informative_error_messager+  a  s†  € å	Ô	˜XÑ	&Ô	&€BØ	�Š˜I˜I˜I¨O¨O¨OÐ<Ð<ÀsÈCÀjˆÑ	QÔ	Q€Bå
 dÐ
+Ñ
+Ô
+€CØ‡N‚N˜X€NÑ&Ô&Ð&ð	Sð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø×Ò˜"ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡G‚GˆB�K„K€KÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š�bÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   Á8BÂBÂ!BÃC8Ã8C<Ã?C<c                  ó:  — t          j        t           j        dddgg¦  «        j        } t	          t           j        ¬¦  «        }dt           j        › �}t          j        t          |¬¦  «        5  | 	                    | ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zDTest ordinal encoder with nan passthrough fails when dtype=np.int32.rë   r   rQ   zdThere are missing values in features \[0\]. For OrdinalEncoder to encode missing values with dtype: r7   N)
r   r   rÃ   rU   r   r+   r:   r;   r<   r9   )r   rÿ  rÚ   s      r#   ÚBtest_ordinal_encoder_passthrough_missing_values_float_errors_dtyper-  u  sÙ   € õ 	Œ•2”6˜3  SÐ)Ð*Ñ+Ô+Ô-€AÝ	�bœhÐ	'Ñ	'Ô	'€Bð	;Ý02´ð	;ð 	;ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø
�Šˆq‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r  Úencoded_missing_valuer=  c                 óÜ  — t          j        t           j        dddggt           j        ¬¦  «        j        }t          | ¬¦  «                             |¦  «        }t          |j        ¦  «        dk    sJ ‚t          |j        d         ddt           j        g¦  «         | 
                    |¦  «        }t          || gdgdgdgg¦  «         |                     |¦  «        }t          ||¦  «         dS )	z.Test ordinal encoder with nan on float dtypes.rë   r   rQ   ©r.  r   r   r   N)r   r   rÃ   r4  rU   r   r9   r  rø   r	   r=   rÕ   )r.  r   rÿ  rß   r²  s        r#   Ú5test_ordinal_encoder_passthrough_missing_values_floatr1  ƒ  sà   € õ 	Œ•2”6˜3  SÐ)Ð*µ"´*Ð=Ñ=Ô=Ô?€AÝ	Ð.CÐ	DÑ	DÔ	D×	HÒ	HÈÑ	KÔ	K€BåˆrŒ~ÑÔ !Ò#Ð#Ð#Ð#å�B”N 1Ô%¨¨Sµ"´&Ð'9Ñ:Ô:Ð:à�lŠl˜1‰oŒo€GÝ�GÐ4Ð5¸°u¸s¸eÀcÀUÐKÑLÔLÐLà×$Ò$ WÑ-Ô-€IÝ�I˜qÑ!Ô!Ð!Ð!Ð!r%   c           
      ó  — t          j        d¦  «        }| dk    r|j        nt          j        }|                     d|                     dd|ddgd¬¦  «        i¦  «        }t          |¬	¦  «                             |¦  «        }t          |j
        ¦  «        d
k    sJ ‚t          |j
        d         dd…         g d¢¦  «         t          j        |j
        d         d         ¦  «        sJ ‚|                     |¦  «        }t          |dgdg|gdgdgg¦  «         |                     |¦  «        }|j        dk    sJ ‚t          |dd…df         ddg¦  «         t          |dd…df         ddg¦  «         t          j        |d         ¦  «        sJ ‚dS )z0Check ordinal encoder is compatible with pandas.rY   r  r  r  rZ   r[   r§   rQ   r0  r   r   Nr   r  rI   ç       @r   r   )r   r   r   rÒ   )r:   ra   r  r   rÃ   rb   rò   r   r9   r  rø   r
   r  r=   r	   rÕ   r   )r  r.  rc   r  r  rÿ  r  r²  s           r#   Ú=test_ordinal_encoder_missing_value_support_pandas_categoricalr4  •  s§  € õ 
Ô	˜XÑ	&Ô	&€Bà +¨wÒ 6Ð 6�r”u�u½B¼FÐà	�Šà�B—I’I˜s CÐ)9¸3ÀÐDÈJ�IÑWÔWð	
ñ
ô 
€Bõ 
Ð.CÐ	DÑ	DÔ	D×	HÒ	HÈÑ	LÔ	L€BÝˆrŒ~ÑÔ !Ò#Ð#Ð#Ð#Ý�r”~ aÔ(¨¨!¨Ô,¨o¨o¨oÑ>Ô>Ð>ÝŒ8�B”N 1Ô% bÔ)Ñ*Ô*Ð*Ð*Ð*à�|Š|˜BÑÔ€Hå�H ˜u s eÐ.CÐ-DÀsÀeÈcÈUÐSÑTÔTÐTà×$Ò$ XÑ.Ô.€IØŒ?˜fÒ$Ð$Ð$Ð$Ý�y  !  Q Ô'¨#¨s¨Ñ4Ô4Ð4Ý�y    Q Ô'¨#¨s¨Ñ4Ô4Ð4ÝŒ8�I˜d”OÑ$Ô$Ð$Ð$Ð$Ð$Ð$r%   r3  )zobject-None-missing-valuezobject-nan-missing_valueznumeric-missing-valuec                 ó’  — t          |¬¦  «        }t          j        dgt          j        gg¦  «        }t	          |                     | ¦  «        |¦  «         |j        d         j        |k    sJ ‚t          |¬¦  «        }t          j	        t          d¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z.Test ordinal encoder for specified categories.r´   r   r   r6   r7   N)r   r   r   rÃ   r
   r   rø   r*   r:   r;   r<   r9   )r   r@   r  rþ   rÿ  rÙ   s         r#   Ú=test_ordinal_encoder_specified_categories_missing_passthroughr6  ¶  s  € õL 
 4Ð	(Ñ	(Ô	(€BÝ
Œ(�S�E�BœF˜8Ð$Ñ
%Ô
%€CÝ�r×'Ò'¨Ñ*Ô*¨CÑ0Ô0Ð0ð Œ>˜!ÔÔ" iÒ/Ð/Ð/Ð/õ 
 4Ð	(Ñ	(Ô	(€BÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ø
�Šˆr‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB<Â<C ÃC c                 ó2  — t          j        g d¢t          ¬¦  «        g} | |¬¦  «        }t          j        ddggt          ¬¦  «        j        }t	          j        t          d¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z�Test encoder for specified categories have duplicate values.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27088
    )rZ   r[   rZ   rQ   r´   rZ   r[   z5the predefined categories contain duplicate elements.r7   N)r   r   rŸ   rU   r:   r;   r<   r9   r  s       r#   Ú+test_encoder_duplicate_specified_categoriesr8  ê  sà   € õ ŒH�_�_�_­FÐ3Ñ3Ô3Ð4€DØ
ˆ'˜TÐ
"Ñ
"Ô
"€CÝ
Œ�3˜�*�¥VÐ,Ñ,Ô,Ô.€AÝ	ŒÝÐQð
ñ 
ô 
ð ð ð 	�Š�‰
Œ
ˆ
ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á)BÂBÂBzX, expected_X_trans, X_testr   r   )r   rì   rë   )r   r3  r   r  )r  rZ   r[   )r3  r   r   c                 ó¼   — t          dd¬¦  «        }|                     | ¦  «        }t          ||¦  «         t          |                     |¦  «        dgg¦  «         dS )z>Test the interaction between missing values and handle_unknownr<  rI   r>  g      ð¿N)r   r   r	   r=   )r   Úexpected_X_transr}  rÿ  rß   s        r#   Ú/test_ordinal_encoder_handle_missing_and_unknownr;  ú  sa   € õ8 
Ð':È"Ð	MÑ	MÔ	M€Bà×Ò˜qÑ!Ô!€GÝ�GÐ-Ñ.Ô.Ð.å�B—L’L Ñ(Ô(¨D¨6¨(Ñ3Ô3Ð3Ð3Ð3r%   Úcsr_containerc                 ób  — t          j        g d¢g d¢g¦  «        } | |¦  «        }t          ¦   «         }d}t          j        t
          |¬¦  «        5  |                     |¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t
          |¬¦  «        5  |                     |¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¦  «        } | |¦  «        }t          j        t
          |¬¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z¥Check that we raise proper error with sparse input in OrdinalEncoder.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/19878
    r   r   z2Sparse data was passed, but dense data is requiredr7   N)	r   r   r   r:   r;   r°   r9   r   rÕ   )r<  r   ÚX_sparseÚencoderr±   rß   r!   s          r#   Útest_ordinal_encoder_sparser@    sê  € õ 	Œ�)�)�)˜Y˜Y˜YÐ'Ñ(Ô(€AØˆ}˜QÑÔ€HåÑÔ€GàB€GÝ	Œ•y¨Ð	0Ñ	0Ô	0ð ð Ø�Š�HÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•y¨Ð	0Ñ	0Ô	0ð (ð (Ø×Ò˜hÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð ×#Ò# AÑ&Ô&€GØ"�] 7Ñ+Ô+€NÝ	Œ•y¨Ð	0Ñ	0Ô	0ð 2ð 2Ø×!Ò! .Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð 2ð 2s6   ÁA3Á3A7Á:A7ÂB;Â;B?ÃB?ÄD$Ä$D(Ä+D(c                  óh  — t          j        g d¢¦  «        dd…t           j        f         } t          g d¢gdd¬¦  «        }|                     | ¦  «         t          g d¢gd¬¦  «        }t          j        t          d	¬
¦  «        5  |                     | ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zÂCheck OrdinalEncoder.fit works with unseen category when
    `handle_unknown="use_encoded_value"`.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/19872
    )r   r   r   r   r   r   N)rI   r   r   r<  rJ  )rS   r.   r?  r4   r  r6   r7   )r   r   Únewaxisr   r9   r:   r;   r<   )r   rÿ  s     r#   Ú-test_ordinal_encoder_fit_with_unseen_categoryrC  5  sþ   € õ 	ŒÐ#Ð#Ð#Ñ$Ô$ Q Q Q­¬
 ]Ô3€AÝ	Ø�J�J�<Ð0CÐSWð
ñ 
ô 
€Bð ‡F‚Fˆ1�I„I€Iå	 J J J <ÀÐ	HÑ	HÔ	H€BÝ	Œ•zÐ)CÐ	DÑ	DÔ	Dð ð Ø
�Šˆq‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB'Â'B+Â.B+r¬  ÚAAÚOr  r}  c                 ó¢   — t          dd¬¦  «        }|                     | ¦  «         |                     |¦  «        }t          |ddgg¦  «         dS )z–Checks that `OrdinalEncoder` transforms string dtypes.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/19872
    r<  i÷ÿÿÿr>  r   N)r   r9   r=   r	   )r¬  r}  r–   rß   s       r#   Ú1test_ordinal_encoder_handle_unknown_string_dtypesrG  F  sV   € õ* Ð(;È2Ð
NÑ
NÔ
N€CØ‡G‚GˆGÑÔÐà�mŠm˜FÑ#Ô#€GÝ�G˜r 1˜g˜YÑ'Ô'Ð'Ð'Ð'r%   c                  óR  — t          j        g d¢¦  «                             dd¦  «        } t          ¦   «                              | ¦  «        }t          |j        t          j        | d¬¦  «        j        ¦  «         | 	                    | ¦  «        }t          |dgdgdgdgg¦  «         dS )	zÁCheck that `OrdinalEncoder` accepts Python integers that are potentially
    larger than 64 bits.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20721
    )l   	HéP
1& l   	H]v—i—eøl   	 :?i}Gaï l   IRÕK2e6krI   r   r   )Úaxisr   r   N)
r   r   rL   r   r9   r
   rø   ÚsortrU   r=   )r   r?  rß   s      r#   Ú#test_ordinal_encoder_python_integerrK  b  s°   € õ 	Œð	
ð 	
ð 	
ñ	ô 	÷ ‚gˆb�!�n„nð õ ÑÔ×"Ò" 1Ñ%Ô%€GÝ�wÔ*­B¬G°A¸AÐ,>Ñ,>Ô,>Ô,@ÑAÔAÐAØ×Ò Ñ"Ô"€GÝ�w !  q c¨A¨3°°Ð 4Ñ5Ô5Ð5Ð5Ð5r%   c                  óô   — t          j        d¦  «        } g d¢}|                      g d¢g|¬¦  «        }t          ¦   «                              |¦  «        }|                     ¦   «         }t          ||¦  «         dS )z-Check feature names out is same as the input.rY   )r[   r  rZ   r  rê  N)r:   ra   rb   r   r9   r•   r
   )rc   r	  r   r–   Úfeature_names_outs        r#   Ú.test_ordinal_encoder_features_names_out_pandasrN  v  sx   € å	Ô	˜XÑ	&Ô	&€BàˆOˆO€EØ
�Š�i�i�i�[¨%ˆÑ0Ô0€AÝ
Ñ
Ô
×
Ò
˜qÑ
!Ô
!€Cà×1Ò1Ñ3Ô3ÐÝ�uÐ/Ñ0Ô0Ð0Ð0Ð0r%   c                  óV  — t          j        dgdgt           j        ggt          ¬¦  «        } t	          dt           j        d¬¦  «                             | ¦  «        }|                     | ¦  «        }t          |dgdgdgg¦  «         t          j        d	gt           j        ggt          ¬¦  «        }|                     |¦  «        }t          |t           j        gdgg¦  «         |                     |¦  «        }|d         d         �J ‚t          j	        |d         d         ¦  «        sJ ‚d
S )zECheck interactions between encode_unknown and missing value encoding.rZ   r[   rQ   r<  éýÿÿÿ©r.   r?  r.  r   r   r  N)
r   r   rÃ   rŸ   r   r9   r=   r	   rÕ   r  )r   rÿ  rß   r}  rã  ÚX_roundtrips         r#   Ú0test_ordinal_encoder_unknown_missing_interactionrS  ‚  s$  € õ 	Œ�3�%˜#˜¥¤ Ð)µÐ8Ñ8Ô8€Aå	Ø*Ý”fØ ð
ñ 
ô 
÷ 
‚cˆ!�f„fð	 ð �lŠl˜1‰oŒo€GÝ�G˜q˜c A 3¨¨Ð-Ñ.Ô.Ð.õ ŒX˜�u�rœv˜hÐ'­vÐ6Ñ6Ô6€FØ—<’< Ñ'Ô'€LÝ�L¥B¤F 8¨b¨TÐ"2Ñ3Ô3Ð3ð ×&Ò& |Ñ4Ô4€Kð �qŒ>˜!ÔÐ$Ð$Ð$õ Œ8�K ”N 1Ô%Ñ&Ô&Ð&Ð&Ð&Ð&Ð&r%   Úwith_pandasc                 óŒ  — t          j        ddgddgdt           j        ggt          ¬¦  «        }d}| r3t	          j        d¦  «        }|                     |d	d
g¬¦  «        }|dz   }n|dz   }t          d¬¦  «        }t	          j        t          |¬¦  «        5  | 
                    |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zWCheck OrdinalEncoder errors when encoded_missing_value is used by
    a known category.rZ   r  r[   rÂ   r  rQ   zTencoded_missing_value \(1\) is already used to encode a known category in features: rY   ÚletterÚpetrê  z	\['pet'\]z\[1\]r   r0  r7   N)r   r   rÃ   rŸ   r:   ra   rb   r   r;   r<   r9   )rT  r   Ú	error_msgrc   rÿ  s        r#   Ú0test_ordinal_encoder_encoded_missing_value_errorrY     s  € õ 	Œ�3˜�,  e ¨sµB´F¨mÐ<ÅFÐKÑKÔK€Að
	ð ð
 ð )ÝÔ  Ñ*Ô*ˆØ�LŠL˜ X¨uÐ$5ˆLÑ6Ô6ˆØ Ñ,ˆ	ˆ	à Ñ(ˆ	å	¨aÐ	0Ñ	0Ô	0€Bå	Œ•z¨Ð	3Ñ	3Ô	3ð ð Ø
�Šˆq‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂB9Â9B=Ã B=z4X_train, X_test_trans_expected, X_roundtrip_expectedÚ1c                 ó  — t          dt          j        t          j        ¬¦  «                             | ¦  «        }t          j        dgt          j        gdgg¦  «        }|                     |¦  «        }t          ||¦  «         |                     |¦  «        }|j        d         }t          |¦  «        D ]K}||df         }	||df         }
|	€|
�J ‚Œt          |	¦  «        rt          j        |
¦  «        sJ ‚ŒC|
|	k    sJ ‚ŒLdS )znCheck transform when unknown_value and encoded_missing_value is nan.

    Non-regression test for #24082.
    r<  rQ  rZ  r[   r   N)r   r   rÃ   r9   r   r=   r	   rÕ   r   ri  r   r  )r¬  ÚX_test_trans_expectedÚX_roundtrip_expectedrÿ  r}  rã  rR  Ú	n_samplesrb  Úexpected_valÚvals              r#   Ú9test_ordinal_encoder_unknown_missing_interaction_both_nanra  º  s!  € õ4 
Ø*Ý”fÝ œfð
ñ 
ô 
÷ 
‚cˆ'�l„lð	 õ ŒX˜�u�rœv˜h¨¨Ð.Ñ/Ô/€FØ—<’< Ñ'Ô'€Lõ �LÐ"7Ñ8Ô8Ð8Ø×&Ò& |Ñ4Ô4€Kà$Ô*¨1Ô-€IÝ�9ÑÔð 	'ð 	'ˆØ+¨A¨q¨DÔ1ˆØ˜!˜Q˜$ÔˆàÐØ�;�;�;�;Ý˜<Ñ(Ô(ð 	'Ý”8˜C‘=”=Ð Ð �=Ð à˜,Ò&Ð&Ð&Ð&Ð&ð	'ð 	'r%   c                  ó¸  — t          j        d¦  «        } |                      ddgddgdœ¦  «        }t          ¦   «         }|                     d¬¦  «         d}t          j        t          |¬	¦  «        5  |                     |¦  «         d
d
d
¦  «         n# 1 swxY w Y   t          d¬¦  «                             d¬¦  «        }t          d¬¦  «                             d¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          | 	                    ¦   «         |¦  «         t          |                     ¦   «         |j        ¦  «         d
S )z*Check OneHotEncoder works with set_output.rY   rZ   r[   r   r   r\   r)  zCPandas output does not support sparse data. Set sparse_output=Falser7   NFr   Údefault)r:   ra   rb   r   r*  r;   r<   r   r	   Úto_numpyr
   r•   rë  )rc   rd   rä   r8   Úohe_defaultÚ
ohe_pandasÚ	X_defaultÚX_pandass           r#   Útest_one_hot_encoder_set_outputri  î  s~  € å	Ô	˜XÑ	&Ô	&€Bà�<Š<˜s C˜j°°1¨vÐ6Ð6Ñ7Ô7€DÝ
‰/Œ/€Cà‡N‚N˜X€NÑ&Ô&Ð&àQ€EÝ	Œ•z¨Ð	/Ñ	/Ô	/ð  ð  Ø×Ò˜$ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ  ¨eÐ4Ñ4Ô4×?Ò?È)Ð?ÑTÔT€KÝ¨UÐ3Ñ3Ô3×>Ò>ÈÐ>ÑRÔR€Jà×)Ò)¨$Ñ/Ô/€IØ×'Ò'¨Ñ-Ô-€Hå�H×%Ò%Ñ'Ô'¨Ñ3Ô3Ð3Ý�z×7Ò7Ñ9Ô9¸8Ô;KÑLÔLÐLÐLÐLs   Á2BÂBÂBc                  óÔ  — t          j        d¦  «        } |                      ddgddgdœ¦  «        }t          ¦   «                              d¬¦  «        }t          ¦   «                              d¬¦  «        }|                     |¦  «        }|                     |¦  «        }t          |                     ¦   «         |¦  «         t          | 	                    ¦   «         |j
        ¦  «         d	S )
z+Check OrdinalEncoder works with set_output.rY   rZ   r[   r   r   r\   rc  r)  N)r:   ra   rb   r   r*  r   r	   rd  r
   r•   rë  )rc   rd   Úord_defaultÚ
ord_pandasrg  rh  s         r#   Útest_ordinal_set_outputrm    sÒ   € å	Ô	˜XÑ	&Ô	&€Bà�<Š<˜s C˜j°°1¨vÐ6Ð6Ñ7Ô7€Då Ñ"Ô"×-Ò-¸	Ð-ÑBÔB€KÝÑ!Ô!×,Ò,°xÐ,Ñ@Ô@€Jà×)Ò)¨$Ñ/Ô/€IØ×'Ò'¨Ñ-Ô-€Hå�H×%Ò%Ñ'Ô'¨Ñ3Ô3Ð3Ý�z×7Ò7Ñ9Ô9¸8Ô;KÑLÔLÐLÐLÐLr%   c                  ó8  — g d¢ddgg} t          | ¬¦  «        }|                     ddgg¦  «         t          | ¦  «        t          |j        ¦  «        k    sJ ‚t	          |j        ¦  «        D ]-\  }}|j        t          k    sJ ‚t          | |         |¦  «         Œ.dS )zjCheck that the categories_ dtype is `object` for string categories

    Regression test for gh-25171.
    )ÚasÚmmasÚeasÚrasÚacsrZ  Ú2r´   ro  N)r   r9   r  rø   Ú	enumerater*   rŸ   r
   )rS   r–   ÚnrÂ   s       r#   Ú test_predefined_categories_dtyperw    s²   € ð
 6Ð5Ð5¸¸S°zÐB€Jå
 :Ð
.Ñ
.Ô
.€Cà‡G‚Gˆd�Cˆ[ˆMÑÔÐåˆz‰?Œ?�c #¤/Ñ2Ô2Ò2Ð2Ð2Ð2Ý˜CœOÑ,Ô,ð /ð /‰ˆˆ3ØŒy�FÒ"Ð"Ð"Ð"Ý˜: aœ=¨#Ñ.Ô.Ð.Ð.ð/ð /r%   c                  ó�  — t          j        dgdgt           j        ggt          ¬¦  «        } t	          d¬¦  «                             | ¦  «        }t          |dgdgdgg¦  «         t	          dd¬	¦  «                             | ¦  «        }t          j        d
gg¦  «        }|                     |¦  «        }t          |dgg¦  «         dS )zBCheck missing value or unknown encoding can equal the cardinality.r  rÂ   rQ   r   r0  r   r   r<  r>  ÚsnakeN)	r   r   rÃ   rŸ   r   r   r	   r9   r=   )r   rß   r–   r}  s       r#   Ú1test_ordinal_encoder_missing_unknown_encoding_maxrz  &  s¿   € å
Œ�5�'˜E˜7¥R¤V HÐ-µVÐ<Ñ<Ô<€AÝ°1Ð5Ñ5Ô5×CÒCÀAÑFÔF€GÝ�G˜q˜c A 3¨¨˜_Ñ-Ô-Ð-å
Ð(;È1Ð
MÑ
MÔ
M×
QÒ
QÐRSÑ
TÔ
T€CÝŒX˜�y�kÑ"Ô"€FØ�mŠm˜FÑ#Ô#€GÝ�G˜q˜c˜UÑ#Ô#Ð#Ð#Ð#r%   c                  ó¢  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   dgdz  z   gt          ¬¦  «        j        } t	          dd	d
¬¦  «                             | ¦  «        }t          |                     ¦   «         g d¢¦  «         |j        d         |j	        d                  dk    sJ ‚t          j        dgdz  dgdz  z   dgdz  z   gt          ¬¦  «        j        } t	          dd	d¬¦  «                             | ¦  «        }t          |                     ¦   «         dg¦  «         |j        d         |j	        d                  dk    sJ ‚t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   dgdz  z   gt          ¬¦  «        j        } t	          dd	dg¬¦  «                             | ¦  «        }t          |                     ¦   «         g d¢¦  «         |j        d         |j	        d                  dk    sJ ‚t	          dd	d¬¦  «                             | ¦  «        }t          |                     ¦   «         g d¢¦  «         |j	        �J ‚dS )zkCheck drop_idx is defined correctly with infrequent categories.

    Non-regression test for gh-25550.
    rZ   r   r[   r3   r  r  r£  rQ   FrÍ   )rž  r   rÌ   )r  Úx0_dÚx0_er©  r   rk   râ   r©  )r  r  r}  r©  N)r  r  r|  r}  r©  )
r   r   rŸ   rU   r   r9   r
   r•   rø   r,  )r   rä   s     r#   Ú#test_drop_idx_infrequent_categoriesr~  2  sš  € õ
 	ŒØ
ˆ�‰�c�U˜Q‘YÑ	 # ¨¡Ñ	*¨c¨U°Q©YÑ	6¸#¸À¹Ñ	BÐCÍ6ð	ñ 	ô 	äð õ  a°uÀ7Ð
KÑ
KÔ
K×
OÒ
OÐPQÑ
RÔ
R€CÝØ×!Ò!Ñ#Ô#Ð%VÐ%VÐ%Vñô ð ð Œ?˜1Ô˜cœm¨AÔ.Ô/°3Ò6Ð6Ð6Ð6å
Œ�3�%˜!‘)˜s˜e a™iÑ'¨3¨%°"©*Ñ4Ð5½VÐDÑDÔDÔF€AÝ
 a°uÀ;Ð
OÑ
OÔ
O×
SÒ
SÐTUÑ
VÔ
V€CÝ�s×0Ò0Ñ2Ô2Ð5LÐ4MÑNÔNÐNØŒ?˜1Ô˜cœm¨AÔ.Ô/°3Ò6Ð6Ð6Ð6å
ŒØ
ˆ�‰�c�U˜Q‘YÑ	 # ¨¡Ñ	*¨c¨U°Q©YÑ	6¸#¸À¹Ñ	BÐCÍ6ð	ñ 	ô 	äð õ  a°uÀCÀ5Ð
IÑ
IÔ
I×
MÒ
MÈaÑ
PÔ
P€CÝØ×!Ò!Ñ#Ô#Ð%VÐ%VÐ%Vñô ð ð Œ?˜1Ô˜cœm¨AÔ.Ô/°3Ò6Ð6Ð6Ð6å
 a°uÀ4Ð
HÑ
HÔ
H×
LÒ
LÈQÑ
OÔ
O€CÝØ×!Ò!Ñ#Ô#ØAÐAÐAñô ð ð Œ=Ð Ð Ð Ð Ð r%   c                 óì  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   g¦  «        j        }t          dd	d
dœ| ¤Ž                     |¦  «        }t          |j        g d¢g¦  «         t          |j        ddgg¦  «         dgdgdgdgdgg}dgdgdgdgd
gg}|                     |¦  «        }t          ||¦  «         | 
                    |¦  «        }dgdgdgdgdgg}t          ||¦  «         dS )zGTest parameters for grouping 'a', and 'd' into the infrequent category.rZ   r   r[   r(  r  rk   r  r   r<  rI   r>  r   r  r   r   r   r¨  Nr®   )r   r   rU   r   r9   r
   rø   r«  r=   r	   rÕ   )rœ  r¬  Úordinalr}  Úexpected_transrß   r²  Úexpected_inverses           r#   Ú,test_ordinal_encoder_infrequent_three_levelsrƒ  V  sR  € õ Œh˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÑIÔIÔK€GÝð Ø*¸"ðð Ø@Fðð ç	‚cˆ'�l„lð õ �wÔ*Ð-AÐ-AÐ-AÐ,BÑCÔCÐCÝ�wÔ5¸¸c¸
°|ÑDÔDÐDàˆe�c�U˜S˜E C 5¨3¨%Ð0€FØ�c˜A˜3   a S¨2¨$Ð/€Nà×Ò Ñ'Ô'€GÝ�G˜^Ñ,Ô,Ð,à×)Ò)¨'Ñ2Ô2€Ià	ÐØ	ˆØ	ˆØ	ÐØ	ˆðÐõ �yÐ"2Ñ3Ô3Ð3Ð3Ð3r%   c                  ó  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   gt          ¬	¦  «        j        } t	          g d
¢gddd¬¦  «                             | ¦  «        }t          |j        g d
¢g¦  «         t          |j        ddgg¦  «         dgdgdgdgdgg}dgdgdgdgdgg}| 	                    |¦  «        }t          ||¦  «         |                     |¦  «        }dgdgdgdgdgg}t          ||¦  «         dS )z¬Test that the order of the categories provided by a user is respected.

    In this case 'c' is encoded as the first category and 'b' is encoded
    as the second one.
    rZ   r   r[   r(  r  rk   r  r   rQ   rÒ  r<  rI   )rS   r�  r.   r?  r  r   r   r   r¨  N)r   r   rŸ   rU   r   r9   r
   rø   r«  r=   r	   rÕ   )r¬  r€  r}  r�  rß   r²  r‚  s          r#   Ú6test_ordinal_encoder_infrequent_three_levels_user_catsr…  }  sh  € õ ŒhØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Åðñ ô äð õ Ø(Ð(Ð(Ð)ØØ*Øð	ñ ô ÷
 
‚cˆ'�l„lð õ �wÔ*Ð-AÐ-AÐ-AÐ,BÑCÔCÐCÝ�wÔ5¸¸c¸
°|ÑDÔDÐDàˆe�c�U˜S˜E C 5¨3¨%Ð0€FØ�c˜A˜3   a S¨2¨$Ð/€Nà×Ò Ñ'Ô'€GÝ�G˜^Ñ,Ô,Ð,à×)Ò)¨'Ñ2Ô2€Ià	ÐØ	ˆØ	ˆØ	ÐØ	ˆðÐõ �yÐ"2Ñ3Ô3Ð3Ð3Ð3r%   c                  óÎ  — t          j        g d¢g d¢f¦  «        } t          d¬¦  «                             | ¦  «        }t	          |j        d         ddg¦  «         |j        d         �J ‚ddgddgg}ddgddgg}|                     |¦  «        }t          ||¦  «         |                     |¦  «        }t          j	        ddgd	dggt          ¬
¦  «        }t	          ||¦  «         dS )zETest when feature 0 has infrequent categories and feature 1 does not.rÕ  rÖ  r   ©r�  r   r   r   Nr¨  rQ   )r   Úcolumn_stackr   r9   r
   r«  r=   r	   rÕ   r   rŸ   )r   r€  r}  r�  rß   r²  r‚  s          r#   Ú%test_ordinal_encoder_infrequent_mixedr‰  ¡  s	  € õ 	ŒÐ4Ð4Ð4Ð6QÐ6QÐ6QÐRÑSÔS€Aå¨AÐ.Ñ.Ô.×2Ò2°1Ñ5Ô5€Gå�wÔ5°aÔ8¸1¸a¸&ÑAÔAÐAØÔ)¨!Ô,Ð4Ð4Ð4à�!ˆf�q˜!�fÐ€FØ˜!�f˜q !˜fÐ%€Nà×Ò Ñ'Ô'€GÝ�G˜^Ñ,Ô,Ð,à×)Ò)¨'Ñ2Ô2€IÝ”x ! Q Ð*>ÀÐ)BÐ CÍ6ÐRÑRÔRÐÝ�yÐ"2Ñ3Ô3Ð3Ð3Ð3r%   c            	      óÎ  — t          j        d¦  «        } |                      g d¢¦  «        }|                      g d¢g d¢|                      dgdz  dgdz  z   d	gz   d
gz   |¬¦  «        dœg d¢¬¦  «        }t          d¬¦  «                             |¦  «        }t          |j        d         ddg¦  «         t          |j        d         g d¢¦  «         t          |j        d         d
d	g¦  «         |                      g d¢g d¢|                      dgd	gz   d
gz   dgz   |¬¦  «        dœg d¢¬¦  «        }g d¢g d¢g d¢g d¢g}| 	                    |¦  «        }t          ||¦  «         dS )zHTest infrequent categories with a pandas DataFrame with multiple dtypes.rY   )ÚbirdrÂ   r  ry  ræ  rè  r  r3   rÂ   r   ry  r‹  rQ   )ré  rS  rš  rê  r‡  r   rZ   r[   r   rì  r   )rZ   r[   rç  r  )rn   r   rk   r   )r   r   r   )r   r   r   )r   r   r   r½  N)r:   ra   ÚCategoricalDtyperb   rò   r   r9   r
   r«  r=   r	   )rc   Úcategorical_dtyper   r€  r}  r�  rß   s          r#   Ú:test_ordinal_encoder_infrequent_multiple_categories_dtypesrŽ  ¶  sÙ  € õ 
Ô	˜XÑ	&Ô	&€BØ×+Ò+Ð,KÐ,KÐ,KÑLÔLÐØ
�Šà@Ð@Ð@Ø1Ð1Ð1ØŸ9š9Ø�˜!‘˜u˜g¨™kÑ)¨W¨IÑ5¸¸Ñ@Ø'ð %ñ ô ð	
ð 	
ð .Ð-Ð-ð 	ñ 
	ô 
	€Aõ ¨AÐ.Ñ.Ô.×2Ò2°1Ñ5Ô5€Gõ �wÔ5°aÔ8¸3À¸*ÑEÔEÐEÝ�wÔ5°aÔ8¸*¸*¸*ÑEÔEÐEÝ�wÔ5°aÔ8¸6À7Ð:KÑLÔLÐLà�\Š\à'Ð'Ð'Ø!�>�>ØŸ9š9Ø�˜7˜)Ñ# v hÑ.°%°Ñ8Ø'ð %ñ ô ð	
ð 	
ð .Ð-Ð-ð ñ 
ô 
€Fð  �i�i   ¨I¨I¨I°y°y°yÐA€Nà×Ò Ñ'Ô'€GÝ�G˜^Ñ,Ô,Ð,Ð,Ð,r%   c                  óÚ  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   t           j        gz   gt          ¬	¦  «        j        } t          d
ddd¬¦  «                             | ¦  «        }t          |j        g d¢g¦  «         t          j        dgdgdgdgdgt           j        ggt          ¬	¦  «        }dgdgdgdgdgdgg}| 	                    |¦  «        }t          ||¦  «         dS )zJCheck behavior of unknown_value and encoded_missing_value with infrequent.rZ   r   r[   r(  r  rk   r  r   rQ   r<  r   )r.   r?  r�  r.  r¢  r£  r   r   N)r   r   rÃ   rŸ   rU   r   r9   r
   r«  r=   r	   )r¬  r€  r}  r�  rß   s        r#   Ú.test_ordinal_encoder_infrequent_custom_mappingr�  æ  s  € åŒhØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8½B¼F¸8Ñ	CÐDÍFðñ ô äð õ Ø*ØØØð	ñ ô ÷
 
‚cˆ'�l„lð õ �wÔ5¸¸¸Ð7HÑIÔIÐIåŒX˜�u˜s˜e c U¨S¨E°C°5½2¼6¸(ÐCÍ6ÐRÑRÔR€FØ�c˜A˜3   a S¨1¨#°¨sÐ3€Nà×Ò Ñ'Ô'€GÝ�G˜^Ñ,Ô,Ð,Ð,Ð,r%   c                 óŽ  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   gt          ¬	¦  «        j        }t	          di | ¤d
ddœ¤Ž                     |¦  «        }t	          d
d¬¦  «                             |¦  «        }dgdgdgdgdgg}t          |                     |¦  «        |                     |¦  «        ¦  «         dS )zMAll categories are considered frequent have same encoding as default encoder.rZ   r   r[   r(  r  rk   r  r   rQ   r<  rI   r>  r£  Nr®   ©r   r   rŸ   rU   r   r9   r	   r=   )rœ  r¬  Úadjusted_encoderÚdefault_encoderr}  s        r#   Ú!test_ordinal_encoder_all_frequentr•  û  s  € õ ŒhØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Åðñ ô äð õ &ð ð Ø
ðØ!4ÀBðð ð ð ç	‚cˆ'�l„lð õ %Ø*¸"ðñ ô ç	‚cˆ'�l„lð ð ˆe�c�U˜S˜E C 5¨3¨%Ð0€FåØ×"Ò" 6Ñ*Ô*¨O×,EÒ,EÀfÑ,MÔ,Mñô ð ð ð r%   éd   c                 ó4  — t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   gt          ¬	¦  «        j        }t	          di | ¤d
ddœ¤Ž                     |¦  «        }dgdgdgdgdgg}t          |                     |¦  «        dgdgdgdgdgg¦  «         dS )zAWhen all categories are infrequent, they are all encoded as zero.rZ   r   r[   r(  r  rk   r  r   rQ   r<  rI   r>  r£  r   Nr®   r’  )rœ  r¬  r?  r}  s       r#   Ú#test_ordinal_encoder_all_infrequentr˜  	  sä   € õ ŒhØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Åðñ ô äð õ ð ð Ø
ðØ!4ÀBðð ð ð ç	‚cˆ'�l„lð ð ˆe�c�U˜S˜E C 5¨3¨%Ð0€FÝ�G×%Ò% fÑ-Ô-°°°a°S¸1¸#À¸sÀRÀDÐ/IÑJÔJÐJÐJÐJr%   c                  ó¢  — t          j        t           j        gdz  dgdz  z   dgdz  z   dgz   dgz   gt          ¬¦  «        j        } t          d	¬
¦  «                             | ¦  «        }t          j        dddt           j        ggt          ¬¦  «        j        }|                     |¦  «        }t          |dgdgdgt           j        gg¦  «         dS )z5Check behavior when missing value appears frequently.r(  r  rk   rÂ   r   ry  ÚdeerrQ   r   r‡  r   r   r   N©	r   r   rÃ   rŸ   rU   r   r9   r=   r	   ©r   r€  r}  rß   s       r#   Ú-test_ordinal_encoder_missing_appears_frequentr�  *	  sÖ   € å
ŒÝ
Œ&ˆ�B‰˜%˜ 2™Ñ	%¨¨°!©Ñ	3°w°iÑ	?À6À(Ñ	JÐKÝð	ñ 	ô 	ô ð õ ¨AÐ.Ñ.Ô.×2Ò2°1Ñ5Ô5€GåŒX˜ ¨­r¬vÐ6Ð7½vÐFÑFÔFÔH€FØ×Ò Ñ'Ô'€GÝ�G˜q˜c A 3¨¨­b¬f¨XÐ6Ñ7Ô7Ð7Ð7Ð7r%   c            	      óÌ  — t          j        t           j        gdgdz  z   dgdz  z   dgz   dgz   dgdz  d	gdz  z   gt          ¬
¦  «        j        } t          d¬¦  «                             | ¦  «        }t          j        ddgdd	gt           j        d	gdd	gddggt          ¬
¦  «        }|                     |¦  «        }t          |ddgddgt           j        dgddgddgg¦  «         dS )z7Check behavior when missing value appears infrequently.r  rk   rÂ   r   ry  rš  ÚredrM  ÚgreenrQ   r3   )rž  r   r   r   Nr›  rœ  s       r#   Ú/test_ordinal_encoder_missing_appears_infrequentr¡  7	  s   € õ
 	ŒåŒVˆH˜�w ‘|Ñ# u g°¡kÑ1°W°IÑ=ÀÀÑHØˆG�a‰K˜7˜) a™-Ñ'ð	
õ ð	ñ 	ô 	ô ð õ ¨1Ð-Ñ-Ô-×1Ò1°!Ñ4Ô4€GåŒXà�eÐØ�WÐÝŒV�WÐØ�GÐØ�EˆNð	
õ ð	ñ 	ô 	€Fð ×Ò Ñ'Ô'€GÝ�G˜q !˜f q¨! f­r¬v°q¨k¸A¸q¸6ÀAÀqÀ6ÐJÑKÔKÐKÐKÐKr%   c                 óô   — t          j        dgdgdggt          ¬¦  «        } | g d¢g¬¦  «        }t          j        t
          ¦  «        5  |                     |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )a!  Check that we raise a `NotFittedError` by calling transform before fit with
    the encoders.

    One could expect that the passing the `categories` argument to the encoder
    would make it stateless. However, `fit` is making a couple of check, such as the
    position of `np.nan`.
    r]   r^   rm  rQ   rl  r´   N)r   r   rŸ   r:   r;   r   r=   )r  r   r?  s      r#   Útest_encoder_not_fittedr£  S	  sÆ   € õ 	Œ�3�%˜#˜  Ð&­fÐ5Ñ5Ô5€AØˆg / / /Ð!2Ð3Ñ3Ô3€GÝ	Œ•~Ñ	&Ô	&ð ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á
A-Á-A1Á4A1c                  óÈ  — t          j        dgdz  dgdz  z   dgz   ¦  «                             dd¦  «        x} } t          j        g d¢¦  «                             dd¦  «        }t          dd	d
d¬¦  «        }|                     | ¦  «         t          dd	d
d¬¦  «        }|                     | ¦  «         d}t          j        t          |¬¦  «        5  |                     |¦  «        }ddd¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  |                     |¦  «        }ddd¦  «         n# 1 swxY w Y   t          |d
         |d
         ¦  «         dS )zo
    Check handle_unknown='warn' behave like 'infrequent_if_exist' and map
    to the infrequent category.
    Ú
restaurantr   ÚshopÚsnackrI   r   )r¥  r§  Úcasinor1   Fr   rÍ   )r.   r   rž  rÌ   r0   z=unknown categories will be encoded as the infrequent categoryr7   N)
r   r   rL   r   r9   r:   r{  r|  r=   r	   )Ú
train_dataÚ	test_dataÚencoder_warnÚencoder_infreqÚwarning_matchÚresult_infreqÚresult_warns          r#   Ú9test_onehotencoder_handle_unknown_warn_maps_to_infrequentr°  b	  sø  € õ !œhØ	ˆ˜Ñ˜f˜X¨™\Ñ)¨W¨IÑ5ñô ç‚gˆb�!�n„nð€J�õ ”Ð:Ð:Ð:Ñ;Ô;×CÒCÀBÈÑJÔJ€Iå Ø¨UÀ!È'ðñ ô €Lð ×Ò�ZÑ Ô Ð å"Ø,ØØØð	ñ ô €Nð ×Ò�zÑ"Ô"Ð"àS€Må	Œ•k¨Ð	7Ñ	7Ô	7ð <ð <Ø&×0Ò0°Ñ;Ô;ˆð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <õ 
Œ•k¨Ð	7Ñ	7Ô	7ð 8ð 8Ø"×,Ò,¨YÑ7Ô7ˆð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ �K ”N M°!Ô$4Ñ5Ô5Ð5Ð5Ð5s$   ÃC3Ã3C7Ã:C7ÄD;Ä;D?ÅD?)„rÖ   rs  Únumpyr   r:   Úscipyr   Úsklearn.exceptionsr   Úsklearn.preprocessingr   r   Úsklearn.utils._missingr   Úsklearn.utils._testingr   r	   r
   Úsklearn.utils.fixesr   r$   r-   ÚmarkÚparametrizerC   rM   r+   Úfloat32r4  rW   re   r™   r    r²   r·   r¼   r   rŸ   rÃ   r  rÊ   rÛ   rà   rå   ré   rï   rô   r  re  Ústr_r  rU   r  r  r  r  r  r  r%  r0  r6  r8  r:  rH  rS  rO  rQ  rT  rY  rj  rq  rv  r  rˆ  r‹  r–  r›  r¯  r³  r¹  r¾  rÀ  rÂ  rÅ  rÊ  rÐ  rÓ  rÙ  rä  rî  rò  rô  r   r  r
  r  r  r"  r%  r'  r+  r-  r1  r4  r6  r8  r;  r@  rC  rG  rK  rN  rS  rY  rT   ra  ri  rm  rw  rz  r~  rƒ  r…  r‰  rŽ  r�  r•  r˜  r�  r¡  r£  r°  r®   r%   r#   ú<module>r¼     s   ðØ 	€	€	€	Ø €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð
 /Ð .Ð .Ð .Ð .Ð .ð@ð @ð @ð.3ð 3ð 3ð „×ÒÐ)Ð+TÐ+TÐ+TÑUÔUð#ð #ñ VÔUð#ð. „×ÒÐ)Ð+TÐ+TÐ+TÑUÔUð&ð &ñ VÔUð&ð$ „×Ò˜¨"¬(°B´JÀÄ
Ð)KÑLÔLØ„×Ò˜¨¬°2´:¸r¼zÐ(JÑKÔKð
;ð 
;ñ LÔKñ MÔLð
;ð „×Ò˜¨"¬(°B´JÀÄ
Ð)KÑLÔLðAð Añ MÔLðAð92ð 92ð 92ðxJð Jð Jð$ð $ð $ð4	9ð 	9ð 	9ð
ð 
ð 
ð „×ÒØà	ˆˆ˜˜˜Ð(ØˆŒ�+�+�+˜z˜z˜zÐ*Ñ+Ô+ØˆŒÐ#Ð#Ð#Ð%6Ð%6Ð%6Ð7¸vÐFÑFÔFØˆŒ�/�/�/ C¨¬°Ð#7Ð8ÀÐGÑGÔGØˆŒ�/�/�/ C¨¨¨u©¬°uÐ#=Ð>ÀfÐMÑMÔMØˆŒÐ"Ð"Ð" O O OÐ4¸FÐCÑCÔCØˆŒ�/�/�/ C¨¬°Ð#6Ð7¸vÐFÑFÔFØˆŒ�/�/�/ C¨¨¨u©¬°tÐ#<Ð=ÀVÐLÑLÔLð	ð		ð 		ð 		ð ñ ô ð.Gð Gñ/ô ð.Gð „×ÒÐ)Ð+TÐ+TÐ+TÑUÔUØ„×Ò˜ U¨D MÑ2Ô2Ø„×Ò˜ $¨ Ñ1Ô1ð,$ð ,$ñ 2Ô1ñ 3Ô2ñ VÔUð,$ð^ „×Ò˜ U¨D MÑ2Ô2Ø„×ÒØàˆbˆ'�A�r�7˜Q ˜GÐ	$ y y y°)°)°)¸Y¸Y¸YÐ&GÐHà�Sˆ\˜E 3˜<¨'°3¨¸%À¸ÐFØˆ_ˆ_˜o˜o˜o¨¨¨Ð?ð	
ðñ	ô 	ð'ð 'ñ	ô 	ñ 3Ô2ð'ð*7ð 7ð 7ð „×Ò˜Ð!=Ð!=Ð!=Ñ>Ô>Ø„×Ò˜Ð'CÐ'CÐ'CÑDÔDð
Cð 
Cñ EÔDñ ?Ô>ð
Cð „×Ò˜ E¨?Ð#;Ñ<Ô<Ø„×Ò˜  1˜v x r¤x°°c°
Ñ';Ô';Ð<Ñ=Ô=ðð ñ >Ô=ñ =Ô<ðð „×Ò˜ E¨?Ð#;Ñ<Ô<ðð ñ =Ô<ðð „×ÒØà�"ˆ+˜˜r�{Ð	# u¨e n°r°dÐ%;¸R¼ZÐHØ	ˆŒ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	# q¨! f¨q¨c ]°B´JÐ?àˆBŒH�s˜E�l S¨% LÐ1¸Ð@Ñ@Ô@Ø�3ˆZ˜%˜Ð!ØŒJð	
ð
 
ˆŒ�C˜�< # u Ð.Ñ	/Ô	/°3¸°*¸u¸gÐ1FÈÌÐPØ	ˆŒ�A�q�6˜BœF A˜;Ð'Ñ	(Ô	(¨A¨r¬v¨;¸¸Ð*<¸b¼jÐIàˆBŒH�s˜BœF�m d¨B¬F ^Ð4¸FÐCÑCÔCØ�4ˆ[˜2œ6˜(Ð#ØŒJð	
ð ˆBŒH�s˜E˜E %™LœLÐ)¨D°%°%¸±,´,Ð+?Ð@ÈÐOÑOÔOØ�4ˆ[˜5˜5 ™<œ<˜.Ð)ØŒJð	
ðð*	ð 	ð 	ð/ ñ  ô  ðB7ð 7ñC ô  ðB7ð" „×ÒÐ)Ð+TÐ+TÐ+TÑUÔUØ„×ÒØð ˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2ØˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2Øˆ_ˆ_ÐØŒJð		
ð ˆBŒH�q˜!�f�X WÐ-Ñ-Ô-Ô/ØˆBŒH�q˜!�f�X WÐ-Ñ-Ô-Ô/ØˆYˆYˆKØŒHð		
ð ˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2ØˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2ØˆRŒX�o�o�oÑ&Ô&Ð'ØŒJð		
ð ˆBŒH�t˜S�k�]¨&Ð1Ñ1Ô1Ô3ØˆBŒH�t˜S�k�]¨&Ð1Ñ1Ô1Ô3ØÐÐÐØð		
ð ˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2ØˆBŒH�s˜BœF�m�_¨FÐ3Ñ3Ô3Ô5Øˆ_ˆ_ÐØð		
ð ˆBŒH�s˜D�k�]¨&Ð1Ñ1Ô1Ô3ØˆBŒH�s˜BœF�m�_¨FÐ3Ñ3Ô3Ô5ØÐÐÐØð		
ð?%ðL	ð 	ð 	ðQ ñ 0ô 0ðbAð Añc0ô 0ñ VÔUðdAð(ð ð ð$ „×Ò˜ ]°NÐ$CÑDÔDð
ð 
ñ EÔDð
ð
?ð 
?ð 
?ð7ð 7ð 7ð „×ÒØà	�6˜6Ð"Ð#Ø	Ð.Ð.Ð.Ð/Ø	ˆˆ˜ Ð(Ð)ðð
 	&Ð%Ð%ð ñ ô ð6ð 6ñô ð6ð&ð &ð &ð0 „×ÒØà	ˆˆ˜˜˜Ð(ØˆŒ�+�+�+˜{˜{˜{Ð+Ñ,Ô,ØˆŒÐ#Ð#Ð#Ð%6Ð%6Ð%6Ð7¸vÐFÑFÔFðð
 	'Ð&Ð&ð ñ ô ð2ð 2ñô ð2ð „×ÒØð ˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2ØˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2Øˆ_ˆ_ÐØŒJð		
ð ˆBŒH�q˜!�f�X WÐ-Ñ-Ô-Ô/ØˆBŒH�q˜!�f�X WÐ-Ñ-Ô-Ô/ØˆYˆYˆKØŒHð		
ð ˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2ØˆBŒH�s˜C�j�\¨Ð0Ñ0Ô0Ô2ØˆRŒX�o�o�oÑ&Ô&Ð'ØŒJð		
ðð( 	3Ð2Ð2ð- ñ ô ð0ð ñ1ô ð0ð"$ð $ð $ð-ð -ð -ð „×Ò˜ 5¨# ,Ñ/Ô/ð-ð -ñ 0Ô/ð-ð6ð 6ð 6ð	ð 	ð 	ðð ð ð8ð 8ð 8ð68ð 8ð 8ð,ð ð ð „×Ò˜ +¨wÐ!7Ñ8Ô8ð)ð )ñ 9Ô8ð)ð4 „×Ò˜¨2¬6°4¸¸¸u¹¼Ð*FÑGÔGð!1ð !1ñ HÔGð!1ðH „×Ò˜ 5¨! *Ð.AÐ.AÐ.AÐ!BÑCÔCðBð Bñ DÔCðBð „×Ò˜ T¨5 M¸À'Ð7JÐÑKÔKØ„×Ò˜ '¨=¨=¨=Ð!9ÀÈÐ?RÐÑSÔSð.ð .ñ TÔSñ LÔKð.ð$ „×Ò˜ ]°NÐ$CÑDÔDð?ð ?ñ EÔDð?ð „×ÒØà	˜1ÐØ	˜"ÐØ	˜$ÐØ¨qÐ1Ð1Ø¨rÐ2Ð2ðñ	ô 	ð „×Ò˜¨Ð1EÐ1EÐ1EÐ0FÐ'GÑHÔHðIð Iñ IÔHñ	ô 	ðIð6 „×Ò˜ +¨w¸¸Ð!>Ñ?Ô?ðCð Cñ @Ô?ðCð. „×Ò˜ 3 %¨#¨ Ñ0Ô0ðð ñ 1Ô0ðð" „×ÒØà	˜1ÐØ	˜!ÐØ	˜!ÐØ	˜$ÐØ	˜$ÐØ¨qÐ1Ð1Ø¨qÐ1Ð1ðñô ðQð Qñô ðQð< „×Ò˜ '¨C¨5Ð!1Ñ2Ô2ð/ð /ñ 3Ô2ð/ð. „×Ò˜ 3 %¨#¨ Ñ0Ô0ðð ñ 1Ô0ððð ð ð0 „×ÒØ !°aÐ8Ð8¸?ÈAÐ:NÐOñô ð;ð ;ñô ð;ð2,ð ,ð ,ð6!,ð !,ð !,ðH;ð ;ð ;ð$X,ð X,ð X,ðv>,ð >,ð >,ðB „×Ò˜°bÈAÐ$NÐ$NÐ#OÑPÔPð
$ð 
$ñ QÔPð
$ð „×Ò˜°aÈ1Ð$MÐ$MÐ#NÑOÔOð)ð )ñ PÔOð)ð  „×ÒØ!Ð#MÐ#MÐ#Mñô ð „×Ò˜Ð'BÐ'BÐ'BÑCÔCð*ð *ñ DÔCñô ð*ð6ð ð ð* „×Ò˜¨2¬6°4¨.Ñ9Ô9ðGð Gñ :Ô9ðGð,ð ,ð ,ð. „×ÒÐ)Ð+TÐ+TÐ+TÑUÔUØ„×Ò˜¨°(Ð(;Ñ<Ô<ð,ð ,ñ =Ô<ñ VÔUð,ð< „×ÒÐ)Ð+TÐ+TÐ+TÑUÔUð)Bð )Bñ VÔUð)BðX „×ÒÐ)Ð+TÐ+TÐ+TÑUÔUð(Eð (Eñ VÔUð(EðV „×ÒÐ)Ð+TÐ+TÐ+TÑUÔUð)ð )ñ VÔUð)ðBð ð ð(ð ð ð „×ÒÐ0°2´6¸2°,Ñ?Ô?ð"ð "ñ @Ô?ð"ð" „×Ò˜¨°(Ð(;Ñ<Ô<Ø„×ÒÐ0°2´6¸2°,Ñ?Ô?ð%ð %ñ @Ô?ñ =Ô<ð%ð> „×ÒØð �”˜3 ¤˜-˜°Ð7Ñ7Ô7Ô9Ø�”˜3 ˜*˜¨VÐ4Ñ4Ô4Ô6Ø�”˜3  R¤VÐ,°FÐ;Ñ;Ô;Ð<Ø”
ð	ð �”˜3 ¤˜-˜°Ð7Ñ7Ô7Ô9Ø�”˜3 ˜*˜¨VÐ4Ñ4Ô4Ô6Ø�”˜3  R¤VÐ,°FÐ;Ñ;Ô;Ð<Ø”
ð	ð �”˜3 ¤˜-˜°´
Ð;Ñ;Ô;Ô=Ø�”˜3˜%˜¨¬
Ð3Ñ3Ô3Ô5Ø�”˜3  R¤VÐ,Ñ-Ô-Ð.Ø”
ð	ð%ð4	ð 	ð 	ð9 ñ !ô !ðDð ñE!ô !ðDð$ „×Ò˜ ]°NÐ$CÑDÔDðð ñ EÔDðð „×ÒØ!ð ˆBŒH�s˜BœF CÐ(Ð)Ñ*Ô*Ô,ØˆBŒH�s˜BœF CÐ(Ð)Ñ*Ô*Ô,ØˆBŒH�s�e�WÑÔð	
ð ˆBŒH�o�o�oÐ&Ñ'Ô'Ô)ØˆBŒH�o�o�oÐ&Ñ'Ô'Ô)ØˆBŒH�r”v�h�ZÑ Ô ð	
ð ˆBŒH�s˜BœF CÐ(Ð)°Ð8Ñ8Ô8Ô:ØˆBŒH�s˜BœF CÐ(Ð)Ñ*Ô*Ô,ØˆBŒH�s�e�W FÐ+Ñ+Ô+ð	
ð ˆBŒH�o�o�oÐ&¨fÐ5Ñ5Ô5Ô7ØˆBŒH�o�o�oÐ&Ñ'Ô'Ô)ØˆBŒH�r”v�h�Z vÐ.Ñ.Ô.ð	
ð!ñô ð24ð 4ñ3ô ð24ð „×Ò˜¨.Ñ9Ô9ð2ð 2ñ :Ô9ð2ð,ð ð ð" „×ÒØà
�ˆˆØˆŒ�4˜�+� cÐ*Ñ*Ô*ØˆŒ�4˜�+� cÐ*Ñ*Ô*ðñô ð „×ÒØà
ˆsˆˆØˆŒ�3˜�*� SÐ)Ñ)Ô)ØˆŒ�3˜�*� SÐ)Ñ)Ô)ðñô ð	(ð 	(ñô ñô ð 	(ð6ð 6ð 6ð(	1ð 	1ð 	1ð'ð 'ð 'ð< „×Ò˜¨¨u¨Ñ6Ô6ðð ñ 7Ô6ðð2 „×ÒØ:ð
 ˆBŒH�s�e˜c˜U�^¨6Ð2Ñ2Ô2ØˆS�2”6�(˜RœV˜HÐ%ØˆBŒJ˜˜ ˜v¨ vÐ.°fÐ=Ñ=Ô=ð	
ð ˆBŒH�r”v�h  ¨ uÐ-°VÐ<Ñ<Ô<ØˆS�2”6�(˜RœV˜HÐ%ØˆBŒJ˜˜ ¤˜x¨"¬&¨Ð2¸&ÐAÑAÔAð	
ðñô ð&'ð 'ñ'ô ð&'ðBMð Mð Mð.Mð Mð Mð /ð /ð /ð"	$ð 	$ð 	$ð!!ð !!ð !!ðH „×ÒØà	˜1ÐØ	˜!ÐØ	˜!ÐØ	˜$ÐØ	˜$ÐØ¨qÐ1Ð1Ø¨qÐ1Ð1ðñô ð4ð 4ñô ð4ð6!4ð !4ð !4ðH4ð 4ð 4ð*--ð --ð --ð`-ð -ð -ð* „×ÒØà	˜1ÐØ	˜!Ððñô ðð ñô ðð( „×ÒØà	˜1ÐØ	˜#Ððñô ð
Kð 
Kñô ð
Kð
8ð 
8ð 
8ðLð Lð Lð8 „×Ò˜ ]°NÐ$CÑDÔDðð ñ EÔDðð!6ð !6ð !6ð !6ð !6r%   