
    {Kg%                     ,   d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
 ej                  j                  d ej                  g dd       ej                  g dd      f ej                  d	d
ej                  d
ej                  gd       ej                  d
d	ej                  gd      f ej                  g de       ej                  g de      f ej                  g de       ej                  g de      f ej                  g d       ej                  g d      fgg d      d        Zd Zd Zej                  j                  d ej                  g d       ej                  g d      dgg df ej                  g d       ej                  g d      dgg df ej                  d	d
ej                  g       ej                  g d      ej                  gg df ej                  d	d
dej                  g       ej                  d	dd
ej                  g      dgg df ej                  d	d
dej                  g       ej                  g d      dej                  gg df ej                  g d       ej                  d	dd
ej                  g      dgg df ej                  g de       ej                  g de       ej                  d ge      g df ej                  g d!e       ej                  g d"e       ej                  d ge      g d#f ej                  g d       ej                  g d       ej                  d g      g df ej                  g d!       ej                  g d"       ej                  d g      g d#fg
      d$        Zej                  j                  d%dej                   ed&      g      ej                  j                  d'd(d)g      d*               Zej                  j                  d%ej                  d ed&      g      ej                  j                  d'd(d)g      d+               Zd, Zd- Zd. Zej                  j                  d/ ej                  d
gd0z  d	gdz  z   d1gd2z  z          ej                  g d      g d3f ej                  d
gd0z  d	gdz  z   d1gd2z  z          ej                  g d4      g d5f ej                  ej                  gd0z  d	gdz  z   d1gd2z  z          ej                  d	d1ej                  g      g d6f ej                  d7gdz  d8gd9z  z   d:gd;z  z   e      g dg d<f ej                  d7gdz  d8gd9z  z   d:gd;z  z   e      g d=g d>f ej                  ej                  gdz  d8gd9z  z   d:gd;z  z   e      d:ej                  d8gg d>f ej                  d7gdz  d8gd9z  z   d:gd;z  z   e      g d?g d@fg      dA        Zy)B    N)assert_array_equal)_check_unknown_encode_get_counts_uniquezvalues, expected)         r	   r
   int64dtyper	   r   r
   r   r	   float32)bacr   r   r   r   r   )r   r   Nr   N)r   r   N)r   zfloat32-nanobjectzobject-Nonestr)idsc                 B   t        |       }t        ||       t        | d      \  }}t        ||       t        |t        j                  g d             t	        | |      }t        |t        j                  g d             t        | d      \  }}t        ||       t        |t        j                  g d             t        | dd      \  }}}t        ||       t        |t        j                  g d             t        |t        j                  g d             y )NTreturn_inverse)r	   r   r   r   r   uniques)return_counts)r   r	   r   )r   r   )r   r   nparrayr   )valuesexpectedr   resultencodedcountss         c/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/utils/tests/test_encode.pytest_encode_utilr%   
   s    * foGw)fT:OFGvx(w 9:fg.Gw 9:V48NFFvx(vrxx	23%fTQUVFGVvx(w 9:vrxx	23    c                     t        j                  g d      } t        j                  g d      }t        j                  t        d      5  t        || d       d d d        t        || d       t        j                  g dt        	      } t        j                  g d
t        	      }t        j                  t        d      5  t        || d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r	   r   r
      z#y contains previously unseen labels)matchT)r   check_unknownFr   r   r   r   r   d)r   r   pytestraises
ValueErrorr   r   )r   r   s     r$   test_encode_with_check_unknownr1   3   s    hhy!GXXl#F 
z)N	Ot< 
P FG59 hhf5GXX*&9F	z)N	Ou= 
P	O 
P	O 
P	Os   
CC(C%(C1c                     t        | |      }t        ||       t        | |d      \  }}t        ||       t        ||       y )NT)return_mask)r   r   )r   r   expected_diffexpected_maskdiff
valid_masks         r$   _assert_check_unknownr8   F   s?    &'*Dt]+%fg4HD*t]+z=1r&   z-values, uniques, expected_diff, expected_maskr(   r)   )TTTF)r   r	   r)      )r   r9   r	   )TTFT)TTFr9   )TTFFr,   r-   )r-   r   r   r   )r   r   r   )FTTTc                      t        | |||       y N)r8   )r   r   r4   r5   s       r$   test_check_unknownr<   O   s    f &'=-Hr&   missing_valuenanpickle_uniquesTFc                    t        j                  dddd| gt              }t        j                  ddd| gt              }|r(t        j                  t        j
                  |            }dg}g d}t        ||||       t        j                  dddd| gt              }t        j                  g dt              }|r(t        j                  t        j
                  |            }d| g}g d}t        ||||       t        j                  d| gt              }t        j                  g d	t              }|r(t        j                  t        j
                  |            }| g}d
dg}t        ||||       y )Nr-   r   r   r   r   )FTTTT)r   r   r   )FTTTF)r   r   zTF)r   r   r   pickleloadsdumpsr8   )r=   r?   r   r   r4   r5   s         r$   !test_check_unknown_missing_valuesrE      s+    XXsCc=9HFhhS#}5VDG,,v||G45EM3M&'=-HXXsCc=9HFhhf5G,,v||G45-(M4M&'=-HXXsM*&9Fhhf5G,,v||G45"OM5MM&'=-Hr&   c                    t        j                  ddd| dgt              }t        j                  ddd| gt              }t        |      }| t	        ||       n,t	        |d d |d d        t        j
                  |d         sJ |r(t        j                  t        j                  |            }t        ||      }t	        |t        j                  g d             y )Nr   r   r   r   r   )r   r   r   r
   r	   )
r   r   r   r   r   isnanrB   rC   rD   r   )r=   r?   r   expected_uniquesr   r"   s         r$   'test_unique_util_missing_values_objectsrJ      s     XXsCmS9HFxxc3 >fMfoG7$4573B<)9#2)>?xx$$$,,v||G45fg.Gw 9:r&   c                     t        j                  ddt         j                  ddt         j                  gt              } t        j                  dddt         j                  gt              }t        j                  g d      }t	        |       }t        ||       t	        | d      \  }}t        ||       t        ||       t        | |      }t        ||       y )	Nr
   r	   r9   r   )r	   r   r
   r   r	   r
   Tr   r   )r   r   r>   floatr   r   r   )r   rI   expected_inverser   inverser"   s         r$   'test_unique_util_missing_values_numericrO      s    XXq!RVVQ2662%@FxxAq"&& 1?xx 23foGw 01vd;GWw 01w 01fg.Gw 01r&   c            
      "   t        j                  t         j                  dddd t        d      d gt              } t        |       }t        |d d g d       t        j                  |d         sJ g d}t        | d	      \  }}t        ||       y )
Nr   r   r>   r   rG   )r   r   N)r
   r   r	   r	   r   r
   r   Tr   )r   r   r>   rL   r   r   r   rH   )r   r   rM   _rN   s        r$   (test_unique_util_with_all_missing_valuesrR      sz    XXrvvsCdE%L$GvVFfoGws|%5688GBK   ,5JAww 01r&   c            	         t        j                  t         j                  dddd t         j                  d gt              } t	        | t        j                  ddgt                    }|d   J t        j
                  |d         sJ t	        | t        j                  ddgt              d      \  }}|d   J t        j
                  |d         sJ t        |g d	       y )
Nr   r   r   )known_valuesr   r	   T)rT   r3   )FTTTFFF)r   r   r>   r   r   rH   r   )r   r6   r7   s      r$   +test_check_unknown_with_both_missing_valuesrU      s    XXrvvsCdBFFDAPF&rxxc
&/QRD7??88DG%RXXsCj?TD* 7??88DGz#QRr&   z values, uniques, expected_counts
   r
      )rV   r)   rW   )r	   r   r
   r9   )rV   r)   rW   r   )r)   rW   rV   r   r      r      )rX   r)   rY   )r   r   r   )rY   r)   rX   )r   r   r   e)rX   r)   rY   r   c                 4    t        | |      }t        ||       y r;   )r   r   )r   r   expected_countsr#   s       r$   test_get_countsr]      s    J )Fv/r&   )rB   numpyr   r.   numpy.testingr   sklearn.utils._encoder   r   r   r   markparametrizer   r>   r   r%   r1   r8   r<   rL   rE   rJ   rO   rR   rU   r]    r&   r$   <module>rd      s      , O O 	/	18288IW3UVBHHaBFFArvv.i@BHHaBFF^95	

 BHH.f=BHH_F3	

 BHH0?BHH%V4	
 
+	,hbhh.GH  	A%  (4)(4*>&2 3	,	)!4qc;TU	,	)!4qc;TU	1a.	!8288I#6BUVBHHaArvv&'BHHaArvv&'C%		
 BHHaArvv&'BHHYK&		
 BHH\"BHHaArvv&'C%		
 BHH)8BHH_F3BHHcU&)%		
 BHH)8BHH_F3BHHcU&)%		
 BHH)*BHH_%BHHcUO%		
 BHH)*BHH_%BHHcUO%		
Q.1dIe1dI 4u*FG)D%=9I : HI> 2664u*FG)D%=9; : H;(2"2S" &	1#(aS1W$sRx/	0("((92E{SBHHaS2Xa'1#(23BHH\"	
 BHHbffX]aS1W,sRx78BHHaBFF^$	
 BHHcUQY#+sebj8G	
 BHHcUQY#+sebj8G	
 BHHbffX\SEBJ.#;6J"&&#	
 BHHcUQY#+sebj8G 	
7 #H0I#H0r&   