o
    `^h%                     @   s  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dejg dddfejd	d
ejd
ejgddejd
d	ejgddfejg dedejg dedfejg dedejg dedfeg deg dfgg dddd Zdd Zdd Zejdeg deg ddgg dfeg deg ddgg dfed	d
ejgeg dejgg dfed	d
dejged	d d
ejgdgg dfed	d
dejgeg ddejgg d!feg ded	d d
ejgdgg dfejg d"edejg dedejd#gedg dfejg d$edejg d%edejd#gedg d&feg d"eg ded#gg dfeg d$eg d%ed#gg d&fg
d'd( Zejd)dejed*gejd+d,d-gd.d/ Zejd)ejded*gejd+d,d-gd0d1 Zd2d3 Zd4d5 Zd6d7 Zejd8ed
gd9 d	gd  d:gd;  eg dg d<fed
gd9 d	gd  d:gd;  eg d=g d>feejgd9 d	gd  d:gd;  ed	d:ejgg d?fejd@gd dAgdB  dCgdD  edg dg dEfejd@gd dAgdB  dCgdD  edg dFg dGfejejgd dAgdB  dCgdD  eddCejdAgg dGfejd@gd dAgdB  dCgdD  edg dHg dIfgdJdK ZdS )L    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                 C   s   t | }t|| t | dd\}}t|| t|tg d t| |d}t|tg d t | dd\}}t|| t|tg d t | ddd\}}}t|| t|tg d t|tg d d S )NTreturn_inverse)r   r   r   r   r   uniques)return_counts)r   r   r   )r   r   )r   r   nparrayr   )valuesexpectedr   resultencodedcounts r"   ]/home/air/shanriGPT/back/venv/lib/python3.10/site-packages/sklearn/utils/tests/test_encode.pytest_encode_util
   s   



r$   c                  C   s   t g d} t g d}tjtdd t|| dd W d    n1 s'w   Y  t|| dd t jg dtd	} t jg d
td	}tjtdd t|| dd W d    d S 1 s_w   Y  d S )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   r"   r"   r#   test_encode_with_check_unknown3   s   "r.   c                 C   s>   t | |}t|| t | |dd\}}t|| t|| d S )NT)return_mask)r   r   )r   r   expected_diffexpected_maskdiff
valid_maskr"   r"   r#   _assert_check_unknownF   s
   


r4   z-values, uniques, expected_diff, expected_maskr%   r&   )TTTF)r   r   r&      )r   r5   r   )TTFT)TTFr5   )TTFFr)   r*   )r*   r   r   r   )r   r   r   )FTTTc                 C   s   t | ||| d S N)r4   )r   r   r0   r1   r"   r"   r#   test_check_unknownO   s   3r7   missing_valuenanpickle_uniquesTFc                 C   s  t jdddd| gtd}t jddd| gtd}|r!tt|}dg}g d}t|||| t jdddd| gtd}t jg dtd}|rNtt|}d| g}g d}t|||| t jd| gtd}t jg d	td}|rytt|}| g}d
dg}t|||| d S )Nr*   r   r   r   r   )FTTTT)r   r   r   )FTTTF)r   r   zTF)r   r   r   pickleloadsdumpsr4   )r8   r:   r   r   r0   r1   r"   r"   r#   !test_check_unknown_missing_values   s*   r?   c                 C   s   t jddd| dgtd}t jddd| gtd}t|}| d u r%t|| nt|d d |d d  t |d s;J |rEtt|}t	||d}t|t g d d S )Nr   r   r   r   r   )r   r   r   r	   r   )
r   r   r   r   r   isnanr<   r=   r>   r   )r8   r:   r   expected_uniquesr   r    r"   r"   r#   'test_unique_util_missing_values_objects   s   rC   c                  C   s   t jddt jddt jgtd} t jdddt jgtd}t g d}t| }t|| t| dd\}}t|| t|| t| |d}t|| d S )	Nr	   r   r5   r   )r   r   r	   r   r   r	   Tr   r   )r   r   r9   floatr   r   r   )r   rB   expected_inverser   inverser    r"   r"   r#   'test_unique_util_missing_values_numeric   s   


rG   c                  C   sx   t jt jdddd tdd gtd} t| }t|d d g d t |d s)J g d}t| dd	\}}t|| d S )
Nr   r   r9   r   r@   )r   r   N)r	   r   r   r   r   r	   r   Tr   )r   r   r9   rD   r   r   r   rA   )r   r   rE   _rF   r"   r"   r#   (test_unique_util_with_all_missing_values   s   "rI   c                  C   s   t jt jdddd t jd gtd} t| t jddgtdd}|d d u s%J t |d s.J t| t jddgtddd\}}|d d u sFJ t |d sOJ t|g d	 d S )
Nr   r   r   )known_valuesr   r   T)rJ   r/   )FTTTFFF)r   r   r9   r   r   rA   r   )r   r2   r3   r"   r"   r#   +test_check_unknown_with_both_missing_values   s    
rK   z values, uniques, expected_counts
   r	      )rL   r&   rM   )r   r   r	   r5   )rL   r&   rM   r   )r&   rM   rL   r   r      r      )rN   r&   rO   )r   r   r   )rO   r&   rN   )r   r   r   e)rN   r&   rO   r   c                 C   s   t | |}t|| d S r6   )r   r   )r   r   expected_countsr!   r"   r"   r#   test_get_counts   s   
%rR   )r<   numpyr   r+   numpy.testingr   sklearn.utils._encoder   r   r   r   markparametrizer   r9   r   r$   r.   r4   r7   rD   r?   rC   rG   rI   rK   rR   r"   r"   r"   r#   <module>   s    "
	$$*


26"$&&(
&$