
    Q3jy                        d dl Zd dl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 d dlmZ d dlmZmZmZmZ d dlmZ d d	lmZmZ d d
lmZmZmZmZmZ d dl m!Z!m"Z"m#Z#m$Z$m%Z% dZ&d Z'ejP                  jS                  dejT                  ejV                  g      d        Z,ejP                  jS                  ddge#z         ejP                  jS                  dddg      d               Z-d Z.ejP                  jS                  dddg      d        Z/d Z0d Z1ejP                  jS                  dddg      ejP                  jS                  de#      d               Z2d Z3ejP                  jS                  de!      d         Z4d! Z5d" Z6d# Z7d$ Z8ejP                  jS                  ddge#z         ejP                  jS                  d%ddg      d&               Z9d' Z:ejP                  jS                  ddge"z         d(        Z;ejP                  jS                  d)ddg      ejP                  jS                  ddge#z         d*               Z<ejP                  jS                  d+e$      d,        Z=ejP                  jS                  de#      d-        Z>ejP                  jS                  ddge#z         ejP                  jS                  d.d/      ejP                  jS                  d0d1      d2                      Z?ejP                  jS                  d)ddg      ejP                  jS                  dddg      d3               Z@d4 ZAejP                  jS                  d5dd6g      ejP                  jS                  ddge#z         d7               ZBejP                  jS                  de#      d8        ZCejP                  jS                  d9g d:      ejP                  jS                  ddge#D  cg c]/  } ej                  | ejP                  j                  d;<      =      1 c} z         ejP                  jS                  dddg      d>                      ZFed?        ZGd@ ZHyc c} w )A    N)linalgsparse)config_context)BaseEstimator)	load_irismake_regressionmake_sparse_uncorrelated)LinearRegression)LinearClassifierMixin_preprocess_data_rescale_datamake_dataset)add_dummy_feature)get_namespace_and_devicemove_estimator_to)_array_api_for_testsassert_allcloseassert_array_almost_equalassert_array_equal'skip_if_array_api_compat_not_configured)COO_CONTAINERSCSC_CONTAINERSCSR_CONTAINERSLIL_CONTAINERS_sparse_eye_arrayư>c                     dgdgg} ddg}t               }|j                  | |       t        |j                  dg       t        |j                  dg       t        |j                  |       ddg       dgg} dg}t               }|j                  | |       t        |j                  dg       t        |j                  dg       t        |j                  |       dg       y )N      r   )r
   fitr   coef_
intercept_predict)XYregs      Q/DATA/.local/lib/python3.12/site-packages/sklearn/linear_model/tests/test_base.pytest_linear_regressionr(   &   s     qc
A	
AA

CGGAqMcii!-cnnqc2ckk!nq!f5 A	
A

CGGAqMcii!-cnnqc2ckk!nqc2    dtypec                    t         j                  j                  d      }d}|j                  |      }d|z  d|j                  |      z  z   }t        j                  ||g      }|ddgz  d|j                  |      z  z   }|j                  |       }|j                  |       }t        j                  ||      d   }t        d	      j                  ||      j                  }t         j                  j                  |||z  z
        }	t         j                  j                  |||z  z
        }
|
t        j                  |	d
      k(  sJ y)zs
    Check that LinearRegression is as good as `scipy.linalg.lstsq`.
    Non regression test for issue #33032.
    iq  i  g333333?皙?      ?       @r   Ffit_interceptr   )relN)nprandomRandomStaterandcolumn_stackastyper   lstsqr
   r    r!   normpytestapprox)r*   rng	n_samplesx1x2r$   y
coef_scipycoef_sklearn
rmse_scipyrmse_sklearns              r'   test_linear_regression_vs_lstsqrE   >   s    ))


%CI	)	B	rC#((9--	-B
R!A	S#Jsxx	222A	A	Aa#A&J#%8<<QBHHLA
N 23J99>>!a,&6"67L6==>>>>r)   sparse_containerr0   TFc                    t         j                  j                  |      }d\  }}|j                  ||f      }|  | |      }|j                  |      }d|j	                  |      z   }t        |d      }	|	j                  |||       |	j                  }
|	j                  }|	j                  j                  |j                  d   fk(  sJ t        j                  |      }|s|n
t        |      }|j                  |z  |z  }|j                  |z  |z  }t        j                  ||      }|st        |
|       y t        |
|dd         t        ||d          y )	N)      size      ?gؗҜ<)r0   tolsample_weightr   r   )r2   r3   r4   normaluniformr
   r    r!   r"   shapediagr   Tr   solver   )rF   r0   global_random_seedr<   r=   
n_featuresr$   r@   rO   r&   coefs1inter1WX_augXwywcoefs2s                    r'   %test_linear_regression_sample_weightsr_   W   s>   
 ))

 2
3C !Iz

J/
0A#Q

	
"A#++9+55M E
BCGGAqG.YYF^^F99??qwwqzm+++ 	A"A(9!(<E	1u	B	1qB\\"b!F'qr
+q	*r)   c                      d} t        d      }t        j                  d      }t        d      }t	        j
                  t        |       5  |j                  ||       d d d        y # 1 sw Y   y xY w)Nz9Sparse data was passed for X, but dense data is required.
   Tpositivematch)r   r2   onesr
   r:   raises	TypeErrorr    )	error_msgr$   r@   r&   s       r'   .test_raises_value_error_if_positive_and_sparserj      sO    KI"A
A
D
)C	y		21 
3	2	2s   
A&&A/zn_samples, n_features)r      )rk   r   c                 D   t         j                  j                  d      }|j                  | |      }|j                  |       }|j                  |       dz  dz   }d}d}t	               }|j                  |||       |j                  |||       |j                  |||       y )Nr   r   r   rL   r.   )r2   r3   r4   randnr
   r    )	r=   rW   r<   r$   r@   sample_weights_OKsample_weights_OK_1sample_weights_OK_2r&   s	            r'   9test_raises_value_error_if_sample_weights_greater_than_1drq      s     ))


"C		)Z(A		)A		),1A5

C GGAq#$GGAq%&GGAq%&r)   c                     t        j                  ddgddgg      } t        j                  g dg dg      }t        j                  ddg      }t        d	      j                  | |      }t               j                  | |      }t        d	      j                  ||      }t               j                  ||      }|j                  j
                  |j                  j
                  k(  sJ |j                  j
                  |j                  j
                  k(  sJ |j                  j                  |j                  j                  k(  sJ y )
NgmGB?g\^?gL+K?gfiU?)g&/)¶?g <E/?gMd?)g".Hw?g%|?g0e?r   Fr/   )r2   arrayr
   r    r!   rR   ndim)X2X3r@   lr2_without_interceptlr2_with_interceptlr3_without_interceptlr3_with_intercepts          r'   test_fit_interceptr{      s   	J
+j*-EF	GB		-/ST
B 	!QA,5AEEb!L)+//A6,5AEEb!L)+//A6##))-B-H-H-N-NNNN##))-B-H-H-N-NNNN &&++/D/J/J/O/OOOOr)   c                 |   t         j                  j                  |       }d}t        ||      }|j	                  |      }||z  }t               }|j                  ||j                                t        ||j                  |j                  z          t        |j                  |      |j                         z
  d       y )Nd   r   )r2   r3   r4   r   r5   r
   r    ravelr   r!   r"   r#   )rV   r<   nr$   betar@   olss          r'   test_linear_regression_sparser      s    
))

 2
3CA!QA88A;D	DA

CGGAqwwydCII$>?ckk!nqwwy8!<r)   csr_containerc                    t         j                  j                  d      }d}d}|j                  ||      }d||dk  <    ||      }|j	                  |      }t        |       }t        di |}	t        di |}
|	j                  ||       |
j                  ||       |	j                  t        j                  |
j                        k(  sJ t        |	j                  |
j                         y )Nr      r           r,   r/    )r2   r3   r4   rm   r5   dictr
   r    r"   r:   r;   r   r!   )r0   r   r<   r=   rW   r$   Xcsrr@   params	clf_dense
clf_sparses              r'   )test_linear_regression_sparse_equal_denser      s     ))


"CIJ		)Z(AAa#gJDA.F *6*I!+F+JMM!QNN46==1F1F#GGGGIOOZ%5%56r)   c                     t         j                  j                  d      } t        |       \  }}t        j                  ||f      j
                  }|j                  d   }t               }|j                  ||       |j                  j                  d|fk(  sJ |j                  |      }|j                  ||       |j                  |      }t        t        j                  ||f      j
                  |d       y )Nr   random_stater   r   rk   decimal)r2   r3   r4   r   vstackrT   rR   r
   r    r!   r#   r   )r<   r$   r@   r%   rW   r&   Y_predy_preds           r'   'test_linear_regression_multiple_outcomer      s    
))


"C,DAq
		1a&AJ

CGGQO99??q*o---[[^FGGAqM[[^Fbii(89;;VQOr)   coo_containerc                     t         j                  j                  |       }t        |      \  }} ||      }t        j                  ||f      j
                  }|j                  d   }t               }|j                  ||       |j                  j                  d|fk(  sJ |j                  |      }|j                  ||j                                |j                  |      }	t        t        j                  |	|	f      j
                  |d       y )Nr   r   r   rk   r   )r2   r3   r4   r	   r   rT   rR   r
   r    r!   r#   r~   r   )
rV   r   r<   r$   r@   r%   rW   r   r   r   s
             r'   .test_linear_regression_sparse_multiple_outcomer      s     ))

 2
3C#5DAqaA
		1a&AJ

CGGAqM99??q*o---[[^FGGAqwwy[[^Fbii(89;;VQOr)   c                     dgdgg} ddg}t        d      }|j                  | |       t        |j                  dg       t        |j                  dg       t        |j                  |       ddg       dgg} dg}t        d      }|j                  | |       t        |j                  dg       t        |j                  dg       t        |j                  |       dg       y )Nr   r   Trb   r   )r
   r    r   r!   r"   r#   r   )r$   r@   r&   s      r'   test_linear_regression_positiver      s    
qc
A	
AA
D
)CGGAqMcii!-cnnqc2ckk!nq!f5 A	
A
D
)CGGAqMCIIs#CNNQC(CKKNQC(r)   c                 X   t         j                  j                  |       }t        |      \  }}t        j                  ||f      j
                  }|j                  d   }t        d      }|j                  ||       |j                  j                  d|fk(  sJ t        j                  |j                  dk\        sJ |j                  |      }|j                  ||j                                |j                  |      }t        t        j                  ||f      j
                  |       y )Nr   r   Trb   r   r   )r2   r3   r4   r	   r   rT   rR   r
   r    r!   allr#   r~   r   )	rV   r<   r$   r@   r%   rW   r   r   r   s	            r'   0test_linear_regression_positive_multiple_outcomer     s    
))

 2
3C#5DAq
		1a&AJ
D
)CGGAqM99??q*o---66#))s"###[[^FGGAqwwy[[^FBIIvv./116:r)   c                 @   t         j                  j                  |       }t        |      \  }}t	        d      }|j                  ||       t	        d      }|j                  ||       t        j                  |j                  |j                  z
  dz        dkD  sJ y )Nr   Trb   Fr   MbP?)r2   r3   r4   r	   r
   r    meanr!   )rV   r<   r$   r@   r&   regns         r'   .test_linear_regression_positive_vs_nonpositiver     s|    
))

 2
3C#5DAq
D
)CGGAqMU+DHHQN77CII

*q01D888r)   c                    t         j                  j                  |       }d}d}|j                  ||      }|d d df   d|d d df   z  z   d|d d df   z  z   d|d d df   z  z   }t	        d	      }|j                  ||       t	        d
	      }|j                  ||       t        j                  |j                  |j                  z
  dz        dk  sJ y )Nr      r   r   r   rk   g      ?Trb   Fr   )r2   r3   r4   r5   r
   r    r   r!   )rV   r<   r=   rW   r$   r@   r&   r   s           r'   <test_linear_regression_positive_vs_nonpositive_when_positiver   ,  s     ))

 2
3CIJJ'A	!Q$!a1g+AadG+cAadGm;A
D
)CGGAqMU+DHHQN77CII

*q01D888r)   use_swc                    t         j                  j                  |      }|j                  dd      }|j                  dd      }|j	                  d      }| 	 | |      }n|j                         }|j                         }|r|j                         }	nd }	t               }
|
j                  |||	       | t        |j                         |       nt        ||       t        ||       |rt        |	|       t        d      }
|
j                  |||	       | t        |j                         |       n't         j                  j                  ||z
        dkD  sJ t        ||       |rt        |	|       y y )Nra      r   rN   F)copy_XgzG?)r2   r3   r4   rm   r5   copyr
   r    r   toarrayr   r9   )rF   r   rV   r<   original_X_dataoriginal_y_dataoriginal_sw_datar$   r@   rO   r&   s              r'   test_inplace_data_preprocessingr   =  sV   
 ))

 2
3CiiB'OiiA&Oxx|#_-  "A (--/ 
CGGAqG.#		_5?+A''78 %
(CGGAqG.# 			_5
 yy~~a/12T999 A''78 r)   c                    t         j                  j                  |       }d}d}|j                  ||      }|j                  |      }t        j                  |d      }t        j                  |d      }t        ||d      \  }}	}
}}}t        |
t        j                  |             t        |d       t        |t        j                  |             |J t        ||       t        |	|       t        ||d      \  }}	}
}}}t        |
|       t        ||       t        |t        j                  |             |J t        |||z
         t        |	||z
         y )Nr   r   r   axisFr/   T)	r2   r3   r4   r5   r   r   r   zerosrf   )rV   r<   r=   rW   r$   r@   expected_X_meanexpected_y_meanXtytX_meany_meanX_scalesqrt_sws                 r'   test_preprocess_datar   u  s<   
))

 2
3CIJJ'AAggaa(Oggaa(O/?	1E0,BFFGW fbhhz&:;fa(grwwz':;??b!$b!$/?	1D0,BFFGW fo6fo6grwwz':;??b!o"56b!o"56r)   c                    t         j                  j                  |       }d}d}d}|j                  ||      }|j                  ||      }t        j                  |d      }| ||      }t        ||d      \  }	}
}	}}	}	t        |t        j                  |             t        |
|       t        ||d      \  }	}
}	}}	}	t        ||       t        |
||z
         y )	Nr   rk   r   r   r   Fr/   T)r2   r3   r4   r5   r   r   r   r   )rV   rF   r<   r=   rW   	n_outputsr$   r@   r   _r   r   s               r'    test_preprocess_data_multioutputr     s    
))

 2
3CIJIJ'AI&Aggaa(O#Q-a%HAr1fafbhhy&9:b!$-a$GAr1fafo6b!f*-r)   rescale_with_swc                    t         j                  j                  |      }d}d}|j                  ||      }d||dk  <   |d d dfxx   dz  cc<   d|d d df<   d|d d d	f<   |j                  |      }t        j                  |j                  |            d
z   }t        j
                  |d|      }	t        j
                  |d|      }
t        j
                  ||d      }t        j
                  ||z
  dz  |d      }|dt        j                  |j                        j                  z  k  }t        |g d       t        j                  |      t        j                  |j                               z  }d
||<   | ||      }t        ||d||       \  }}}}}}| |j                         }|j                         }t        ||	       t        ||
       t        |t        j                  |             | rdt!        |t        j                  |             |t!        ||d d d f   |z         nt!        ||d d d f   ||	z
  z         t!        ||||
z
  z         y |J |t!        ||       nt!        |||	z
         t!        |||
z
         y )Nr   r   r   r-   r   ra   rL   r   rk   r   )r   weights)r   r   )r   r   r   r   Tr0   rO   r   )r2   r3   r4   r5   absaveragefinfor*   epsr   sqrtsumr   r   r   rf   r   )r   rF   rV   r<   r=   rW   r$   r@   rO   r   r   X_sample_weight_avgX_sample_weight_varconstant_maskexpected_X_scaler   r   r   r   r   r   s                        r'   test_preprocess_data_weightedr     so   
 ))

 2
3CIJ
 	J'AAa#gJ adGrMG AadG AadGAFF388I./!3MjjMBOjjMBO**QAF**	
 	 Q&A ("rxx/@/D/D*DDM}l3ww23bggm>O>O>Q6RR '(]##Q/?		#'0,BFFGW #IIKZZ\fo6fo6grwwz':;!78'B4 01 45B4 0A4G HIGq?':;<'B"BO 34A/0r)   lil_containerc                 P   t         j                  j                  |       }d}d}t        j                  ||d|      } ||      }|j	                  |      }|j                         }t        ||d      \  }}	}
}}}t        |
t        j                  |             t        |d       t        |t        j                  |             |J t        |j                         |       t        |	|       t        ||d      \  }}	}
}}}t        |
t        j                  |d	             t        |t        j                  |d	             t        |t        j                  |             |J t        |j                         |       t        |	|t        j                  |d	      z
         y )
Nr   r   r-   )densityr   Fr/   r   Tr   )r2   r3   r4   r   r5   r   r   r   r   rf   r   )rV   r   r<   r=   rW   r$   r@   XAr   r   r   r   r   r   s                 r'   #test_sparse_preprocess_data_offsetsr     s]   
))

 2
3CIJIz3SIAaAA	
B/?	1E0,BFFGW fbhhz&:;fa(grwwz':;??bjjlB/b!$/?	1D0,BFFGW fbggbq&9:fbggaa&89grwwz':;??bjjlB/b!bggaa&8"89r)   c                     t               \  }}d||dk  <    | |      }t        ||d      \  }}}}}}|j                  dk(  sJ y )Nr         @Tr/   csr)r   r   format)r   r$   r@   r   csr_r   s         r'   test_csr_preprocess_datar     sT     DAqAa#gJ

C*3FD!Q1a;;%r)   to_copy)TFuse_sample_weight)FTc                    t               \  }}d||dk  <   |rt        j                  t        |            nd }|  | |      }t	        |||d|d      \  }}}}}}| ^|s|r,t        j
                  |j                  |j                        r/J t        j
                  |j                  |j                        sJ y y t        j
                  ||      | k(  sJ y )Nr   r   TF)rO   r0   r   check_input)r   r2   rf   lenr   may_share_memorydata)	rF   r   r   r$   r@   rO   X_y_r   s	            r'   #test_preprocess_copy_data_no_checksr     s     DAqAa#gJ'8BGGCFOdM#Q)		#BAq!Q #'**277AFF;;;&&rww777 < ""2q)'k:::r)   c                 
   t         j                  j                  |      }d}d}|j                  ||      }|j                  |      }|j                  |      dz   }t        j                  |t         j
                        }	t        j                  |t         j
                        }
t        j                  |t         j
                        }t        j                  |t         j                        }t        j                  |t         j                        }t        j                  |t         j                        }t        |	|
|||       \  }}}}}}t        |||||       \  }}}}}}t        |	||||       \  }}}}}} t        ||
|||       \  }!}"}#}$}%}&|j                  t         j
                  k(  sJ |j                  t         j
                  k(  sJ |j                  t         j
                  k(  sJ |j                  t         j
                  k(  sJ |j                  t         j
                  k(  sJ | r|j                  t         j
                  k(  sJ |j                  t         j                  k(  sJ |j                  t         j                  k(  sJ |j                  t         j                  k(  sJ |j                  t         j                  k(  sJ |j                  t         j                  k(  sJ | r|j                  t         j                  k(  sJ |j                  t         j
                  k(  sJ |j                  t         j
                  k(  sJ |j                  t         j
                  k(  sJ |j                  t         j
                  k(  sJ |j                  t         j
                  k(  sJ | r| j                  t         j
                  k(  sJ |!j                  t         j                  k(  sJ |"j                  t         j                  k(  sJ |#j                  t         j                  k(  sJ |$j                  t         j                  k(  sJ |j                  t         j
                  k(  sJ | r|&j                  t         j                  k(  sJ |	j                  t         j
                  k(  sJ |
j                  t         j
                  k(  sJ |j                  t         j                  k(  sJ |j                  t         j                  k(  sJ t        ||dd       t        ||dd       t        ||d	       t        ||d	       t        ||       | rt        ||d	       y y )
Nr   r   r   r*   r   r   r   )rtolatolr   )
r2   r3   r4   r5   asarrayfloat32float64r   r*   r   )'r   r0   rV   r<   r=   rW   r$   r@   swX_32y_32sw_32X_64y_64sw_64Xt_32yt_32	X_mean_32	y_mean_32
X_scale_32
sqrt_sw_32Xt_64yt_64	X_mean_64	y_mean_64
X_scale_64
sqrt_sw_64Xt_3264yt_3264X_mean_3264y_mean_3264X_scale_3264sqrt_sw_3264Xt_6432yt_6432X_mean_6432y_mean_6432X_scale_6432sqrt_sw_6432s'                                          r'   test_dtype_preprocess_datar  <  sT    ))

 2
3CIJJ'AA	)	q	 B::arzz*D::arzz*DJJr,E::arzz*D::arzz*DJJr,EAQ#'B>E5)Y
J BR#'B>E5)Y
J 	'+	
 KGWk;l 	'+	
 KGWk;l ;;"**$$$;;"**$$$??bjj(((??bjj(((rzz)))2::---;;"**$$$;;"**$$$??bjj(((??bjj(((rzz)))2::---==BJJ&&&==BJJ&&&

***

***+++!!RZZ///==BJJ&&&==BJJ&&&

***

***+++!!RZZ///::###::###::###::###E5t$7E5t$7Iyt4Iyt4J
+
JT: r)   c                     t        ddd      \  } }t        j                  ddgddgd	d
ggt        j                        }t        j                  g dt        j                        }| j                  ||      }| j                  ||      }t	        d      5  t        ||dd      ^}}}d d d        j                  | j                  k(  sJ j                  | j                  k(  sJ y # 1 sw Y   @xY w)Ntorchmpsr   )device_name
dtype_namer   r   rk   r   rI   rH   r   )r   r   r   )deviceTarray_api_dispatch)r0   r   )r   r2   r   int64r   r   r*   r   )	xpr  X_npy_npX_xpy_xpX_outy_outr   s	            r'   =test_preprocess_data_integer_array_api_on_float32_only_devicer    s    %g5YWJB ::1v1v1v.bhh?D::irxx0D::d6:*D::d6:*D	4	0+$d
uq 
1
 ;;"**$$$;;"**$$$ 
1	0s   C++C4	n_targetsr   c                    t         j                  j                  |      }d}d}d|j                  |      z   }|j                  ||      }| |j                  |      }n|j                  ||       }t        j                  |      }	||	d d t         j
                  f   z  }
| ||	z  }n||	d d t         j
                  f   z  }|+ ||      }|  ||j                  dd            }n ||      }t        |||      \  }}}t        ||	       |2|j                         }|j                         }| |j                         }t        ||
       t        ||       y )Nr   r   rL   r   )r2   r3   r4   r5   r   newaxisreshaper   r   r   r~   )r  rF   rV   r<   r=   rW   rO   r$   r@   expected_sqrt_swexpected_rescaled_Xexpected_rescaled_y
rescaled_X
rescaled_yr   s                  r'   test_rescale_datar)    s^    ))

 2
3CIJ#((9--MJ'AHHYHHY	*ww}-.q"**}=="22"21bjj="AA#Q 2q!12A #A&3Aq-&H#J
GG-.#'')
'')
#))+JJ 34J 34r)   c                 X   t               }|j                  j                  t        j                        }|j
                  j                  t        j                        } | |      }t        j                  |j                  t        j                        }|j                  j                  t        j                        }|j
                  j                  t        j                        } | |      }t        j                  |j                  t        j                        }	t        |||      \  }
}t        |||	      \  }}|
j                         \  }}}}|j                         \  }}}}|\  }}}|\  }}}|j                  t        j                  k(  sJ |j                  t        j                  k(  sJ t        ||t               t        |||      \  }}t        |||	      \  }}|j                         \  }}}}|j                         \  }}}}|\  }}}|\  }}}|j                  t        j                  k(  sJ |j                  t        j                  k(  sJ t        ||t               t        ||t               t        ||       t        ||       t        ||       t        ||       y )Nr   r   )r   r   r7   r2   r   targetarangerK   r   r   _next_pyr*   r   r   r   )r   irisr   r   X_csr_32sample_weight_32r   r   X_csr_64sample_weight_64
dataset_32r   
dataset_64xi_32yi_32xi_64yi_64
xi_data_32
xi_data_64datasetcsr_32datasetcsr_64xicsr_32yicsr_32xicsr_64yicsr_64xicsr_data_32xicsr_data_64s                              r'   test_fused_types_make_datasetrC    s9   ;D99BJJ'D;;bjj)DT"Hyy"**=99BJJ'D;;bjj)DT"Hyy"**= !t-=>MJ t-=>MJ#,,.E5!Q#,,.E5!QJ1J1rzz)))rzz)))E5t, $Hd4DEM1#Hd4DEM1,557Hh1,557Hh1"M1a"M1a"**,,,"**,,,M=t<HhT2z=1z=1uh'uh'r)   X_shape)ra   rI   )ra      )r}   r}   z/Known to fail for CSR arrays, see issue #30131.)reason)marksc                    t         j                  j                  |      }| \  }}|j                  ||      }|j                  |      }| ||      }t	        |      }	t        di |	j                  ||d      }
|
j                  j                         }|r|
j                  }t        j                  |      }|
j                  |||       t        |
j                  |d       |rt        |
j                         d}|
j                  |||       t        |
j                  |d       |rt        |
j                         |j                  dd|j                  d	   
      }|
j                  |||      }
|
j                  j                         }|r|
j                  }|
j                  ||t         j                  |z         t        |
j                  ||dnd       |rt        |
j                         |j                         }d	|dd |ddxxx dz  ccc |
j                  |||       |
j                  j                         }|r|
j                  }|
j                  |dd |dd |dd        t        |
j                  |d       |rt        |
j                         | t        j                   ||d|dz   gd      }nt        j"                  ||d|dz   gd	      }t        j"                  ||d|dz   g      }|j                         }|d|dz  xxx dz  ccc t        j"                  ||d|dz   gd	      }t        di |	j                  |||      }t        di |	j                  |||      }t        |j                  |j                  d       |r!t        |j                  |j                         yy)zTest that the impact of sample_weight is consistent.

    Note that this test is stricter than the common test
    check_sample_weight_equivalence alone and also tests sparse X.
    It is very similar to test_enet_sample_weight_consistency.
    Nr/   rN   r   r   g     ^@g{Gz?r   r   )lowhighrK   gh㈵>i  csc)r   r   r   )r2   r3   r4   r5   r   r
   r    r!   r   r"   	ones_liker   rQ   rR   pir   r   concatenate)rD  rF   r0   rV   r<   r=   rW   r$   r@   r   r&   coef	interceptrO   sample_weight_0coef_0intercept_0ru   y2sample_weight_1sample_weight_2reg1reg2s                          r'   0test_linear_regression_sample_weight_consistencyr[    sd   0 ))

 2
3C#IzJ'AA#Q.F

$V
$
(
(AT
(
BC99>>DNN	
 LLOMGGAqG.CIIt$/	2 MGGAqG.CIIt$/	2 KKDqqwwqzKBM
''!Qm'
4C99>>DNN	GGAq 5G6CIIt2B2J$PTU	2 $((*OOBCbcFdNFGGAqG0YY^^FnnGGAcrFAcrF-*<G=CIIvD14 #]]Aq!19>23EB^^Q"2IN 341=	A.	Q/0	1B#((*O$i1n%*%nn	&6	Q78qO %f%))!Qo)ND%f%))"b)PDDJJ

69 r)   c                  J   t        j                  d      } t        j                  j	                  d      }|j                  d      }|j                  d      }t               j                  ||      }| j                  |      }|j                  |       t        d      5  t        j                  t        d	      5  |j                  |       d d d        t        |      \  }}}t        |||      }|j                  |       d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)
Narray_api_strictr   rE  rJ   ra   Tr  z.*must use the same namespacerd   )r:   importorskipr2   r3   default_rngrP   r
   r    r   r#   r   rg   
ValueErrorr   r   )	r  r<   r$   r@   r&   r  	xp_targetr   r  s	            r'    test_array_api_move_estimator_torb  n  s    			/	0B
))


"C


 A


A


 
 A
&C::a=DKK	4	0]]:-LMKK N7=	1fY7D 
1	0MM 
1	0s$   !D=D5DD	DD"c                       G d dt         t              }  |        }|j                  dd       |j                  t	        j
                  d            }t        t	        j                  |d      d       y)z~Test that _predict_proba_lr of LinearClassifierMixin deals with large
    negative values.

    Note that exp(-1000) = 0.
    c                       e Zd Zd Zd Zd Zy):test_predict_proba_lr_large_values.<locals>.MockClassifierc                      y )Nr   )selfs    r'   __init__zCtest_predict_proba_lr_large_values.<locals>.MockClassifier.__init__  s    r)   c                     d| _         y )NT)__sklearn_is_fitted__)rg  r$   r@   s      r'   r    z>test_predict_proba_lr_large_values.<locals>.MockClassifier.fit  s
    )-D&r)   c                 X    |j                   d   }t        j                  dgdz  |dg      S )Nr   g     @r   r   )rR   r2   tile)rg  r$   r=   s      r'   decision_functionzLtest_predict_proba_lr_large_values.<locals>.MockClassifier.decision_function  s*    
I77G9q=9a.99r)   N)__name__
__module____qualname__rh  r    rm  r   r)   r'   MockClassifierre    s    		.	:r)   rq  N)r$   r@   rI   r   r   )r   r   r    _predict_proba_lrr2   rf   r   r   )rq  clfprobas      r'   "test_predict_proba_lr_large_valuesru    sX    	:. 	: 
CGGddG!!"''!*-EBFF5q)1-r)   )Inumpyr2   r:   scipyr   r   sklearnr   sklearn.baser   sklearn.datasetsr   r   r	   sklearn.linear_modelr
   sklearn.linear_model._baser   r   r   r   sklearn.preprocessingr   sklearn.utils._array_apir   r   sklearn.utils._testingr   r   r   r   r   sklearn.utils.fixesr   r   r   r   r   r   r(   markparametrizer   r   rE   r_   rj   rq   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r)  rC  paramxfailr[  rb  ru  )	containers   0r'   <module>r     s       " & Q Q 1  4 P   30 2::rzz":;? <?0 +dVn-DE4-8$+ 9 F$+N	 0662BC' D'"P&= 4-8.97 : 97$P" .9P :P").;"
99" +dVn-DED%=139 2 F39l7< +dVn-DE. F.* *UDM:+dVn-DEF1 F ;F1R .9: ::< .9  :  +dVn-DEM2,m<; = 3 F;8 *UDM:5$-8^; 9 ;^;B%& tQi0+dVn-DE&5 F 1&5R .9*( :*(Z $CD	F ( (I 	++##H $  	 	
 (	 5$-8Q: 9 EQ:h ) )$.es   4Q