Ë
    ÜÍ:jí? ã                   óB(  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZ d dlmZ d„ Zd	„ Zej,                  j/                  d
g d¢«      d„ «       Zej,                  j/                  d
g d¢«      d„ «       Zej,                  j/                  dej4                  ej6                  ej8                  g«      ej,                  j/                  dej4                  ej6                  ej8                  g«      d„ «       «       Zej,                  j/                  dej4                  ej6                  ej8                  g«      d„ «       Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#ej,                  j/                  dg d¢g d¢g ejH                  g d¢g d¢g«       ejH                  g d¢g d¢ge%¬«       ejH                  g d¢d ejL                  d!gge%¬«       ejH                  g d¢d  e'd"«      d!gge%¬«       ejH                  g d#¢g d$¢ge%¬«       ejH                  g d%¢d ejL                  dgge%¬«       ejH                  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/d0d1gd2d1gd0d1ggg d3¢g d4¢g d3¢gfd5d gd6d gd7d8gd6d ggg d9¢g d:¢g d;¢gfg«      d<„ «       «       Z*d=„ Z+ej,                  j/                  d,g d>¢«      ej,                  j/                  d?g d>¢«      d@„ «       «       Z,ej,                  j/                  dAdBdCg«      ej,                  j/                  dd2d0g ejH                  dDdEg«      g«      dF„ «       «       Z-ej,                  j/                  dAdBdCg«      dG„ «       Z.ej,                  j/                  dHdId1gdJd1ggdIdJgd1ggej^                  f ejH                  d2d0gdKd0gg«      d2dKgd0ggej`                  f ejH                  dLd!gdMd!gge%¬«      dLdMgd!ggej^                  f ejH                  dLd!gdMd!gg«      dLdMgd!ggejb                  f ejH                  d2d0gejL                  d0gg«      d2ejL                  gd0ggej8                  f ejH                  dLejL                  gdejL                  gge%¬«      dLdgejL                  ggej^                  f ejH                  dL e'd"«      gd e'd"«      gge%¬«      dLdg e'd"«      ggej^                  fgg dN¢¬'«      dO„ «       Z2ej,                  j/                  d
g d¢«      ej,                  j/                  dP ejH                  d d8gge%¬«      jf                   ejH                  d dQgge%¬«      jf                  g dR¢gej^                  f ejH                  d2d0ggdS¬«      jf                   ejH                  d2dTggdS¬«      jf                  g dU¢gejh                  f ejH                  d d8gge%¬«      jf                   ejH                  d dQgge%¬«      jf                   ejH                  g dR¢«      gej^                  f ejH                  dd gge%¬«      jf                   ejH                  dd8gge%¬«      jf                  g dV¢ge%f ejH                  d d8gge%¬«      jf                   ejH                  d ejL                  gge%¬«      jf                  g dW¢ge%f ejH                  d dgge%¬«      jf                   ejH                  d ejL                  gge%¬«      jf                  g dX¢ge%fgg dY¢¬'«      dZ„ «       «       Z5d[„ Z6ej,                  j/                  d\e
eg«      d]„ «       Z7d^„ Z8d_„ Z9ej,                  j/                  d`d-dadbgfdcg dd¢fg de¢dfdggfgg dh¢¬'«      di„ «       Z:dj„ Z;ej,                  j/                  dg d¢g d¢g ejH                  g dk¢g dl¢g«       ejH                  g d¢g d¢ge%¬«      gg dm¢¬'«      dn„ «       Z<ej,                  j/                  dP ejH                  d d8gge%¬«      jf                   ejH                  d dQgge%¬«      jf                  g dR¢gej^                  f ejH                  d2d0ggdS¬«      jf                   ejH                  d2dTggdS¬«      jf                  g dU¢gejh                  f ejH                  d d8gge%¬«      jf                   ejH                  d dQgge%¬«      jf                   ejH                  g dR¢«      gej^                  fgg do¢¬'«      dp„ «       Z=dq„ Z>dr„ Z?ej,                  j/                  dse'e@g«      dt„ «       ZAdu„ ZBdv„ ZCdw„ ZDdx„ ZEdy„ ZFdz„ ZGej,                  j/                  d,dcd-g«      d{„ «       ZHej,                  j/                  d|ejL                  d e'd"«      g«      d}„ «       ZIej,                  j/                  d,dIdKgg d~¢g«      d„ «       ZJej,                  j/                  d€d+d*gd�d‚g¬'«      ej,                  j/                  d,d-g dƒ¢gd-d„g¬'«      d…„ «       «       ZKej,                  j/                  d\e
eg«      d†„ «       ZLej,                  j/                  d‡dˆd0id‰dŠid‰d‹id0dŒd�œdTdŽd�œg«      ej,                  j/                  d�d�g d‘¢gg«      d’„ «       «       ZMej,                  j/                  d,dcd-d8gg«      d“„ «       ZNej,                  j/                  d,d gdQgg«      d”„ «       ZOej,                  j/                  d‡dˆdKid‰dŒid‰d•id‰d–id‰d—idKd˜d�œdTdŒd�œg«      d™„ «       ZPej,                  j/                  d,d-d8gg«      dš„ «       ZQej,                  j/                  d,d gdQgg«      d›„ «       ZRdœ„ ZSej,                  j/                  d‡dKd2d�œd‰dTig«      d�„ «       ZTdž„ ZUdŸ„ ZVd „ ZWd¡„ ZXd¢„ ZYej,                  j/                  d‡d£d2d¤œg«      d¥„ «       ZZej,                  j/                  d‡d0dKd¤œg«      d¦„ «       Z[ej,                  j/                  d§g d¨¢«      ej,                  j/                  d©g dª¢«      d«„ «       «       Z\d¬„ Z]ej,                  j/                  d|ejL                  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³„ «       Zaej,                  j/                  d
g d¢«      d´„ «       Zbej,                  j/                  d
g d¢«      dµ„ «       Zcd¶„ Zdd·„ Zeej,                  j/                  d¸ejL                  d¹g«      dº„ «       Zfej,                  j/                  d¯d°d±g«      ej,                  j/                  d¸ejL                  d¹g«      d»„ «       «       Zgej,                  j/                  dP ejH                  d ejL                  gge%¬«      jf                   ejH                  d d8gge%¬«      jf                   ejH                  d dQejL                  ge%¬«      gej^                  f ejH                  d ejL                  gge%¬«      jf                   ejH                  d d8gge%¬«      jf                   ejH                  d dQejL                  ge%¬«      gej^                  f ejH                  d¼ejL                  ggej8                  ¬«      jf                   ejH                  dDggej8                  ¬«      jf                   ejH                  d¼dEejL                  g«      gej8                  fgg d½¢¬'«      d¾„ «       Zhej,                  j/                  d\e
eg«      d¿„ «       Ziej,                  j/                  dÀ ejH                  dÁejL                  dDgg«      jf                   ejH                  dÂejL                  dÁgg«      jf                   ejH                  dEgg«      f ejH                  g dÃ¢g«      jf                   ejH                  g dÄ¢g«      jf                   ejH                  ejL                  gg«      f ejH                  dÅejL                  d8gge%¬«      jf                   ejH                  dÁejL                  dÂgg«      jf                   ejH                  dQgge%¬«      f ejH                  g dÆ¢ge%¬«      jf                   ejH                  g dÇ¢g«      jf                   ejH                  ejL                  gge%¬«      fg«      dÈ„ «       Zjej,                  j/                  dÉe«      dÊ„ «       ZkdË„ Zlej,                  j/                  dÌdÍdMgg ejH                  dÍdMggdÎ¬«       ejH                  dÍdMggdÏ¬«      g«      ej,                  j/                  dÐdLdMgg ejH                  dLdMggdÎ¬«       ejH                  dLdMggdÏ¬«      g«      dÑ„ «       «       ZmdÒ„ ZndÓ„ ZodÔ„ Zpej,                  j/                  dÕd+d*g«      dÖ„ «       Zqej,                  j/                  d× ejH                  d gdØgge%¬«      d gejL                  gejL                  gg ejä                  dØgdgdgge%¬«      f ejH                  ejL                  gdØgd gge%¬«      d gejL                  gejL                  gg ejä                  dØgejL                  gejL                  gge%¬«      fg«      dÙ„ «       ZsdÚ„ ZtdÛ„ ZudÜ„ ZvdÝ„ ZwdÞ„ Zxej,                  j/                  d‡dˆdKid‰dŒid‰d•id‰d–id‰d—idKd˜d�œdTdŒd�œg«      dß„ «       Zydà„ Zzdá„ Z{dâ„ Z|dã„ Z}ej,                  j/                  d‡dˆdŒid‰d0ig«      dä„ «       Z~ej,                  j/                  d‡dˆd2id‰dåig«      dæ„ «       Zdç„ Z€dè„ Z�ej,                  j/                  d\e
eg«      dé„ «       Z‚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        ú~/home/mcse/projects/srt_converter/srt-converter-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ôô �~×-Ñ-Ó/°Õ?ó    c                  ó:  — t        j                  g d¢g d¢g«      } t        d¬«      }|j                  | «      }|j                  dk(  sJ ‚|j
                  j                  t         j                  k(  sJ ‚|j                  j                  t         j                  k(  sJ ‚y )Nr   r   Tr   Úcsr)	r   r   r   r   ÚformatÚindicesÚdtypeÚint32Úindptr)r   r   r!   s      r#   Ú-test_one_hot_encoder_sparse_index_array_int32r-   *   s   € Ü
�‰’)šYÐ'Ó(€AÜ¨TÔ2€Jà×-Ñ-¨aÓ0€NØ× Ñ  EÒ)Ð)Ð)Ø×!Ñ!×'Ñ'¬2¯8©8Ò3Ð3Ð3Ø× Ñ ×&Ñ&¬"¯(©(Ò2Ð2Ñ2r%   Ú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_unknownrC   4   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   Ú55555rF   r5   )r   r   r   r   ©r   r   r   r   )	r   r   Úreshaper   r9   r>   r
   r=   r   r?   s        r#   Ú+test_one_hot_encoder_handle_unknown_stringsrM   L   s—   € ä
�‰Ò2Ó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   ©r*   Úauto)Ú
categoriesr*   F)rS   r*   r   )	r   ÚasarrayÚTr   r
   r   r   r9   r=   )rO   rN   r   Ú
X_expectedrA   s        r#   Útest_one_hot_encoder_dtyperW   _   sÍ   € ô 	�
‰
�Q˜�F�8 ;Ô/×1Ñ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   rQ   F)r*   r   )r:   ÚimportorskipÚ	DataFramer   r   r   r
   r   r   r9   r=   )rN   ÚpdÚX_dfrV   rA   s        r#   Ú!test_one_hot_encoder_dtype_pandasre   n   sÎ   € ä	×	Ñ	˜XÓ	&€Bà�<‰<˜s C˜j°°1¨vÑ6Ó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é)   rh   r   é
   )rg   é3   Úboyé   r   )rg   é[   rh   é   é   )Ú	x0_FemaleÚx0_MaleÚx1_1Úx1_41Úx1_51Úx1_91Úx2_boyÚx2_girlÚx3_1Úx3_2Úx3_12Úx3_21Úx4_3Úx4_10Úx4_30)ÚoneÚtwoÚthreeÚfourÚfive)Ú
one_FemaleÚone_MaleÚtwo_1Útwo_41Útwo_51Útwo_91Ú	three_boyÚ
three_girlÚfour_1Úfour_2Úfour_12Úfour_21Úfive_3Úfive_10Úfive_30z!input_features should have lengthr7   r�   r‚   )r   r9   Úget_feature_names_outr
   r:   r;   r<   )Úencr   Úfeature_namesÚfeature_names2s       r#   Ú"test_one_hot_encoder_feature_namesr™   ~   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Údat2rQ   u	   x0_câ�¤t1Úx0_dat2u   nðŸ‘�me©Úinput_featuresu   nðŸ‘�me_câ�¤t1u   nðŸ‘�me_dat2)r   r   r   ÚobjectrU   r9   r•   r
   )r–   r   r—   s      r#   Ú*test_one_hot_encoder_feature_names_unicoder    º   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ÚNoneNrQ   z	x0_'None'Úx0_NonerZ   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.r7   )r   r   r   rŸ   rU   r9   r•   r
   r:   r;   Ú	TypeError)r¨   r–   r   r—   r¯   Úerr_msgs         r#   Ú1test_one_hot_encoder_custom_feature_name_combinerr²   Ä   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   ©rS   rS   )r   r3   )r   r   r   r   r3   r   )	r   r   rU   r   Ú
set_paramsÚ
get_paramsr   r   r   )r   rA   s     r#   Útest_one_hot_encoder_set_paramsr·   Þ   s¯   € Ü
�‰�1�a�&�Ó×Ñ€AÜ	‹€Bà‡M�Mšl˜^€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 )NrR   r´   F©rS   r   r'   )r   r   r	   r   r   r   r(   )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¿   )rk   r   r¿   )r   r   r¿   )r[   r]   Úcat)rZ   r^   rÂ   rQ   )r[   r   rÂ   rZ   rÂ   Únan)Nr   rÂ   )rZ   r   rÂ   )Nr   N)ÚmixedÚnumericrŸ   z	mixed-nanzmixed-float-nanz
mixed-Nonezmixed-None-nanzmixed-None-float-nan)Úidsc                 ó\  — t        t        j                  | «      d d …dgf   «      }t        |ddgddgg«       t        t        j                  | «      d d …ddgf   «      }t        |g d¢g d¢g«       t	        d¬«      j                  | «      }t        |j                  «       g d¢g d¢g«       y )	Nr   r   )r   r   r   r   ©r   r   r   r   rR   r´   )r   r   r   r   r   )r   r   r   r   r   )r¼   r   r   r	   r   r   r   )r   ÚXtrs     r#   Útest_one_hot_encoderrÊ   ÷   s�   € ô0 #¤2§8¡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Ì   rQ   r   r¿   r   r   rR   )r   rS   rÌ   rÁ   r¾   )é6   r¿   é8   )r   r.   rS   )r   r   rÐ   rÑ   )r   rS   r.   ©r   r   r   ©r   r   r   ú)Shape of the passed X data is not correctr7   )r   r   r   r   rŸ   r
   Úinverse_transformÚreÚescaper:   r;   r<   )r.   rË   rÌ   r   r–   ÚX_trÚexpÚmsgs           r#   Útest_one_hot_encoder_inverserÛ     sú  € ò 
šªÐ8€AÜ
 g°DÔ
9€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   r�   r‚   rƒ   r[   ©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_unknown="error`.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/14934
    r   zqSamples \[(\d )*\d\] can not be inverted when drop=None and handle_unknown='error' because they contain all zerosr   r7   N)r   r9   r   r:   r;   r<   rÕ   )r   ÚX_transrË   r–   rÚ   s        r#   Ú?test_one_hot_encoder_inverse_transform_raise_error_with_unknownrà   K  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 )
Nrg   r   ri   r   r   rQ   Ú	if_binaryF©rÌ   r   )r   r   rŸ   r   r   r
   rÕ   )r   ÚoherØ   s      r#   Ú&test_one_hot_encoder_inverse_if_binaryræ   k  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 )
Nrg   r   ri   r   r   rQ   Frä   ©rÌ   )r   r   rŸ   r   r9   r=   r•   rµ   r
   rÕ   r	   )rÌ   rç   r   rå   rØ   r—   s         r#   Útest_one_hot_encoder_drop_resetrê   r  s£   € ô 	�‰�6˜1�+ ¨!˜}¨x¸¨mÐ<ÄFÔK€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%   Úmethodr9   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 insteadr7   )r   r:   r;   r<   Úgetattr)r   rë   rA   rÚ   s       r#   Útest_X_is_not_1Drð   �  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)NrY   )é   r   r3   rò   z+Expected a 2-dimensional container but got z	 instead.r7   )r:   ra   ÚSeriesr   Útyper;   r<   rï   )rë   rc   r   rA   rÚ   s        r#   Útest_X_is_not_1D_pandasrõ   ‹  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   r]   r^   )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 )NrI   rR   r´   )r   r9   Ú
isinstanceÚcategories_ÚlistÚzipÚtolistr   r   Ú
issubdtyper*   )r   Úcat_expÚ	cat_dtypeÚXir–   ÚresrÙ   Úres_lists           r#   Útest_one_hot_encoder_categoriesr  –  sÖ   € ðF �!‘D�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©rZ   r[   ÚcÚint64r3   ©r   r   r   )NrZ   Úz)rZ   r[   r	  )rZ   Nr	  )rŸ   rÅ   zobject-stringzobject-string-nonezobject-string-nanzobject-None-and-nanc                 óè  — t        |¬«      }t        j                  g d¢g d¢g«      }t        |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   r6   r7   ©rS   r.   )r   r   r   )r   r   r   r
   r   r   rú   rS   rù   rü   r*   r:   r;   r<   r9   r=   )r   r@   Úcatsrÿ   r.   r–   rÙ   s          r#   Ú)test_one_hot_encoder_specified_categoriesr  È  s+  € ôf  4Ô
(€CÜ
�(‰(’O¢_Ð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)NrZ   r[   rQ   )r[   rZ   r  r´   r  r  r   r   r   )r   r   r   z%Unsorted categories are not supportedr7   )r   r   rŸ   rU   r   r
   r9   r=   r   r   rù   rü   rý   r*   Úobject_r:   r;   r<   )r   r–   rÙ   rÚ   s       r#   Ú(test_one_hot_encoder_unsorted_categoriesr    s'  € Ü
�‰�3˜�*�¤VÔ,×.Ñ.€Aä
¢OÐ#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´   rQ   zNan should be the last elementr7   N)	r   r   rÃ   rŸ   rU   r:   r;   r<   r9   ©r  r  r–   r   s       r#   Ú,test_encoder_nan_ending_specified_categoriesr     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 )NrZ   r[   r   r   rQ   r  )r   r   r   r´   )r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   rŸ   rU   r   r
   r   r   rù   rü   rý   r*   r  ©r   r–   rÙ   s      r#   Ú7test_one_hot_encoder_specified_categories_mixed_columnsr  .  sõ   € ä
�‰�3˜�*˜q !˜fÐ%¬VÔ4×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 )	NrY   rZ   r[   r   r   r\   r_   r`   )r:   ra   rb   r¼   r	   )rc   rd   rÉ   s      r#   Útest_one_hot_encoder_pandasr  ;  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   r[   Úx0_bÚx2_a)rÍ   ÚbinaryÚmanualc                 ó†   — g d¢g d¢g}t        | ¬«      }|j                  |«       |j                  «       }t        ||«       y )N)r  r   rZ   )r[   r   r[   ré   )r   r9   r•   r
   )rÌ   Úexpected_namesr   rå   r—   s        r#   Ú'test_one_hot_encoder_feature_names_dropr%  D  s;   € ò 
šÐ&€Aä
˜TÔ
"€CØ‡G�GˆA„JØ×-Ñ-Ó/€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 )Nrk   Úyesé   Únorq   )r   r   r   r   rK   )r   r   r   r   r   rã   Frä   ÚtruerZ   Úfalser   r   )r   r   r   r   r
   Ú	drop_idx_r	   )r   ÚexpectedÚexpected_drop_idxrå   Úresults        r#   Ú*test_one_hot_encoder_drop_equals_if_binaryr0  V  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%   )rk   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  rQ   Úfloat64)r   r   r   r
   r   Úastyper  s      r#   Útest_ordinal_encoderr6  n  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   r6   r7   )r   r   r   r
   r   rú   rS   rù   rü   r*   r:   r;   r<   r9   )r   r@   r  rÿ   r–   rÙ   s         r#   Ú)test_ordinal_encoder_specified_categoriesr8    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½   rQ   )r   r   r   r   r_   rÔ   r7   )r   r   r   r   rŸ   r
   rÕ   rÖ   r×   r:   r;   r<   )r   r–   rØ   rÙ   rÚ   s        r#   Útest_ordinal_encoder_inverser:  ¨  sž   € Ú	šÐ(€AÜ
Ó
€CØ×Ñ˜QÓ€DÜ
�(‰(�1œFÔ
#€CÜ�s×,Ñ,¨TÓ2°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_valuerZ   Úxr[   Úyr  r	  rQ   ÚxyÚblar   r   r   r  )r   r   r   rŸ   r9   r=   r
   rÕ   )r–   ÚX_fitrß   ÚX_trans_encrÙ   ÚX_trans_invÚinv_exps          r#   Ú+test_ordinal_encoder_handle_unknowns_stringrH  ¶  sØ   € Ü
Ð(;È2Ô
N€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%   r*   c                 ó¼  — t        dd¬«      }t        j                  ddgddgdd	gg| ¬
«      }t        j                  ddgddgddgg| ¬
«      }|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 )Nr<  éüÿÿr>  r   é   r   é   r   é	   rQ   rn   é   r   r  )r   r   r   r9   r=   r
   rÕ   rŸ   )r*   r–   rD  rß   rE  rÙ   rF  rG  s           r#   Ú,test_ordinal_encoder_handle_unknowns_numericrO  Å  sØ   € ä
Ð(;È4Ô
P€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 )Nr<  r>  r   r   r   r3   r   )r   r   rÃ   r   r9   r=   r
   )r–   rD  rß   s      r#   Ú(test_ordinal_encoder_handle_unknowns_nanrQ  Õ  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)Nr<  )r.   r?  r*   r   r   r   z'dtype parameter should be a float dtyper7   )	r   r   rÃ   Úintr   r:   r;   r<   r9   )r–   rD  s     r#   Ú8test_ordinal_encoder_handle_unknowns_nan_non_float_dtyperT  à  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ÚHighrW  rV  rQ   )rV  rW  rX  r´   z*Shape mismatch: if categories is an array,r7   )	r   r   rŸ   rU   r   r:   r;   r<   r9   )r   r  r–   rÚ   s       r#   Ú+test_ordinal_encoder_raise_categories_shaperY  ì  s^   € Ü
�‰Ò<Ð=ÄVÔL×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 )NrR   r´   )r   r   r   r   )r   r   r   r   r4  rQ   r   r   r   r3   r  rZ   r[   r  r  ó   aó   bó   có   drŸ   )r   r   r   r9   ÚallÚrangerù   r*   r
   r=   r   rý   Úinteger)r–   rÙ   r   Úis       r#   Útest_encoder_dtypesrc  ö  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                  óò  — 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œ«      }g d¢}|j                  |«       t        t        d
«      D �cg c]!  }|j                  |   j                  ||   k(  ‘Œ# c}«      sJ ‚t        |j                  |«      j                  «       |«       y c c}w c c}w )NrY   rR   r´   )r   r   r   r   r   r   )r   r   r   r   r   r   r4  rQ   r   r   r   r3   r   rò   ©r]   r^   ÚCr  rZ   r[   rì   rí   )r  rŸ   r4  )r:   ra   r   r   r   rb   r9   r_  r`  rù   r*   r
   r=   r   )rc   r–   rÙ   r   rb  Úexpected_cat_types         r#   Útest_encoder_dtypes_pandasrh    sG  € ä	×	Ñ	˜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Ú6ÐØ‡G�GˆA„JÜÌ%ÐPQË(ÖSÀQ�—‘ Ñ"×(Ñ(Ð,=¸aÑ,@Ó@ÒSÔTÐTÐTÜ�s—}‘} QÓ'×/Ñ/Ó1°3Õ7ùò Gùò Ts   Á?#E/Ä&E4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)Nrg   r   ri   r   r4   )r   ÚwarningsÚcatch_warningsÚsimplefilterr   )r–   r   s     r#   Útest_one_hot_encoder_warningrm  '  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.rZ   r   r[   r   r   Fr1   ©rÌ   r   r.   rS   r  ú€Found unknown categories in columns \[0\] during transform. These unknown categories will be encoded as the infrequent category.r7   N©	r   r9   r   r   r:   ÚwarnsÚUserWarningr=   r	   )rÌ   r   rå   ÚX_testrV   Úwarn_msgrß   s          r#   Útest_ohe_handle_unknown_warnrv  /  s²   € ð ˆqˆ�C˜�8˜c 1˜XÐ&€Aä
ØØØØ˜#�J  A Ð'ô	€Cð ‡G�GˆA„Jà�AˆhˆZ€FÜ—‘˜A˜q˜6˜(Ó#€Jð	 ð ô
 
�‰”k¨Ô	2ñ (Ø—-‘- Ó'ˆ÷(ä�G˜ZÕ(÷(ð (ús   Á,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¾   rn   r   rÑ   ré   )rÁ   rn   r   r¿   rZ   )r¾   rn   r   r¿   rZ   )r   r   r   r   r   )r   r   r   r   r   rÝ   rQ   rI   )rI   rI   )r   r   r   r
   rÌ   rû   rù   r,  rÕ   r   r   rŸ   r   )rw  Úcats_to_dropr–   r   ÚtransrÙ   rÂ   r¦   Údropped_catsÚX_inv_transÚX_arrays              r#   Ú test_one_hot_encoder_drop_manualr~  J  s£  € à˜2˜q " mÐ4€LÜ
˜\Ô
*€CâÚØ	��A�r˜=Ð)ð	€Að
 ×Ñ˜aÓ ×(Ñ(Ó*€EÚšOª_Ð
=€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   rj   rZ   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 numberr7   rÀ   r½   )r¾   r   é;   )r   r:   r;   r<   r9   )rÌ   r–   r±   s      r#   Útest_invalid_drop_lengthr�  o  sK   € ä
˜TÔ
"€CØ=€GÜ	�‰”z¨Ô	1ñ BØ�‰’¢²Ð@ÔA÷B÷ Bñ Bús   ªAÁAÚdensityr   Údense©rZ   r   r[   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   rZ   r„  rÍ   r   )r   r9   r
   rù   r,  rû   rS  rø   r   Úndarrayr*   rŸ   )r‚  rÌ   Úohe_baseÚohe_testr   Údrop_catÚdrop_idxÚcat_lists           r#   Útest_categoriesrŒ  w  sä   € ô ¨7Ô3€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”  rn   rS   rR   ©rZ   r[   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.rZ   r   r[   r(  r  rk   r  r   r0   F)rS   r.   r   ©rZ   r  r  Úer   r   Úinfrequent_sklearnr3   r  Úx0_infrequent_sklearnNr®   ©r   r   rU   r   r9   r
   Úinfrequent_categories_r=   r	   rÕ   r•   )r’  rS   ÚX_trainrå   rt  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.rZ   r   r[   r(  r  rk   r  r   r0   Fr   ©r.   r   r“  rÌ   r   r   r›  rš  N)r   r   rU   r   r9   rù   r,  r=   r	   r•   r
   rÕ   )rÌ   rž  rå   rt  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.rZ   r   r[   r(  r  rk   r  r   r0   Fr   r¤  úUnable to drop category r   ú( from feature 0 because it is infrequentr7   N©r   r   rU   r   r:   r;   r<   r9   ©rÌ   rž  rå   rÚ   s       r#   Ú5test_ohe_infrequent_two_levels_drop_infrequent_errorsr¬  Î  sœ   € ô
 �h‰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rM  g¸…ëQ¸Î?g{®GázÄ?rL  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.rZ   r   r[   r(  r  rk   r  r   r0   F©r.   r   r™  r3  ©r   r   r   r2  rš  )r  r  r›  Nr®   rœ  )	r’  rž  rå   rt  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.rZ   r   r[   r(  r  rk   r  r   r0   Fr¤  r   r   r/   r5   r6   r7   r™  N)r   r   rU   r   r9   r	   r=   rµ   r:   rr  rs  )rÌ   rž  rå   rt  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.rZ   r   r[   r(  r  rk   r  r   r0   Fr¤  r¨  r   r©  r7   Nrª  r«  s       r#   Ú7test_ohe_infrequent_three_levels_drop_infrequent_errorsrµ  "  sœ   € ô �h‰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.rZ   r   r[   r(  r  rk   r  r   r4   F)r.   r   r“  r3  r°  r2  Úbadz.Found unknown categories \['bad'\] in column 0r7   N)r   r   rU   r   r9   r
   r�  r=   r	   r:   r;   r<   )rž  rå   rt  r-  rß   rÚ   s         r#   Ú(test_ohe_infrequent_handle_unknown_errorr¸  2  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.rZ   r   r™  rq   rQ   ©r  r  rZ   r[   Fr0   ©rS   r   r.   r[   r  r  r   r   rÍ   rã   ré   Nr®   )	r   r   rŸ   rU   r   r9   r=   r	   rµ   )r’  rž  rå   rt  r-  rß   ÚdropsrÌ   s           r#   Ú5test_ohe_infrequent_two_levels_user_cats_one_frequentr½  J  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.rZ   r   r[   r(  r  rk   r  r   rQ   rº  Fr0   r   ©rS   r   r.   r“  )r  r  rZ   r™  r   r   rš  r3   N©r   r   rŸ   rU   r   r9   r
   r�  r=   r	   rÕ   )rž  rå   rt  r-  rß   rŸ  r   r¡  s           r#   Ú(test_ohe_infrequent_two_levels_user_catsrÁ  f  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.rZ   r   r[   r(  r  rk   r  r   rQ   ©r  r  r[   rZ   Fr0   r¿  r™  r2  r°  r3  rš  NrÀ  )rž  rå   rt  r-  rß   r   r¡  s          r#   Ú*test_ohe_infrequent_three_levels_user_catsrÄ  �  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   r9   r=   r	   )r   rå   rt  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   rk   r   r   r   )	r   r   r   r   r   r   r   r   r   rR   r   r0   ©rS   r“  r.   r   r   r   rk   N)Úx0_0Úx0_3r›  Úx1_0Úx1_5Úx1_infrequent_sklearnÚx2_0Úx2_1)r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   )r3   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   )r   rš  N)rš  r   NrQ   r4   r6   r7   )r   r   r   )r   rk   r   )r   r   r   r   r   r   r   r   )rš  rš  r   )r   rš  r   )r   rÉ  r   r   r   r
   r�  r•   r	   r=   rÕ   r   rŸ   r9   r:   r;   r<   )	r   rå   rß   r—   r-  rt  Ú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.rY   ©	rZ   Úfr  rØ  rØ  rZ   r  r[   r[   ©	r   r   r   rk   rk   rn   r   r   r   )ÚstrrS  rÚ  rS  ©ÚcolumnsrR   r   r0   rÌ  r   rZ   r[   r   ©r   r   rn   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   rØ  é   rn   rš  rQ   r  r   N)r:   ra   rb   r   r   r   r
   r�  r	   r=   rÕ   r   r   rŸ   )	rc   r   rå   rß   r-  rt  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%   rp   )r”  r“  c                 óö   — t        j                  dgdz  dgdz  z   dgdz  z   dgdz  z   g«      j                  }t        dd	d
dœ| ¤Ž}|j	                  |«       |j                  dgg«      }t        |dgg«       y)ú,All user provided categories are infrequent.rZ   r   r[   r(  r  rk   r  r   r0   Fr¯  r   Nr®   )r   r   rU   r   r9   r=   r	   ©r’  rž  rå   rß   s       r#   Ú$test_ohe_infrequent_one_level_errorsrã  S  sŒ   € ô �h‰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   rQ   rº  Fr0   r»  rZ   r   Nr®   )r   r   rŸ   rU   r   r9   r=   r	   râ  s       r#   Ú5test_ohe_infrequent_user_cats_unknown_training_errorsrå  a  s   € ô �h‰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   rY   c                 óø  — 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
    r[   rZ   rQ   Fr¹   r   r   r´   N)	r   r   r   r9   r   r=   r	   r   r
   )
rO   Úcategory_dtyperí  r   rS   rå   rt  rß   r-  Úoes
             r#   Útest_encoders_string_categoriesrñ  r  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.
    r[   rZ   ÚUrQ   ÚSFr¹   zjIn column 0, the predefined categories have type 'bytes' which is incompatible with values of type 'str_'.r7   N)	r   r   r   rÖ   r×   r:   r;   r<   r9   )r   rS   rå   rÚ   s       r#   Ú$test_mixed_string_bytes_categoricalsrõ  ‘  s‚   € ô 	�‰�3�%˜#˜� sÔ+€Aä—(‘(˜C ˜:¨SÔ1Ð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 )
NrZ   r[   rQ   Fr/   ©r   r.   Úx0_ar  Úx0_)r   r   rŸ   rU   r   r9   r•   r
   )rw  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 )NrY   )ÚdogrÂ   NrÂ   r   r   r3   rQ   )Úcol1Úcol2rþ  rÿ  rÛ  )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   )	r:   ra   rb   r   r   rÃ   Úfloatr¼   r	   )rc   ÚdfÚexpected_df_transrÉ   s       r#   Ú%test_ohe_missing_value_support_pandasr  ¯  s‹   € ä	×	Ñ	˜XÓ	&€BØ	�‰â/Ü—H‘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 )NrY   r  rþ  r  rZ   r[   r§   rQ   )r   r   r   r   )r   r   r   r   )r   r   r   r   rÈ  Fr÷  r   r   rI   r  )r:   ra   ÚNAr   rÃ   rb   ró   r   r   r   r	   Úlenrù   r
   Úisnan)r  r.   rc   Úpd_missing_valuer  r  rå   Údf_transs           r#   Ú1test_ohe_missing_value_support_pandas_categoricalr  Æ  sû   € ô 
×	Ñ	˜XÓ	&€Bà +¨wÒ 6�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k(  rd}n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.rZ   r   r[   r   r   rÍ   F©rÌ   r   r.   rÜ   rÓ   )r   r   r   r  r   r/   útFound unknown categories in columns \[0, 1\] during transform. These unknown categories will be encoded as all zerosúƒFound unknown categories in columns \[0, 1\] during transform. These unknown categories will be encoded as the infrequent category.r7   NrQ   ©r   r   r   r   r	   r:   rr  rs  r=   rÕ   r
   rŸ   ©r.   r   rå   rß   rV   rt  ru  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÷(ð (úó   ÂC7Ã7D 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k(  rd}n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.rZ   r   r[   r   r   rã   Fr  rÈ  rÈ   r_   r  r   )r   r   r   r   r/   r  r  r7   NrQ   r  r  s           r#   Ú3test_ohe_drop_if_binary_handle_unknown_ignore_warnsr    s
  € ð ˆqˆ�C˜�8˜c 1˜XÐ&€Aä
Ø¨¸nô€Cð ×Ñ Ó"€Gä—‘âÚÚð	
ó€Jô �G˜ZÔ(ð �AˆhˆZ€FÜ—‘š<˜.Ó)€Jà˜Ò!ðñ 	ð$ð 	ô
 
�‰”k¨Ô	2ñ (Ø—-‘- Ó'ˆ÷(ä�G˜ZÔ(ð ×!Ñ! *Ó-€EÜ�uœbŸh™h¨¨d¨ }¼FÔCÕD÷(ð (úr  c                 óN  — 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
k(  rd}n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.rZ   r   r[   r   r   rÍ   Fro  r  r/   zqFound unknown categories in columns \[0\] during transform. These unknown categories will be encoded as all zerosrp  r7   Nrq  )r.   r   rå   rt  rV   ru  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à˜Ò!ðEñ 	ð$ð 	ô
 
�‰”k¨Ô	2ñ (Ø—-‘- Ó'ˆ÷(ä�G˜ZÕ(÷(ð (ús   Á4BÂB$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.rY   r  )r	  r[   r[   )rZ   r[   rZ   r[   rÛ  Tr   ©r=   zxPandas output does not support sparse data. Set sparse_output=False to output pandas dataframes or disable Pandas outputr7   N)
r:   ra   rb   r   Ú
set_outputr;   r<   r   r9   r=   )rc   r  rå   rÚ   s       r#   Ú'test_ohe_more_informative_error_messager  a  sÄ   € ä	×	Ñ	˜XÓ	&€BØ	�‰šIª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   rQ   zdThere are missing values in features \[0\]. For OrdinalEncoder to encode missing values with dtype: r7   N)
r   r   rÃ   rU   r   r+   r:   r;   r<   r9   )r   rð  rÚ   s      r#   ÚBtest_ordinal_encoder_passthrough_missing_values_float_errors_dtyper  u  s~   € ô 	�‰”2—6‘6˜3  SÐ)Ð*Ó+×-Ñ-€AÜ	œbŸh™hÔ	'€Bð	0Ü02·±¨zð	;ð ô 
�‰”z¨Ô	-ñ Ø
�‰ˆqŒ	÷÷ ñ ús   Á;BÂBÚencoded_missing_valuer=  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   rQ   ©r  r   r   r   N)r   r   rÃ   r4  rU   r   r9   r  rù   r	   r=   rÕ   )r  r   rð  rß   r¥  s        r#   Ú5test_ordinal_encoder_passthrough_missing_values_floatr"  ƒ  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.rY   r  rþ  r  rZ   r[   r§   rQ   r!  r   r   Nr   r  rI   ç       @r   r   )r   r   r   rÒ   )r:   ra   r  r   rÃ   rb   ró   r   r9   r  rù   r
   r	  r=   r	   rÕ   r   )r  r  rc   r
  r  rð  r  r¥  s           r#   Ú=test_ordinal_encoder_missing_value_support_pandas_categoricalr%  •  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   r6   r7   N)r   r   r   rÃ   r
   r   rù   r*   r:   r;   r<   r9   )r   r@   r  rÿ   rð  rÙ   s         r#   Ú=test_ordinal_encoder_specified_categories_missing_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
    )rZ   r[   rZ   rQ   r´   rZ   r[   z5the predefined categories contain duplicate elements.r7   N)r   r   rŸ   rU   r:   r;   r<   r9   r  s       r#   Ú+test_encoder_duplicate_specified_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  rZ   r[   )r$  r   r   c                 ó’   — t        dd¬«      }|j                  | «      }t        ||«       t        |j                  |«      dgg«       y)z>Test the interaction between missing values and handle_unknownr<  rI   r>  g      ð¿N)r   r   r	   r=   )r   Úexpected_X_transrt  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 requiredr7   N)	r   r   r   r:   r;   r°   r9   r   rÕ   )r-  r   ÚX_sparseÚencoderr±   rß   r!   s          r#   Útest_ordinal_encoder_sparser1    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)rI   r   r   r<  rJ  )rS   r.   r?  r4   r  r6   r7   )r   r   Únewaxisr   r9   r:   r;   r<   )r   rð  s     r#   Ú-test_ordinal_encoder_fit_with_unseen_categoryr4  5  s   € ô 	�‰Ò#Ó$¢Q¬¯
©
 ]Ñ3€AÜ	Ú�<Ð0CÐSWô
€Bð ‡F�Fˆ1„Iä	¢J <ÀÔ	H€BÜ	�‰”zÐ)CÔ	Dñ Ø
�‰ˆqŒ	÷÷ ñ ús   Á:BÂBrž  ÚAAÚOró  rt  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
    r<  i÷ÿÿÿr>  r   N)r   r9   r=   r	   )rž  rt  r–   rß   s       r#   Ú1test_ordinal_encoder_handle_unknown_string_dtypesr8  F  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rI   r   r   )Úaxisr   r   N)
r   r   rL   r   r9   r
   rù   ÚsortrU   r=   )r   r0  rß   s      r#   Ú#test_ordinal_encoder_python_integerr<  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.rY   )r[   r  rZ   r  rÛ  N)r:   ra   rb   r   r9   r•   r
   )rc   rú  r   r–   Úfeature_names_outs        r#   Ú.test_ordinal_encoder_features_names_out_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.rZ   r[   rQ   r<  éýÿÿÿ©r.   r?  r  r   r   r  N)
r   r   rÃ   rŸ   r   r9   r=   r	   rÕ   r	  )r   rð  rß   rt  rÔ  ÚX_roundtrips         r#   Ú0test_ordinal_encoder_unknown_missing_interactionrD  ‚  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)zWCheck OrdinalEncoder errors when encoded_missing_value is used by
    a known category.rZ   rý  r[   rÂ   r  rQ   zTencoded_missing_value \(1\) is already used to encode a known category in features: rY   ÚletterÚpetrÛ  z	\['pet'\]z\[1\]r   r!  r7   N)r   r   rÃ   rŸ   r:   ra   rb   r   r;   r<   r9   )rE  r   Ú	error_msgrc   rð  s        r#   Ú0test_ordinal_encoder_encoded_missing_value_errorrJ     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.
    r<  rB  rK  r[   r   N)r   r   rÃ   r9   r   r=   r	   rÕ   r   r`  r   r	  )rž  ÚX_test_trans_expectedÚX_roundtrip_expectedrð  rt  rÔ  rC  Ú	n_samplesrb  Úexpected_valÚvals              r#   Ú9test_ordinal_encoder_unknown_missing_interaction_both_nanrR  º  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.rY   rZ   r[   r   r   r\   r  zCPandas output does not support sparse data. Set sparse_output=Falser7   NFr   Údefault)r:   ra   rb   r   r  r;   r<   r   r	   Úto_numpyr
   r•   rÜ  )rc   rd   rå   r8   Úohe_defaultÚ
ohe_pandasÚ	X_defaultÚX_pandass           r#   Útest_one_hot_encoder_set_outputrZ  î  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.rY   rZ   r[   r   r   r\   rT  r  N)r:   ra   rb   r   r  r   r	   rU  r
   r•   rÜ  )rc   rd   Úord_defaultÚ
ord_pandasrX  rY  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ÚacsrK  Ú2r´   r`  N)r   r9   r  rù   Ú	enumerater*   rŸ   r
   )rS   r–   ÚnrÂ   s       r#   Ú test_predefined_categories_dtyperh    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Â   rQ   r   r!  r   r   r<  r>  ÚsnakeN)	r   r   rÃ   rŸ   r   r   r	   r9   r=   )r   rß   r–   rt  s       r#   Ú1test_ordinal_encoder_missing_unknown_encoding_maxrk  &  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.
    rZ   r   r[   r3   r  r  r™  rQ   FrÍ   )r”  r   rÌ   )r  Úx0_dÚx0_er›  r   rk   rã   r›  )r  r  rn  r›  N)r  r  rm  rn  r›  )
r   r   rŸ   rU   r   r9   r
   r•   rù   r,  )r   rå   s     r#   Ú#test_drop_idx_infrequent_categoriesro  2  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.rZ   r   r[   r(  r  rk   r  r   r<  rI   r>  r–  r	  r   r   r   rš  Nr®   )r   r   rU   r   r9   r
   rù   r�  r=   r	   rÕ   )r’  rž  Úordinalrt  Úexpected_transrß   r¥  Úexpected_inverses           r#   Ú,test_ordinal_encoder_infrequent_three_levelsrt  V  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.
    rZ   r   r[   r(  r  rk   r  r   rQ   rÃ  r<  rI   )rS   r“  r.   r?  r	  r   r   r   rš  N)r   r   rŸ   rU   r   r9   r
   rù   r�  r=   r	   rÕ   )rž  rq  rt  rr  rß   r¥  rs  s          r#   Ú6test_ordinal_encoder_infrequent_three_levels_user_catsrv  }  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š  rQ   )r   Úcolumn_stackr   r9   r
   r�  r=   r	   rÕ   r   rŸ   )r   rq  rt  rr  rß   r¥  rs  s          r#   Ú%test_ordinal_encoder_infrequent_mixedrz  ¡  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.rY   )ÚbirdrÂ   rý  rj  r×  rÙ  rý  r3   rÂ   r   rj  r|  rQ   )rÚ  rS  r�  rÛ  rx  r   rZ   r[   r   rÝ  r   )rZ   r[   rØ  r  )rn   r   rk   r   )r   r   r   )r   r   r   )r   r   r   r°  N)r:   ra   ÚCategoricalDtyperb   ró   r   r9   r
   r�  r=   r	   )rc   Úcategorical_dtyper   rq  rt  rr  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.rZ   r   r[   r(  r  rk   r  r   rQ   r<  r   )r.   r?  r“  r  r˜  r™  r   r   N)r   r   rÃ   rŸ   rU   r   r9   r
   r�  r=   r	   )rž  rq  rt  rr  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.rZ   r   r[   r(  r  rk   r  r   rQ   r<  rI   r>  r™  Nr®   ©r   r   rŸ   rU   r   r9   r	   r=   )r’  rž  Úadjusted_encoderÚdefault_encoderrt  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.rZ   r   r[   r(  r  rk   r  r   rQ   r<  rI   r>  r™  r   Nr®   rƒ  )r’  rž  r0  rt  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ý  rk   rÂ   r   rj  ÚdeerrQ   r   rx  r   r   r   N©	r   r   rÃ   rŸ   rU   r   r9   r=   r	   ©r   rq  rt  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ý  rk   rÂ   r   rj  r‹  ÚredrM  ÚgreenrQ   r3   )r”  r   r   r   NrŒ  r�  s       r#   Ú/test_ordinal_encoder_missing_appears_infrequentr’  7	  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`.
    r]   r^   rf  rQ   re  r´   N)r   r   rŸ   r:   r;   r   r=   )r  r   r0  s      r#   Útest_encoder_not_fittedr”  S	  s]   € ô 	�‰�3�%˜#˜  Ð&¬fÔ5€AÙ¢/Ð!2Ô3€GÜ	�‰”~Ó	&ñ Ø×Ñ˜!Ô÷÷ ñ úrá   c                  ój  — t        j                  dgdz  dgdz  z   dgz   «      j                  dd«      x} } t        j                  g d¢«      j                  dd«      }t        dd	d
d¬«      }|j	                  | «       t        dd	d
d¬«      }|j	                  | «       d}t        j                  t        |¬«      5  |j                  |«      }ddd«       t        j                  t        |¬«      5  |j                  |«      }ddd«       t        d
   d
   «       y# 1 sw Y   ŒQxY w# 1 sw Y   Œ(xY w)zo
    Check handle_unknown='warn' behave like 'infrequent_if_exist' and map
    to the infrequent category.
    Ú
restaurantr   ÚshopÚsnackrI   r   )r–  r˜  Úcasinor1   Fr   rÍ   )r.   r   r”  rÌ   r0   z=unknown categories will be encoded as the infrequent categoryr7   N)
r   r   rL   r   r9   r:   rr  rs  r=   r	   )Ú
train_dataÚ	test_dataÚencoder_warnÚencoder_infreqÚwarning_matchÚresult_infreqÚresult_warns          r#   Ú9test_onehotencoder_handle_unknown_warn_maps_to_infrequentr¡  b	  s)  € ô !Ÿh™hØ	ˆ˜Ñ˜f˜X¨™\Ñ)¨W¨IÑ5óç�gˆb�!ƒnð€J�ô —‘Ò:Ó;×CÑCÀBÈÓJ€Iä Ø¨UÀ!È'ô€Lð ×Ñ�ZÔ ä"Ø,ØØØô	€Nð ×Ñ�zÔ"àS€Mä	�‰”k¨Ô	7ñ <Ø&×0Ñ0°Ó;ˆ÷<ô 
�‰”k¨Ô	7ñ 8Ø"×,Ñ,¨YÓ7ˆ÷8ô �K ‘N M°!Ñ$4Õ5÷<ð <ú÷8ð 8ús   Â;DÃ0D)ÄD&Ä)D2)„rÖ   rj  Únumpyr   r:   Úscipyr   Úsklearn.exceptionsr   Úsklearn.preprocessingr   r   Úsklearn.utils._missingr   Úsklearn.utils._testingr   r	   r
   Úsklearn.utils.fixesr   r$   r-   ÚmarkÚparametrizerC   rM   r+   Úfloat32r4  rW   re   r™   r    r²   r·   r¼   r   rŸ   rÃ   r   rÊ   rÛ   rà   ræ   rê   rð   rõ   r  ra  Ústr_r  rU   r  r  r  r  r  r  r%  r0  r6  r8  r:  rH  rS  rO  rQ  rT  rY  rc  rh  rm  rv  r~  r�  rŒ  r‘  r¢  r¦  r¬  r±  r³  rµ  r¸  r½  rÁ  rÄ  rÊ  rÕ  rß  rã  rå  rñ  rõ  rû  r  r  r  r  r  r  r  r"  r%  r'  r)  r,  r1  r4  r8  r<  r?  rD  rJ  rT   rR  rZ  r^  rh  rk  ro  rt  rv  rz  r  r�  r†  r‰  rŽ  r’  r”  r¡  r®   r%   r#   ú<module>r­     sð  ðÛ 	Û ã Û Ý å -ß ?Ý 0÷ñ õ
 /ò@ò.3ð ‡�×ÑÐ)Ò+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ð)ð4 ‡�×Ñ˜¨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óð ‡�×Ñ˜Ò'BÓCñ*ó Dóð*ò6ð* ‡�×Ñ˜¨2¯6©6°4¨.Ó9ñGó :ðGò,ð. ‡�×ÑÐ)Ò+TÓUØ‡�×Ñ˜¨°(Ð(;Ó<ñ,ó =ó Vð,ð< ‡�×ÑÐ)Ò+TÓUñ)Bó Vð)BðX ‡�×ÑÐ)Ò+TÓUñ(Eó Vð(EðV ‡�×ÑÐ)Ò+TÓUñ)ó Vð)òBò(ð ‡�×ÑÐ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ðó!6r%   