
    PiY              
          d dl Z d dlZd dlmZ 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 d dlmZmZ d dlmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZmZmZmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,  G d de
          Z- G d de
          Z. G d de          Z/ ej0                    Z1e1j2        e1j3        cZ2Z4d Z5d Z6ej7        8                    dd e9dfd e:dfg          d             Z;ej7        8                    dd de2j<        d         dg          d              Z=ej7        8                    dd! d" d# g          d$             Z>ej7        8                    dd% dg          d&             Z?ej7        8                    dd' d( d) g          d*             Z@ G d+ d,e
          ZAd- ZBd. ZCd/ ZDe,d0             ZEd1 ZFej7        8                    d2 ed3d45           ed46           edd47           edgd47          g          d8             ZGe,d9             ZHd: ZId; ZJd< ZKd= ZLd> ZMd? ZNd@ ZOdA ZPdB ZQdC ZRdD ZSdE ZTej7        8                    dF e$ ed 6           e!                      dGf ed 6          eTfg          dH             ZUej7        8                    dIeeeg          dJ             ZVdK ZWej7        8                    dLdMdNg          dO             ZXdP ZYdS )Q    N)Mock)datasets)BaseEstimator)CCAPLSCanonicalPLSRegression)make_friedman1make_regression)PCA)HistGradientBoostingClassifierRandomForestClassifier)NotFittedError)SelectFromModel)
ElasticNetElasticNetCVLassoLassoCVLinearRegressionLogisticRegressionSGDClassifier)make_pipeline)	LinearSVC)MinimalClassifierassert_allcloseassert_array_almost_equalassert_array_equalskip_if_32bitc                        e Zd Z fdZ xZS )NaNTagc                 `    t                                                      }d|j        _        |S NTsuper__sklearn_tags__
input_tags	allow_nanselftags	__class__s     /home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/sklearn/feature_selection/tests/test_from_model.pyr$   zNaNTag.__sklearn_tags__%   '    ww''))$(!    __name__
__module____qualname__r$   __classcell__r*   s   @r+   r   r   $   8                r-   r   c                        e Zd Z fdZ xZS )NoNaNTagc                 `    t                                                      }d|j        _        |S )NFr"   r'   s     r+   r$   zNoNaNTag.__sklearn_tags__,   s'    ww''))$)!r-   r.   r3   s   @r+   r6   r6   +   r4   r-   r6   c                        e Zd Z fdZ xZS )NaNTagRandomForestc                 `    t                                                      }d|j        _        |S r!   r"   r'   s     r+   r$   z#NaNTagRandomForest.__sklearn_tags__3   r,   r-   r.   r3   s   @r+   r9   r9   2   r4   r-   r9   c                  0   t          dddd d           } dD ]~}t          | |          }|                    t          t                     t          j        t                    5  |                    t                     d d d            n# 1 swxY w Y   d S )N皙?
   Talphamax_itershufflerandom_statetol)gobbledigookz.5 * gobbledigook	threshold)	r   r   fitdataypytestraises
ValueError	transform)clfrF   models      r+   test_invalid_inputrP   =   s    
B4T  C ; " "	y999		$]:&& 	" 	"OOD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"" "s   #B

B	B	c                      t                      } t          |           }|                    t          t                     |j        | u sJ d S )N	estimator)r   r   rG   rH   rI   rS   esttransformers     r+   test_input_estimator_unchangedrW   H   sK    
 
"
"C!C000KOOD! C''''''r-   zmax_features, err_type, err_msgc                     dS )Ng      ? Xs    r+   <lambda>r\   T   s    c r-   z3max_features must be an instance of int, not float.c                     dS )NrY   rZ   s    r+   r\   r\   Y   s    b r-   zmax_features ==c                 (   t          j        |          }t          dd          }t          || t          j                   }t          j        ||          5  |                    t          t                     d d d            d S # 1 swxY w Y   d S )N   r   n_estimatorsrB   rS   max_featuresrF   match)reescaper   r   npinfrJ   rK   rG   rH   rI   )rd   err_typeerr_msgrN   rV   s        r+   test_max_features_errorrm   P   s      i  G
 aa
@
@
@C!LRVG  K 
xw	/	/	/ ! !a   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   !BBBrd         c                 ^   t          dd          }t          || t          j                   }|                    t
          t                    }| '|j        | k    sJ |j        d         |j        k    sJ dS t          |d          rJ |j        d         t
          j        d         k    sJ dS )z>Check max_features_ and output shape for integer max_features.r`   r   ra   rc   Nro   max_features_)
r   r   ri   rj   fit_transformrH   rI   rq   shapehasattrrd   rN   rV   X_transs       r+   "test_inferred_max_features_integerrw   j   s     !aa
@
@
@C!LRVG  K ''a00G(L8888}Q;#<<<<<<<;88888}Q4:a=000000r-   c                     dS Nro   rY   rZ   s    r+   r\   r\   |   s    q r-   c                     | j         d         S ry   rs   rZ   s    r+   r\   r\   |   s    AGAJ r-   c                 8    t          | j        d         d          S Nro   i'  minrs   rZ   s    r+   r\   r\   |   s    #agaj%2H2H r-   c                    t          dd          }t          || t          j                   }|                    t
          t                    }|j         | t
                    k    sJ |j        d         |j        k    sJ dS )z?Check max_features_ and output shape for callable max_features.r`   r   ra   rc   ro   N)	r   r   ri   rj   rr   rH   rI   rq   rs   ru   s       r+   #test_inferred_max_features_callabler   z   s     !aa
@
@
@C!LRVG  K ''a00G$T(:(:::::={8888888r-   c                 L    t          t          | d                   dz            S )Nr   rn   )roundlenrZ   s    r+   r\   r\      s    E#ad))a-4H4H r-   c                     g dg dg dg dg}g d}t          dd          }t          || t          j         	          }|                    ||          }|j        d
         |j        k    sJ d S )N)gףp=
?q=
ףpgףp=
?)gRQg{Gzg333333)r   gQ޿gffffff)gQ?gGz?g?)r   ro   r   ro   r`   r   ra   rc   ro   )r   r   ri   rj   rr   rs   rq   )rd   r[   rI   rN   rV   rv   s         r+   test_max_features_array_liker      s     			A 	A
 aa
@
@
@C!LRVG  K ''1--G={8888888r-   c                 8    t          | j        d         d          S r}   r~   rZ   s    r+   r\   r\      s    s171:u%% r-   c                     | j         d         S ry   r{   rZ   s    r+   r\   r\      s     r-   c                     dS ry   rY   rZ   s    r+   r\   r\      s    q r-   c                     t          dd          }t          |           }t          ||t          j                   }|                    t          t                     |                    t                     dS )z7Tests that the callable passed to `fit` is called on X.2   r   ra   )side_effectrc   N)	r   r   r   ri   rj   rr   rH   rI   assert_called_with)rd   rN   mrV   s       r+   test_max_features_callable_datar      sn     !bq
A
A
AC&&&A!CaBF7SSSKdA&&&r-   c                       e Zd Zd ZddZdS )FixedImportanceEstimatorc                     || _         d S N)importances)r(   r   s     r+   __init__z!FixedImportanceEstimator.__init__   s    &r-   Nc                 B    t          j        | j                  | _        d S r   )ri   arrayr   feature_importances_)r(   r[   rI   s      r+   rG   zFixedImportanceEstimator.fit   s    $&HT-=$>$>!!!r-   r   )r/   r0   r1   r   rG   rY   r-   r+   r   r      s7        ' ' '? ? ? ? ? ?r-   r   c            	         t          j        ddddddd          \  } }| j        d         }t          dd	          }t	          |t
          j         
          }t	          ||t
          j                   }|                    | |          }|                    | |          }t          ||           t	          t          dd                    }|                    | |          }t          j
        |j        j                  }t          j        | d          }	t          d|j        d         dz             D ]}
t	          t          dd          |
t
          j                   }|                    | |          }t          j
        |j        j                  }t          j        | d          }t          | d d |	d |
         f         | d d |d |
         f                    t          |j        j        |j        j                   d S )N  r=      r   F	n_samples
n_featuresn_informativen_redundant
n_repeatedrA   rB   ro   r   ra   rS   rF   rc   g?*   r?   rB   rR   	mergesort)kind)r   make_classificationrs   r   r   ri   rj   rr   r   r   abs
estimator_coef_argsortrange)r[   rI   rd   rU   transformer1transformer2X_new1X_new2scores1candidate_indices1r   scores2candidate_indices2s                r+   test_max_featuresr      s'   '  DAq 71:L
 bq
A
A
AC"SRVGDDDL"LRVG  L ''1--F''1--FFF### #UR-P-P-PQQQL''1--Ff\,233GWH;???Av|A233 
 

&%b999#vg
 
 

 ++Aq11&0677Z{CCCaaa#KZK0011QQQ8J;J;8W5W3X	
 	
 	
 	
 L+1<3J3PQQQQQr-   c            	         t          j        ddddddd          \  } }| j        d         }t          j        g d          }t          d|dz             D ]}t          t          |          |t          j         	          }|	                    | |          }t          j
        |                                          d         }t          |t          j        |                     |j        d         |k    sJ d S )
Nr   r=   r   r   Fr   ro   )
   r   r   r   r   r   r   rn   rn   ro   )rd   rF   )r   r   rs   ri   r   r   r   r   rj   rr   where_get_support_maskr   arange)r[   rI   rd   feature_importancesr   rV   X_newselected_feature_indicess           r+   test_max_features_tiebreakr      s   '  DAq 71:L(#A#A#ABBA|a/00 	, 	,
%$%899#vg
 
 

 ))!Q//#%8K,I,I,K,K#L#LQ#O 3RYz5J5JKKK{1~+++++	, 	,r-   c            	         t          j        ddddddd          \  } }t          dd          }t          |dt          j         	          }|                    | |          }t          |d
          }|                    | |          }t          |dd
	          }|                    | |          }|j        d         t          |j        d         |j        d                   k    sJ |	                    t	          j
        | j        d                   t          j        d d f                   }	t          || d d |	d         f                    d S )Nr   r=   r   r   Fr   r   ra   rc   g{Gz?r   ro   )r   r   r   r   ri   rj   rr   rs   r   rM   r   newaxisr   )
r[   rI   rU   r   r   r   r   transformer3X_new3selected_indicess
             r+   test_threshold_and_max_featuresr      sP   '  DAq !bq
A
A
AC"SqRVGTTTL''1--F"SDAAAL''1--F"SqDQQQL''1--F<?c&,q/6<?CCCCCC#--bi
.C.CBJPQPQPQM.RSSFAaaa!1!!44566666r-   c            	      0   t          j        ddddddd          \  } }t          dd          }t          d	d
gt          j        t          j        g          D ]\  }}t          ||          }|                    | |           t          |j
        d          sJ |                    |           }|j        d         | j        d         k     sJ |j
        j        }t	          j        |           ||          k    }t          || d d |f                    d S )Nr   r=   r   r   Fr   r   ra   meanmedianr   r   ro   )r   r   r   zipri   r   r   r   rG   rt   r   rM   rs   r   r   r   )	r[   rI   rU   rF   funcrV   r   r   feature_masks	            r+   test_feature_importancesr     s4   '  DAq !bq
A
A
AC1BGRY3GHH 
= 
=	4%yIII1{-/EFFFFF%%a(({1~
****!,Avk**TT+->->>!%111l?);<<<<
= 
=r-   c            	      T   t          j        ddddddd          \  } }t          j        |j                  }||dk    xx         dz  cc<   t          dd          }t          |	          }|                    | |d 
           |                                }|                    | ||
           |                                }t          j	        ||k              rJ |                    | |d|z  
           |                                }t          j	        ||k              sJ d S )Nd   r=   r   r   Fr   ro   )rB   fit_interceptrR   )sample_weight)
r   r   ri   onesrs   r   r   rG   r   all)r[   rI   r   rU   rV   maskweighted_maskreweighted_masks           r+   test_sample_weightr   (  sC   '  DAq GAG$$M!q&S 
!5
A
A
AC!C000KOOAqO---((**DOOAqO6661133Mvmt+,,,,,OOAqM(9O:::!3355O6-?23333333r-   rS   r<   r   r   rB   l1_ratiorB   c           	      0   t          j        ddddddd          \  }}t          |           }|                    ||           |                    |          }t          j        |j        j                  dk    }t          ||d d |f                    d S )	Nr   r=   r   r   Fr   rR   gh㈵>)
r   r   r   rG   rM   ri   r   r   r   r   )rS   r[   rI   rV   r   r   s         r+   test_coef_default_thresholdr   D  s     '  DAq "I666KOOAq!!!$$E6+(.//$6DeQqqq$wZ00000r-   c            
         t          j        dddddddd          \  } }t                      }t          dd	gt          j        t          j        g          D ]\  }}d
dt          j        fD ]}t          t                      ||          }|	                    | |           t          |j        d          sJ |                    |           }|j        d
         | j        d
         k     sJ |	                    | |           t          j                            |j        d|          }| ||          k    }	t#          || d d |	f                    d S )Nr   r=   r   r   Fr   )r   r   r   r   r   rA   rB   	n_classesr   r   ro   rn   )rS   rF   
norm_orderr   )axisord)r   r   r   r   ri   r   r   rj   r   rG   rt   r   rM   rs   linalgnormr   r   )
r[   rI   rU   rF   r   orderrV   r   r   r   s
             r+   test_2d_coefr   `  s}   '	 	 	DAq 

C1BGRY3GHH A A	4BF^ 	A 	AE),..)PU  K OOAq!!!;17;;;;;))!,,E;q>AGAJ.... GGAqMMM)...FFK&k):)::L%eQqqq,-?@@@@	AA Ar-   c                     t          dddd d          } t          |           }|                    t          t          t          j        t                               |j        }|                    t          t          t          j        t                               |j        }||u sJ |                    t                    }|	                    t          j
        t          t          f          t          j        t          t          f                     t          ||                    t                               t          t                                }t          |d          rJ d S )	Nr   Fr`   pa1)rB   rA   r@   rC   learning_raterR   classespartial_fit)r   r   r   rH   rI   ri   uniquer   rM   rG   vstackconcatenater   r   rt   )rU   rV   	old_model	new_modelX_transforms        r+   test_partial_fitr     s0   
t5  C "C000KD!RYq\\:::&ID!RYq\\:::&I	!!!!''--KOOBItTl++R^QF-C-CDDDk;+@+@+F+FGGG ",B,D,DEEEK{M2222222r-   c                     t          d          } t          |           }|                    t          t                     |                    d           |                    t          t                     |j        j        dk    sJ d S )Nr   r   rR   r   )estimator__C)r   r   rG   rH   rI   
set_paramsr   CrT   s     r+   test_calling_fit_reinitializesr     s~    

#
#
#C!C000KOOD!,,,OOD!!#s******r-   c                  .   t          ddddd           } t          |           }|                    t          t                     |                    t                    }|                     t          t                     t          | d          }t          |                    t                    |           |                    t          t                     |j        | usJ t          | d          }|                    t          t                     t          |                    t                    |           t          ddddd           } t          | d          }d}t          j	        t          |	          5  |                    t          t                     d d d            n# 1 swxY w Y   t          j	        t          |	          5  |                    t          t                     d d d            n# 1 swxY w Y   t          j	        t          |	          5  |                    t                     d d d            n# 1 swxY w Y   t          dddd 
                              t          t                    } t          | d          }|                    t          t                     t          |j        j        | j                   |                    t          t                     t          |j        j        | j                   d S )Nr<   r=   Tr   r>   )prefitFzEWhen `prefit=True`, `estimator` is expected to be a fitted estimator.re   )r?   r@   rA   rC   )r   r   rG   rH   rI   rM   r   r   rJ   rK   r   r   r   r   )rN   rO   r   rl   s       r+   test_prefitr     sD   
 cB1RV
W
W
WCC  E	IIdA//$''KGGD!C---Eeood33[AAA	IIdA3&&&& C...E	IIdAeood33[AAA cB1RV
W
W
WCC---EUG	~W	5	5	5  		$              	~W	5	5	5 # #$"""# # # # # # # # # # # # # # #	~W	5	5	5                
 cB$
G
G
G
K
KDRS
T
TCC---E	IIdAE$*CI666	dAE$*CI66666s6   =!F**F.1F.!G==HH#I

IIc                     t          dd          } |                     t          t                     t	          | dd           }d}t          j        t          |          5  |                    t                     d	d	d	           n# 1 swxY w Y   d
}|	                    |           t          j        t          d          5  |                    t                     d	d	d	           d	S # 1 swxY w Y   d	S )z:Check the interaction between `prefit` and `max_features`.r`   r   ra   Tc                     | j         d         S ry   r{   rZ   s    r+   r\   z*test_prefit_max_features.<locals>.<lambda>  s    17ST: r-   r   rd   z[When `prefit=True` and `max_features` is a callable, call `fit` before calling `transform`.re   Ng      @)rd   z!`max_features` must be an integer)r   rG   rH   rI   r   rJ   rK   r   rM   r   rL   )rS   rO   rl   rd   s       r+   test_prefit_max_featuresr     st    'AAFFFIMM$IdAUAUVVVE	&  
~W	5	5	5                 L	,///	z)L	M	M	M                   s$   "B		BBC//C36C3c                     t          ddd          \  } }t          g dd          }t          |          }|                    | |           |                                }|                                }t          j        d t          | j	        d	                   D                       |         }t          ||           d
S )zWCheck if ElasticNetCV works with a list of floats.

    Non-regression test for #30936.r`   r   r   )r   r   rB   )g      ?      ?g      ?r   rR   c                     g | ]}d | S )xrY   ).0is     r+   
<listcomp>z;test_get_feature_names_out_elasticnetcv.<locals>.<listcomp>  s    <<<QQ<<<r-   ro   N)r
   r   r   rG   get_feature_names_outget_supportri   r   r   rs   r   )r[   rI   rS   selector	names_outr   expecteds          r+   'test_get_feature_names_out_elasticnetcvr
    s     aqqIIIDAq&7&7&7aHHHI333HLLA..00I!!Dx<<%
*;*;<<<==dCHy(+++++r-   c                     t          dd          } |                     t          t                     t	          | dd          }t          |          j        }d| d}t          j        t          |	          5  |
                                 d
d
d
           n# 1 swxY w Y   |                    t          t                     |
                                }|dgk    sJ d
S )z;Check the interaction between prefit and the feature names.rn   r   ra   Tro   r   zThis z_ instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.re   Nx3)r   rG   rH   rI   r   typer/   rJ   rK   r   r  )rN   rO   namerl   feature_namess        r+   !test_prefit_get_feature_names_outr    s#   
 aa
@
@
@CGGD!C1===E;;D	= 	= 	= 	=  
~W	5	5	5 & &##%%%& & & & & & & & & & & & & & & 
IIdA//11MTF""""""s   9BB!Bc                     t          dd          } t          | d          }|                    t          t                     |                    t                    }|                     t          t                     dt          j        | j                  z  }| j        |k    }t          |t          d d |f                    d S )Nr   r   ra   z0.5*meanrE   r   )
r   r   rG   rH   rI   rM   ri   r   r   r   )rU   rO   r   rF   r   s        r+   test_threshold_stringr    s    
 bq
A
A
ACC:666E	IIdA//$''K GGD!bgc6777I#i/Dk44=99999r-   c                  >   t          ddddd           } t          | d          }|                    t          t                     |                    t                    }d|_        |j        d	         |                    t                    j        d	         k    sJ d S )
Nr<   r=   Tr   r>   z
0.1 * meanrE   z
1.0 * meanro   )r   r   rG   rH   rI   rM   rF   rs   )rN   rO   r   s      r+    test_threshold_without_refittingr    s    
cB1RV
W
W
WCC<888E	IIdA//$''K #EOQ%//$"7"7"=a"@@@@@@@r-   c                      t          d          } t          |           }t                                          }t          j        |d<   t          j        |d<   |                    t          t                     d S )Nr   r   rR   ro   )	r   r   rH   copyri   nanrj   rG   rI   )rN   rO   nan_datas      r+   test_fit_accepts_nan_infr    s_    
(a
8
8
8Cc***Eyy{{H&HQK&HQK	IIdAr-   c                     t          dd          } t                                          }t          |           }|                    |t
                     t          j        |d<   t          j        |d<   |	                    |           d S )Nr   r   ra   rR   ro   )
r9   rH   r  r   rG   rI   ri   r  rj   rM   )rN   r  rO   s      r+   test_transform_accepts_nan_infr  )  ss    
#A
>
>
>Cyy{{Hc***E	IIh&HQK&HQK	OOHr-   c                     t                      } t          |           }|                                j        j        du sJ t                      }t          |          }|                                j        j        du sJ d S )NrR   TF)r   r   r$   r%   r&   r6   )allow_nan_estrO   
no_nan_ests      r+   'test_allow_nan_tag_comes_from_estimatorr  7  s    HHMm444E!!##.8D@@@@Jj111E!!##.8EAAAAAAr-   c                 4    t          j        | j                  S r   )ri   r   explained_variance_)pca_estimators    r+   _pca_importancesr#  A  s    6-3444r-   zestimator, importance_getterz$named_steps.logisticregression.coef_c                     t          | d|          }|                    t          t                     |                    t                    j        d         dk    sJ d S )Nr   )rF   importance_getterro   )r   rG   rH   rI   rM   rs   )rS   r%  r  s      r+   test_importance_getterr&  E  sc     V7H  H LLqd##)!,111111r-   PLSEstimatorc                     t          ddd          \  }} | d          }t          t          |          |                              ||          }|                    ||          dk    sJ dS )	zCheck the behaviour of SelectFromModel with PLS estimators.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/12410
    r   r=   r   )r   r   rB   ro   )n_componentsr   N)r	   r   r   rG   score)r'  r[   rI   rS   rO   s        r+   test_select_from_model_plsr+  W  sz     B2AFFFDAq!,,,I/)44i@@DDQJJE;;q!s""""""r-   c                  L   t          j        d           t          j        dd          \  } t	          j                  }fd}t          t                      |                              |           }t          |j
        j                   t	          |                                          }||k     sJ t          j                    5  t          j        dt                     |                    j        dd                    d	d	d	           d	S # 1 swxY w Y   d	S )
zvSelectFromModel works with estimators that do not support feature_names_in_.

    Non-regression test for #21949.
    pandasTas_frame
return_X_yc                 B    t          j        j        d                   S ry   )ri   r   rs   )rS   r[   s    r+   r%  zHtest_estimator_does_not_support_feature_names.<locals>.importance_getterm  s    y$$$r-   )r%  errorro   r   N)rJ   importorskipr   	load_irissetcolumnsr   r   rG   r   feature_names_in_r  warningscatch_warningssimplefilterUserWarningrM   iloc)rI   all_feature_namesr%  r  feature_names_outr[   s        @r+   -test_estimator_does_not_support_feature_namesr?  d  so   
 !!!t===DAqAI% % % % % /@  	c!Qii 
 x119===H::<<==00000		 	"	" ( (g{33316!A#;'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   =DD Dr/  TFc                 *   t          j        d           t          j        | d          \  }}t	          t                      d                              ||g d          }| rt          |j        |j	                   d	S t          |d          rJ d	S )
zITest that partial_fit from SelectFromModel validates `feature_names_in_`.r-  Tr.  r   )rS   rd   )r   ro   rn   r   r7  N)rJ   r3  r   r4  r   r   r   r   r7  r6  rt   )r/  r[   rI   r  s       r+   'test_partial_fit_validate_feature_namesrA    s     !!!xDAAADAqqIIIUU	1iii V  H  :85qyAAAAA8%89999999r-   c                     t          t                                } d}d}t          j        t          |          5 }|                     t          t                                        t                     ddd           n# 1 swxY w Y   t          |j
        j        t                    sJ |t          |j
        j                  v sJ dS )zCheck that we raise the proper AttributeError when the estimator
    does not implement the `partial_fit` method, which is decorated with
    `available_if`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28108
    rR   z5This 'SelectFromModel' has no attribute 'partial_fit'z8'LinearRegression' object has no attribute 'partial_fit're   N)r   r   rJ   rK   AttributeErrorrG   rH   rI   r   
isinstancevalue	__cause__str)
from_model	outer_msg	inner_msg	exec_infos       r+   )test_from_model_estimator_attribute_errorrL    s     !+;+=+=>>>JGIJI	~Y	7	7	7 29tQ++D1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2io/@@@@@IO566666666s   9BBB)Zrg   r8  unittest.mockr   numpyri   rJ   sklearnr   sklearn.baser   sklearn.cross_decompositionr   r   r   sklearn.datasetsr	   r
   sklearn.decompositionr   sklearn.ensembler   r   sklearn.exceptionsr   sklearn.feature_selectionr   sklearn.linear_modelr   r   r   r   r   r   r   sklearn.pipeliner   sklearn.svmr   sklearn.utils._testingr   r   r   r   r   r   r6   r9   r4  irisrH   targetrI   rP   rW   markparametrize	TypeErrorrL   rm   rs   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r
  r  r  r  r  r  r  r#  r&  r+  r?  rA  rL  rY   r-   r+   <module>r`     s   				                   & & & & & & H H H H H H H H H H < < < < < < < < % % % % % % S S S S S S S S - - - - - - 5 5 5 5 5 5                  + * * * * * ! ! ! ! ! !                 ]       }       /    x
)T[a" " "( ( ( % MA	
 L	
 ! ! ! !Q
1t)DEE1 1 FE1 [&&(H(HI 9 9	 9 *H*H!)LMM9 9 NM9" %%';';[[I  	 ? ? ? ? ?} ? ? ?(R (R (RV, , ,47 7 72 = = =24 4 48 Cb)))R   
AB///qc333	 1 1 1& A A A>3 3 3(+ + +(7 (7 (7V  2, , ,# # #&
: 
: 
:	A 	A 	A
 
 
  B B B5 5 5 " M##1---/A/A/C/CDD2	
 
!			./	 	2 2	 	2 #|])KLL	# 	# ML	#( ( (8 dE]33: : 43:7 7 7 7 7r-   