Ë
    ÷Q(h³6 ã                   ó6(  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZ d dlmZ d„ Zej*                  j-                  d	g d
¢«      d„ «       Zej*                  j-                  d	g d
¢«      d„ «       Zej*                  j-                  dej2                  ej4                  ej6                  g«      ej*                  j-                  dej2                  ej4                  ej6                  g«      d„ «       «       Zej*                  j-                  dej2                  ej4                  ej6                  g«      d„ «       Zd„ Zd„ Zd„ Z d„ Z!d„ Z"ej*                  j-                  dg d¢g d¢g ejF                  g d¢g d¢g«       ejF                  g d¢g d¢ge$¬«       ejF                  g d¢dejJ                  d gge$¬«       ejF                  g d¢d e&d!«      d gge$¬«       ejF                  g d"¢g d#¢ge$¬«       ejF                  g d$¢dejJ                  dgge$¬«       ejF                  g d$¢d e&d!«      dgge$¬«      gg d%¢¬&«      d'„ «       Z'ej*                  j-                  d	g d
¢«      ej*                  j-                  d(d)d*g«      ej*                  j-                  d+dd,g«      d-„ «       «       «       Z(ej*                  j-                  d(d)d*g«      ej*                  j-                  d.d/d0gd1d0gd/d0ggg d2¢g d3¢g d2¢gfd4dgd5dgd6d7gd5dggg d8¢g d9¢g d:¢gfg«      d;„ «       «       Z)d<„ Z*ej*                  j-                  d+g d=¢«      ej*                  j-                  d>g d=¢«      d?„ «       «       Z+ej*                  j-                  d@dAdBg«      ej*                  j-                  dd1d/g ejF                  dCdDg«      g«      dE„ «       «       Z,ej*                  j-                  d@dAdBg«      dF„ «       Z-ej*                  j-                  dGdHd0gdId0ggdHdIgd0ggej\                  f ejF                  d1d/gdJd/gg«      d1dJgd/ggej^                  f ejF                  dKd gdLd gge$¬«      dKdLgd ggej\                  f ejF                  dKd gdLd gg«      dKdLgd ggej`                  f ejF                  d1d/gejJ                  d/gg«      d1ejJ                  gd/ggej6                  f ejF                  dKejJ                  gdejJ                  gge$¬«      dKdgejJ                  ggej\                  f ejF                  dK e&d!«      gd e&d!«      gge$¬«      dKdg e&d!«      ggej\                  fgg dM¢¬&«      dN„ «       Z1ej*                  j-                  d	g d
¢«      ej*                  j-                  dO ejF                  dd7gge$¬«      jd                   ejF                  ddPgge$¬«      jd                  g dQ¢gej\                  f ejF                  d1d/ggdR¬«      jd                   ejF                  d1dSggdR¬«      jd                  g dT¢gejf                  f ejF                  dd7gge$¬«      jd                   ejF                  ddPgge$¬«      jd                   ejF                  g dQ¢«      gej\                  f ejF                  ddgge$¬«      jd                   ejF                  dd7gge$¬«      jd                  g dU¢ge$f ejF                  dd7gge$¬«      jd                   ejF                  dejJ                  gge$¬«      jd                  g dV¢ge$f ejF                  ddgge$¬«      jd                   ejF                  dejJ                  gge$¬«      jd                  g dW¢ge$fgg dX¢¬&«      dY„ «       «       Z4dZ„ Z5ej*                  j-                  d[e
eg«      d\„ «       Z6d]„ Z7d^„ Z8ej*                  j-                  d_d,d`dagfdbg dc¢fg dd¢dedfgfgg dg¢¬&«      dh„ «       Z9di„ Z:ej*                  j-                  dg d¢g d¢g ejF                  g dj¢g dk¢g«       ejF                  g d¢g d¢ge$¬«      gg dl¢¬&«      dm„ «       Z;ej*                  j-                  dO ejF                  dd7gge$¬«      jd                   ejF                  ddPgge$¬«      jd                  g dQ¢gej\                  f ejF                  d1d/ggdR¬«      jd                   ejF                  d1dSggdR¬«      jd                  g dT¢gejf                  f ejF                  dd7gge$¬«      jd                   ejF                  ddPgge$¬«      jd                   ejF                  g dQ¢«      gej\                  fgg dn¢¬&«      do„ «       Z<dp„ Z=dq„ Z>ej*                  j-                  dre&e?g«      ds„ «       Z@dt„ ZAdu„ ZBdv„ ZCdw„ ZDdx„ ZEdy„ ZFej*                  j-                  d+dbd,g«      dz„ «       ZGej*                  j-                  d{ejJ                  d e&d!«      g«      d|„ «       ZHej*                  j-                  d+dHdJgg d}¢g«      d~„ «       ZIej*                  j-                  dd*d)gd€d�g¬&«      ej*                  j-                  d+d,g d‚¢gd,dƒg¬&«      d„„ «       «       ZJej*                  j-                  d[e
eg«      d…„ «       ZKej*                  j-                  d†d‡d/idˆd‰idˆdŠid/d‹dŒœdSd�dŒœg«      ej*                  j-                  dŽd�g d�¢gg«      d‘„ «       «       ZLej*                  j-                  d+dbd,d7gg«      d’„ «       ZMej*                  j-                  d+dgdPgg«      d“„ «       ZNej*                  j-                  d†d‡dJidˆd‹idˆd”idˆd•idˆd–idJd—dŒœdSd‹dŒœg«      d˜„ «       ZOej*                  j-                  d+d,d7gg«      d™„ «       ZPej*                  j-                  d+dgdPgg«      dš„ «       ZQd›„ ZRej*                  j-                  d†dJd1dŒœdˆdSig«      dœ„ «       ZSd�„ ZTdž„ ZUdŸ„ ZVd „ ZWd¡„ ZXej*                  j-                  d†d¢d1d£œg«      d¤„ «       ZYej*                  j-                  d†d/dJd£œg«      d¥„ «       ZZej*                  j-                  d¦g d§¢«      ej*                  j-                  d¨g d©¢«      dª„ «       «       Z[d«„ Z\ej*                  j-                  d{ejJ                  dg«      d¬„ «       Z]d­„ Z^ej*                  j-                  d	g d
¢«      ej*                  j-                  d®d¯d°g«      d±„ «       «       Z_ej*                  j-                  d	g d
¢«      d²„ «       Z`ej*                  j-                  d	g d
¢«      d³„ «       Zaej*                  j-                  d	g d
¢«      d´„ «       Zbdµ„ Zcd¶„ Zdej*                  j-                  d·ejJ                  d¸g«      d¹„ «       Zeej*                  j-                  d®d¯d°g«      ej*                  j-                  d·ejJ                  d¸g«      dº„ «       «       Zfej*                  j-                  dO ejF                  dejJ                  gge$¬«      jd                   ejF                  dd7gge$¬«      jd                   ejF                  ddPejJ                  ge$¬«      gej\                  f ejF                  dejJ                  gge$¬«      jd                   ejF                  dd7gge$¬«      jd                   ejF                  ddPejJ                  ge$¬«      gej\                  f ejF                  d»ejJ                  ggej6                  ¬«      jd                   ejF                  dCggej6                  ¬«      jd                   ejF                  d»dDejJ                  g«      gej6                  fgg d¼¢¬&«      d½„ «       Zgej*                  j-                  d[e
eg«      d¾„ «       Zhej*                  j-                  d¿ ejF                  dÀejJ                  dCgg«      jd                   ejF                  dÁejJ                  dÀgg«      jd                   ejF                  dDgg«      f ejF                  g dÂ¢g«      jd                   ejF                  g dÃ¢g«      jd                   ejF                  ejJ                  gg«      f ejF                  dÄejJ                  d7gge$¬«      jd                   ejF                  dÀejJ                  dÁgg«      jd                   ejF                  dPgge$¬«      f ejF                  g dÅ¢ge$¬«      jd                   ejF                  g dÆ¢g«      jd                   ejF                  ejJ                  gge$¬«      fg«      dÇ„ «       Ziej*                  j-                  dÈe«      dÉ„ «       ZjdÊ„ Zkej*                  j-                  dËdÌdLgg ejF                  dÌdLggdÍ¬«       ejF                  dÌdLggdÎ¬«      g«      ej*                  j-                  dÏdKdLgg ejF                  dKdLggdÍ¬«       ejF                  dKdLggdÎ¬«      g«      dÐ„ «       «       ZldÑ„ ZmdÒ„ ZndÓ„ Zoej*                  j-                  dÔd*d)g«      dÕ„ «       Zpej*                  j-                  dÖ ejF                  dgd×gge$¬«      d gejJ                  gejJ                  gg ejâ                  d×gdgdgge$¬«      f ejF                  ejJ                  gd×gdgge$¬«      d gejJ                  gejJ                  gg ejâ                  d×gejJ                  gejJ                  gge$¬«      fg«      dØ„ «       ZrdÙ„ ZsdÚ„ ZtdÛ„ ZudÜ„ ZvdÝ„ Zwej*                  j-                  d†d‡dJidˆd‹idˆd”idˆd•idˆd–idJd—dŒœdSd‹dŒœg«      dÞ„ «       Zxdß„ Zydà„ Zzdá„ Z{dâ„ Z|ej*                  j-                  d†d‡d‹idˆd/ig«      dã„ «       Z}ej*                  j-                  d†d‡d1idˆdäig«      då„ «       Z~dæ„ Zdç„ Z€ej*                  j-                  d[e
eg«      dè„ «       Z�y)éé    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                  | «      }|j                  | «      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚t        j                  |«      sJ ‚t        j                  |«      rJ ‚t        |j                  «       g d¢g d¢g«       t        |j                  «       |«       y )N©é   é   é   ©r   r   r   F©Úsparse_output©r   é   )ç        ç      ð?r   r   r   )r   r   r   r   r   )	ÚnpÚarrayr   Úfit_transformÚshaper   Úissparser
   Útoarray)ÚXÚ
enc_sparseÚ	enc_denseÚX_trans_sparseÚX_trans_denses        úg/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/preprocessing/tests/test_encoders.pyÚ!test_one_hot_encoder_sparse_denser$      sÈ   € ô 	�‰’)šYÐ'Ó(€AÜ“€JÜ¨EÔ2€Ià×-Ñ-¨aÓ0€NØ×+Ñ+¨AÓ.€Mà×Ñ 6Ò)Ð)Ð)Ø×Ñ &Ò(Ð(Ð(ä�?‰?˜>Ô*Ð*Ð*Ü�‰˜}Ô-Ð-Ð-ô Ø×ÑÓ Ò#<Ò>WÐ"Xôô �~×-Ñ-Ó/°Õ?ó    Úhandle_unknown)ÚignoreÚinfrequent_if_existÚwarnc                 ó  — t        j                  g d¢g d¢g d¢g«      }t        j                  g d¢g«      }t        d¬«      }|j                  |«       t	        j
                  t        d¬«      5  |j                  |«       d d d «       t        | ¬«      }|j                  |«       |j                  «       }t        |j                  |«      j                  «       t        j                  g d	¢g«      «       t        ||«       y # 1 sw Y   Œ‚xY w)
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;   *   sÉ   € ä
�‰’)šYª	Ð2Ó3€AÜ	�‰’9�+Ó	€Bô 
 gÔ	.€BØ‡F�Fˆ1„IÜ	�‰”zÐ)CÔ	Dñ Ø
�‰�RÔ÷ô 
 nÔ	5€BØ‡F�Fˆ1„IØ—‘“	€IÜØ
�‰�YÓ×'Ñ'Ó)Ü
�‰Ò5Ð6Ó7ôô
 �B˜	Õ"÷ð ús   Á/DÄDc                 ó’  — t        j                  g d¢«      j                  d«      }t        j                  ddg«      j                  d«      }t        | ¬«      }|j	                  |«       |j                  «       }t        |j                  |«      j                  «       t        j                  g d¢g d¢g«      «       t        ||«       y )N)Ú11111111Ú22Ú333Ú4444)éÿÿÿÿr   Ú55555r>   r-   )r   r   r   r   ©r   r   r   r   )	r   r   Úreshaper   r1   r6   r
   r5   r   r7   s        r#   Ú+test_one_hot_encoder_handle_unknown_stringsrE   B   s—   € ä
�‰Ò2Ó3×;Ñ;¸GÓD€AÜ	�‰�7˜D�/Ó	"×	*Ñ	*¨7Ó	3€Bô
 
 nÔ	5€BØ‡F�Fˆ1„IØ—‘“	€IÜØ
�‰�YÓ×'Ñ'Ó)Ü
�‰Ò&Ò(<Ð=Ó>ôô
 �r˜9Õ%r%   Úoutput_dtypeÚinput_dtypec                 ó  — t        j                  ddgg| ¬«      j                  }t        j                  ddgddgg|¬«      }t        d|¬«      }t	        |j                  |«      j                  «       |«       t	        |j                  |«      j                  |«      j                  «       |«       t        d|d¬«      }t	        |j                  |«      |«       t	        |j                  |«      j                  |«      |«       y )Nr   r   ©ÚdtypeÚauto)Ú
categoriesrJ   F)rL   rJ   r   )	r   ÚasarrayÚTr   r
   r   r   r1   r5   )rG   rF   r   Ú
X_expectedr9   s        r#   Útest_one_hot_encoder_dtyperP   U   sÍ   € ô 	�
‰
�Q˜�F�8 ;Ô/×1Ñ1€AÜ—‘˜a ˜V a¨ VÐ,°LÔA€Jä	 &°Ô	=€BÜ�r×'Ñ'¨Ó*×2Ñ2Ó4°jÔAÜ�r—v‘v˜a“y×*Ñ*¨1Ó-×5Ñ5Ó7¸ÔDä	 &°ÈEÔ	R€BÜ�r×'Ñ'¨Ó*¨JÔ7Ü�r—v‘v˜a“y×*Ñ*¨1Ó-¨zÕ:r%   c                 ó  — t        j                  d«      }|j                  ddgddgdœ«      }t        j                  g d¢g d¢g| ¬	«      }t        | ¬	«      }t        |j                  |«      j                  «       |«       t        |j                  |«      j                  |«      j                  «       |«       t        | d
¬«      }t        |j                  |«      |«       t        |j                  |«      j                  |«      |«       y )NÚpandasÚaÚbr   r   ©ÚAÚB©r   r   r   r   ©r   r   r   r   rI   F)rJ   r   )r2   ÚimportorskipÚ	DataFramer   r   r   r
   r   r   r1   r5   )rF   ÚpdÚX_dfrO   r9   s        r#   Ú!test_one_hot_encoder_dtype_pandasr^   d   sÎ   € ä	×	Ñ	˜XÓ	&€Bà�<‰<˜s C˜j°°1¨vÑ6Ó7€DÜ—‘š<ªÐ6¸lÔK€Jä	˜\Ô	*€BÜ�r×'Ñ'¨Ó-×5Ñ5Ó7¸ÔDÜ�r—v‘v˜d“|×-Ñ-¨dÓ3×;Ñ;Ó=¸zÔJä	˜\¸Ô	?€BÜ�r×'Ñ'¨Ó-¨zÔ:Ü�r—v‘v˜d“|×-Ñ-¨dÓ3°ZÕ@r%   c                  óZ  — t        «       } g d¢g d¢g d¢g d¢g}| j                  |«       | j                  «       }t        g d¢|«       | j                  g d¢«      }t        g d¢|«       t	        j
                  t        d¬	«      5  | j                  d
dg«       d d d «       y # 1 sw Y   y xY w)N)ÚMaler   Úgirlr   r   )ÚFemaleé)   ra   r   é
   )r`   é3   Úboyé   r   )r`   é[   ra   é   é   )Ú	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/   rz   r{   )r   r1   Úget_feature_names_outr
   r2   r3   r4   )Úencr   Úfeature_namesÚfeature_names2s       r#   Ú"test_one_hot_encoder_feature_namesr’   t   s¦   € Ü
‹/€Câ!Ú%Ú"Ú$ð		€Að ‡G�GˆA„JØ×-Ñ-Ó/€Mäò	
ð" 	ô%ð* ×.Ñ.Ò/VÓW€Näò	
ð" 	ô%ô* 
�‰”zÐ)LÔ	Mñ 2Ø×!Ñ! 5¨% .Ô1÷2÷ 2ñ 2ús   ÂB!Â!B*c                  ó  — t        «       } t        j                  ddggt        ¬«      j                  }| j                  |«       | j                  «       }t        ddg|«       | j                  dg¬«      }t        dd	g|«       y )
Nu   câ�¤t1Údat2rI   u	   x0_câ�¤t1Úx0_dat2u   nðŸ‘�me©Úinput_featuresu   nðŸ‘�me_câ�¤t1u   nðŸ‘�me_dat2)r   r   r   ÚobjectrN   r1   rŽ   r
   )r�   r   r�   s      r#   Ú*test_one_hot_encoder_feature_names_unicoder™   °   st   € Ü
‹/€CÜ
�‰�8˜VÐ$Ð%¬VÔ4×6Ñ6€AØ‡G�GˆA„JØ×-Ñ-Ó/€MÜ˜ YÐ/°Ô?Ø×-Ñ-¸i¸[Ð-ÓI€MÜÐ(¨.Ð9¸=ÕIr%   c                  óÒ  — d„ } t        | ¬«      }t        j                  ddggt        ¬«      j                  }|j                  |«       |j                  «       }t        ddg|«       |j                  dg¬	«      }t        d
dg|«       d„ }t        |¬«      j                  |«      }d}t        j                  t        |¬«      5  |j                  «        ddd«       y# 1 sw Y   yxY w)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ÚNoneNrI   z	x0_'None'Úx0_NonerS   r–   za_'None'Úa_Nonec                  ó   — y)Nr   © rž   s     r#   Úwrong_combinerzItest_one_hot_encoder_custom_feature_name_combiner.<locals>.wrong_combinerÈ   s   € àr%   zMWhen `feature_name_combiner` is a callable, it should return a Python string.r/   )r   r   r   r˜   rN   r1   rŽ   r
   r2   r3   Ú	TypeError)r¡   r�   r   r�   r¨   Úerr_msgs         r#   Ú1test_one_hot_encoder_custom_feature_name_combinerr«   º   sÑ   € ò.ô ¨mÔ
<€CÜ
�‰�6˜4�.Ð!¬Ô0×2Ñ2€AØ‡G�GˆA„JØ×-Ñ-Ó/€MÜ˜ YÐ/°Ô?Ø×-Ñ-¸c¸UÐ-ÓC€MÜ˜
 HÐ-¨}Ô=òô ¨nÔ
=×
AÑ
AÀ!Ó
D€CàWð ô 
�‰”y¨Ô	0ñ $Ø×!Ñ!Ô#÷$÷ $ñ $ús   ÃCÃC&c                  óž  — t        j                  ddgg«      j                  } t        «       }|j	                  g d¢g¬«       |j                  «       d   g d¢gk(  sJ ‚|j                  | «      j                  «       j                  dk(  sJ ‚|j	                  g d¢g¬«       |j                  | «      j                  «       j                  dk(  sJ ‚y )	Nr   r   )r   r   r   r   ©rL   rL   )r   r+   )r   r   r   r   r+   r   )	r   r   rN   r   Ú
set_paramsÚ
get_paramsr   r   r   )r   r9   s     r#   Útest_one_hot_encoder_set_paramsr°   Ô   s¯   € Ü
�‰�1�a�&�Ó×Ñ€AÜ	‹€Bà‡M�Mšl˜^€MÔ,Ø�=‰=‹?˜<Ñ(ª\¨NÒ:Ð:Ð:Ø×Ñ˜AÓ×&Ñ&Ó(×.Ñ.°&Ò8Ð8Ð8à‡M�MšoÐ.€MÔ/Ø×Ñ˜AÓ×&Ñ&Ó(×.Ñ.°&Ò8Ð8Ñ8r%   c                 ó  — t        d¬«      }|j                  | «      }t        dd¬«      }|j                  | «      }t        |j                  «       |«       t	        j
                  |«      r|j                  dk(  sJ ‚|j                  «       S )NrK   r­   F©rL   r   Úcsr)r   r   r	   r   r   r   Úformat)r   r�   ÚXtr1ÚXtr2s       r#   Úcheck_categorical_onehotr·   à   sq   € Ü
 6Ô
*€CØ×Ñ˜QÓ€Dä
 6¸Ô
?€CØ×Ñ˜QÓ€Dä�D—L‘L“N DÔ)ä�?‰?˜4Ô  T§[¡[°EÒ%9Ð9Ð9Ø�<‰<‹>Ðr%   r   ©Údefr   é7   ©Úabcr   rº   )rd   r   rº   )r   r   rº   )rT   rV   Úcat)rS   rW   r½   rI   )rT   r   r½   rS   r½   Únan)Nr   r½   )rS   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¬«      j                  | «      }t        |j                  «       g d¢g d¢g«       y )	Nr   r   )r   r   r   r   ©r   r   r   r   rK   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¡8¨A£;ªq°1°#¨vÑ#6Ó
7€CÜ�C˜1˜a˜& 1 a &Ð)Ô*ä
"¤2§8¡8¨A£;ªq°1°a°&¨yÑ#9Ó
:€CÜ�Cš,ªÐ5Ô6ä
 6Ô
*×
8Ñ
8¸Ó
;€CÜ�C—K‘K“M¢O²_Ð#EÕFr%   Úsparse_FTÚdropÚfirstc                 ó   — g d¢g d¢g d¢g}t        ||¬«      }|j                  |«      }t        j                  |t        ¬«      }t        |j                  |«      |«       ddgddgd	dgg}t        |d
|¬«      }|j                  |«      }t        j                  |«      }t        |j                  |«      |«       |€âg d¢g d¢g d¢g}t        || ddgddgg d¢g¬«      }|j                  |«      }t        j                  |t        ¬«      }d |d<   t        |j                  |«      |«       ddgddgd	dgg}t        |ddgddgg| ¬«      }|j                  |«      }t        j                  |t        ¬«      }d |d<   d |d d …df<   t        |j                  |«      |«       t        j                  g d¢g d¢g«      }t        j                  d«      }t        j                  t        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nr»   r¸   )r¼   r   rº   ©r   rÇ   rI   r   rº   r   r   rK   )r   rL   rÇ   r¼   r¹   )é6   rº   é8   )r   r&   rL   )r   r   rË   rÌ   )r   rL   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Úescaper2   r3   r4   )r&   rÆ   rÇ   r   r�   ÚX_trÚexpÚmsgs           r#   Útest_one_hot_encoder_inverserÖ     sú  € ò 
šªÐ8€AÜ
 g°DÔ
9€CØ×Ñ˜QÓ€DÜ
�(‰(�1œFÔ
#€CÜ�s×,Ñ,¨TÓ2°CÔ8à
ˆRˆ�1�b�'˜A˜r˜7Ð#€AÜ
 g¸&ÀtÔ
L€CØ×Ñ˜QÓ€DÜ
�(‰(�1‹+€CÜ�s×,Ñ,¨TÓ2°CÔ8à€|ò š^ª^Ð<ˆÜØ!Ø)Ø ˜¨¨A¨²Ð=ô
ˆð
 × Ñ  Ó#ˆÜ�h‰h�q¤Ô'ˆØˆˆD‰	Ü˜3×0Ñ0°Ó6¸Ô<ð �ˆW�q˜"�g  2˜wÐ'ˆÜØ!Ø˜A˜  R Ð)Ø)ô
ˆð
 × Ñ  Ó#ˆÜ�h‰h�q¤Ô'ˆØˆˆD‰	ØˆŠAˆqˆD‰	Ü˜3×0Ñ0°Ó6¸Ô<ô �8‰8’Y¢	Ð*Ó+€DÜ
�)‰)Ð?Ó
@€CÜ	�‰”z¨Ô	-ñ $Ø×Ñ˜dÔ#÷$÷ $ñ $ús   Ç)HÈHz
X, X_transr   rº   r   r   ©r   r   r   rz   r{   r|   rT   ©r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   c                 óÜ   — t        |¬«      j                  | «      }d}|rt        |d«      }t        j                  t
        |¬«      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)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   r1   r   r2   r3   r4   rÐ   )r   ÚX_transrÆ   r�   rÕ   s        r#   Ú?test_one_hot_encoder_inverse_transform_raise_error_with_unknownrÛ   A  sf   € ô&  gÔ
.×
2Ñ
2°1Ó
5€Cð	Að ñ
 ä$ W¨hÓ7ˆÜ	�‰”z¨Ô	-ñ 'Ø×Ñ˜gÔ&÷'÷ 'ñ 'úó   ÁA"Á"A+c                  ó¾   — t        j                  ddgddgddggt        ¬«      } t        dd¬	«      }|j	                  | «      }t        |j                  |«      | «       y )
Nr`   r   rb   r   r   rI   Ú	if_binaryF©rÇ   r   )r   r   r˜   r   r   r
   rÐ   )r   ÚoherÓ   s      r#   Ú&test_one_hot_encoder_inverse_if_binaryrá   a  sV   € Ü
�‰�6˜1�+ ¨!˜}¨x¸¨mÐ<ÄFÔK€AÜ
˜[¸Ô
>€CØ×Ñ˜QÓ€DÜ�s×,Ñ,¨TÓ2°AÕ6r%   )rÞ   rÈ   NÚ
reset_dropc                 óŽ  — t        j                  ddgddgddggt        ¬«      }t        | d¬«      }|j	                  |«       |j                  |«      }|j                  «       }|j                  |¬	«       t        |j                  |«      |«       t        |j                  |«      |«       t        |j                  «       |«       y )
Nr`   r   rb   r   r   rI   Frß   ©rÇ   )r   r   r˜   r   r1   r5   rŽ   r®   r
   rÐ   r	   )rÇ   râ   r   rà   rÓ   r�   s         r#   Útest_one_hot_encoder_drop_resetrå   h  s£   € ô 	�‰�6˜1�+ ¨!˜}¨x¸¨mÐ<ÄFÔK€AÜ
˜T°Ô
7€CØ‡G�GˆA„JØ�=‰=˜Ó€DØ×-Ñ-Ó/€MØ‡N�N˜
€NÔ#Ü�s×,Ñ,¨TÓ2°AÔ6Ü�C—M‘M !Ó$ dÔ+Ü�s×0Ñ0Ó2°MÕBr%   Úmethodr1   r   ç      @ç      @c                 ó    — t        «       }d}t        j                  t        |¬«      5   t	        ||«      | «       d d d «       y # 1 sw Y   y xY w)Nz'Expected 2D array, got 1D array insteadr/   )r   r2   r3   r4   Úgetattr)r   ræ   r9   rÕ   s       r#   Útest_X_is_not_1Drë   w  sD   € ô 
‹€Bà
3€CÜ	�‰”z¨Ô	-ñ ØŒ��FÓ˜AÔ÷÷ ñ ús   ¨AÁAc                 ó
  — t        j                  d«      }|j                  g d¢«      }t        «       }dt	        |«      › d�}t        j
                  t        |¬«      5   t        || «      |«       d d d «       y # 1 sw Y   y xY w)NrR   )é   r   r+   rí   z+Expected a 2-dimensional container but got z	 instead.r/   )r2   rZ   ÚSeriesr   Útyper3   r4   rê   )ræ   r\   r   r9   rÕ   s        r#   Útest_X_is_not_1D_pandasrð   �  sm   € ä	×	Ñ	˜XÓ	&€BØ
�	‰	’,Ó€AÜ	‹€Bà7¼¸Q»°yÀ	Ð
J€CÜ	�‰”z¨Ô	-ñ ØŒ��FÓ˜AÔ÷÷ ñ ús   ÁA9Á9BzX, cat_exp, cat_dtyper¼   r¹   r   rV   rW   )r¿   rÀ   r˜   Ústringzmissing-floatzmissing-np.nan-objectzmissing-float-nan-objectc                 ó´  — | | d d d…   fD ]Ë  }t        d¬«      }|j                  |«       t        |j                  t        «      sJ ‚t        |j                  |«      D ]w  \  }}|j                  «       }t        |d   «      rt        |d   «      sJ ‚|d d |d d k(  sJ ‚|j                  «       |k(  sJ ‚t        j                  |j                  |«      rŒwJ ‚ ŒÍ y )NrA   rK   r­   )r   r1   Ú
isinstanceÚcategories_ÚlistÚzipÚtolistr   r   Ú
issubdtyperJ   )r   Úcat_expÚ	cat_dtypeÚXir�   ÚresrÔ   Úres_lists           r#   Útest_one_hot_encoder_categoriesrþ   Œ  sÖ   € ðF �!‘D�b�D‘'ˆlò 7ˆÜ vÔ.ˆØ�‰�Œä˜#Ÿ/™/¬4Ô0Ð0Ð0Ü˜CŸO™O¨WÓ5ò 	7‰HˆC�Ø—z‘z“|ˆHÜ˜S ™WÔ%Ü$ X¨b¡\Ô2Ð2Ð2Ø  �}¨¨C¨R¨Ò0Ð0Ð0à—z‘z“| sÒ*Ð*Ð*Ü—=‘= §¡¨IÕ6Ð6Ð6ñ	7ñ7r%   zX, X2, cats, cat_dtypeÚd©rS   rT   ÚcÚint64r+   ©r   r   r   )NrS   Úz)rS   rT   r  )rS   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        |j	                  | «      j                  «       |«       t        |j                  d   «      t        |d   «      k(  sJ ‚|j                  d   j                  «       t        |d   «      k(  sJ ‚|j                  d   j                  |k(  sJ ‚t        |¬«      }t        j                  t        d¬«      5  |j                  |«       d d d «       t        ||¬«      }t        j                  g d¢g d¢g«      }t        |j                  |«      j                  |«      j                  «       |«       y # 1 sw Y   ŒjxY w)	Nr­   ©r   r   r   ©r   r   r   r   r.   r/   ©rL   r&   )r   r   r   )r   r   r   r
   r   r   rõ   rL   rô   r÷   rJ   r2   r3   r4   r1   r5   )r   r8   Úcatsrú   r&   r�   rÔ   s          r#   Ú)test_one_hot_encoder_specified_categoriesr
  ¾  s+  € ôf  4Ô
(€CÜ
�(‰(’O¢_Ð5Ó
6€CÜ�s×(Ñ(¨Ó+×3Ñ3Ó5°sÔ;Ü�—‘˜qÑ!Ó"¤d¨4°©7£mÒ3Ð3Ð3Ø�?‰?˜1Ñ×$Ñ$Ó&¬$¨t°A©w«-Ò7Ð7Ð7ð �?‰?˜1Ñ×#Ñ# yÒ0Ð0Ð0ô  4Ô
(€CÜ	�‰”zÐ)CÔ	Dñ Ø�‰�Œ÷ä
 4¸Ô
G€CÜ
�(‰(’O¢_Ð5Ó
6€CÜ�s—w‘w˜r“{×,Ñ,¨RÓ0×8Ñ8Ó:¸CÕ@÷	ð ús   Ã-E(Å(E1c                  ó  — t        j                  ddggt        ¬«      j                  } t	        g d¢g¬«      }t        j                  g d¢g d¢g«      }t        |j                  | «      j                  | «      j                  «       |«       t        |j                  | «      j                  «       |«       |j                  d   j                  «       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  |j                  | «       d d d «       y # 1 sw Y   y xY w)NrS   rT   rI   )rT   rS   r  r­   r  r  r   r   r   )r   r   r   z%Unsorted categories are not supportedr/   )r   r   r˜   rN   r   r
   r1   r5   r   r   rô   r÷   rø   rJ   Úobject_r2   r3   r4   )r   r�   rÔ   rÕ   s       r#   Ú(test_one_hot_encoder_unsorted_categoriesr    s'  € Ü
�‰�3˜�*�¤VÔ,×.Ñ.€Aä
¢OÐ#4Ô
5€CÜ
�(‰(’O¢_Ð5Ó
6€CÜ�s—w‘w˜q“z×+Ñ+¨AÓ.×6Ñ6Ó8¸#Ô>Ü�s×(Ñ(¨Ó+×3Ñ3Ó5°sÔ;Ø�?‰?˜1Ñ×$Ñ$Ó&ª/Ò9Ð9Ð9Ü�=‰=˜Ÿ™¨Ñ+×1Ñ1´2·:±:Ô>Ð>Ð>ô 	�‰�1�a�&�Ó×Ñ€AÜ
¢I ;Ô
/€CØ
1€CÜ	�‰”z¨Ô	-ñ Ø×Ñ˜!Ô÷÷ ñ ús   Å#E>Å>FÚEncoderc                 ó6  — t        j                  dt         j                  dg«      g} | |¬«      }t        j                  ddggt        ¬«      j                  }t        j                  t        d¬«      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)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­   rI   zNan should be the last elementr/   N)	r   r   r¾   r˜   rN   r2   r3   r4   r1   ©r  r	  r�   r   s       r#   Ú,test_encoder_nan_ending_specified_categoriesr    st   € ô �H‰H�aœŸ™ �^Ó$Ð%€DÙ
˜TÔ
"€CÜ
�‰�1�a�&�¤Ô(×*Ñ*€AÜ	�‰”zÐ)IÔ	Jñ Ø�‰�Œ
÷÷ ñ ús   Á4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                  | «      j                  «       |«       |j                  d   j                  «       g d¢k(  sJ ‚t        j                  |j                  d   j                  t         j                  «      sJ ‚|j                  d   j                  «       g d¢k(  sJ ‚t        j                  |j                  d   j                  t         j                  «      sJ ‚y )NrS   rT   r   r   rI   r   )r   r   r   r­   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r˜   rN   r   r
   r   r   rô   r÷   rø   rJ   r  ©r   r�   rÔ   s      r#   Ú7test_one_hot_encoder_specified_categories_mixed_columnsr  $  sõ   € ä
�‰�3˜�*˜q !˜fÐ%¬VÔ4×6Ñ6€AÜ
¢O²YÐ#?Ô
@€CÜ
�(‰(Ò2Ò4RÐSÓ
T€CÜ�s×(Ñ(¨Ó+×3Ñ3Ó5°sÔ;Ø�?‰?˜1Ñ×$Ñ$Ó&ª/Ò9Ð9Ð9Ü�=‰=˜Ÿ™¨Ñ+×1Ñ1´2·:±:Ô>Ð>Ð>Ø�?‰?˜1Ñ×$Ñ$Ó&ª)Ò3Ð3Ð3ä�=‰=˜Ÿ™¨Ñ+×1Ñ1´2·:±:Ô>Ð>Ñ>r%   c                  ó˜   — t        j                  d«      } | j                  ddgddgdœ«      }t        |«      }t	        |g d¢g d¢g«       y )	NrR   rS   rT   r   r   rU   rX   rY   )r2   rZ   r[   r·   r	   )r\   r]   rÄ   s      r#   Útest_one_hot_encoder_pandasr  1  sF   € Ü	×	Ñ	˜XÓ	&€Bà�<‰<˜s C˜j°°1¨vÑ6Ó7€Dä
" 4Ó
(€CÜ�Cš,ªÐ5Õ6r%   zdrop, expected_namesÚx0_cÚx2_brÞ   )r  Úx1_2r  )r  r   rT   Úx0_bÚx2_a)rÈ   ÚbinaryÚmanualc                 ó†   — g d¢g d¢g}t        | ¬«      }|j                  |«       |j                  «       }t        ||«       y )N)r  r   rS   )rT   r   rT   rä   )r   r1   rŽ   r
   )rÇ   Úexpected_namesr   rà   r�   s        r#   Ú'test_one_hot_encoder_feature_names_dropr   :  s;   € ò 
šÐ&€Aä
˜TÔ
"€CØ‡G�GˆA„JØ×-Ñ-Ó/€MÜ�~ }Õ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¬«      }|j                  | «      }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¬«      }|j                  | «      }t	        |j
                  |«       t        ||«       y )Nrd   Úyesé   Únorj   )r   r   r   r   rC   )r   r   r   r   r   rÞ   Frß   ÚtruerS   Ú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+  L  s  € à
ˆeˆ�r˜4�j 2 u +Ð.€AÜ�x‰xÚ	Ò3Ò5IÐJó€Hô Ÿ™ $¨ Ó+Ðä
˜[¸Ô
>€CØ×Ñ˜qÓ!€FÜ�s—}‘}Ð&7Ô8Ü�F˜HÔ%ð �#ˆ˜ #˜¨°#¨Ð7€AÜ�x‰x˜#˜s˜ c¨3 Z°#°s°Ð<Ó=€HÜŸ™ ! T Ó+Ðä
˜[¸Ô
>€CØ×Ñ˜qÓ!€FÜ�s—}‘}Ð&7Ô8Ü�F˜HÕ%r%   )rd   r   rº   )r#  r   rº   )r¿   rÀ   r˜   c                 óô   — t        «       }t        j                  g d¢g d¢gd¬«      }t        |j	                  | «      |j                  d«      «       t        d¬«      }t        |j	                  | «      |«       y )N©r   r   r   ©r   r   r   r  rI   Úfloat64)r   r   r   r
   r   Úastyper  s      r#   Útest_ordinal_encoderr1  d  s^   € ô Ó
€CÜ
�(‰(’IšyÐ)°Ô
9€CÜ�s×(Ñ(¨Ó+¨S¯Z©Z¸	Ó-BÔCÜ
˜wÔ
'€CÜ�s×(Ñ(¨Ó+¨SÕ1r%   )r˜   rÀ   zobject-string-catc                 ó  — t        |¬«      }t        j                  dgdgg«      }t        |j	                  | «      |«       t        |j                  d   «      t        |d   «      k(  sJ ‚|j                  d   j                  «       t        |d   «      k(  sJ ‚|j                  d   j                  |k(  sJ ‚t        |¬«      }t        j                  t        d¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nr­   r   r   r   r.   r/   )r   r   r   r
   r   rõ   rL   rô   r÷   rJ   r2   r3   r4   r1   )r   r8   r	  rú   r�   rÔ   s         r#   Ú)test_ordinal_encoder_specified_categoriesr3  u  sß   € ô2  DÔ
)€CÜ
�(‰(�S�E˜C˜5�>Ó
"€CÜ�s×(Ñ(¨Ó+¨SÔ1Ü�—‘˜qÑ!Ó"¤d¨4°©7£mÒ3Ð3Ð3Ø�?‰?˜1Ñ×$Ñ$Ó&¬$¨t°A©w«-Ò7Ð7Ð7ð �?‰?˜1Ñ×#Ñ# yÒ0Ð0Ð0ô  DÔ
)€CÜ	�‰”zÐ)CÔ	Dñ Ø�‰�Œ÷÷ ñ ús   ÃC8Ã8Dc                  ó˜  — g d¢g d¢g} t        «       }|j                  | «      }t        j                  | t        ¬«      }t        |j                  |«      |«       t        j                  g d¢g d¢g«      }t        j                  d«      }t        j                  t        |¬«      5  |j                  |«       d d d «       y # 1 sw Y   y xY w)Nr»   r¸   rI   )r   r   r   r   rX   rÏ   r/   )r   r   r   r   r˜   r
   rÐ   rÑ   rÒ   r2   r3   r4   )r   r�   rÓ   rÔ   rÕ   s        r#   Útest_ordinal_encoder_inverser5  ž  sž   € Ú	šÐ(€AÜ
Ó
€CØ×Ñ˜QÓ€DÜ
�(‰(�1œFÔ
#€CÜ�s×,Ñ,¨TÓ2°CÔ8ô �8‰8’\¢<Ð0Ó1€DÜ
�)‰)Ð?Ó
@€CÜ	�‰”z¨Ô	-ñ $Ø×Ñ˜dÔ#÷$÷ $ñ $ús   Â%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        ¬
«      }| j	                  |«       | j                  |«      }t        j                  ddgddgddggd¬
«      }t        ||«       | j                  |«      }t        j                  dd gd dgddggt        ¬
«      }t        ||«       y )NÚuse_encoded_valueéþÿÿÿ©r&   Úunknown_valuerS   ÚxrT   Úyr  r  rI   ÚxyÚblar   r   r   r  )r   r   r   r˜   r1   r5   r
   rÐ   )r�   ÚX_fitrÚ   ÚX_trans_encrÔ   ÚX_trans_invÚinv_exps          r#   Ú+test_ordinal_encoder_handle_unknowns_stringrC  ¬  sØ   € Ü
Ð(;È2Ô
N€CÜ�H‰H�s˜C�j 3¨ *¨s°C¨jÐ9ÄÔH€EÜ�h‰h˜˜d˜ e¨S \°C¸°:Ð>ÄfÔM€GØ‡G�GˆE„Nà—-‘- Ó(€KÜ
�(‰(�Q˜�G˜b !˜W q¨! fÐ-°WÔ
=€CÜ�{ CÔ(à×'Ñ'¨Ó4€KÜ�h‰h˜˜d˜ d¨C [°3¸°*Ð=ÄVÔL€GÜ�{ GÕ,r%   rJ   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| ¬
«      }|j                  |«       |j	                  |«      }t        j                  ddgddgddggd¬
«      }t        ||«       |j                  |«      }t        j                  dd gd dgddggt        ¬
«      }t        ||«       y )Nr7  éüÿÿr9  r   é   r   é   r   é	   rI   rg   é   r   r  )r   r   r   r1   r5   r
   rÐ   r˜   )rJ   r�   r?  rÚ   r@  rÔ   rA  rB  s           r#   Ú,test_ordinal_encoder_handle_unknowns_numericrJ  »  sØ   € ä
Ð(;È4Ô
P€CÜ�H‰H�q˜!�f˜q !˜f q¨! fÐ-°UÔ;€EÜ�h‰h˜˜B˜ " a ¨1¨a¨&Ð1¸Ô?€GØ‡G�GˆE„Nà—-‘- Ó(€KÜ
�(‰(�Q˜�I  a˜y¨1¨a¨&Ð1¸Ô
A€CÜ�{ CÔ(à×'Ñ'¨Ó4€KÜ�h‰h˜˜D˜	 D¨! 9¨q°!¨fÐ5¼VÔD€GÜ�{ GÕ,r%   c                  ó   — t        dt        j                  ¬«      } t        j                  dgdgdgg«      }| j	                  |«       | j                  dgdgdgg«      }t        |dgdgt        j                  gg«       y )Nr7  r9  r   r   r   r+   r   )r   r   r¾   r   r1   r5   r
   )r�   r?  rÚ   s      r#   Ú(test_ordinal_encoder_handle_unknowns_nanrL  Ë  so   € ô Ð(;Ì2Ï6É6Ô
R€Cä�H‰H�q�c˜A˜3  �_Ó%€EØ‡G�GˆE„NØ�m‰m˜a˜S 1 #¨ s˜OÓ,€GÜ�w !  q c¬B¯F©F¨8Ð 4Õ5r%   c                  óü   — t        dt        j                  t        ¬«      } t        j                  dgdgdgg«      }t        j                  t        d¬«      5  | j                  |«       d d d «       y # 1 sw Y   y xY w)Nr7  )r&   r:  rJ   r   r   r   z'dtype parameter should be a float dtyper/   )	r   r   r¾   Úintr   r2   r3   r4   r1   )r�   r?  s     r#   Ú8test_ordinal_encoder_handle_unknowns_nan_non_float_dtyperO  Ö  sd   € ô Ø*¼"¿&¹&Ìô€Cô �H‰H�q�c˜A˜3  �_Ó%€EÜ	�‰”zÐ)RÔ	Sñ Ø�‰�Œ÷÷ ñ ús   ÁA2Á2A;c                  óú   — t        j                  g d¢gt        ¬«      j                  } g d¢}t	        |¬«      }d}t        j                  t        |¬«      5  |j                  | «       d d d «       y # 1 sw Y   y xY w)N)ÚLowÚMediumÚHighrR  rQ  rI   )rQ  rR  rS  r­   z*Shape mismatch: if categories is an array,r/   )	r   r   r˜   rN   r   r2   r3   r4   r1   )r   r	  r�   rÕ   s       r#   Ú+test_ordinal_encoder_raise_categories_shaperT  â  s^   € Ü
�‰Ò<Ð=ÄVÔL×NÑN€AÚ$€DÜ
 DÔ
)€CØ
6€Cä	�‰”z¨Ô	-ñ Ø�‰�Œ
÷÷ ñ ús   ÁA1Á1A:c            	      óÔ  — 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 ]„  }| j                  |«       t	        t        d«      D �cg c](  }| j                  |   j                  |j                  k(  ‘Œ* c}«      sJ ‚t        | j                  |«      j                  «       |«       Œ† ddgd	d
gg}| j                  |«       t	        t        d«      D �cg c]=  }t        j                  | j                  |   j                  t        j                  «      ‘Œ? c}«      sJ ‚t        | j                  |«      j                  «       |«       ddgd	dgg}| j                  |«       t	        t        d«      D �cg c]  }| j                  |   j                  dk(  ‘Œ  c}«      sJ ‚t        | j                  |«      j                  «       |«       y c c}w c c}w c c}w )NrK   r­   )r   r   r   r   )r   r   r   r   r/  rI   r   r   r   r+   r  rS   rT   r  rÿ   ó   aó   bó   có   dr˜   )r   r   r   r1   ÚallÚrangerô   rJ   r
   r5   r   rø   Úinteger)r�   rÔ   r   Úis       r#   Útest_encoder_dtypesr^  ì  s
  € ä
 6Ô
*€CÜ
�(‰(Ò(Ò*>Ð?ÀyÔ
Q€Cô 	�‰�1�a�&˜1˜a˜&Ð!¨Ô1Ü
�‰�1�a�&˜1˜a˜&Ð!¨Ô3Ü
�‰�3˜�*˜s C˜jÐ)Ó*Ü
�‰�4˜�,  t Ð-Ó.Ü
�‰�1�c�(˜Q ˜HÐ%¨XÔ6ðò 	<ˆð 	�‰�Œ
ÜÄÀqÃÖJ¸A�C—O‘O AÑ&×,Ñ,°·±Ó7ÒJÔKÐKÐKÜ˜3Ÿ=™=¨Ó+×3Ñ3Ó5°sÕ;ð	<ð ˆQˆ�!�Q�Ð€AØ‡G�GˆA„JÜÌUÐSTËXÖVÈ”—‘˜cŸo™o¨aÑ0×6Ñ6¼¿
¹
ÕCÒVÔWÐWÐWÜ�s—}‘} QÓ'×/Ñ/Ó1°3Ô7à
ˆSˆ�A�s�8Ð€AØ‡G�GˆA„JÜ¼eÀA»hÖG¸�—‘ Ñ"×(Ñ(¨HÓ4ÒGÔHÐHÐHÜ�s—}‘} QÓ'×/Ñ/Ó1°3Õ7ùò Kùò
 Wùò
 Hs   Ã-I
Å&AI È#I%c                  óB  — t        j                  d«      } t        d¬«      }t        j                  g d¢g d¢gd¬«      }| j                  dd	gd
dgddgdœd¬«      }|j                  |«       t        t        d	«      D �cg c]  }|j                  |   j                  dk(  ‘Œ  c}«      sJ ‚t        |j                  |«      j                  «       |«       | j                  dd	gddgddgdœ«      }|d   j                  |d   j                  |d   j                  g}|j                  |«       t        t        d
«      D �cg c]!  }|j                  |   j                  ||   k(  ‘Œ# c}«      sJ ‚t        |j                  |«      j                  «       |«       y c c}w c c}w )NrR   rK   r­   )r   r   r   r   r   r   )r   r   r   r   r   r   r/  rI   r   r   r   r+   r   rí   ©rV   rW   ÚCr  rS   rT   rç   rè   rV   rW   ra  )r2   rZ   r   r   r   r[   r1   rZ  r[  rô   rJ   r
   r5   r   )r\   r�   rÔ   r   r]  ÚX_types         r#   Útest_encoder_dtypes_pandasrc    sb  € ä	×	Ñ	˜XÓ	&€Bä
 6Ô
*€CÜ
�(‰(Ú	'Ò)GÐHØô€Cð
 	�‰˜A˜q˜6¨¨A¨°a¸°VÑ<ÀGˆÓL€AØ‡G�GˆA„JÜ¼UÀ1»XÖF¸�—‘ Ñ"×(Ñ(¨GÓ3ÒFÔGÐGÐGÜ�s—}‘} QÓ'×/Ñ/Ó1°3Ô7à
�‰˜A˜q˜6¨¨c¨
¸#¸s¸ÑDÓE€AØ�‰f�l‰l˜A˜c™FŸL™L¨!¨C©&¯,©,Ð7€FØ‡G�GˆA„JÜ¼uÀQ»xÖH¸!�—‘ Ñ"×(Ñ(¨F°1©IÓ5ÒHÔIÐIÐIÜ�s—}‘} QÓ'×/Ñ/Ó1°3Õ7ùò Gùò Is   Á?#FÄ>&Fc                  óÆ   — t        «       } ddgddgg}t        j                  «       5  t        j                  d«       | j	                  |«       d d d «       y # 1 sw Y   y xY w)Nr`   r   rb   r   r,   )r   ÚwarningsÚcatch_warningsÚsimplefilterr   )r�   r   s     r#   Útest_one_hot_encoder_warningrh    sX   € Ü
‹/€CØ
�!ˆ�x �mÐ$€AÜ	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ&Ø×Ñ˜!Ô÷÷ ñ ús   §'AÁA c                 ó>  — ddgddgddgg}t        | ddddgddgg¬«      }|j                  |«       d	dgg}t        j                  ddgg«      }d
}t	        j
                  t        |¬«      5  |j                  |«      }ddd«       t        |«       y# 1 sw Y   ŒxY w)z,Check handle_unknown='warn' works correctly.rS   r   rT   r   r   Fr)   ©rÇ   r   r&   rL   r  úqFound unknown categories in columns \[0\] during transform. These unknown categories will be encoded as all zerosr/   N©	r   r1   r   r   r2   ÚwarnsÚUserWarningr5   r	   )rÇ   r   rà   ÚX_testrO   Úwarn_msgrÚ   s          r#   Útest_ohe_handle_unknown_warnrq  %  s³   € ð ˆqˆ�C˜�8˜c 1˜XÐ&€Aä
ØØØØ˜#�J  A Ð'ô	€Cð ‡G�GˆA„Jà�AˆhˆZ€FÜ—‘˜A˜q˜6˜(Ó#€Jð	Að ô 
�‰”k¨Ô	2ñ (Ø—-‘- Ó'ˆ÷(ä�G˜ZÕ(÷(ð (úó   Á,BÂBÚmissing_valuec                 ó  — dddd| g}t        |¬«      }g d¢g d¢dddd| gg}|j                  |«      j                  «       }g d¢g d	¢g d
¢g}t        ||«       |j                  |u sJ ‚t        |j                  |j                  «      D ��cg c]
  \  }}||   ‘Œ }}}|j                  |«      }	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 ‚y t        ||«       t        |
|	«       y c c}}w )Nr¹   rg   r   rÌ   rä   )r¼   rg   r   rº   rS   )r¹   rg   r   rº   rS   )r   r   r   r   r   )r   r   r   r   r   rØ   rI   rA   )rA   rA   )r   r   r   r
   rÇ   rö   rô   r'  rÐ   r   r   r˜   r   )rs  Úcats_to_dropr�   r   ÚtransrÔ   r½   rŸ   Údropped_catsÚX_inv_transÚX_arrays              r#   Ú test_one_hot_encoder_drop_manualrz  ?  s£  € à˜2˜q " mÐ4€LÜ
˜\Ô
*€CâÚØ	��A�r˜=Ð)ð	€Að
 ×Ñ˜aÓ ×(Ñ(Ó*€EÚšOª_Ð
=€CÜ�u˜cÔ"Ø�8‰8�|Ñ#Ð#Ð#ô *-¨S¯_©_¸c¿m¹mÓ)L÷Ù%˜˜gˆˆG‹ð€Lñ ð ×'Ñ'¨Ó.€KÜ�h‰h�q¤Ô'€Gô �\ "Ñ%Ô&Ü˜<¨¨Ð,¨l¸3¸BÐ.?Ô@Ü˜\¨"Ñ-Ô.Ð.Ð.Ü˜\¨"Ñ-Ô.Ð.Ð.ä˜7¢1 c r c 6™?¨Kº¸3¸B¸3¸Ñ,?Ô@ô 	˜7 2 s¨ s 7Ñ+¨[¸¸S¸b¸S¸Ñ-AÔBÜ˜W V™_Ô-Ð-Ð-Ü˜[¨Ñ0Ô1Ð1Ñ1ä˜<¨Ô6Ü˜7 KÕ0ùó)s   ÂE;)r¼   r   rc   rS   c                 ó´   — t        | ¬«      }d}t        j                  t        |¬«      5  |j	                  g d¢g d¢g d¢g«       d d d «       y # 1 sw Y   y xY w)Nrä   z-`drop` should have length equal to the numberr/   r»   r¸   )r¹   r   é;   )r   r2   r3   r4   r1   )rÇ   r�   rª   s      r#   Útest_invalid_drop_lengthr}  d  sK   € ä
˜TÔ
"€CØ=€GÜ	�‰”z¨Ô	1ñ BØ�‰’¢²Ð@ÔA÷B÷ Bñ Bús   ªAÁAÚdensityr   Údense©rS   r   rT   r  c                 ó  — t        | ¬«      }t        | |¬«      }g d¢g d¢g}|j                  |«       |j                  |«       t        |j                  |j                  «       |dk(  rt        |j                  d«       n=t        ||j                  |j                  «      D ]  \  }}}|t        |«         |k(  rŒJ ‚ t        |j                  t        j                  «      sJ ‚|j                  j                  t        k(  sJ ‚y )Nr   rÊ   )r  r   rS   r€  rÈ   r   )r   r1   r
   rô   r'  rö   rN  ró   r   ÚndarrayrJ   r˜   )r~  rÇ   Úohe_baseÚohe_testr   Údrop_catÚdrop_idxÚcat_lists           r#   Útest_categoriesrˆ  l  sä   € ô ¨7Ô3€HÜ¨7¸Ô>€HÚ	šÐ&€AØ‡L�L�„OØ‡L�L�„OÜ�x×+Ñ+¨X×-AÑ-AÔBØˆw‚Ü˜8×-Ñ-¨qÕ1ä,/Ø�(×$Ñ$ h×&:Ñ&:ó-
ò 	7Ñ(ˆH�h ð œC ›MÑ*¨hÓ6Ð6Ð6ð	7ô �h×(Ñ(¬"¯*©*Ô5Ð5Ð5Ø×Ñ×#Ñ#¤vÒ-Ð-Ñ-r%   c                 óZ   —  | «       j                  «       j                  j                  sJ ‚y )N)Ú__sklearn_tags__Ú
input_tagsÚcategorical)r  s    r#   Ú"test_encoders_has_categorical_tagsr�  €  s"   € á‹9×%Ñ%Ó'×2Ñ2×>Ò>Ð>Ñ>r%   ÚkwargsÚmax_categoriesÚmin_frequencyé   g�Âõ(\�Ò?rí   )r�  r�  rg   rL   rK   ©rS   rT   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œ| ¤Žj	                  |«      }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«      }|j                  |«      }t        ||«       dgdgdz  z   D �cg c]  }|g‘Œ }}|j                  |«      }	t        ||	«       |j                  «       }
t        ddg|
«       yc c}w )zpTest that different parameters for combine 'a', 'c', and 'd' into
    the infrequent category works as expected.rS   r   rT   r#  r  rd   rÿ   r   r(   F)rL   r&   r   ©rS   r  rÿ   Úer   r   Úinfrequent_sklearnr+   r  Úx0_infrequent_sklearnNr§   ©r   r   rN   r   r1   r
   Úinfrequent_categories_r5   r	   rÐ   rŽ   )rŽ  rL   ÚX_trainrà   ro  r(  rÚ   ÚcolÚexpected_invÚX_invr�   s              r#   Útest_ohe_infrequent_two_levelsrž  …  sI  € ô �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑK€GÜ
ð ØØ,Øñð ñ	÷
 
�cˆ'ƒlð ô �s×1Ñ1²OÐ3DÔEàˆe�c�U˜S˜E C 5¨3¨%Ð0€FÜ�x‰x˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸Ð@ÓA€Hà�m‰m˜FÓ#€GÜ�H˜gÔ&à&) UÐ.BÐ-CÀaÑ-GÑ%GÖH˜c�S’EÐH€LÐHØ×!Ñ! 'Ó*€EÜ�| UÔ+à×-Ñ-Ó/€MÜ˜Ð 7Ð8¸-ÕHùò Is   Ã

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| ¬«      j	                  |«      }|j
                  d   |j                  d      dk(  sJ ‚t        j                  dgdgg«      }|j                  |«      }t        dgdgg|«       |j                  «       }t        dg|«       |j                  |«      }t        dgdgg|«       y)z3Test two levels and dropping the frequent category.rS   r   rT   r#  r  rd   rÿ   r   r(   Fr   ©r&   r   r�  rÇ   r   r   r—  r–  N)r   r   rN   r   r1   rô   r'  r5   r	   rŽ   r
   rÐ   )rÇ   rš  rà   ro  rÚ   r�   Ú	X_inverses          r#   Ú,test_ohe_infrequent_two_levels_drop_frequentr¢  «  s  € ô �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑK€GÜ
Ø,ØØØô	÷
 
�cˆ'ƒlð ð �?‰?˜1Ñ˜cŸm™m¨AÑ.Ñ/°3Ò6Ð6Ð6ä�X‰X˜�u˜s˜e�nÓ%€FØ�m‰m˜FÓ#€GÜ�a�S˜1˜#�J Ô(à×-Ñ-Ó/€MÜÐ/Ð0°-Ô@à×%Ñ% gÓ.€IÜ˜˜Ð 4Ð5Ð6¸	Õ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  |j                  |«       ddd«       y# 1 sw Y   yxY w)z_Test two levels and dropping any infrequent category removes the
    whole infrequent category.rS   r   rT   r#  r  rd   rÿ   r   r(   Fr   r   úUnable to drop category r   ú( from feature 0 because it is infrequentr/   N©r   r   rN   r   r2   r3   r4   r1   ©rÇ   rš  rà   rÕ   s       r#   Ú5test_ohe_infrequent_two_levels_drop_infrequent_errorsr¨  Ã  sœ   € ô
 �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑK€GÜ
Ø,ØØØô	€Cð % T¨!¡W KÐ/WÐ
X€CÜ	�‰”z¨Ô	-ñ Ø�‰�Ô÷÷ ñ úó   Á-BÂBrH  g¸…ëQ¸Î?g{®GázÄ?rG  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œ| ¤Žj	                  |«      }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«      }|j                  |«      }t        ||«       dgdgdgdgdgg}|j                  |«      }t        ||«       |j                  «       }t        g d¢|«       y)zkTest that different parameters for combing 'a', and 'd' into
    the infrequent category works as expected.rS   r   rT   r#  r  rd   rÿ   r   r(   F©r&   r   r•  r.  ©r   r   r   r-  r–  )r  r  r—  Nr§   r˜  )	rŽ  rš  rà   ro  r(  rÚ   rœ  r�  r�   s	            r#   Ú test_ohe_infrequent_three_levelsr­  Õ  s'  € ô  �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑK€GÜ
ð Ø,¸EñØEKñç	�cˆ'ƒlð ô �s×1Ñ1°S¸#°J°<Ô@àˆe�c�U˜S˜E C 5¨3¨%Ð0€FÜ�x‰xš¢Iªyº)ÂYÐOÓP€Hà�m‰m˜FÓ#€GÜ�H˜gÔ&ð 
ˆØ	ÐØ	ˆØ	ÐØ	Ðð€Lð ×!Ñ! 'Ó*€EÜ�| UÔ+à×-Ñ-Ó/€MÜÒ@À-Õ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| ¬«      j	                  |«      }t        j                  dgdgdgg«      }t        ddgddgddgg|j                  |«      «       |j                  d¬«      j	                  |«       d}t        j                  t        |¬«      5  |j                  dgdgg«      }ddd«       t        ddgddgg«       y# 1 sw Y   ŒxY w)z5Test three levels and dropping the frequent category.rS   r   rT   r#  r  rd   rÿ   r   r(   Fr   r   r   r'   r-   r.   r/   r•  N)r   r   rN   r   r1   r	   r5   r®   r2   rm  rn  )rÇ   rš  rà   ro  rÕ   rÚ   s         r#   Ú.test_ohe_infrequent_three_levels_drop_frequentr¯  ÿ  s  € ô �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑK€GÜ
Ø,ØØØô	÷
 
�cˆ'ƒlð ô �X‰X˜�u˜s˜e c UÐ+Ó,€FÜ�a˜�V˜a ˜V a¨ VÐ,¨c¯m©m¸FÓ.CÔDð ‡N�N (€NÓ+×/Ñ/°Ô8Ø
$€CÜ	�‰”k¨Ô	-ñ 0Ø—-‘- # ¨¨ Ó/ˆ÷0ô �a˜�V˜a ˜VÐ$ gÕ.÷0ð 0ús   Ã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  |j                  |«       ddd«       y# 1 sw Y   yxY w)z7Test three levels and dropping the infrequent category.rS   r   rT   r#  r  rd   rÿ   r   r(   Fr   r¤  r   r¥  r/   Nr¦  r§  s       r#   Ú7test_ohe_infrequent_three_levels_drop_infrequent_errorsr±    sœ   € ô �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑK€GÜ
Ø,ØØØô	€Cð % T¨!¡W KÐ/WÐ
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¬«      j	                  | «      }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«      }|j                  |«      }t        ||«       dgg}d}t        j                  t        |¬«      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)zmTest that different parameters for combining 'a', and 'd' into
    the infrequent category works as expected.rS   r   rT   r#  r  rd   rÿ   r   r,   F)r&   r   r�  r.  r¬  r-  Úbadz.Found unknown categories \['bad'\] in column 0r/   N)r   r   rN   r   r1   r
   r™  r5   r	   r2   r3   r4   )rš  rà   ro  r(  rÚ   rÕ   s         r#   Ú(test_ohe_infrequent_handle_unknown_errorr´  '  sý   € ô �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑK€GÜ
Ø¨eÀAôç	�cˆ'ƒlð ô �s×1Ñ1°S¸#°J°<Ô@ð ˆe�c�U˜S˜E C 5Ð)€FÜ�x‰xš¢Iªyº)ÐDÓE€Hà�m‰m˜FÓ#€GÜ�H˜gÔ&ð ˆgˆY€FØ
;€CÜ	�‰”z¨Ô	-ñ Ø�‰�fÔ÷÷ ñ ús   ÃC4Ã4C=c                 óè  — t        j                  dgdz  dgdz  z   gt        ¬«      j                  }t	        dg d¢gddd	œ| ¤Žj                  |«      }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«      }|j                  |«      }t        ||«       dddgg}dgdgg}|D ]B  }|j                  |¬«      j                  |«       t        dgdgg|j                  |«      «       ŒD y)zG'a' is the only frequent category, all other categories are infrequent.rS   r   r•  rj   rI   ©r  rÿ   rS   rT   Fr(   ©rL   r   r&   rT   r  rÿ   r   r   rÈ   rÞ   rä   Nr§   )	r   r   r˜   rN   r   r1   r5   r	   r®   )rŽ  rš  rà   ro  r(  rÚ   ÚdropsrÇ   s           r#   Ú5test_ohe_infrequent_two_levels_user_cats_one_frequentr¹  ?  s"  € ô �h‰h˜˜ ™	 S E¨B¡JÑ.Ð/´vÔ>×@Ñ@€GÜ
ð Ú(Ð)ØØ,ñð ñ	÷
 
�cˆ'ƒlð ð ˆe�c�U˜S˜E C 5¨3¨%Ð0€FÜ�x‰x˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸Ð@ÓA€Hà�m‰m˜FÓ#€GÜ�H˜gÔ&ð �k C 5Ð)€EØˆe�c�Uˆ^€FØò ;ˆØ�‰˜DˆÓ!×%Ñ% gÔ.Ü˜!˜˜q˜c˜
 C§M¡M°&Ó$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¬«      j                  | «      }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«      }|j                  |«      }t        ||«       dgdgdz  z   D �cg c]  }|g‘Œ }}|j                  |«      }t        ||«       yc c}w )zFTest that the order of the categories provided by a user is respected.rS   r   rT   r#  r  rd   rÿ   r   rI   r¶  Fr(   r   ©rL   r   r&   r�  )r  rÿ   rS   r•  r   r   r–  r+   N©r   r   r˜   rN   r   r1   r
   r™  r5   r	   rÐ   )rš  rà   ro  r(  rÚ   r›  rœ  r�  s           r#   Ú(test_ohe_infrequent_two_levels_user_catsr½  [  s+  € ä�h‰hØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Äôç�að ô Ú(Ð)ØØ,Øô	÷
 
�cˆ'ƒlð ô �s×1Ñ1²OÐ3DÔEàˆe�c�U˜S˜E C 5¨3¨%Ð0€FÜ�x‰x˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸Ð@ÓA€Hà�m‰m˜FÓ#€GÜ�H˜gÔ&ð '* UÐ.BÐ-CÀaÑ-GÑ%GÖH˜c�S’EÐH€LÐHØ×!Ñ! 'Ó*€EÜ�| UÕ+ùò Is   Ã
C=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¬«      j                  | «      }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«      }|j                  |«      }t        ||«       dgdgdgdgdgg}|j                  |«      }t        ||«       y)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.rS   r   rT   r#  r  rd   rÿ   r   rI   ©r  rÿ   rT   rS   Fr(   r»  r•  r-  r¬  r.  r–  Nr¼  )rš  rà   ro  r(  rÚ   rœ  r�  s          r#   Ú*test_ohe_infrequent_three_levels_user_catsrÀ  v  s  € ô
 �h‰hØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Äôç�að ô Ú(Ð)ØØ,Øô	÷
 
�cˆ'ƒlð ô �s×1Ñ1°S¸#°J°<Ô@àˆe�c�U˜S˜E C 5¨3¨%Ð0€FÜ�x‰xš¢Iªyº)ÂYÐOÓP€Hà�m‰m˜FÓ#€GÜ�H˜gÔ&ð
 
ˆØ	ÐØ	ˆØ	ÐØ	Ðð€Lð ×!Ñ! 'Ó*€EÜ�| UÕ+r%   c                  óÊ   — t         j                  g d¢g d¢f   } t        ddd¬«      }|j                  | «       ddgddgg}|j	                  |«      }t        |g d	¢g d
¢g«       y)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   r1   r5   r	   )r   rà   ro  rÚ   s       r#   Útest_ohe_infrequent_mixedrÆ  š  sc   € ô 	�‰Ò)Ò+FÐFÑG€Aä
 q¨{È%Ô
P€CØ‡G�GˆA„Jà�!ˆf�q˜!�fÐ€FØ�m‰m˜FÓ#€Gô �GšlªLÐ9Õ:r%   c            
      ób  — t         j                  g d¢g d¢g d¢f   } t        ddd¬«      }|j                  | «      j	                  «       }t        |j                  d   d	d
g«       t        |j                  d	   d	dg«       t        |j                  d
   d«       |j                  «       }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}|j                  |«      }g d¢g d¢g}t        ||j	                  «       «       |j                  |«      }t        j                  g d¢g d¢gt        ¬«      }t        ||«       t        ddd¬«      j                  | «      }t        j                  t         d¬«      5  |j                  |«       ddd«       g d ¢g d!¢g}|j                  |«      }g d"¢g d¢g}t        ||j	                  «       «       |j                  |«      }t        j                  g d#¢g d$¢gt        ¬«      }t        ||«       y# 1 sw Y   ŒƒxY w)%z?Test infrequent categories with feature matrix with 3 features.rÂ  )	r   r   r   r   r   rd   r   r   r   )	r   r   r   r   r   r   r   r   r   rK   r   r(   ©rL   r�  r&   r   r   r   rd   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   NrI   r,   r.   r/   )r   r   r   )r   rd   r   )r   r   r   r   r   r   r   r   )r–  r–  r   )r   r–  r   )r   rÅ  r   r   r   r
   r™  rŽ   r	   r5   rÐ   r   r˜   r1   r2   r3   r4   )	r   rà   rÚ   r�   r(  ro  ÚX_test_transr�  rœ  s	            r#   Ú'test_ohe_infrequent_multiple_categoriesrÑ  ¬  s  € ô 	�‰Ú#Ú$Ú#ð	%ñ	€Aô Ø¨!Ð<Qô€Cð ×Ñ Ó"×*Ñ*Ó,€GÜ�s×1Ñ1°!Ñ4°q¸!°fÔ=Ü�s×1Ñ1°!Ñ4°q¸"°gÔ>Ü�s×1Ñ1°!Ñ4°dÔ;ð
 ×-Ñ-Ó/€MÜò		
ð 	ôò 	!Ú Ú Ú Ú Ú Ú Ú Ú ð
€Hô �H˜gÔ&âšÐ#€Fà—=‘= Ó(€Lò )Ò*BÐC€HÜ�H˜l×2Ñ2Ó4Ô5à×!Ñ! ,Ó/€EÜ—8‘8Ú	(Ò*IÐJÔRXô€Lô �| UÔ+ô Ø¨!¸Gôç	�cˆ!ƒfð ô 
�‰”zÐ)CÔ	Dñ Ø�‰�fÔ÷ò šÐ$€FØ—=‘= Ó(€Lâ(Ò*BÐC€HÜ�H˜l×2Ñ2Ó4Ô5à×!Ñ! ,Ó/€Eä—8‘8Ú	8Ò:VÐWÜô€Lô �| UÕ+÷!ð ús   ÆH%È%H.c            
      ó²  — t        j                  d«      } | j                  g d¢g d¢dœddg¬«      }t        dd	d
¬«      }|j	                  |«      j                  «       }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        ||«       | j                  ddgddgdœddg¬«      }g d¢g d¢g}|j                  |«      }t        ||j                  «       «       |j                  |«      }t        j                  ddgddggt        ¬«      }t        ||«       | j                  ddgddgdœddg¬«      }|j                  |«      j                  «       }g d¢g d¢g}t        ||«       |j                  |«      }t        j                  ddgddggt        ¬«      }t        ||«       y)zHTest infrequent categories with a pandas dataframe with multiple dtypes.rR   ©	rS   Úfr  rÔ  rÔ  rS   r  rT   rT   ©	r   r   r   rd   rd   rg   r   r   r   )ÚstrrN  rÖ  rN  ©ÚcolumnsrK   r   r(   rÈ  r   rS   rT   r   ©r   r   rg   )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Ô  é   rg   r–  rI   r  r   N)r2   rZ   r[   r   r   r   r
   r™  r	   r5   rÐ   r   r   r˜   )	r\   r   rà   rÚ   r(  ro  rÐ  r�  rœ  s	            r#   Ú.test_ohe_infrequent_multiple_categories_dtypesrÛ    sê  € ô 
×	Ñ	˜XÓ	&€BØ
�‰â@Ú1ñ	
ð ˜�ð 	ó 	€Aô Ø¨!Ð<Qô€Cð ×Ñ Ó"×*Ñ*Ó,€GÜ�s×1Ñ1°!Ñ4°s¸C°jÔAÜ�s×1Ñ1°!Ñ4²jÔAò 	ÚÚÚÚÚÚÚÚð
€Hô �H˜gÔ&à�\‰\ 3¨ *°b¸"°XÑ>ÈÐPUÈˆ\ÓW€Fâ"Ò$6Ð7€HØ—=‘= Ó(€LÜ�H˜l×2Ñ2Ó4Ô5à×!Ñ! ,Ó/€EÜ—8‘8Ø
Ð 4Ð	5¸Ð=QÐ7RÐSÜô€Lô �| UÔ+ð �\‰\ 3¨ *°b¸!°WÑ=ÈÈuÀ~ˆ\ÓV€FØ—=‘= Ó(×0Ñ0Ó2€LÚ"Ò$6Ð7€HÜ�H˜lÔ+à×!Ñ! ,Ó/€EÜ—8‘8Ø
Ð#Ð	$Ð';¸QÐ&?Ð@Ìô€Lô �| UÕ+r%   ri   )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œ| ¤Ž}|j	                  |«       |j                  dgg«      }t        |dgg«       y)ú,All user provided categories are infrequent.rS   r   rT   r#  r  rd   rÿ   r   r(   Fr«  r   Nr§   )r   r   rN   r   r1   r5   r	   ©rŽ  rš  rà   rÚ   s       r#   Ú$test_ohe_infrequent_one_level_errorsrß  H  sŒ   € ô �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑ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œ| ¤Žj                  |«      }|j                  dgdgg«      }t        |d	gd	gg«       y
)rÝ  r•  r   rI   r¶  Fr(   r·  rS   r   Nr§   )r   r   r˜   rN   r   r1   r5   r	   rÞ  s       r#   Ú5test_ohe_infrequent_user_cats_unknown_training_errorsrá  V  s   € ô �h‰h˜˜ ™	�{¬&Ô1×3Ñ3€GÜ
ð Ú(Ð)ØØ,ñð ñ	÷
 
�cˆ'ƒ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¬«      j                  |«      }t	        dgdgdgdgg|| ¬«      }|j                  |«      }t        j                  ddgddgddgddgg«      }t        ||«       t        |¬«      j                  |«      }	|	j                  |«      }t        j                  dgdgdgdgg«      }t        ||«       y	)
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
    rT   rS   rI   Fr²   r   r   r­   N)	r   r   r   r1   r   r5   r	   r   r
   )
rG   Úcategory_dtyperé  r   rL   rà   ro  rÚ   r(  Úoes
             r#   Útest_encoders_string_categoriesrî  g  sù   € ô 	�‰�3�%˜#˜� {Ô3€AÜ—(‘(˜C ˜:¨^Ô<Ð=€JÜ
 :¸UÔ
C×
GÑ
GÈÓ
J€CäØ
ˆ��˜�u˜s˜eÐ$ j¸ô€Fð �m‰m˜FÓ#€Gä�x‰x˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°Ð8Ó9€HÜ�G˜XÔ&ä	 :Ô	.×	2Ñ	2°1Ó	5€BØ�l‰l˜6Ó"€Gä�x‰x˜!˜˜q˜c A 3¨¨Ð,Ó-€HÜ�w Õ)r%   c                  ó4  — t        j                  dgdggd¬«      } t        j                  ddgd¬«      g}t        |d¬«      }t        j                  d«      }t        j                  t        |¬	«      5  |j                  | «       d
d
d
«       y
# 1 sw Y   y
xY w)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.
    rT   rS   ÚUrI   Ú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Ò   r2   r3   r4   r1   )r   rL   rà   rÕ   s       r#   Ú$test_mixed_string_bytes_categoricalsrò  †  s‚   € ô 	�‰�3�%˜#˜� sÔ+€Aä—(‘(˜C ˜:¨SÔ1Ð2€JÜ
 :¸UÔ
C€Cä
�)‰)ð	'ó€Cô
 
�‰”z¨Ô	-ñ Ø�‰�Œ
÷÷ ñ ús   Á3BÂBc                 óÖ   — t        j                  dd| d| ggt        ¬«      j                  }t	        dd¬«      j                  |«      }|j                  «       }t        |ddd	| › �g«       y )
NrS   rT   rI   Fr'   ©r   r&   Úx0_ar  Úx0_)r   r   r˜   rN   r   r1   rŽ   r
   )rs  r   rà   Únamess       r#   Ú)test_ohe_missing_values_get_feature_namesrø  ›  se   € ô 	�‰�3˜˜]¨C°Ð?Ð@ÌÔO×QÑQ€AÜ
 e¸HÔ
E×
IÑ
IÈ!Ó
L€CØ×%Ñ%Ó'€EÜ�u˜v v°°]°OÐ/DÐEÕFr%   c            	      ó(  — t        j                  d«      } | j                  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        ||«       y )NrR   )Údogr½   Nr½   r   r   r+   rI   )Ú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   )	r2   rZ   r[   r   r   r¾   Úfloatr·   r	   )r\   ÚdfÚexpected_df_transrÄ   s       r#   Ú%test_ohe_missing_value_support_pandasr   ¤  s‹   € ä	×	Ñ	˜XÓ	&€BØ	�‰â/Ü—H‘H˜a  A¤r§v¡vÐ.´eÔ<ñ	
ð ˜Ð ð 
ó 
€Bô Ÿ™â!Ú!Ú!Ú!ð		
óÐô # 2Ó
&€CÜ�CÐ*Õ+r%   Úpd_nan_typeúpd.NAznp.nanc           
      ó  — t        j                  d«      }| dk(  r|j                  nt        j                  }|j                  d|j                  dd|ddgd¬«      i«      }t        j                  g d	¢g d
¢g d¢g d¢g d
¢g«      }t        d|¬«      }|j                  |«      }t        ||«       t        |j                  «      dk(  sJ ‚t        |j                  d   d d g d¢«       t        j                  |j                  d   d   «      sJ ‚y )NrR   r  rû  r  rS   rT   r    rI   )r   r   r   r   )r   r   r   r   )r   r   r   r   rÄ  Frô  r   r   rA   r   )r2   rZ   ÚNAr   r¾   r[   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�r—u’u¼B¿F¹FÐà	�‰à�B—I‘I˜s CÐ)9¸3ÀÐDÈJ�IÓWð	
ó
€Bô
 Ÿ™âÚÚÚÚð	
óÐô  e¸NÔ
K€CØ× Ñ  Ó$€HÜÐ% xÔ0äˆs�‰Ó 1Ò$Ð$Ð$Ü�s—‘ qÑ)¨#¨2Ð.²Ô@Ü�8‰8�C—O‘O AÑ& rÑ*Ô+Ð+Ñ+r%   c                 óö  — ddgddgddgg}t        dd| ¬«      }|j                  |«      }t        j                  g d	¢g d
¢g d¢g«      }t	        ||«       ddgg}t        j                  g d	¢g«      }d}t        j                  t        |¬«      5  |j                  |«      }ddd«       t	        ||«       |j                  |«      }t        |t        j                  ddggt        ¬«      «       y# 1 sw Y   ŒOxY w)zZCheck drop='first' and handle_unknown='ignore'/'infrequent_if_exist'
    during transform.rS   r   rT   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/   NrI   ©r   r   r   r   r	   r2   rm  rn  r5   rÐ   r
   r˜   ©r&   r   rà   rÚ   rO   ro  rp  r�  s           r#   Ú/test_ohe_drop_first_handle_unknown_ignore_warnsr  Û  sø   € ð ˆqˆ�C˜�8˜c 1˜XÐ&€Aä
Ø E¸.ô€Cð ×Ñ Ó"€Gä—‘âÚÚð	
ó€Jô �G˜ZÔ(ð �AˆhˆZ€FÜ—‘š9˜+Ó&€Jð	ð ô
 
�‰”k¨Ô	2ñ (Ø—-‘- Ó'ˆ÷(ä�G˜ZÔ(ð ×!Ñ! *Ó-€EÜ�uœbŸh™h¨¨a¨ z¼Ô@ÕA÷(ð (úó   ÂC/Ã/C8c                 óö  — ddgddgddgg}t        dd| ¬«      }|j                  |«      }t        j                  g d	¢g d
¢g d¢g«      }t	        ||«       ddgg}t        j                  g d¢g«      }d}t        j                  t        |¬«      5  |j                  |«      }ddd«       t	        ||«       |j                  |«      }t        |t        j                  ddggt        ¬«      «       y# 1 sw Y   ŒOxY w)zDCheck drop='if_binary' and handle_unknown='ignore' during transform.rS   r   rT   r   r   rÞ   Fr  rÄ  rÃ   rX   r  r   )r   r   r   r   r  r/   NrI   r  r  s           r#   Ú3test_ohe_drop_if_binary_handle_unknown_ignore_warnsr    sø   € ð ˆqˆ�C˜�8˜c 1˜XÐ&€Aä
Ø¨¸nô€Cð ×Ñ Ó"€Gä—‘âÚÚð	
ó€Jô �G˜ZÔ(ð �AˆhˆZ€FÜ—‘š<˜.Ó)€Jð	ð ô
 
�‰”k¨Ô	2ñ (Ø—-‘- Ó'ˆ÷(ä�G˜ZÔ(ð ×!Ñ! *Ó-€EÜ�uœbŸh™h¨¨d¨ }¼FÔCÕD÷(ð (úr  c                 ó>  — ddgddgddgg}t        dd| ddgddgg¬«      }|j                  |«       d	dgg}t        j                  ddgg«      }d
}t	        j
                  t        |¬«      5  |j                  |«      }ddd«       t        |«       y# 1 sw Y   ŒxY w)znCheck drop='first' and handle_unknown='ignore'/'infrequent_if_exist'
    during fit with categories passed in.rS   r   rT   r   r   rÈ   Frj  r  rk  r/   Nrl  )r&   r   rà   ro  rO   rp  rÚ   s          r#   Ú'test_ohe_drop_first_explicit_categoriesr  &  s³   € ð
 ˆqˆ�C˜�8˜c 1˜XÐ&€Aä
ØØØ%Ø˜#�J  A Ð'ô	€Cð ‡G�GˆA„Jà�AˆhˆZ€FÜ—‘˜A˜q˜6˜(Ó#€Jð	Að ô 
�‰”k¨Ô	2ñ (Ø—-‘- Ó'ˆ÷(ä�G˜ZÕ(÷(ð (úrr  c                  óÌ  — t        j                  d«      } | j                  g d¢g d¢dœddg¬«      }t        d¬	«      }|j	                  d¬
«       d}t        j
                  t        |¬«      5  |j                  |«       ddd«       |j                  |«       t        j
                  t        |¬«      5  |j                  |«       ddd«       y# 1 sw Y   ŒPxY w# 1 sw Y   yxY w)zJRaise informative error message when pandas output and sparse_output=True.rR   r  )r  rT   rT   )rS   rT   rS   rT   r×  Tr   ©r5   zxPandas output does not support sparse data. Set sparse_output=False to output pandas dataframes or disable Pandas outputr/   N)
r2   rZ   r[   r   Ú
set_outputr3   r4   r   r1   r5   )r\   rþ  rà   rÕ   s       r#   Ú'test_ohe_more_informative_error_messager  A  sÄ   € ä	×	Ñ	˜XÓ	&€BØ	�‰šIªOÑ<ÀsÈCÀjˆÓ	Q€Bä
 dÔ
+€CØ‡N�N˜X€NÔ&ð	Sð ô 
�‰”z¨Ô	-ñ Ø×Ñ˜"Ô÷ð ‡G�GˆB„KÜ	�‰”z¨Ô	-ñ Ø�‰�bÔ÷ð ÷	ð ú÷ð ús   Á-CÂ3CÃCÃC#c                  óD  — t        j                  t         j                  dddgg«      j                  } t	        t         j
                  ¬«      }dt         j
                  › �}t        j                  t        |¬«      5  |j                  | «       ddd«       y# 1 sw Y   yxY w)zDTest ordinal encoder with nan passthrough fails when dtype=np.int32.rç   r   rI   zdThere are missing values in features \[0\]. For OrdinalEncoder to encode missing values with dtype: r/   N)
r   r   r¾   rN   r   Úint32r2   r3   r4   r1   )r   rí  rÕ   s      r#   ÚBtest_ordinal_encoder_passthrough_missing_values_float_errors_dtyper  U  s~   € ô 	�‰”2—6‘6˜3  SÐ)Ð*Ó+×-Ñ-€AÜ	œbŸh™hÔ	'€Bð	0Ü02·±¨zð	;ð ô 
�‰”z¨Ô	-ñ Ø
�‰ˆqŒ	÷÷ ñ ús   Á;BÂBÚencoded_missing_valuer8  c                 óÊ  — t        j                  t         j                  dddggt         j                  ¬«      j                  }t        | ¬«      j                  |«      }t        |j                  «      dk(  sJ ‚t        |j                  d   ddt         j                  g«       |j                  |«      }t        || gdgdgdgg«       |j                  |«      }t        ||«       y)	z.Test ordinal encoder with nan on float dtypes.rç   r   rI   ©r  r   r   r   N)r   r   r¾   r/  rN   r   r1   r  rô   r	   r5   rÐ   )r  r   rí  rÚ   r¡  s        r#   Ú5test_ordinal_encoder_passthrough_missing_values_floatr  c  s½   € ô 	�‰”2—6‘6˜3  SÐ)Ð*´"·*±*Ô=×?Ñ?€AÜ	Ð.CÔ	D×	HÑ	HÈÓ	K€Bäˆr�~‰~Ó !Ò#Ð#Ð#ä�B—N‘N 1Ñ%¨¨S´"·&±&Ð'9Ô:à�l‰l˜1‹o€GÜ�GÐ4Ð5¸°u¸s¸eÀcÀUÐKÔLà×$Ñ$ WÓ-€IÜ�I˜qÕ!r%   c           
      óÐ  — t        j                  d«      }| dk(  r|j                  nt        j                  }|j                  d|j                  dd|ddgd¬«      i«      }t        |¬	«      j                  |«      }t        |j                  «      d
k(  sJ ‚t        |j                  d   dd g d¢«       t        j                  |j                  d   d   «      sJ ‚|j                  |«      }t        |dgdg|gdgdgg«       |j                  |«      }|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 ‚y)z0Check ordinal encoder is compatible with pandas.rR   r  rû  r  rS   rT   r    rI   r  r   r   Nr   r   rA   ç       @r   r   )r   r   r   rÍ   )r2   rZ   r  r   r¾   r[   rî   r   r1   r  rô   r
   r  r5   r	   rÐ   r   )r  r  r\   r  rþ  rí  r  r¡  s           r#   Ú=test_ordinal_encoder_missing_value_support_pandas_categoricalr"  u  s`  € ô 
×	Ñ	˜XÓ	&€Bà +¨wÒ 6�r—u’u¼B¿F¹FÐà	�‰à�B—I‘I˜s CÐ)9¸3ÀÐDÈJ�IÓWð	
ó
€Bô 
Ð.CÔ	D×	HÑ	HÈÓ	L€BÜˆr�~‰~Ó !Ò#Ð#Ð#Ü�r—~‘~ aÑ(¨¨!Ð,ªoÔ>Ü�8‰8�B—N‘N 1Ñ% bÑ)Ô*Ð*Ð*à�|‰|˜BÓ€Hä�H ˜u s eÐ.CÐ-DÀsÀeÈcÈUÐSÔTà×$Ñ$ XÓ.€IØ�?‰?˜fÒ$Ð$Ð$Ü�y  !  Q Ñ'¨#¨s¨Ô4Ü�y ¡ Q Ñ'¨#¨s¨Ô4Ü�8‰8�I˜d‘OÔ$Ð$Ñ$r%   r!  )zobject-None-missing-valuezobject-nan-missing_valueznumeric-missing-valuec                 óv  — t        |¬«      }t        j                  dgt        j                  gg«      }t	        |j                  | «      |«       |j                  d   j                  |k(  sJ ‚t        |¬«      }t        j                  t        d¬«      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)z.Test ordinal encoder for specified categories.r­   r   r   r.   r/   N)r   r   r   r¾   r
   r   rô   rJ   r2   r3   r4   r1   )r   r8   r	  rú   rí  rÔ   s         r#   Ú=test_ordinal_encoder_specified_categories_missing_passthroughr$  –  s™   € ôL 
 4Ô	(€BÜ
�(‰(�S�EœBŸF™F˜8Ð$Ó
%€CÜ�r×'Ñ'¨Ó*¨CÔ0ð �>‰>˜!Ñ×"Ñ" iÒ/Ð/Ð/ô 
 4Ô	(€BÜ	�‰”zÐ)CÔ	Dñ Ø
�‰ˆrŒ
÷÷ ñ ús   ÂB/Â/B8c                 ó$  — t        j                  g d¢t        ¬«      g} | |¬«      }t        j                  ddggt        ¬«      j                  }t	        j
                  t        d¬«      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)	z�Test encoder for specified categories have duplicate values.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27088
    )rS   rT   rS   rI   r­   rS   rT   z5the predefined categories contain duplicate elements.r/   N)r   r   r˜   rN   r2   r3   r4   r1   r  s       r#   Ú+test_encoder_duplicate_specified_categoriesr&  Ê  sq   € ô �H‰H’_¬FÔ3Ð4€DÙ
˜TÔ
"€CÜ
�‰�3˜�*�¤VÔ,×.Ñ.€AÜ	�‰ÜÐQô
ñ ð 	�‰�Œ
÷÷ ñ ús   Á+BÂBzX, expected_X_trans, X_testr   r   )r   rè   rç   )r   r!  r   r  )r  rS   rT   )r!  r   r   c                 ó’   — t        dd¬«      }|j                  | «      }t        ||«       t        |j                  |«      dgg«       y)z>Test the interaction between missing values and handle_unknownr7  rA   r9  g      ð¿N)r   r   r	   r5   )r   Úexpected_X_transro  rí  rÚ   s        r#   Ú/test_ordinal_encoder_handle_missing_and_unknownr)  Ú  sC   € ô8 
Ð':È"Ô	M€Bà×Ñ˜qÓ!€GÜ�GÐ-Ô.ä�B—L‘L Ó(¨D¨6¨(Õ3r%   Úcsr_containerc                 ó  — t        j                  g d¢g d¢g«      } | |«      }t        «       }d}t        j                  t
        |¬«      5  |j                  |«       ddd«       t        j                  t
        |¬«      5  |j                  |«       ddd«       |j                  |«      } | |«      }t        j                  t
        |¬«      5  |j                  |«       ddd«       y# 1 sw Y   Œ�xY w# 1 sw Y   ŒdxY w# 1 sw Y   yxY w)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   r2   r3   r©   r1   r   rÐ   )r*  r   ÚX_sparseÚencoderrª   rÚ   r!   s          r#   Útest_ordinal_encoder_sparser.  þ  sà   € ô 	�‰’)šYÐ'Ó(€AÙ˜QÓ€HäÓ€GàB€GÜ	�‰”y¨Ô	0ñ Ø�‰�HÔ÷ä	�‰”y¨Ô	0ñ (Ø×Ñ˜hÔ'÷(ð ×#Ñ# AÓ&€GÙ" 7Ó+€NÜ	�‰”y¨Ô	0ñ 2Ø×!Ñ! .Ô1÷2ð 2÷ð ú÷(ð (ú÷
2ð 2ús$   ÁC)Â C5ÃDÃ)C2Ã5C>ÄD
c                  óB  — t        j                  g d¢«      dd…t         j                  f   } t        g d¢gdd¬«      }|j	                  | «       t        g d¢gd¬«      }t        j                  t        d	¬
«      5  |j	                  | «       ddd«       y# 1 sw Y   yxY w)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)rA   r   r   r7  rE  )rL   r&   r:  r,   r  r.   r/   )r   r   Únewaxisr   r1   r2   r3   r4   )r   rí  s     r#   Ú-test_ordinal_encoder_fit_with_unseen_categoryr1    s   € ô 	�‰Ò#Ó$¢Q¬¯
©
 ]Ñ3€AÜ	Ú�<Ð0CÐSWô
€Bð ‡F�Fˆ1„Iä	¢J <ÀÔ	H€BÜ	�‰”zÐ)CÔ	Dñ Ø
�‰ˆqŒ	÷÷ ñ ús   Á:BÂBrš  ÚAAÚOrð  ro  c                 ó€   — t        dd¬«      }|j                  | «       |j                  |«      }t        |ddgg«       y)z–Checks that `OrdinalEncoder` transforms string dtypes.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/19872
    r7  i÷ÿÿÿr9  r   N)r   r1   r5   r	   )rš  ro  r�   rÚ   s       r#   Ú1test_ordinal_encoder_handle_unknown_string_dtypesr5  &  s;   € ô* Ð(;È2Ô
N€CØ‡G�GˆGÔà�m‰m˜FÓ#€GÜ�G˜r 1˜g˜YÕ'r%   c                  ó8  — t        j                  g d¢«      j                  dd«      } t        «       j	                  | «      }t        |j                  t        j                  | d¬«      j                  «       |j                  | «      }t        |dgdgdgdgg«       y)	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rA   r   r   )Úaxisr   r   N)
r   r   rD   r   r1   r
   rô   ÚsortrN   r5   )r   r-  rÚ   s      r#   Ú#test_ordinal_encoder_python_integerr9  B  sˆ   € ô 	�‰ò	
ó	÷ �gˆb�!ƒnð ô Ó×"Ñ" 1Ó%€GÜ�w×*Ñ*¬B¯G©G°A¸AÔ,>×,@Ñ,@ÔAØ×Ñ Ó"€GÜ�w !  q c¨A¨3°°Ð 4Õ5r%   c                  óÌ   — t        j                  d«      } g d¢}| j                  g d¢g|¬«      }t        «       j	                  |«      }|j                  «       }t        ||«       y)z-Check feature names out is same as the input.rR   )rT   r  rS   r  r×  N)r2   rZ   r[   r   r1   rŽ   r
   )r\   r÷  r   r�   Úfeature_names_outs        r#   Ú.test_ordinal_encoder_features_names_out_pandasr<  V  sX   € ä	×	Ñ	˜XÓ	&€Bâ€EØ
�‰’i�[¨%ˆÓ0€AÜ
Ó
×
Ñ
˜qÓ
!€Cà×1Ñ1Ó3ÐÜ�uÐ/Õ0r%   c                  ó&  — t        j                  dgdgt         j                  ggt        ¬«      } t	        dt         j                  d¬«      j                  | «      }|j                  | «      }t        |dgdgdgg«       t        j                  d	gt         j                  ggt        ¬«      }|j                  |«      }t        |t         j                  gdgg«       |j                  |«      }|d   d   �J ‚t        j                  |d   d   «      sJ ‚y
)zECheck interactions between encode_unknown and missing value encoding.rS   rT   rI   r7  éýÿÿÿ©r&   r:  r  r   r   r  N)
r   r   r¾   r˜   r   r1   r5   r	   rÐ   r  )r   rí  rÚ   ro  rÐ  ÚX_roundtrips         r#   Ú0test_ordinal_encoder_unknown_missing_interactionrA  b  sú   € ô 	�‰�3�%˜#˜¤§¡ Ð)´Ô8€Aä	Ø*Ü—f‘fØ ô
÷ 
�cˆ!ƒfð	 ð �l‰l˜1‹o€GÜ�G˜q˜c A 3¨¨Ð-Ô.ô �X‰X˜�uœrŸv™v˜hÐ'¬vÔ6€FØ—<‘< Ó'€LÜ�L¤B§F¡F 8¨b¨TÐ"2Ô3ð ×&Ñ& |Ó4€Kð �q‰>˜!ÑÐ$Ð$Ð$ô �8‰8�K ‘N 1Ñ%Ô&Ð&Ñ&r%   Úwith_pandasc                 ót  — t        j                  ddgddgdt         j                  ggt        ¬«      }d}| r0t	        j
                  d«      }|j                  |d	d
g¬«      }|dz   }n|dz   }t        d¬«      }t	        j                  t        |¬«      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)zXCheck OrdinalEncoder errors when encoded_missing_value is used by
    an known category.rS   rú  rT   r½   r  rI   zTencoded_missing_value \(1\) is already used to encode a known category in features: rR   ÚletterÚpetr×  z	\['pet'\]z\[1\]r   r  r/   N)r   r   r¾   r˜   r2   rZ   r[   r   r3   r4   r1   )rB  r   Ú	error_msgr\   rí  s        r#   Ú0test_ordinal_encoder_encoded_missing_value_errorrG  €  s­   € ô 	�‰�3˜�,  e ¨s´B·F±F¨mÐ<ÄFÔK€Að
	ð ñ
 Ü× Ñ  Ó*ˆØ�L‰L˜ X¨uÐ$5ˆLÓ6ˆØ Ñ,‰	à Ñ(ˆ	ä	¨aÔ	0€Bä	�‰”z¨Ô	3ñ Ø
�‰ˆqŒ	÷÷ ñ ús   ÂB.Â.B7z4X_train, X_test_trans_expected, X_roundtrip_expectedÚ1c                 óà  — t        dt        j                  t        j                  ¬«      j                  | «      }t        j                  dgt        j                  gdgg«      }|j                  |«      }t        ||«       |j                  |«      }|j                  d   }t        |«      D ]A  }||df   }	||df   }
|	€|
€ŒJ ‚t        |	«      rt        j                  |
«      rŒ9J ‚|
|	k(  rŒAJ ‚ y)znCheck transform when unknown_value and encoded_missing_value is nan.

    Non-regression test for #24082.
    r7  r?  rH  rT   r   N)r   r   r¾   r1   r   r5   r	   rÐ   r   r[  r   r  )rš  ÚX_test_trans_expectedÚX_roundtrip_expectedrí  ro  rÐ  r@  Ú	n_samplesr]  Úexpected_valÚvals              r#   Ú9test_ordinal_encoder_unknown_missing_interaction_both_nanrO  š  sï   € ô4 
Ø*Ü—f‘fÜ Ÿf™fô
÷ 
�cˆ'ƒlð	 ô �X‰X˜�uœrŸv™v˜h¨¨Ð.Ó/€FØ—<‘< Ó'€Lô �LÐ"7Ô8Ø×&Ñ& |Ó4€Kà$×*Ñ*¨1Ñ-€IÜ�9Óò 	'ˆØ+¨A¨q¨DÑ1ˆØ˜!˜Q˜$ÑˆàÐØ‘;Ð�;Ü˜<Ô(Ü—8‘8˜C•=Ð �=à˜,Ó&Ð&Ð&ñ	'r%   c                  óL  — t        j                  d«      } | j                  ddgddgdœ«      }t        «       }|j	                  d¬«       d}t        j
                  t        |¬	«      5  |j                  |«       d
d
d
«       t        d¬«      j	                  d¬«      }t        d¬«      j	                  d¬«      }|j                  |«      }|j                  |«      }t        |j                  «       |«       t        |j                  «       |j                  «       y
# 1 sw Y   Œ¢xY w)z*Check OneHotEncoder works with set_output.rR   rS   rT   r   r   rU   r  zCPandas output does not support sparse data. Set sparse_output=Falser/   NFr   Údefault)r2   rZ   r[   r   r  r3   r4   r   r	   Úto_numpyr
   rŽ   rØ  )r\   r]   rà   r0   Úohe_defaultÚ
ohe_pandasÚ	X_defaultÚX_pandass           r#   Útest_one_hot_encoder_set_outputrW  Î  sö   € ä	×	Ñ	˜XÓ	&€Bà�<‰<˜s C˜j°°1¨vÑ6Ó7€DÜ
‹/€Cà‡N�N˜X€NÔ&àQ€EÜ	�‰”z¨Ô	/ñ  Ø×Ñ˜$Ô÷ ô  ¨eÔ4×?Ñ?È)Ð?ÓT€KÜ¨UÔ3×>Ñ>ÈÐ>ÓR€Jà×)Ñ)¨$Ó/€IØ×'Ñ'¨Ó-€Hä�H×%Ñ%Ó'¨Ô3Ü�z×7Ñ7Ó9¸8×;KÑ;KÕL÷ ð  ús   Á'DÄD#c                  ó†  — t        j                  d«      } | j                  ddgddgdœ«      }t        «       j	                  d¬«      }t        «       j	                  d¬«      }|j                  |«      }|j                  |«      }t        |j                  «       |«       t        |j                  «       |j                  «       y	)
z+Check OrdinalEncoder works with set_output.rR   rS   rT   r   r   rU   rQ  r  N)r2   rZ   r[   r   r  r   r	   rR  r
   rŽ   rØ  )r\   r]   Úord_defaultÚ
ord_pandasrU  rV  s         r#   Útest_ordinal_set_outputr[  å  s¥   € ä	×	Ñ	˜XÓ	&€Bà�<‰<˜s C˜j°°1¨vÑ6Ó7€Dä Ó"×-Ñ-¸	Ð-ÓB€KÜÓ!×,Ñ,°xÐ,Ó@€Jà×)Ñ)¨$Ó/€IØ×'Ñ'¨Ó-€Hä�H×%Ñ%Ó'¨Ô3Ü�z×7Ñ7Ó9¸8×;KÑ;KÕLr%   c                  ó  — g d¢ddgg} t        | ¬«      }|j                  ddgg«       t        | «      t        |j                  «      k(  sJ ‚t	        |j                  «      D ])  \  }}|j
                  t        k(  sJ ‚t        | |   |«       Œ+ y)zjCheck that the categories_ dtype is `object` for string categories

    Regression test for gh-25171.
    )ÚasÚmmasÚeasÚrasÚacsrH  Ú2r­   r]  N)r   r1   r  rô   Ú	enumeraterJ   r˜   r
   )rL   r�   Únr½   s       r#   Ú test_predefined_categories_dtypere  õ  s…   € ò
 6¸¸S°zÐB€Jä
 :Ô
.€Cà‡G�Gˆd�Cˆ[ˆMÔäˆz‹?œc #§/¡/Ó2Ò2Ð2Ð2Ü˜CŸO™OÓ,ò /‰ˆˆ3Ø�y‰yœFÒ"Ð"Ð"Ü˜: a™=¨#Õ.ñ/r%   c                  ó`  — t        j                  dgdgt         j                  ggt        ¬«      } t	        d¬«      j                  | «      }t        |dgdgdgg«       t	        dd¬	«      j                  | «      }t        j                  d
gg«      }|j                  |«      }t        |dgg«       y)zBCheck missing value or unknown encoding can equal the cardinality.rú  r½   rI   r   r  r   r   r7  r9  ÚsnakeN)	r   r   r¾   r˜   r   r   r	   r1   r5   )r   rÚ   r�   ro  s       r#   Ú1test_ordinal_encoder_missing_unknown_encoding_maxrh    s•   € ä
�‰�5�'˜E˜7¤R§V¡V HÐ-´VÔ<€AÜ°1Ô5×CÑCÀAÓF€GÜ�G˜q˜c A 3¨¨˜_Ô-ä
Ð(;È1Ô
M×
QÑ
QÐRSÓ
T€CÜ�X‰X˜�y�kÓ"€FØ�m‰m˜FÓ#€GÜ�G˜q˜c˜UÕ#r%   c                  óH  — 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
¬«      j                  | «      }t        |j                  «       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¬«      j                  | «      }t        |j                  «       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¬«      j                  | «      }t        |j                  «       g d¢«       |j                  d   |j                  d      dk(  sJ ‚t	        dd	d¬«      j                  | «      }t        |j                  «       g d¢«       |j                  �J ‚y)zkCheck drop_idx is defined correctly with infrequent categories.

    Non-regression test for gh-25550.
    rS   r   rT   r+   r  rÿ   r•  rI   FrÈ   )r�  r   rÇ   )r  Úx0_dÚx0_er—  r   rd   rÞ   r—  )r  r  rk  r—  N)r  r  rj  rk  r—  )
r   r   r˜   rN   r   r1   r
   rŽ   rô   r'  )r   rà   s     r#   Ú#test_drop_idx_infrequent_categoriesrl    s&  € ô
 	�‰Ø
ˆ�‰�c�U˜Q‘YÑ	 # ¨¡Ñ	*¨c¨U°Q©YÑ	6¸#¸À¹Ñ	BÐCÌ6ô	ç�að ô  a°uÀ7Ô
K×
OÑ
OÐPQÓ
R€CÜØ×!Ñ!Ó#Ò%Vôð �?‰?˜1Ñ˜cŸm™m¨AÑ.Ñ/°3Ò6Ð6Ð6ä
�‰�3�%˜!‘)˜s˜e a™iÑ'¨3¨%°"©*Ñ4Ð5¼VÔD×FÑF€AÜ
 a°uÀ;Ô
O×
SÑ
SÐTUÓ
V€CÜ�s×0Ñ0Ó2Ð5LÐ4MÔNØ�?‰?˜1Ñ˜cŸm™m¨AÑ.Ñ/°3Ò6Ð6Ð6ä
�‰Ø
ˆ�‰�c�U˜Q‘YÑ	 # ¨¡Ñ	*¨c¨U°Q©YÑ	6¸#¸À¹Ñ	BÐCÌ6ô	ç�að ô  a°uÀCÀ5Ô
I×
MÑ
MÈaÓ
P€CÜØ×!Ñ!Ó#Ò%Vôð �?‰?˜1Ñ˜cŸm™m¨AÑ.Ñ/°3Ò6Ð6Ð6ä
 a°uÀ4Ô
H×
LÑ
LÈQÓ
O€CÜØ×!Ñ!Ó#Ú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œ| ¤Žj	                  |«      }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}|j                  |«      }t        ||«       |j                  |«      }dgdgdgdgdgg}t        ||«       y)zGTest parameters for grouping 'a', and 'd' into the infrequent category.rS   r   rT   r#  r  rd   rÿ   r   r7  rA   r9  r’  r  r   r   r   r–  Nr§   )r   r   rN   r   r1   r
   rô   r™  r5   r	   rÐ   )rŽ  rš  Úordinalro  Úexpected_transrÚ   r¡  Úexpected_inverses           r#   Ú,test_ordinal_encoder_infrequent_three_levelsrq  6  s$  € ô �h‰h˜˜ ™	 S E¨B¡JÑ.°#°¸±Ñ;¸s¸eÀa¹iÑGÐHÓI×KÑK€GÜð Ø*¸"ñØ@Fñç	�cˆ'ƒlð ô �w×*Ñ*Ò-AÐ,BÔCÜ�w×5Ñ5¸¸c¸
°|ÔDàˆe�c�U˜S˜E C 5¨3¨%Ð0€FØ�c˜A˜3   a S¨2¨$Ð/€Nà×Ñ Ó'€GÜ�G˜^Ô,à×)Ñ)¨'Ó2€Ià	ÐØ	ˆØ	ˆØ	ÐØ	ˆðÐô �yÐ"2Õ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¬«      j                  | «      }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}|j                  |«      }t        ||«       |j                  |«      }dgdgdgdgdgg}t        ||«       y)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.
    rS   r   rT   r#  r  rd   rÿ   r   rI   r¿  r7  rA   )rL   r�  r&   r:  r  r   r   r   r–  N)r   r   r˜   rN   r   r1   r
   rô   r™  r5   r	   rÐ   )rš  rn  ro  ro  rÚ   r¡  rp  s          r#   Ú6test_ordinal_encoder_infrequent_three_levels_user_catsrs  ]  s,  € ô �h‰hØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Äôç�að ô Ú(Ð)ØØ*Øô	÷
 
�cˆ'ƒlð ô �w×*Ñ*Ò-AÐ,BÔCÜ�w×5Ñ5¸¸c¸
°|ÔDàˆe�c�U˜S˜E C 5¨3¨%Ð0€FØ�c˜A˜3   a S¨2¨$Ð/€Nà×Ñ Ó'€GÜ�G˜^Ô,à×)Ñ)¨'Ó2€Ià	ÐØ	ˆØ	ˆØ	ÐØ	ˆðÐô �yÐ"2Õ3r%   c                  óž  — t        j                  g d¢g d¢f«      } t        d¬«      j                  | «      }t	        |j
                  d   ddg«       |j
                  d   �J ‚ddgddgg}ddgddgg}|j                  |«      }t        ||«       |j                  |«      }t        j                  ddgd	dggt        ¬
«      }t	        ||«       y)zETest when feature 0 has infrequent categories and feature 1 does not.rÂ  rÃ  r   ©r�  r   r   r   Nr–  rI   )r   Úcolumn_stackr   r1   r
   r™  r5   r	   rÐ   r   r˜   )r   rn  ro  ro  rÚ   r¡  rp  s          r#   Ú%test_ordinal_encoder_infrequent_mixedrw  �  s×   € ô 	�‰Ò4Ò6QÐRÓS€Aä¨AÔ.×2Ñ2°1Ó5€Gä�w×5Ñ5°aÑ8¸1¸a¸&ÔAØ×)Ñ)¨!Ñ,Ð4Ð4Ð4à�!ˆf�q˜!�fÐ€FØ˜!�f˜q !˜fÐ%€Nà×Ñ Ó'€GÜ�G˜^Ô,à×)Ñ)¨'Ó2€IÜ—x‘x ! Q Ð*>ÀÐ)BÐ CÌ6ÔRÐÜ�yÐ"2Õ3r%   c            	      óz  — t        j                  d«      } | j                  g d¢«      }| j                  g d¢g d¢| j	                  dgdz  dgdz  z   d	gz   d
gz   |¬«      dœg d¢¬«      }t        d¬«      j                  |«      }t        |j                  d   ddg«       t        |j                  d   g d¢«       t        |j                  d   d
d	g«       | j                  g d¢g d¢| j	                  dgd	gz   d
gz   dgz   |¬«      dœg d¢¬«      }g d¢g d¢g d¢g d¢g}|j                  |«      }t        ||«       y)zHTest infrequent categories with a pandas DataFrame with multiple dtypes.rR   )Úbirdr½   rú  rg  rÓ  rÕ  rú  r+   r½   r   rg  ry  rI   )rÖ  rN  rŒ  r×  ru  r   rS   rT   r   rÙ  r   )rS   rT   rÔ  r  )rg   r   rd   r   )r   r   r   )r   r   r   )r   r   r   r¬  N)r2   rZ   ÚCategoricalDtyper[   rî   r   r1   r
   r™  r5   r	   )r\   Úcategorical_dtyper   rn  ro  ro  rÚ   s          r#   Ú:test_ordinal_encoder_infrequent_multiple_categories_dtypesr|  –  s[  € ô 
×	Ñ	˜XÓ	&€BØ×+Ñ+Ò,KÓLÐØ
�‰â@Ú1ØŸ9™9Ø�˜!‘˜u˜g¨™kÑ)¨W¨IÑ5¸¸Ñ@Ø'ð %ó ñ	
ò .ð 	ó 
	€Aô ¨AÔ.×2Ñ2°1Ó5€Gô �w×5Ñ5°aÑ8¸3À¸*ÔEÜ�w×5Ñ5°aÑ8º*ÔEÜ�w×5Ñ5°aÑ8¸6À7Ð:KÔLà�\‰\â'Ú!ØŸ9™9Ø�˜7˜)Ñ# v hÑ.°%°Ñ8Ø'ð %ó ñ	
ò .ð ó 
€Fò  ¢ªI²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¬«      j                  | «      }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}|j                  |«      }t        ||«       y)zJCheck behavior of unknown_value and encoded_missing_value with infrequent.rS   r   rT   r#  r  rd   rÿ   r   rI   r7  r   )r&   r:  r�  r  r”  r•  r   r   N)r   r   r¾   r˜   rN   r   r1   r
   r™  r5   r	   )rš  rn  ro  ro  rÚ   s        r#   Ú.test_ordinal_encoder_infrequent_custom_mappingr~  Æ  sò   € ä�h‰hØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8¼B¿F¹F¸8Ñ	CÐDÌFôç�að ô Ø*ØØØô	÷
 
�cˆ'ƒlð ô �w×5Ñ5ºÐ7HÔIä�X‰X˜�u˜s˜e c U¨S¨E°C°5¼2¿6¹6¸(ÐCÌ6ÔR€FØ�c˜A˜3   a S¨1¨#°¨sÐ3€Nà×Ñ Ó'€GÜ�G˜^Õ,r%   c                 ód  — 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œ¤Žj                  |«      }t	        d
d¬«      j                  |«      }dgdgdgdgdgg}t        |j                  |«      |j                  |«      «       y)zMAll categories are considered frequent have same encoding as default encoder.rS   r   rT   r#  r  rd   rÿ   r   rI   r7  rA   r9  r•  Nr§   ©r   r   r˜   rN   r   r1   r	   r5   )rŽ  rš  Úadjusted_encoderÚdefault_encoderro  s        r#   Ú!test_ordinal_encoder_all_frequentrƒ  Û  sÏ   € ô �h‰hØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Äôç�að ô &ñ Ø
ðØ!4ÀBóç	�cˆ'ƒlð ô %Ø*¸"ôç	�cˆ'ƒlð ð ˆe�c�U˜S˜E C 5¨3¨%Ð0€FäØ×"Ñ" 6Ó*¨O×,EÑ,EÀfÓ,Mõr%   éd   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œ¤Žj                  |«      }dgdgdgdgdgg}t        |j                  |«      dgdgdgdgdgg«       y)zAWhen all categories are infrequent, they are all encoded as zero.rS   r   rT   r#  r  rd   rÿ   r   rI   r7  rA   r9  r•  r   Nr§   r€  )rŽ  rš  r-  ro  s       r#   Ú#test_ordinal_encoder_all_infrequentr†  ö  s¹   € ô �h‰hØ
ˆ�‰�c�U˜R‘ZÑ	 3 %¨"¡*Ñ	,°¨u°q©yÑ	8Ð9Äôç�að ô ñ Ø
ðØ!4ÀBóç	�cˆ'ƒlð ð ˆe�c�U˜S˜E C 5¨3¨%Ð0€FÜ�G×%Ñ% fÓ-°°°a°S¸1¸#À¸sÀRÀDÐ/IÕ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	¬
«      j                  | «      }t        j                  dddt         j                  ggt        ¬«      j                  }|j                  |«      }t        |dgdgdgt         j                  gg«       y)z5Check behavior when missing value appears frequently.r#  rú  rd   r½   r   rg  ÚdeerrI   r   ru  r   r   r   N©	r   r   r¾   r˜   rN   r   r1   r5   r	   ©r   rn  ro  rÚ   s       r#   Ú-test_ordinal_encoder_missing_appears_frequentr‹  
	  s½   € ä
�‰Ü
�&‰&ˆ�B‰˜%˜ 2™Ñ	%¨¨°!©Ñ	3°w°iÑ	?À6À(Ñ	JÐKÜô	÷ �að ô ¨AÔ.×2Ñ2°1Ó5€Gä�X‰X˜ ¨¬r¯v©vÐ6Ð7¼vÔF×HÑH€FØ×Ñ Ó'€GÜ�G˜q˜c A 3¨¨¬b¯f©f¨XÐ6Õ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¬«      j                  | «      }t        j                  ddgdd	gt         j                  d	gdd	gddggt        ¬
«      }|j                  |«      }t        |ddgddgt         j                  dgddgddgg«       y)z7Check behavior when missing value appears infrequently.rú  rd   r½   r   rg  rˆ  ÚredrH  ÚgreenrI   r+   )r�  r   r   r   Nr‰  rŠ  s       r#   Ú/test_ordinal_encoder_missing_appears_infrequentr�  	  s   € ô
 	�‰ä�V‰VˆH˜�w ‘|Ñ# u g°¡kÑ1°W°IÑ=ÀÀÑHØˆG�a‰K˜7˜) a™-Ñ'ð	
ô ô	÷ �að ô ¨1Ô-×1Ñ1°!Ó4€Gä�X‰Xà�eÐØ�WÐÜ�V‰V�WÐØ�GÐØ�EˆNð	
ô ô	€Fð ×Ñ Ó'€GÜ�G˜q !˜f q¨! f¬r¯v©v°q¨k¸A¸q¸6ÀAÀqÀ6ÐJÕKr%   c                 óÜ   — t        j                  dgdgdggt        ¬«      } | g d¢g¬«      }t        j                  t
        «      5  |j                  |«       ddd«       y# 1 sw Y   yxY w)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`.
    rV   rW   ra  rI   r`  r­   N)r   r   r˜   r2   r3   r   r5   )r  r   r-  s      r#   Útest_encoder_not_fittedr‘  3	  s]   € ô 	�‰�3�%˜#˜  Ð&¬fÔ5€AÙ¢/Ð!2Ô3€GÜ	�‰”~Ó	&ñ Ø×Ñ˜!Ô÷÷ ñ úrÜ   )‚rÑ   re  Únumpyr   r2   Úscipyr   Úsklearn.exceptionsr   Úsklearn.preprocessingr   r   Úsklearn.utils._missingr   Úsklearn.utils._testingr   r	   r
   Úsklearn.utils.fixesr   r$   ÚmarkÚparametrizer;   rE   r  Úfloat32r/  rP   r^   r’   r™   r«   r°   r·   r   r˜   r¾   rý  rÅ   rÖ   rÛ   rá   rå   rë   rð   r  r\  Ústr_rþ   rN   r  r
  r  r  r  r  r   r+  r1  r3  r5  rC  rN  rJ  rL  rO  rT  r^  rc  rh  rq  rz  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.  r1  r5  r9  r<  rA  rG  rM   rO  rW  r[  re  rh  rl  rq  rs  rw  r|  r~  rƒ  r†  r‹  r�  r‘  r§   r%   r#   ú<module>r�     så  ðÛ 	Û ã Û Ý å -ß ?Ý 0÷ñ õ
 /ò@ð. ‡�×ÑÐ)Ò+TÓUñ#ó Vð#ð. ‡�×ÑÐ)Ò+TÓUñ&ó Vð&ð$ ‡�×Ñ˜¨"¯(©(°B·J±JÀÇ
Á
Ð)KÓLØ‡�×Ñ˜¨¯©°2·:±:¸r¿z¹zÐ(JÓKñ
;ó Ló Mð
;ð ‡�×Ñ˜¨"¯(©(°B·J±JÀÇ
Á
Ð)KÓLñAó MðAò92òxJò$ò4	9ò
ð ‡�×ÑØâ	šÐ(Øˆ�‰’+šzÐ*Ó+Øˆ�‰Ò#Ò%6Ð7¸vÔFØˆ�‰’/ C¨¯©°Ð#7Ð8ÀÔGØˆ�‰’/ C©¨u«°uÐ#=Ð>ÀfÔMØˆ�‰Ò"¢OÐ4¸FÔCØˆ�‰’/ C¨¯©°Ð#6Ð7¸vÔFØˆ�‰’/ C©¨u«°tÐ#<Ð=ÀVÔLð	ò		ð ó ñ.Gó/ð.Gð ‡�×ÑÐ)Ò+TÓUØ‡�×Ñ˜ U¨D MÓ2Ø‡�×Ñ˜ $¨ Ó1ñ,$ó 2ó 3ó Vð,$ð^ ‡�×Ñ˜ U¨D MÓ2Ø‡�×ÑØàˆbˆ'�A�r�7˜Q ˜GÐ	$¢y²)ºYÐ&GÐHà�Sˆ\˜E 3˜<¨'°3¨¸%À¸ÐFÚšoªÐ?ð	
ðó	ñ'ó	ó 3ð'ò*7ð ‡�×Ñ˜Ò!=Ó>Ø‡�×Ñ˜Ò'CÓDñ
Có Eó ?ð
Cð ‡�×Ñ˜ E¨?Ð#;Ó<Ø‡�×Ñ˜  1˜v x r§x¡x°°c°
Ó';Ð<Ó=ñó >ó =ðð ‡�×Ñ˜ E¨?Ð#;Ó<ñó =ðð ‡�×ÑØà�"ˆ+˜˜r�{Ð	# u¨e n°r°dÐ%;¸R¿Z¹ZÐHØ	ˆ�‰�A�q�6˜A˜q˜6Ð"Ó	# q¨! f¨q¨c ]°B·J±JÐ?àˆB�H‰H�s˜E�l S¨% LÐ1¸Ô@Ø�3ˆZ˜%˜Ð!Ø�J‰Jð	
ð
 
ˆ�‰�C˜�< # u Ð.Ó	/°3¸°*¸u¸gÐ1FÈÏÉÐPØ	ˆ�‰�A�q�6˜BŸF™F A˜;Ð'Ó	(¨A¨r¯v©v¨;¸¸Ð*<¸b¿j¹jÐIàˆB�H‰H�s˜BŸF™F�m d¨B¯F©F ^Ð4¸FÔCØ�4ˆ[˜2Ÿ6™6˜(Ð#Ø�J‰Jð	
ð ˆB�H‰H�s™E %›LÐ)¨D±%¸³,Ð+?Ð@ÈÔOØ�4ˆ[™5 ›<˜.Ð)Ø�J‰Jð	
ðò*	ð/ ó  ñB7óC ðB7ð" ‡�×ÑÐ)Ò+TÓUØ‡�×ÑØð ˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ØˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ÚÐØ�J‰Jð		
ð ˆB�H‰H�q˜!�f�X WÔ-×/Ñ/ØˆB�H‰H�q˜!�f�X WÔ-×/Ñ/ÚˆKØ�H‰Hð		
ð ˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ØˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ØˆR�X‰X’oÓ&Ð'Ø�J‰Jð		
ð ˆB�H‰H�t˜S�k�]¨&Ô1×3Ñ3ØˆB�H‰H�t˜S�k�]¨&Ô1×3Ñ3ÚÐØð		
ð ˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ØˆB�H‰H�s˜BŸF™F�m�_¨FÔ3×5Ñ5ÚÐØð		
ð ˆB�H‰H�s˜D�k�]¨&Ô1×3Ñ3ØˆB�H‰H�s˜BŸF™F�m�_¨FÔ3×5Ñ5ÚÐØð		
ð?%òL	ðQ ó 0ñbAóc0ó VðdAò(ð$ ‡�×Ñ˜ ]°NÐ$CÓDñ
ó Eð
ò
?ò7ð ‡�×ÑØà	�6˜6Ð"Ð#Ø	Ò.Ð/Ú	˜ Ð(Ð)ðò
 	&ð ó ñ6óð6ò&ð0 ‡�×ÑØâ	šÐ(Øˆ�‰’+š{Ð+Ó,Øˆ�‰Ò#Ò%6Ð7¸vÔFðò
 	'ð ó ñ2óð2ð ‡�×ÑØð ˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ØˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ÚÐØ�J‰Jð		
ð ˆB�H‰H�q˜!�f�X WÔ-×/Ñ/ØˆB�H‰H�q˜!�f�X WÔ-×/Ñ/ÚˆKØ�H‰Hð		
ð ˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ØˆB�H‰H�s˜C�j�\¨Ô0×2Ñ2ØˆR�X‰X’oÓ&Ð'Ø�J‰Jð		
ðò( 	3ð- ó ñ0ó1ð0ò"$ò-ð ‡�×Ñ˜ 5¨# ,Ó/ñ-ó 0ð-ò6ò	òò8ò68ò,ð ‡�×Ñ˜ +¨wÐ!7Ó8ñ)ó 9ð)ð2 ‡�×Ñ˜¨2¯6©6°4¹¸u»Ð*FÓGñ!1ó Hð!1ðH ‡�×Ñ˜ 5¨! *Ò.AÐ!BÓCñBó DðBð ‡�×Ñ˜ T¨5 M¸À'Ð7JÐÓKØ‡�×Ñ˜ 'ª=Ð!9ÀÈÐ?RÐÓSñ.ó Tó Lð.ð$ ‡�×Ñ˜ ]°NÐ$CÓDñ?ó Eð?ð ‡�×ÑØà	˜1ÐØ	˜"ÐØ	˜$ÐØ¨qÑ1Ø¨rÑ2ðó	ð ‡�×Ñ˜¨Ò1EÐ0FÐ'GÓHñIó Ió	ðIð6 ‡�×Ñ˜ +¨w¸¸Ð!>Ó?ñCó @ðCð. ‡�×Ñ˜ 3 %¨#¨ Ó0ñó 1ðð" ‡�×ÑØà	˜1ÐØ	˜!ÐØ	˜!ÐØ	˜$ÐØ	˜$ÐØ¨qÑ1Ø¨qÑ1ðóñQóðQð< ‡�×Ñ˜ '¨C¨5Ð!1Ó2ñ/ó 3ð/ð. ‡�×Ñ˜ 3 %¨#¨ Ó0ñó 1ðòð0 ‡�×ÑØ !°aÑ8¸?ÈAÐ:NÐOóñ;óð;ò2,ò6!,òH;ò$X,òv>,ðB ‡�×Ñ˜°bÈAÑ$NÐ#OÓPñ
$ó Qð
$ð ‡�×Ñ˜°aÈ1Ñ$MÐ#NÓOñ)ó Pð)ð  ‡�×ÑØ!Ò#Móð ‡�×Ñ˜Ò'EÓFñ*ó Góð*ò6ð* ‡�×Ñ˜¨2¯6©6°4¨.Ó9ñGó :ðGò,ð. ‡�×ÑÐ)Ò+TÓUØ‡�×Ñ˜¨°(Ð(;Ó<ñ,ó =ó Vð,ð< ‡�×ÑÐ)Ò+TÓUñ"Bó Vð"BðJ ‡�×ÑÐ)Ò+TÓUñ!Eó Vð!EðH ‡�×ÑÐ)Ò+TÓUñ)ó Vð)ò4ò(ð ‡�×ÑÐ0°2·6±6¸2°,Ó?ñ"ó @ð"ð" ‡�×Ñ˜¨°(Ð(;Ó<Ø‡�×ÑÐ0°2·6±6¸2°,Ó?ñ%ó @ó =ð%ð> ‡�×ÑØð �—‘˜3 §¡˜-˜°Ô7×9Ñ9Ø�—‘˜3 ˜*˜¨VÔ4×6Ñ6Ø�—‘˜3  R§V¡VÐ,°FÔ;Ð<Ø—
‘
ð	ð �—‘˜3 §¡˜-˜°Ô7×9Ñ9Ø�—‘˜3 ˜*˜¨VÔ4×6Ñ6Ø�—‘˜3  R§V¡VÐ,°FÔ;Ð<Ø—
‘
ð	ð �—‘˜3 §¡˜-˜°·
±
Ô;×=Ñ=Ø�—‘˜3˜%˜¨¯
©
Ô3×5Ñ5Ø�—‘˜3  R§V¡VÐ,Ó-Ð.Ø—
‘
ð	ð%ò4	ð9 ó !ñDóE!ðDð$ ‡�×Ñ˜ ]°NÐ$CÓDñó Eðð ‡�×ÑØ!ð ˆB�H‰H�s˜BŸF™F CÐ(Ð)Ó*×,Ñ,ØˆB�H‰H�s˜BŸF™F CÐ(Ð)Ó*×,Ñ,ØˆB�H‰H�s�e�WÓð	
ð ˆB�H‰H’oÐ&Ó'×)Ñ)ØˆB�H‰H’oÐ&Ó'×)Ñ)ØˆB�H‰H�r—v‘v�h�ZÓ ð	
ð ˆB�H‰H�s˜BŸF™F CÐ(Ð)°Ô8×:Ñ:ØˆB�H‰H�s˜BŸF™F CÐ(Ð)Ó*×,Ñ,ØˆB�H‰H�s�e�W FÔ+ð	
ð ˆB�H‰H’oÐ&¨fÔ5×7Ñ7ØˆB�H‰H’oÐ&Ó'×)Ñ)ØˆB�H‰H�r—v‘v�h�Z vÔ.ð	
ð!óñ24ó3ð24ð ‡�×Ñ˜¨.Ó9ñ2ó :ð2ò,ð" ‡�×ÑØà
�ˆˆØˆ�‰�4˜�+� cÔ*Øˆ�‰�4˜�+� cÔ*ðóð ‡�×ÑØà
ˆsˆˆØˆ�‰�3˜�*� SÔ)Øˆ�‰�3˜�*� SÔ)ðóñ	(óóð 	(ò6ò(	1ò'ð< ‡�×Ñ˜¨¨u¨Ó6ñó 7ðð2 ‡�×ÑØ:ð
 ˆB�H‰H�s�e˜c˜U�^¨6Ô2ØˆS�2—6‘6�(˜RŸV™V˜HÐ%ØˆB�J‰J˜˜ ˜v¨ vÐ.°fÔ=ð	
ð ˆB�H‰H�r—v‘v�h  ¨ uÐ-°VÔ<ØˆS�2—6‘6�(˜RŸV™V˜HÐ%ØˆB�J‰J˜˜ §¡˜x¨"¯&©&¨Ð2¸&ÔAð	
ðóñ&'ó'ð&'òBMò.Mò /ò"	$ò!!ðH ‡�×ÑØà	˜1ÐØ	˜!ÐØ	˜!ÐØ	˜$ÐØ	˜$ÐØ¨qÑ1Ø¨qÑ1ðóñ4óð4ò6!4òH4ò*--ò`-ð* ‡�×ÑØà	˜1ÐØ	˜!Ððóñóðð( ‡�×ÑØà	˜1ÐØ	˜#Ððóñ
Kóð
Kò
8òLð8 ‡�×Ñ˜ ]°NÐ$CÓDñó Eñr%   