U
    Ovf%                     @   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dddddgdd	ejdddg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dddddged	ejdddged	fejdddddged	ejdddged	fedddddgedddgfgdddddgddd Zdd Zdd Zejdeddddgedddgdgddddgfeddddgedddgdgddddgfeddejgedddgejgdddgfedddejgedddejgdgddddgfedddejgedddgdejgddddgfeddddgedddejgdgddddgfejddddged	ejdddged	ejdged	ddddgfejddddged	ejdddged	ejdged	ddddgfeddddgedddgedgddddgfeddddgedddgedgddddg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d&d' Zd(d) Zd*d+ Zd,d- Zejd.edgd/ dgd  dgd0  edddgd/dd0gfedgd/ dgd  dgd0  eddddgd/dd0d gfeejgd/ dgd  dgd0  eddejgdd0d/gfejdgd dgd1  dgd2  ed	dddgd1dd2gfejdgd dgd1  dgd2  ed	dddgd2dd1gfejejgd dgd1  dgd2  ed	dejdgd2dd1gfejdgd dgd1  dgd2  ed	dddd3gd1dd2d gfgd4d5 ZdS )6    N)assert_array_equal)_check_unknown_encode_get_counts_uniquezvalues, expected         Zint64ZdtypeZfloat32baczfloat32-nanobjectzobject-Nonestr)idsc              	   C   s   t | }t|| t | dd\}}t|| t|tdddddg t| |d}t|tdddddg t | dd\}}t|| t|tdddg t | ddd\}}}t|| t|tdddddg t|tdddg d S )	NTreturn_inverser   r   r   uniques)return_counts)r   r   )r   r   nparrayr   )valuesexpectedr   resultencodedcounts r   C/tmp/pip-unpacked-wheel-qu3nn_q2/sklearn/utils/tests/test_encode.pytest_encode_util
   s    



r   c               	   C   s   t dddg} t ddddg}tjtdd t|| dd W 5 Q R X t|| d	d t jd
ddgtd} t jd
dddgtd}tjtdd t|| d	d W 5 Q R X d S )Nr   r   r	      z#y contains previously unseen labels)matchT)r   Zcheck_unknownFr   r   r   r
   d)r   r   pytestZ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
    


r+   z-values, uniques, expected_diff, expected_maskr    TF   r"   c                 C   s   t | ||| d S N)r+   )r   r   r'   r(   r   r   r   test_check_unknownO   s    3r.   missing_valuenanpickle_uniquesc                 C   s$  t jdddd| gtd}t jddd| gtd}|rBtt|}dg}dddddg}t|||| t jdddd| gtd}t jdddgtd}|rtt|}d| g}dddddg}t|||| t jd| gtd}t jdddgtd}|rtt|}| g}ddg}t|||| d S )	Nr"   r   r   r   r
   FTz)r   r   r   pickleloadsdumpsr+   )r/   r1   r   r   r'   r(   r   r   r   !test_check_unknown_missing_values   s*    r6   c              	   C   s   t jddd| dgtd}t jddd| gtd}t|}| d krJt|| n,t|d d |d d  t |d svt|rtt	|}t
||d}t|t dddd	d
g d S )Nr   r   r   r
   r   r   r   r	   r   )r   r   r   r   r   isnanAssertionErrorr3   r4   r5   r   )r/   r1   r   expected_uniquesr   r   r   r   r   'test_unique_util_missing_values_objects   s    r;   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 ddddddg}t| }t|| t| dd\}}t|| t|| t| |d	}t|| d S )
Nr	   r   r,   r
   r   r   Tr   r   )r   r   r0   floatr   r   r   )r   r:   expected_inverser   inverser   r   r   r   'test_unique_util_missing_values_numeric   s    


r?   c                  C   s   t jt jdddd tdd gtd} t| }t|d d ddd g t |d sTtddddd	dd	g}t| d
d\}}t|| d S )Nr   r   r0   r
   r7   r	   r   r   r   Tr   )	r   r   r0   r<   r   r   r   r8   r9   )r   r   r=   _r>   r   r   r   (test_unique_util_with_all_missing_values   s    "rA   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 ksJtt |d s\tt| t jddgtddd\}}|d d kstt |d stt|d	dddd	d	d	g d S )
Nr   r   r
   )known_valuesr   r   T)rB   r&   F)r   r   r0   r   r   r9   r8   r   )r   r)   r*   r   r   r   +test_check_unknown_with_both_missing_values   s       
rC   z values, uniques, expected_counts
            ec                 C   s   t | |}t|| d S r-   )r   r   )r   r   Zexpected_countsr   r   r   r   test_get_counts   s    %
rI   )r3   Znumpyr   r#   Znumpy.testingr   Zsklearn.utils._encoder   r   r   r   markZparametrizer   r0   r   r   r%   r+   r.   r<   r6   r;   r?   rA   rC   rI   r   r   r   r   <module>   s   *"
	...








2
:"
$&&(
&

$