§
    ¨éUge3 ã                   ór$  — 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ej                             d	d
dg¦  «        d„ ¦   «         Zej                             d	d
dg¦  «        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	d
dg¦  «        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j.        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j/        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„ ¦   «         Z0ej                             d	d
dg¦  «        ej                             dP ej"        d d8gge#¬¦  «        j1         ej"        d dQgge#¬¦  «        j1        g dR¢gej-        f ej"        d2d0ggdS¬¦  «        j1         ej"        d2dTggdS¬¦  «        j1        g dU¢gej2        f ej"        d d8gge#¬¦  «        j1         ej"        d dQgge#¬¦  «        j1         ej"        g dR¢¦  «        gej-        f ej"        dd gge#¬¦  «        j1         ej"        dd8gge#¬¦  «        j1        g dV¢ge#f ej"        d d8gge#¬¦  «        j1         ej"        d ej$        gge#¬¦  «        j1        g dW¢ge#f ej"        d dgge#¬¦  «        j1         ej"        d ej$        gge#¬¦  «        j1        g dX¢ge#fgg dY¢¬'¦  «        dZ„ ¦   «         ¦   «         Z3d[„ Z4ej                             d\e	e
g¦  «        d]„ ¦   «         Z5d^„ Z6d_„ Z7ej                             d`d-dadbgfdcg dd¢fg de¢dfdggfgg dh¢¬'¦  «        di„ ¦   «         Z8dj„ Z9e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#¬¦  «        j1         ej"        d dQgge#¬¦  «        j1        g dR¢gej-        f ej"        d2d0ggdS¬¦  «        j1         ej"        d2dTggdS¬¦  «        j1        g dU¢gej2        f ej"        d d8gge#¬¦  «        j1         ej"        d dQgge#¬¦  «        j1         ej"        g dR¢¦  «        gej-        fgg do¢¬'¦  «        dp„ ¦   «         Z;dq„ Z<dr„ Z=ej                             dse%e>g¦  «        dt„ ¦   «         Z?du„ Z@dv„ ZAdw„ ZBdx„ ZCdy„ ZDdz„ ZEej                             d{ej$        d e%d"¦  «        g¦  «        d|„ ¦   «         ZFej                             d,dIdKgg d}¢g¦  «        d~„ ¦   «         ZGej                             dd+d*gd€d�g¬'¦  «        ej                             d,d-g d‚¢gd-dƒg¬'¦  «        d„„ ¦   «         ¦   «         ZHej                             d\e	e
g¦  «        d…„ ¦   «         ZIej                             d†d‡d0idˆd‰idˆdŠid0d‹dŒœdTd�dŒœg¦  «        ej                             dŽd�g d�¢gg¦  «        d‘„ ¦   «         ¦   «         ZJej                             d,dcd-d8gg¦  «        d’„ ¦   «         ZKej                             d,d gdQgg¦  «        d“„ ¦   «         ZLej                             d†d‡dKidˆd‹idˆd”idˆd•idˆd–idKd—dŒœdTd‹dŒœg¦  «        d˜„ ¦   «         ZMej                             d,d-d8gg¦  «        d™„ ¦   «         ZNej                             d,d gdQgg¦  «        dš„ ¦   «         ZOd›„ ZPej                             d†dKd2dŒœdˆdTig¦  «        dœ„ ¦   «         ZQd�„ ZRdž„ ZSdŸ„ ZTd „ ZUd¡„ ZVej                             d†d¢d2d£œg¦  «        d¤„ ¦   «         ZWej                             d†d0dKd£œg¦  «        d¥„ ¦   «         ZXej                             d¦g d§¢¦  «        ej                             d¨g d©¢¦  «        dª„ ¦   «         ¦   «         ZYd«„ ZZej                             d{ej$        dg¦  «        d¬„ ¦   «         Z[d­„ Z\ej                             d	dd
g¦  «        ej                             d®d¯d°g¦  «        d±„ ¦   «         ¦   «         Z]ej                             d	d
dg¦  «        d²„ ¦   «         Z^ej                             d	d
dg¦  «        d³„ ¦   «         Z_ej                             d	d
dg¦  «        d´„ ¦   «         Z`dµ„ Zad¶„ Zbej                             d·ej$        d¸g¦  «        d¹„ ¦   «         Zcej                             d®d¯d°g¦  «        ej                             d·ej$        d¸g¦  «        dº„ ¦   «         ¦   «         Zdej                             dP ej"        d ej$        gge#¬¦  «        j1         ej"        d d8gge#¬¦  «        j1         ej"        d dQej$        ge#¬¦  «        gej-        f ej"        d ej$        gge#¬¦  «        j1         ej"        d d8gge#¬¦  «        j1         ej"        d dQej$        ge#¬¦  «        gej-        f ej"        d»ej$        ggej        ¬¦  «        j1         ej"        dDggej        ¬¦  «        j1         ej"        d»dEej$        g¦  «        gej        fgg d¼¢¬'¦  «        d½„ ¦   «         Zeej                             d\e	e
g¦  «        d¾„ ¦   «         Zfej                             d¿ ej"        dÀej$        dDgg¦  «        j1         ej"        dÁej$        dÀgg¦  «        j1         ej"        dEgg¦  «        f ej"        g dÂ¢g¦  «        j1         ej"        g dÃ¢g¦  «        j1         ej"        ej$        gg¦  «        f ej"        dÄej$        d8gge#¬¦  «        j1         ej"        dÀej$        dÁgg¦  «        j1         ej"        dQgge#¬¦  «        f ej"        g dÅ¢ge#¬¦  «        j1         ej"        g dÆ¢g¦  «        j1         ej"        ej$        gge#¬¦  «        fg¦  «        dÇ„ ¦   «         Zgej                             dÈe¦  «        dÉ„ ¦   «         ZhdÊ„ Zie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Ð„ ¦   «         ¦   «         ZjdÑ„ ZkdÒ„ ZldÓ„ Zmej                             dÔd+d*g¦  «        dÕ„ ¦   «         Znej                             dÖ ej"        d gd×gge#¬¦  «        d gej$        gej$        gg ejo        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jo        d×gej$        gej$        gge#¬¦  «        fg¦  «        dØ„ ¦   «         ZpdÙ„ ZqdÚ„ ZrdÛ„ ZsdÜ„ ZtdÝ„ Zuej                             d†d‡dKidˆd‹idˆd”idˆd•idˆd–idKd—dŒœdTd‹dŒœg¦  «        dÞ„ ¦   «         Zvdß„ Zwdà„ Zxdá„ Zydâ„ Zze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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        úh/var/www/surfInsights/venv3-11/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ñô ð õ �~×-Ò-Ñ/Ô/°Ñ?Ô?Ð?Ð?Ð?ó    Úhandle_unknownÚignoreÚinfrequent_if_existc                 ó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_unknownr:   )   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   Ú55555r=   r,   )r   r   r   r   ©r   r   r   r   )	r   r   Úreshaper   r0   r5   r
   r4   r   r6   s        r#   Ú+test_one_hot_encoder_handle_unknown_stringsrD   A   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   ©ÚdtypeÚauto)Ú
categoriesrI   F)rK   rI   r   )	r   ÚasarrayÚTr   r
   r   r   r0   r4   )rF   rE   r   Ú
X_expectedr8   s        r#   Útest_one_hot_encoder_dtyperO   T   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   rH   F)rI   r   )r1   ÚimportorskipÚ	DataFramer   r   r   r
   r   r   r0   r4   )rE   ÚpdÚX_dfrN   r8   s        r#   Ú!test_one_hot_encoder_dtype_pandasr]   c   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é)   r`   r   é
   )r_   é3   Úboyé   r   )r_   é[   r`   é   é   )Ú	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 lengthr.   ry   rz   )r   r0   Úget_feature_names_outr
   r1   r2   r3   )Úencr   Úfeature_namesÚfeature_names2s       r#   Ú"test_one_hot_encoder_feature_namesr‘   s   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Údat2rH   u	   x0_câ�¤t1Úx0_dat2u   nðŸ‘�me©Úinput_featuresu   nðŸ‘�me_câ�¤t1u   nðŸ‘�me_dat2)r   r   r   ÚobjectrM   r0   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ÚNoneNrH   z	x0_'None'Úx0_NonerR   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.r.   )r   r   r   r—   rM   r0   r�   r
   r1   r2   Ú	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   ©rK   rK   )r   r*   )r   r   r   r   r*   r   )	r   r   rM   r   Ú
set_paramsÚ
get_paramsr   r   r   )r   r8   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 )NrJ   r¬   F©rK   r   Úcsr)r   r   r	   r   r   r   Úformat)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¹   )rc   r   r¹   )r   r   r¹   )rS   rU   Úcat)rR   rV   r¼   rH   )rS   r   r¼   rR   r¼   Únan)Nr   r¼   )rR   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   rJ   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Æ   rH   r   r¹   r   r   rJ   )r   rK   rÆ   r»   r¸   )é6   r¹   é8   )r   r&   rK   )r   r   rÊ   rË   )r   rK   r&   ©r   r   r   ©r   r   r   ú)Shape of the passed X data is not correctr.   )r   r   r   r   r—   r
   Úinverse_transformÚreÚescaper1   r2   r3   )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   ry   rz   r{   rS   ©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_unknow="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   r.   N)r   r0   r   r1   r2   r3   rÏ   )r   ÚX_transrÅ   rŽ   rÔ   s        r#   Ú?test_one_hot_encoder_inverse_transform_raise_error_with_unknownrÚ   @  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 )
Nr_   r   ra   r   r   rH   Ú	if_binaryF©rÆ   r   )r   r   r—   r   r   r
   rÏ   )r   ÚoherÒ   s      r#   Ú&test_one_hot_encoder_inverse_if_binaryrß   `  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 )
Nr_   r   ra   r   r   rH   FrÝ   ©rÆ   )r   r   r—   r   r0   r4   r�   r­   r
   rÏ   r	   )rÆ   rà   r   rÞ   rÒ   r�   s         r#   Útest_one_hot_encoder_drop_resetrã   g  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%   Úmethodr0   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 insteadr.   )r   r1   r2   r3   Úgetattr)r   rä   r8   rÔ   s       r#   Útest_X_is_not_1Dré   v  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 )NrQ   )é   r   r*   rë   z+Expected a 2-dimensional container but got z	 instead.r.   )r1   rY   ÚSeriesr   Útyper2   r3   rè   )rä   r[   r   r8   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   rU   rV   )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 )Nr@   rJ   r¬   )r   r0   Ú
isinstanceÚcategories_ÚlistÚzipÚtolistr   r   Ú
issubdtyperI   )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©rR   rS   ÚcÚint64r*   ©r   r   r   )NrR   Úz)rR   rS   r  )rR   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   r-   r.   ©rK   r&   )r   r   r   )r   r   r   r
   r   r   ró   rK   rò   rõ   rI   r1   r2   r3   r0   r4   )r   r7   Ú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 )NrR   rS   rH   )rS   rR   rÿ   r¬   r  r  r   r   r   )r   r   r   z%Unsorted categories are not supportedr.   )r   r   r—   rM   r   r
   r0   r4   r   r   rò   rõ   rö   rI   Úobject_r1   r2   r3   )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¬   rH   zNan should be the last elementr.   N)	r   r   r½   r—   rM   r1   r2   r3   r0   ©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 )NrR   rS   r   r   rH   rþ   )r   r   r   r¬   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r—   rM   r   r
   r   r   rò   rõ   rö   rI   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 )	NrQ   rR   rS   r   r   rT   rW   rX   )r1   rY   rZ   r¶   r	   )r[   r\   rÃ   s      r#   Útest_one_hot_encoder_pandasr  0  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   rS   Úx0_bÚx2_a)rÇ   ÚbinaryÚmanualc                 ó¨   — g d¢g d¢g}t          | ¬¦  «        }|                     |¦  «         |                     ¦   «         }t          ||¦  «         d S )N)rÿ   r   rR   )rS   r   rS   râ   )r   r0   r�   r
   )rÆ   Úexpected_namesr   rÞ   r�   s        r#   Ú'test_one_hot_encoder_feature_names_dropr  9  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 )Nrc   Úyesé   Únori   )r   r   r   r   rB   )r   r   r   r   r   rÜ   FrÝ   ÚtruerR   Úfalser   r   )r   r   r   r   r
   Ú	drop_idx_r	   )r   ÚexpectedÚexpected_drop_idxrÞ   Úresults        r#   Ú*test_one_hot_encoder_drop_equals_if_binaryr*  K  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%   )rc   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   rH   Úfloat64)r   r   r   r
   r   Úastyper  s      r#   Útest_ordinal_encoderr0  c  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   r-   r.   )r   r   r   r
   r   ró   rK   rò   rõ   rI   r1   r2   r3   r0   )r   r7   r  rø   rŽ   rÓ   s         r#   Ú)test_ordinal_encoder_specified_categoriesr2  t  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·   rH   )r   r   r   r   rW   rÎ   r.   )r   r   r   r   r—   r
   rÏ   rÐ   rÑ   r1   r2   r3   )r   rŽ   rÒ   rÓ   rÔ   s        r#   Útest_ordinal_encoder_inverser4  �  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_valuerR   ÚxrS   Úyrÿ   r  rH   ÚxyÚblar   r   r   r   )r   r   r   r—   r0   r4   r
   rÏ   )rŽ   ÚX_fitrÙ   ÚX_trans_encrÓ   ÚX_trans_invÚinv_exps          r#   Ú+test_ordinal_encoder_handle_unknowns_stringrB  «  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%   rI   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 )Nr6  éüÿÿr8  r   é   r   é   r   é	   rH   rf   é   r   r   )r   r   r   r0   r4   r
   rÏ   r—   )rI   rŽ   r>  rÙ   r?  rÓ   r@  rA  s           r#   Ú,test_ordinal_encoder_handle_unknowns_numericrI  º  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 )Nr6  r8  r   r   r   r*   r   )r   r   r½   r   r0   r4   r
   )rŽ   r>  rÙ   s      r#   Ú(test_ordinal_encoder_handle_unknowns_nanrK  Ê  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 )Nr6  )r&   r9  rI   r   r   r   z'dtype parameter should be a float dtyper.   )	r   r   r½   Úintr   r1   r2   r3   r0   )rŽ   r>  s     r#   Ú8test_ordinal_encoder_handle_unknowns_nan_non_float_dtyperN  Õ  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ÚHighrQ  rP  rH   )rP  rQ  rR  r¬   z*Shape mismatch: if categories is an array,r.   )	r   r   r—   rM   r   r1   r2   r3   r0   )r   r  rŽ   rÔ   s       r#   Ú+test_ordinal_encoder_raise_categories_shaperS  á  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 )NrJ   r¬   )r   r   r   r   )r   r   r   r   r.  rH   r   r   r   r*   r   rR   rS   rÿ   rý   ó   aó   bó   có   dr—   c                 óF   •— g | ]}‰j         |         j        ‰j        k    ‘ŒS r¦   ©rò   rI   )Ú.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ò   rI   Úinteger©r[  r\  rŽ   s     €r#   r]  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—   rZ  r`  s     €r#   r]  z'test_encoder_dtypes.<locals>.<listcomp>  s(   ø€ ÐGÐGÐG¸�” Ô"Ô(¨HÒ4ÐGÐGÐGr%   )	r   r   r   r0   ÚallÚranger
   r4   r   )rÓ   r   rŽ   s    @@r#   Útest_encoder_dtypesrd  ë  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œ¦  «        }|d         j        |d         j        |d         j        gŠ‰                     |¦  «         t          ˆˆfd„t          d
¦  «        D ¦   «         ¦  «        sJ ‚t          ‰ 
                    |¦  «                             ¦   «         |¦  «         d S )NrQ   rJ   r¬   )r   r   r   r   r   r   )r   r   r   r   r   r   r.  rH   r   r   r   r*   r   rë   ©rU   rV   ÚCr   c                 ó<   •— g | ]}‰j         |         j        d k    ‘ŒS )r   rZ  r`  s     €r#   r]  z.test_encoder_dtypes_pandas.<locals>.<listcomp>  s(   ø€ ÐFÐFÐF¸�” Ô"Ô(¨GÒ3ÐFÐFÐFr%   rR   rS   rå   ræ   rU   rV   rg  c                 óH   •— g | ]}‰j         |         j        ‰|         k    ‘ŒS r¦   rZ  )r[  r\  ÚX_typerŽ   s     €€r#   r]  z.test_encoder_dtypes_pandas.<locals>.<listcomp>  s,   ø€ ÐHÐHÐH¸!�” Ô"Ô(¨F°1¬IÒ5ÐHÐHÐHr%   )r1   rY   r   r   r   rZ   r0   rb  rc  r
   r4   r   rI   )r[   rÓ   r   rj  rŽ   s      @@r#   Útest_encoder_dtypes_pandasrk    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Ø�ŒfŒl˜A˜cœFœL¨!¨C¬&¬,Ð7€FØ‡G‚GˆA�J„J€JÝÐHÐHÐHÐHÐH½uÀQ¹x¼xÐHÑHÔHÑIÔIÐIÐIÐIÝ�s—}’} QÑ'Ô'×/Ò/Ñ1Ô1°3Ñ7Ô7Ð7Ð7Ð7r%   c                  ó|   — t          ¦   «         } ddgddgg}t          j                             | j        |¦  «         d S )Nr_   r   ra   r   )r   r   ÚtestingÚassert_no_warningsr   )rŽ   r   s     r#   Útest_one_hot_encoder_warningro    s>   € Ý
‰/Œ/€CØ
�!ˆ�x �mÐ$€AÝ„J×!Ò! #Ô"3°QÑ7Ô7Ð7Ð7Ð7r%   Ú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¸   rf   r   rË   râ   )r»   rf   r   r¹   rR   )r¸   rf   r   r¹   rR   )r   r   r   r   r   )r   r   r   r   r   r×   c                 ó$   — g | ]\  }}||         ‘ŒS r¦   r¦   )r[  r¼   rž   s      r#   r]  z4test_one_hot_encoder_drop_manual.<locals>.<listcomp>0  s-   € ð ð ð Ù%˜˜gˆˆGŒðð ð r%   rH   r@   )r@   r@   )r   r   r   r
   rÆ   rô   rò   r&  rÏ   r   r   r—   r   )	rp  Úcats_to_droprŽ   r   ÚtransrÓ   Údropped_catsÚX_inv_transÚX_arrays	            r#   Ú test_one_hot_encoder_drop_manualrx  "  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   rb   rR   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 numberr.   rº   r·   )r¸   r   é;   )r   r1   r2   r3   r0   )rÆ   rŽ   r©   s      r#   Útest_invalid_drop_lengthr{  G  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©rR   r   rS   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   rR   r~  rÇ   r   )r   r0   r
   rò   r&  rô   rM  rñ   r   ÚndarrayrI   r—   )r|  rÆ   Úohe_baseÚohe_testr   Údrop_catÚdrop_idxÚcat_lists           r#   Útest_categoriesr†  O  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                 óR   — d | ¦   «                               ¦   «         d         v sJ ‚d S )NÚcategoricalÚX_types)Ú	_get_tags)r  s    r#   Ú"test_encoders_has_categorical_tagsr‹  c  s0   € à˜G˜G™IœI×/Ò/Ñ1Ô1°)Ô<Ð<Ð<Ð<Ð<Ð<Ð<r%   ÚkwargsÚmax_categoriesÚmin_frequencyé   g�Âõ(\�Ò?rë   )r�  rŽ  rf   rK   rJ   ©rR   rS   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.rR   r   rS   r"  rÿ   rc   rý   r   r(   F)rK   r&   r   ©rR   rÿ   rý   Úer   r   c                 ó   — g | ]}|g‘ŒS r¦   r¦   ©r[  Úcols     r#   r]  z2test_ohe_infrequent_two_levels.<locals>.<listcomp>†  ó   € ÐHÐHÐH˜c�S�EÐHÐHÐHr%   Úinfrequent_sklearnr*   r  Úx0_infrequent_sklearnNr¦   ©r   r   rM   r   r0   r
   Úinfrequent_categories_r4   r	   rÏ   r�   )
rŒ  rK   ÚX_trainrÞ   ÚX_testr'  rÙ   Úexpected_invÚX_invr�   s
             r#   Útest_ohe_infrequent_two_levelsr   h  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.rR   r   rS   r"  rÿ   rc   rý   r   r(   Fr   ©r&   r   r�  rÆ   r   r   r™  r˜  N)r   r   rM   r   r0   rò   r&  r4   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.rR   r   rS   r"  rÿ   rc   rý   r   r(   Fr   r¢  úUnable to drop category r   ú( from feature 0 because it is infrequentr.   N©r   r   rM   r   r1   r2   r3   r0   ©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rG  g¸…ëQ¸Î?g{®GázÄ?rF  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.rR   r   rS   r"  rÿ   rc   rý   r   r(   F©r&   r   r“  r-  ©r   r   r   r,  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.rR   r   rS   r"  rÿ   rc   rý   r   r(   Fr¢  r   r   r'   r,   r-   r.   r“  N)r   r   rM   r   r0   r	   r4   r­   r1   ÚwarnsÚUserWarning)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.rR   r   rS   r"  rÿ   rc   rý   r   r(   Fr¢  r¦  r   r§  r.   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.rR   r   rS   r"  rÿ   rc   rý   r   r+   F)r&   r   r�  r-  r®  r,  Úbadz.Found unknown categories \['bad'\] in column 0r.   N)r   r   rM   r   r0   r
   r›  r4   r	   r1   r2   r3   )rœ  rÞ   r�  r'  rÙ   rÔ   s         r#   Ú(test_ohe_infrequent_handle_unknown_errorr¸  
  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.rR   r   r“  ri   rH   ©rÿ   rý   rR   rS   Fr(   ©rK   r   r&   rS   rÿ   rý   r   r   rÇ   rÜ   râ   Nr¦   )	r   r   r—   rM   r   r0   r4   r	   r­   )rŒ  rœ  rÞ   r�  r'  rÙ   ÚdropsrÆ   s           r#   Ú5test_ohe_infrequent_two_levels_user_cats_one_frequentr½  "  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.rR   r   rS   r"  rÿ   rc   rý   r   rH   rº  Fr(   r   ©rK   r   r&   r�  )rÿ   rý   rR   r“  r   r   c                 ó   — g | ]}|g‘ŒS r¦   r¦   r•  s     r#   r]  z<test_ohe_infrequent_two_levels_user_cats.<locals>.<listcomp>T  r—  r%   r˜  r*   N©r   r   r—   rM   r   r0   r
   r›  r4   r	   rÏ   ©rœ  rÞ   r�  r'  rÙ   rž  rŸ  s          r#   Ú(test_ohe_infrequent_two_levels_user_catsrÃ  >  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.rR   r   rS   r"  rÿ   rc   rý   r   rH   ©rÿ   rý   rS   rR   Fr(   r¿  r“  r,  r®  r-  r˜  NrÁ  rÂ  s          r#   Ú*test_ohe_infrequent_three_levels_user_catsrÆ  Y  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   r0   r4   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   rc   r   r   r   )	r   r   r   r   r   r   r   r   r   rJ   r   r(   ©rK   r�  r&   r   r   r   rc   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   )r*   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r˜  N)r˜  r   NrH   r+   r-   r.   )r   r   r   )r   rc   r   )r   r   r   r   r   r   r   r   )r˜  r˜  r   )r   r˜  r   )r   rË  r   r   r   r
   r›  r�   r	   r4   rÏ   r   r—   r0   r1   r2   r3   )	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.rQ   ©	rR   Úfrÿ   rÚ  rÚ  rR   rÿ   rS   rS   ©	r   r   r   rc   rc   rf   r   r   r   )ÚstrrM  rÜ  rM  ©ÚcolumnsrJ   r   r(   rÎ  r   rR   rS   r   ©r   r   rf   )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Ú  é   rf   r˜  rH   rÿ   r   N)r1   rY   rZ   r   r   r   r
   r›  r	   r4   rÏ   r   r   r—   )	r[   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%   rh   )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.rR   r   rS   r"  rÿ   rc   rý   r   r(   Fr­  r   Nr¦   )r   r   rM   r   r0   r4   r	   ©rŒ  rœ  rÞ   rÙ   s       r#   Ú$test_ohe_infrequent_one_level_errorsrå  +  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   rH   rº  Fr(   r»  rR   r   Nr¦   )r   r   r—   rM   r   r0   r4   r	   rä  s       r#   Ú5test_ohe_infrequent_user_cats_unknown_training_errorsrç  9  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   Ú	dataframec                 ó:  — 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
    rS   rR   rH   Fr±   r   r   r¬   N)	r   r   r   r0   r   r4   r	   r   r
   )
rF   Úcategory_dtyperï  r   rK   rÞ   r�  rÙ   r'  Úoes
             r#   Útest_encoders_string_categoriesrô  J  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.
    rS   rR   ÚUrH   ÚSFr±   zjIn column 0, the predefined categories have type 'bytes' which is incompatible with values of type 'str_'.r.   N)	r   r   r   rÐ   rÑ   r1   r2   r3   r0   )r   rK   rÞ   rÔ   s       r#   Ú$test_mixed_string_bytes_categoricalsrø  i  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 )
NrR   rS   rH   Fr'   ©r   r&   Úx0_ar  Úx0_)r   r   r—   rM   r   r0   r�   r
   )rp  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 )NrQ   )Údogr¼   Nr¼   r   r   r*   rH   )Ú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   )	r1   rY   rZ   r   r   r½   Úfloatr¶   r	   )r[   Ú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 )NrQ   r  r  rÿ   rR   rS   rŸ   rH   )r   r   r   r   )r   r   r   r   )r   r   r   r   rÊ  Frú  r   r   r@   rþ   )r1   rY   ÚNAr   r½   rZ   rì   r   r   r   r	   Úlenrò   r
   Úisnan)r  r&   r[   Ú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                 ó2  — 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}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.rR   r   rS   r   r   rÇ   F©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 zerosr.   NrH   ©r   r   r   r   r	   r1   r±  r²  r4   rÏ   r
   r—   ©r&   r   rÞ   rÙ   rN   r�  Úwarn_msgrŸ  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ó   ÂB;Â;B?ÃB?c                 ó2  — 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}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.rR   r   rS   r   r   rÜ   Fr  rÊ  rÂ   rW   rÿ   r   )r   r   r   r   r  r.   NrH   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                 ó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 )znCheck drop='first' and handle_unknown='ignore'/'infrequent_if_exist'
    during fit with categories passed in.rR   r   rS   r   r   rÇ   F)rÆ   r   r&   rK   rÿ   zqFound unknown categories in columns \[0\] during transform. These unknown categories will be encoded as all zerosr.   N)	r   r0   r   r   r1   r±  r²  r4   r	   )r&   r   rÞ   r�  rN   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ð	Að õ 
Œ•k¨Ð	2Ñ	2Ô	2ð (ð (Ø—-’- Ñ'Ô'ˆð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å�G˜ZÑ(Ô(Ð(Ð(Ð(s   Á3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.rQ   r  )r  rS   rS   )rR   rS   rR   rS   rÝ  Tr   ©r4   zxPandas output does not support sparse data. Set sparse_output=False to output pandas dataframes or disable Pandas outputr.   N)
r1   rY   rZ   r   Ú
set_outputr2   r3   r   r0   r4   )r[   r  rÞ   rÔ   s       r#   Ú'test_ohe_more_informative_error_messager  $  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   rH   zdThere are missing values in features \[0\]. For OrdinalEncoder to encode missing values with dtype: r.   N)
r   r   r½   rM   r   Úint32r1   r2   r3   r0   )r   ró  rÔ   s      r#   ÚBtest_ordinal_encoder_passthrough_missing_values_float_errors_dtyper"  8  sÙ   € õ 	Œ•2”6˜3  SÐ)Ð*Ñ+Ô+Ô-€AÝ	�bœhÐ	'Ñ	'Ô	'€Bð	;Ý02´ð	;ð 	;ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø
�Šˆq‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r  Úencoded_missing_valuer7  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   rH   ©r#  r   r   r   N)r   r   r½   r.  rM   r   r0   r  rò   r	   r4   rÏ   )r#  r   ró  rÙ   r£  s        r#   Ú5test_ordinal_encoder_passthrough_missing_values_floatr&  F  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.rQ   r  r  rÿ   rR   rS   rŸ   rH   r%  r   r   Nr   rþ   r@   ç       @r   r   )r   r   r   rÌ   )r1   rY   r
  r   r½   rZ   rì   r   r0   r  rò   r
   r  r4   r	   rÏ   r   )r  r#  r[   r  r  ró  r  r£  s           r#   Ú=test_ordinal_encoder_missing_value_support_pandas_categoricalr)  X  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%   r(  )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   r-   r.   N)r   r   r   r½   r
   r   rò   rI   r1   r2   r3   r0   )r   r7   r  rø   ró  rÓ   s         r#   Ú=test_ordinal_encoder_specified_categories_missing_passthroughr+  y  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
    )rR   rS   rR   rH   r¬   rR   rS   z5the predefined categories contain duplicate elements.r.   N)r   r   r—   rM   r1   r2   r3   r0   r  s       r#   Ú+test_encoder_duplicate_specified_categoriesr-  ­  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   r(  r   rÿ   )rÿ   rR   rS   )r(  r   r   c                 ó¼   — t          dd¬¦  «        }|                     | ¦  «        }t          ||¦  «         t          |                     |¦  «        dgg¦  «         dS )z>Test the interaction between missing values and handle_unknownr6  r@   r8  g      ð¿N)r   r   r	   r4   )r   Úexpected_X_transr�  ró  rÙ   s        r#   Ú/test_ordinal_encoder_handle_missing_and_unknownr0  ½  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 requiredr.   N)	r   r   r   r1   r2   r¨   r0   r   rÏ   )r1  r   ÚX_sparseÚencoderr©   rÙ   r!   s          r#   Útest_ordinal_encoder_sparser5  á  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)r@   r   r   r6  rD  )rK   r&   r9  r+   r  r-   r.   )r   r   Únewaxisr   r0   r1   r2   r3   )r   ró  s     r#   Ú-test_ordinal_encoder_fit_with_unseen_categoryr8  ø  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
    r6  i÷ÿÿÿr8  r   N)r   r0   r4   r	   )rœ  r�  rŽ   rÙ   s       r#   Ú1test_ordinal_encoder_handle_unknown_string_dtypesr<  	  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r@   r   r   )Úaxisr   r   N)
r   r   rC   r   r0   r
   rò   ÚsortrM   r4   )r   r4  rÙ   s      r#   Ú#test_ordinal_encoder_python_integerr@  %  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.rQ   )rS   rÿ   rR   r  rÝ  N)r1   rY   rZ   r   r0   r�   r
   )r[   rý  r   rŽ   Úfeature_names_outs        r#   Ú.test_ordinal_encoder_features_names_out_pandasrC  9  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.rR   rS   rH   r6  éýÿÿÿ©r&   r9  r#  r   r   rÿ   N)
r   r   r½   r—   r   r0   r4   r	   rÏ   r  )r   ró  rÙ   r�  rÖ  ÚX_roundtrips         r#   Ú0test_ordinal_encoder_unknown_missing_interactionrH  E  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 )zXCheck OrdinalEncoder errors when encoded_missing_value is used by
    an known category.rR   r   rS   r¼   rÿ   rH   zTencoded_missing_value \(1\) is already used to encode a known category in features: rQ   ÚletterÚpetrÝ  z	\['pet'\]z\[1\]r   r%  r.   N)r   r   r½   r—   r1   rY   rZ   r   r2   r3   r0   )rI  r   Ú	error_msgr[   ró  s        r#   Ú0test_ordinal_encoder_encoded_missing_value_errorrN  c  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.
    r6  rF  rO  rS   r   N)r   r   r½   r0   r   r4   r	   rÏ   r   rc  r   r  )rœ  ÚX_test_trans_expectedÚX_roundtrip_expectedró  r�  rÖ  rG  Ú	n_samplesr\  Úexpected_valÚvals              r#   Ú9test_ordinal_encoder_unknown_missing_interaction_both_nanrV  }  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.rQ   rR   rS   r   r   rT   r  zCPandas output does not support sparse data. Set sparse_output=Falser.   NFr   Údefault)r1   rY   rZ   r   r  r2   r3   r   r	   Úto_numpyr
   r�   rÞ  )r[   r\   rÞ   r/   Úohe_defaultÚ
ohe_pandasÚ	X_defaultÚX_pandass           r#   Útest_one_hot_encoder_set_outputr^  ±  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.rQ   rR   rS   r   r   rT   rX  r  N)r1   rY   rZ   r   r  r   r	   rY  r
   r�   rÞ  )r[   r\   Úord_defaultÚ
ord_pandasr\  r]  s         r#   Útest_ordinal_set_outputrb  È  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ÚacsrO  Ú2r¬   rd  N)r   r0   r  rò   Ú	enumeraterI   r—   r
   )rK   rŽ   Únr¼   s       r#   Ú test_predefined_categories_dtyperl  Ø  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¼   rH   r   r%  r   r   r6  r8  ÚsnakeN)	r   r   r½   r—   r   r   r	   r0   r4   )r   rÙ   rŽ   r�  s       r#   Ú1test_ordinal_encoder_missing_unknown_encoding_maxro  é  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.
    rR   r   rS   r*   rÿ   rý   r“  rH   FrÇ   )rŽ  r   rÆ   )r  Úx0_dÚx0_er™  r   rc   rÜ   r™  )r  r  rr  r™  N)r  r  rq  rr  r™  )
r   r   r—   rM   r   r0   r
   r�   rò   r&  )r   rÞ   s     r#   Ú#test_drop_idx_infrequent_categoriesrs  õ  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.rR   r   rS   r"  rÿ   rc   rý   r   r6  r@   r8  r�  r  r   r   r   r˜  Nr¦   )r   r   rM   r   r0   r
   rò   r›  r4   r	   rÏ   )rŒ  rœ  Úordinalr�  Úexpected_transrÙ   r£  Úexpected_inverses           r#   Ú,test_ordinal_encoder_infrequent_three_levelsrx    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.
    rR   r   rS   r"  rÿ   rc   rý   r   rH   rÅ  r6  r@   )rK   r�  r&   r9  r  r   r   r   r˜  N)r   r   r—   rM   r   r0   r
   rò   r›  r4   r	   rÏ   )rœ  ru  r�  rv  rÙ   r£  rw  s          r#   Ú6test_ordinal_encoder_infrequent_three_levels_user_catsrz  @  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˜  rH   )r   Úcolumn_stackr   r0   r
   r›  r4   r	   rÏ   r   r—   )r   ru  r�  rv  rÙ   r£  rw  s          r#   Ú%test_ordinal_encoder_infrequent_mixedr~  d  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.rQ   )Úbirdr¼   r   rn  rÙ  rÛ  r   r*   r¼   r   rn  r€  rH   )rÜ  rM  rˆ  rÝ  r|  r   rR   rS   r   rß  r   )rR   rS   rÚ  rÿ   )rf   r   rc   r   )r   r   r   )r   r   r   )r   r   r   r®  N)r1   rY   ÚCategoricalDtyperZ   rì   r   r0   r
   r›  r4   r	   )r[   Úcategorical_dtyper   ru  r�  rv  rÙ   s          r#   Ú:test_ordinal_encoder_infrequent_multiple_categories_dtypesrƒ  y  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.rR   r   rS   r"  rÿ   rc   rý   r   rH   r6  r   )r&   r9  r�  r#  r’  r“  r   r   N)r   r   r½   r—   rM   r   r0   r
   r›  r4   r	   )rœ  ru  r�  rv  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.rR   r   rS   r"  rÿ   rc   rý   r   rH   r6  r@   r8  r“  Nr¦   ©r   r   r—   rM   r   r0   r	   r4   )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.rR   r   rS   r"  rÿ   rc   rý   r   rH   r6  r@   r8  r“  r   Nr¦   r‡  )rŒ  rœ  r4  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   rc   r¼   r   rn  ÚdeerrH   r   r|  r   r   r   N©	r   r   r½   r—   rM   r   r0   r4   r	   ©r   ru  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   rc   r¼   r   rn  r�  ÚredrG  ÚgreenrH   r*   )rŽ  r   r   r   Nr�  r‘  s       r#   Ú/test_ordinal_encoder_missing_appears_infrequentr–  ú  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`.
    rU   rV   rg  rH   rf  r¬   N)r   r   r—   r1   r2   r   r4   )r  r   r4  s      r#   Útest_encoder_not_fittedr˜  	  sÆ   € õ 	Œ�3�%˜#˜  Ð&­fÐ5Ñ5Ô5€AØˆg / / /Ð!2Ð3Ñ3Ô3€GÝ	Œ•~Ñ	&Ô	&ð ð Ø×Ò˜!ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á
A-Á-A1Á4A1)€rÐ   Únumpyr   r1   Úscipyr   Úsklearn.exceptionsr   Úsklearn.preprocessingr   r   Úsklearn.utils._missingr   Úsklearn.utils._testingr   r	   r
   Úsklearn.utils.fixesr   r$   ÚmarkÚparametrizer:   rD   r!  Úfloat32r.  rO   r]   r‘   r˜   rª   r¯   r¶   r   r—   r½   r  rÄ   rÕ   rÚ   rß   rã   ré   rî   r
  r_  Ústr_rü   rM   r   r  r  r  r  r  r  r*  r0  r2  r4  rB  rM  rI  rK  rN  rS  rd  rk  ro  rx  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-  r0  r5  r8  r<  r@  rC  rH  rN  rL   rV  r^  rb  rl  ro  rs  rx  rz  r~  rƒ  r…  rŠ  r�  r’  r–  r˜  r¦   r%   r#   ú<module>r¤     s½  ðØ 	€	€	€	à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à -Ð -Ð -Ð -Ð -Ð -Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð
 /Ð .Ð .Ð .Ð .Ð .ð@ð @ð @ð. „×ÒÐ)¨HÐ6KÐ+LÑMÔMð#ð #ñ NÔMð#ð. „×ÒÐ)¨HÐ6KÐ+LÑMÔMð&ð &ñ NÔMð&ð$ „×Ò˜¨"¬(°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ð „×ÒÐ)¨HÐ6KÐ+LÑMÔMØ„×Ò˜ U¨D MÑ2Ô2Ø„×Ò˜ $¨ Ñ1Ô1ð,$ð ,$ñ 2Ô1ñ 3Ô2ñ NÔMð,$ð^ „×Ò˜ 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ð" „×ÒÐ)¨HÐ6KÐ+LÑMÔMØ„×ÒØð ˆ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ñ NÔMð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ð,8ð 8ð 8ð „×Ò˜¨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ñô ð „×Ò˜Ð'EÐ'EÐ'EÑFÔFð*ð *ñ GÔFñô ð*ð6ð ð ð* „×Ò˜¨2¬6°4¨.Ñ9Ô9ðGð Gñ :Ô9ðGð,ð ,ð ,ð. „×ÒÐ)Ð,AÀ8Ð+LÑMÔMØ„×Ò˜¨°(Ð(;Ñ<Ô<ð,ð ,ñ =Ô<ñ NÔMð,ð< „×ÒÐ)¨HÐ6KÐ+LÑMÔMð"Bð "Bñ NÔMð"BðJ „×ÒÐ)¨HÐ6KÐ+LÑMÔMð!Eð !Eñ NÔMð!EðH „×ÒÐ)¨HÐ6KÐ+LÑMÔMð)ð )ñ NÔMð)ð4ð ð ð(ð ð ð „×ÒÐ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ðð ð r%   