
    sgP
                     $   d dl Zd dlZd dlmZ d dlmZ d dlmZm	Z	m
Z
 g dg dg dgZdggd	z  Zej                  j                  d
dgez   e	z   e
z         d        Zd Zej                  j                  d
dge
z         d        Zej                  j%                   ej&                  e      d k(  d      ej                  j                  d
dgez   e	z   e
z         d               Zej                  j                  d
dgez   e	z   e
z         d        Zy)    N)VarianceThreshold)assert_array_equal)BSR_CONTAINERSCSC_CONTAINERSCSR_CONTAINERS)r               )r   r	   r	   r
      )r   r   r	   r   r   g$b@
   sparse_containerc                     | t         n | t               }t               j                  |      }t        g d|j	                  d             y )N)r   r   r
   r   Tindices)datar   fitr   get_support)r   Xsels      j/var/www/html/venv/lib/python3.12/site-packages/sklearn/feature_selection/tests/test_variance_threshold.pytest_zero_variancer      s>    
 !(.>t.DA


!
!!
$C|S__T_%BC    c                  2   t        j                  t              5  t               j	                  g dg       d d d        t        j                  t              5  t               j	                  ddgddgg       d d d        y # 1 sw Y   KxY w# 1 sw Y   y xY w)N)r   r   r	   r
   r   r   )pytestraises
ValueErrorr   r    r   r   test_zero_variance_value_errorr      sz    	z	" 0/0	z	" 2!Q!Q 012 20 02 2s   B BB
Bc                     | t         n | t               }t        d      j                  |      }t        t               df|j                  k(  sJ y )Ng?)	thresholdr   )r   r   fit_transformlenshape)r   r   s     r   test_variance_thresholdr%      sE     !(.>t.DAC(66q9AIq>QWW$$$r   zRThis test is not valid for this platform, as it relies on numerical instabilities.)reasonc                     | t         n | t               }d}t        j                  t        |      5  t	               j                  |       d d d        y # 1 sw Y   y xY w)Nz4No feature in X meets the variance threshold 0.00000)match)data2r   r   r   r   r   )r   r   msgs      r   'test_zero_variance_floating_point_errorr+   '   sO     ")/?/FA
@C	z	- #"# # #s   AAc                 0   t        j                  t        t         j                        }t         j                  |d<   t         j                  |d d df<   | |n | |      }t               j                  |      }t        g d|j                  d             y )N)dtype)r   r   r   )r   r
   r   Tr   )	nparrayr   float64nanr   r   r   r   )r   arrr   r   s       r   test_variance_nanr3   <   sp     ((4rzz
*CCIC1I'-=c-BA


!
!!
$Cy#//$/"?@r   )numpyr.   r   sklearn.feature_selectionr   sklearn.utils._testingr   sklearn.utils.fixesr   r   r   r   r)   markparametrizer   r   r%   skipifvarr+   r3   r   r   r   <module>r<      sH     7 5 N N/:
" /.@>QDD2 +dVn-DE% F% 
BFF5MQ	3   /.@>Q## /.@>Q	A	Ar   