o
    ?Hh'                     @   s   d dl Zd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
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ejdddgdd ZdS )    N)_BaseImputer)_assign_where)	_get_mask)_convert_containerassert_allclosec                  C   s"   t jdd} t j| d d d< | S )N
      )nprandomrandnnan)X r   ^/home/air/sanwanet/gpt-api/venv/lib/python3.10/site-packages/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 r   _concatenate_indicator_transform_indicatorr   r   r   r   	transform      zNoFitIndicatorImputer.transformr   __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 | | 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   |  |d S r   )r   r   r   r   r   r      s   z%NoTransformIndicatorImputer.transformr   )r   r   r    r   r   __classcell__r   r   r(   r   r!      s    r!   c                   @      e Zd ZdddZdd ZdS )NoPrecomputedMaskFitNc                 C   s   |  | | S r   )r%   r   r   r   r   r   $   s   
zNoPrecomputedMaskFit.fitc                 C   r   r   r   r   r   r   r   r   r   (   r   zNoPrecomputedMaskFit.transformr   r   r   r   r   r   r,   #   s    
r,   c                   @   r+   )NoPrecomputedMaskTransformNc                 C   s   t |tjd}| | | S r"   )r   r	   r   r%   r&   r   r   r   r   -   s   
zNoPrecomputedMaskTransform.fitc                 C   r   r   r   r-   r   r   r   r   2   r   z$NoPrecomputedMaskTransform.transformr   r   r   r   r   r   r.   ,   s    
r.   c                 C      t dd}d}tjt|d || |  W d    n1 s!w   Y  tjt|d ||  W d    d S 1 s>w   Y  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_fit6   s   
"r;   c                 C   r/   )NTr0   zJCall _fit_indicator and _transform_indicator in the imputer implementationr2   )r!   r4   r5   r6   r   r   r7   r8   r   r   r   test_base_imputer_not_transform?   s   
"r<   c                 C   s   t dd}d}tjt|d ||  W d    n1 sw   Y  tjt|d ||  W d    d S 1 s;w   Y  d S NTr0   z4precomputed is True but the input data is not a maskr2   )r,   r4   r5   r6   r   r7   r8   r   r   r   !test_base_no_precomputed_mask_fitJ   s   
"r>   c                 C   s   t dd}d}||  tjt|d ||  W d    n1 s#w   Y  tjt|d ||  W d    d S 1 s@w   Y  d S r=   )r.   r   r4   r5   r6   r   r7   r8   r   r   r   'test_base_no_precomputed_mask_transformS   s   

"r?   X1_typearray	dataframec                 C   s   t jd}d\}}t|||| d}|||}|jdd||fdt}t||| | dkr5|	 }t
|| ||  dS )z;Check the behaviour of the private helpers `_assign_where`.r   )r      )constructor_namer   )sizerB   N)r	   r
   RandomStater   r   randintastypeboolr   to_numpyr   )r@   rng	n_samples
n_featuresX1X2r'   r   r   r   test_assign_where]   s   rP   )numpyr	   r4   sklearn.impute._baser   sklearn.impute._iterativer   sklearn.utils._maskr   sklearn.utils._testingr   r   fixturer   r   r!   r,   r.   r;   r<   r>   r?   markparametrizerP   r   r   r   r   <module>   s$    

	
		
