3
๙ฑby
  ใ               @   s   d dl Z d dlZd dlmZ d dlmZ e jdd ZG dd deZ	G dd	 d	eZ
G d
d deZG dd deZdd Zdd Zdd Zdd ZdS )้    N)ฺ_BaseImputer)ฺ	_get_maskc              C   s"   t jjdd} t j| d d d< | S )N้
   ้   )ฺnpฺrandomZrandnฺnan)ฺXฉ r
   ๚F/tmp/pip-build-yq1vfp91/scikit-learn/sklearn/impute/tests/test_base.pyฺdata	   s    r   c               @   s    e Zd ZdddZdddZdS )ฺNoFitIndicatorImputerNc             C   s   | S )Nr
   )ฺselfr	   ฺyr
   r
   r   ฺfit   s    zNoFitIndicatorImputer.fitc             C   s   | j || j|S )N)ฺ_concatenate_indicatorฺ_transform_indicator)r   r	   r   r
   r
   r   ฺ	transform   s    zNoFitIndicatorImputer.transform)N)N)ฺ__name__ฺ
__module__ฺ__qualname__r   r   r
   r
   r
   r   r      s   
r   c                   s(   e Zd Zd fdd	ZdddZ  ZS )ฺNoTransformIndicatorImputerNc                s   t |tjd}t j| | S )N)ฺvalue_to_mask)r   r   r   ฺsuperฺ_fit_indicator)r   r	   r   ฺmask)ฺ	__class__r
   r   r      s    zNoTransformIndicatorImputer.fitc             C   s   | j |d S )N)r   )r   r	   r   r
   r
   r   r      s    z%NoTransformIndicatorImputer.transform)N)N)r   r   r   r   r   ฺ__classcell__r
   r
   )r   r   r      s   r   c               @   s   e Zd ZdddZdd ZdS )ฺNoPrecomputedMaskFitNc             C   s   | j | | S )N)r   )r   r	   r   r
   r
   r   r   #   s    
zNoPrecomputedMaskFit.fitc             C   s   | j || j|S )N)r   r   )r   r	   r
   r
   r   r   '   s    zNoPrecomputedMaskFit.transform)N)r   r   r   r   r   r
   r
   r
   r   r   "   s   
r   c               @   s   e Zd ZdddZdd ZdS )ฺNoPrecomputedMaskTransformNc             C   s   t |tjd}| j| | S )N)r   )r   r   r   r   )r   r	   r   r   r
   r
   r   r   ,   s    
zNoPrecomputedMaskTransform.fitc             C   s   | j || j|S )N)r   r   )r   r	   r
   r
   r   r   1   s    z$NoPrecomputedMaskTransform.transform)N)r   r   r   r   r   r
   r
   r
   r   r   +   s   
r   c             C   s`   t dd}d}tjt|d |j| j|  W d Q R X tjt|d |j|  W d Q R X d S )NT)ฺadd_indicatorz<Make sure to call _fit_indicator before _transform_indicator)ฺmatch)r   ฺpytestฺraisesฺ
ValueErrorr   r   ฺfit_transform)r   ฺimputerฺerr_msgr
   r
   r   ฺtest_base_imputer_not_fit5   s    
r(   c             C   s`   t dd}d}tjt|d |j| j|  W d Q R X tjt|d |j|  W d Q R X d S )NT)r    zJCall _fit_indicator and _transform_indicator in the imputer implementation)r!   )r   r"   r#   r$   r   r   r%   )r   r&   r'   r
   r
   r   ฺtest_base_imputer_not_transform>   s    
r)   c             C   sZ   t dd}d}tjt|d |j|  W d Q R X tjt|d |j|  W d Q R X d S )NT)r    z4precomputed is True but the input data is not a mask)r!   )r   r"   r#   r$   r   r%   )r   r&   r'   r
   r
   r   ฺ!test_base_no_precomputed_mask_fitH   s    
r*   c             C   sd   t dd}d}|j|  tjt|d |j|  W d Q R X tjt|d |j|  W d Q R X d S )NT)r    z4precomputed is True but the input data is not a mask)r!   )r   r   r"   r#   r$   r   r%   )r   r&   r'   r
   r
   r   ฺ'test_base_no_precomputed_mask_transformQ   s    

r+   )r"   Znumpyr   Zsklearn.impute._baser   Zsklearn.utils._maskr   Zfixturer   r   r   r   r   r(   r)   r*   r+   r
   r
   r
   r   ฺ<module>   s   
	
	
	