`L i:F!dZddlZddlZddlZddlmZddlmZddlm Z ddl Z ddl Z ddl mZddl mZddlZddlmZddlmZdd lmZdd lmZdd lmZdd lmZmZdd lm Z ddl!m"Z"ddl#m$Z$ddl%m&Z&ddl'm(Z(ddl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ddl0m1Z1m2Z2ddl3m4Z4m5Z5ddl6m7Z7m8Z8m9Z9m:Z:m;Z;mZ>m?Z?ddl@mAZAddlBmCZCmDZDmEZEmFZFmGZGddlHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcdZddZee jjde jjdejddd gd!Zid"Zjd#Zkd$Zle jjd%e jd&fe jd'fe jd&fge jjd(e jejgd)Zqe jjd*e jd+d,d-fe jdd,d.fe jd/d,d0fe jdd'd.fe jd+d,d1fe jdd,d2fe jd3d,d4fe jd+d5d6fe jd+d7d1fg e jjd(e jejgd8Zre jjd9gd:e jjd(e jejgd;Zsd<Zte jjd=e jd7e jggd>fe jd7e jggd>fe jd7e jggd?fe jd7e jggev@dAfge jjdBd,d&gdCZwdDZxe jjdEdFZze jjddGdHgdIdJgge jdGdHgdIdJggdK@e jdGdHgdIdJggdL@dMdNgdOdPgge jdMdNgdOdPggdQ@gdRZ{e jjdSgdTe jjdUe je jge jfe je jfdVe jfgdWZ~dXZdYZdZZd[Zd\Zd]Zd^Ze j gd_`daZdbZdcZddZdeZdfZdgZdhZdiZdjZdkZe jjdledeeggdmndoZdpZe jjdqe2e1ndrZdsZdtZduZe jjdve je jfe jddVfe jjdwdxdyZdzZd{ZGd|d}ZGd~dZdZe jjdd,d&gdZe jjddedddd,idd,dfdedddd,idd,dfdedddd,igdgd,dfdedddd,idgd,dfdedddd,iddefdedddd,iddefggdndZe jjd(e jejejJejLejNejPejRejTgdZdZdZe jjdgddZe jjdd7dedddedfddejbdddedfddejddddedfd7deefdddedfd7dedddedfddedddedfddedddedfddedddedfddedddedfddedddedfddedddedfg dZde jd7dgdd+fe jd7dge jd7dgdd+fde jddgedfde jddged+fe jd7dge j@e jd7dge j@edfe jd7dge j@e jd7dge j@edfde jddgedfdZe jjdeejoeejqne jjdd,d&gdZdedfdedfdedfe jddge j@edfe jddge j@edfdȜZe jjdeejoeejqndʄZd˄Ze jjde jejejJgd̈́Ze jjde jejejJgd΄Ze jjdejejJgdτZdЄZdфZd҄Ze jjddd7dggdՄZe jjdgdעd؄Ze jjdgdڢdۄZe jjddde jfdde jfdde jfdde jfdde jfdde jfdde jfdde jfdde jfdde jfdde jfdde jfdde jfdde jfdde jfgdZe jjdgddZe jjdgdgdgdgddd7iddiddigggdne jjdgddZe jjdgdgdndZe jjd eededdddgdd ggggd nd Zΐd Ze jjdgddZe jjdgddZѐdZҐdZe jjddeddfdeddfdeddfgdZԐdZՐdZe jjddd7gdfdddggdfgd d!gnd"ZGd#d$eZؐd%Zِd&Zڐd'Ze jjd(gd)d*Zܐd+Zݐd,Ze jjd-dd7dd7de jggd.gd/Ze?d0Ze jjd1gd2e jjd3d,d&gd4Zd5Ze jjd6eEeDzeCzeFze jjd7gd8d9Ze jjd:e jd7e jdgd7dgddgggd;Zd<Zd=Zd>Zd?Zd@Ze?dAZdBZe jjgdCe jd7dgddggd7dgddgggedDfe jd7dgddggd7dgddgggddEfgdFZy(Gz$Tests for input validation functionsN)product) itemgetter)NamedTemporaryFile) importorskip)config_context)dependent_packages) BaseEstimator) make_blobs)RandomForestRegressor)NotFittedErrorPositiveSpectrumWarning) ARDRegression)EstimatorWithFit)KNeighborsClassifier)_sparse_random_matrix)SVR)_safe_indexingas_float_array check_arraycheck_symmetric check_X_y deprecated)_get_namespace_device_dtype_ids)yield_namespace_device_dtype_combinations) MockDataFrame_MockEstimatorOnOffPrediction) SkipTest TempMemmap_array_api_for_tests_convert_containerassert_allcloseassert_allclose_dense_sparseassert_array_equalcreate_memmap_backed_data'skip_if_array_api_compat_not_configured) _NotAnArray)COO_CONTAINERSCSC_CONTAINERSCSR_CONTAINERSDIA_CONTAINERSDOK_CONTAINERS) FLOAT_DTYPES_allclose_dense_sparse_check_feature_names_in_check_method_params_check_psd_eigenvalues_check_response_method_check_sample_weight_check_y_deprecate_positional_args_estimator_has_get_feature_names _is_fitted _is_pandas_df _is_polars_df _num_features _num_samples_to_object_arrayassert_all_finitecheck_consistent_lengthcheck_is_fitted check_memorycheck_non_negativecheck_random_state check_scalar column_or_1dhas_fit_parameter validate_datactdtjjjusJttjtjjjusJtjj d}tdj d|j dk(sJtjj d}t||usJtjj d}tdj d|j dk7sJtjt5tddddy#1swYyxYw)N*d+zsome invalid seed) rBnprandommtrand_rand RandomStaterandintpytestraises ValueError)rng_42s i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/utils/tests/test_validation.py test_make_rngrV_s d #ryy'7'7'='= == = bii (BII,<,<,B,B BB B YY " "2 &F b ! ) )# .&..2E EE E YY " "2 &F f % // / YY " "2 &F b ! ) )# .&..2E EE E z "0./000s  E''E0ctjdtj}|tjdtjz}t |d}|j tj k(sJ|jtj}t |d}t |d|usJ|j tjk(sJttjtjtjtjtjtjg}|D]=}|j|}t |}|j tj k(r=J|jt }t |d}|j tjk(sJtjdtj }t |d|usJtj"|}tj$t |dsJt'j(tjdj+t-ddd j+g}|D]G}t |d}tj.|d <tj0|j3sGJy) N) dtyperYFcopyT)rX皙?)densityrr)rKonesint32arangerr[float32astypeint64float64boolint8int16uint8uint16uint32objectasfortranarray isfortransp csc_matrixtoarrayrnanisnanany)XX2 tested_dtypesr[matricesMNs rUtest_as_float_arrayrqs rxx(A BIIb ))A  &B 88rzz !! ! A  %B !% ( 11 1 88rzz !! !277BHHbhh"))RYYWM& HHUO A xx2::%%%& A  %B 88rzz !! ! bjj)A !% (A -- - !A <<qt4 55 5 biil#++-b"d3;;=H% 14 (&&$88A;??$$$%ryrYr^rYr^csrformatctj|d<tj|d<t|d}t||y)N)r_r) allow-nanensure_all_finite)rKrvrr")ry X_converteds rUtest_as_float_array_nanrs4ffAdGffAdG kBK a0rctjdjdd}tt |tj rJtt t j|tj rJy)N rX)rKrereshape isinstancermatrixrsrtrys rUtest_np_matrixrsZ " a#A.+RYY77 7.q)9:BIIFF FFrcPd}td5}tj|dtj}d|ddttj |fD]<}||}d|ddt |j|jd|dd> dddy#1swYyxYw)Nct|dS)NFr\)r)xs rUztest_memmap..s nQU3rz sklearn-test)prefixrYrY)shaper[rr)rrKmemmaprfrasarrayr#ravel)asflttmpr}frys rU test_memmaprs 4E > 2c IIc <!rzz51 A!AAaD qwwy!'') 4AaD   s BBB%c~tjd}||jfD]P}dD]I}t|d|}|jdsJt|d|}|jdsJ|sD||urIJRt j |}|jddd|_|jjdrJy) N)rYr_)TFC)orderr] C_CONTIGUOUSF F_CONTIGUOUS)rKrcTrflagsrs csr_matrixdata)ryAr]Bs rU test_orderingrs A V"! "DASt4A77>* **ASt4A77>* **z!z  "" aA VVDbD\AFvv||N++ ++rzvalue, ensure_all_finiteFrretypec|tjdjddjt}||d<t ||d}t ||y)Nrr^rbT)r accept_sparse)rKrerrgfloatrr")valuerrry X_checkeds rU(test_check_array_ensure_all_finite_validrsQ ryy|##Aq)0078AAdGA1BRVWI I.rz/value, input_name, ensure_all_finite, match_msgTzInput contains infinityzInput X contains infinity sample_weightz%Input sample_weight contains infinityInput contains NaNzInput X contains NaNyzInput y contains NaNz allow-infz1ensure_all_finite should be a bool or 'allow-nan'rc|tjdjddjtj}||d<t j t|5t|||ddddy#1swYyxYw)Nrr^rbmatchT) input_namerr) rKrerrgrirQrRrSr)rrr match_msgrrys rU*test_check_array_ensure_all_finite_invalidrsr. ryy|##Aq)00<=AAdG z 3  !/     s )BB r)ryrrc(|tjdjddjtj}tj |d<t }d|jjd}tjtd|d5}t|||d ddd|d k(r|jjd vsJ|jjd vsJ|d k(rtjtd|d5}t j|tj |j"d ddd||jjd vsJyy#1swYxYw#1swY4xYw) Nrr^rb aX does not accept missing values encoded as NaN natively. For supervised learning, you might want to consider sklearn.ensemble.HistGradientBoostingClassifier and Regressor which accept missing values encoded as NaNs natively. Alternatively, it is possible to preprocess the data, for instance by using an imputer transformer in a pipeline or drop samples with missing values. See https://scikit-learn.org/stable/modules/impute.html You can find a list of all estimators that handle NaN values at the following page: https://scikit-learn.org/stable/modules/impute.html#estimators-that-handle-nan-valueszInput z contains NaNrT) estimatorrrryr)rKrerrgrirvr __class____name__rQrRrSrrargsfitrcr)rrrr extended_msgctxs rU0test_check_array_links_to_imputer_doc_only_for_Xrsh "))A,&&q!,33BJJ? @DDJI Y ) ) * +- - z6*])K L PS !   Ssyy~~a0000399>>!#4444S]]:vj\-O P 4TW EIIdBGGDJJqM2 3 4syy~~a0000    4 4sE<;F<FFc>tjddtjggtj}t |dd}||usJt |dd}||usJt jtd5t |dd dddy#1swYyxYw) NabrZrr[rFrrT) rKarrayrvrprrrQrRrS)ryrs rU)test_check_array_ensure_all_finite_objectr(s 3RVV$%V466AAT[II >>ATUCI >> z)= >;ATT:;;;s ;BBz X, err_msgInput contains NaN.z5Input contains infinity or a value too large for.*intrZz#cannot convert float NaN to integerrctjt|5t|t|dddy#1swYyxYw)Nrr)rQrRrSrint)ryerr_msgrs rU8test_check_array_ensure_all_finite_object_unsafe_castingr5s80 z 1GAS4EFGGGs 8Actjd}|jgd}dt|d}tjt |5t |ddddy#1swYyxYw) z Check that we raise a proper error message when passing a Series and we expect a 2-dimensional container. Non-regression test for: https://github.com/scikit-learn/scikit-learn/issues/27498 pandasrr^rXz+Expected a 2-dimensional container but got z instead.rT ensure_2dN)rQrSeriestyperRrSr)pdsermsgs rUtest_check_array_series_err_msgrQsa   X &B ))I C 7S {) LC z -)C4()))s A**A3z3ignore:Can't check dok sparse matrix for nan or infc ddgddgg}tj|}tjt5t |dddt gdd}|j dk(sJtjtd 5t gdd dddtjtd 5t d d dddttd rhtttj|}|j dk(r2tjtd 5t |d d dddtjdjddd}tjt5t |dddt |d tjdjddjd}|jd}|j!t"}|j!t$}||||g} tj&t"t$tj(dt*t,g} gd} d dg} t/| | | | D]\}} }}t || ||}| |j0| k(sJ|j0|j0k(sJ|dk(r"|j2dsJ|j2dr)J|dk(r"|j2dsJ|j2drJ|r||urJ|j0|j0k(s|j2d|j2dk(s|j2d|j2dk(s||urJg} | j5t6t8zt:zt<zDcgc] }|| c}| j5| dj!tj>| dj!tj@gddgddgg}| Dcgc] }|t,us |}}t/| ||| D]\}} }}t || ||}| |j0| k(sJ|j0|j0k(sJ|jB|vr|jB|jBk(sJ|jB|dk(sJ|r||urJ|j0|j0k(s|jB|jBk(s||urJt ddgddgg}tE|tjFsJtjt5t |jIdddt |jId tK|}t |}tE|tjFsJt ddgddgg}d}tjt| 5t |d dtM dddy#1swYxYw#1swYjxYw#1swYFxYw#1swYxYw#1swYxYwcc}wcc}w#1swYxYw#1swYyxYw)!Nrr^rXr)rrr^Frz'Expected 2D array, got 1D array insteadrTz+Expected 2D array, got scalar array insteadrY csr_arrayzExpected 2D input, got)rrallow_ndrr)rrN)r[rr]rrrrcoodokr[rr]z2 22 ~6 66 c\??>2 22 ~6 66 I% %%9??*OON3qww~7NNOON3qww~7NNI~%~+&4 BII%3%%%   S ! IIr!u||BHH%r!u||BJJ'?@Aenuen5N'-A&0@AA)0 ~u*&%5- mRVW  ??e+ ++??agg- -- 88} $88y/// //##}Q'77 77 I% %%ww)//)ahh):J:J.JI~%~'&.Aq6Aq6*+G grzz ** * z "%FMMO$% $/W%J  $F fbjj )) ) !Q"a) *ELG z 1   $+-    m//(( L L T B6%%  se W1W>9X 0X X%X2 X7X73X<Y1W;>X XX"%X/<YY1234US1234V1cd}tjt|5t|ddddy#1swYyxYw)zmTest that check_array errors when it receives an array of bytes/string while a numeric dtype is required.z>dtype='numeric' is not compatible with arrays of bytes/stringsrnumericrZNrQrRrSr)ry expected_msgs rUtest_check_array_numeric_errorrs7UL z 6(AY'(((s5>pd_dtype)Int8Int16UInt8UInt16Float32Float64zdtype, expected_dtyperctjd}|dvrtjdd}tjdddtjtjgtjtjdd d ggd gj }|j ||gd  }|djd|d<t|d|}t|||j|k(sJt|d|}t|||j|k(sJd}tjt|5t|ddddy#1swYyxYw)Nr>rrz1.2 minversionrr^rXrrr)rr^rXrr_rrc)r[columnsr$rr)rr[FrrTr) rQrrKrrvr DataFramergrr!r[rRrS)rr[expected_dtyperX_npryrrs rU"test_check_array_pandas_na_supportr)s'   X &B))  e < 88 Q266266 "RVVRVVQ1$=O a T? CA sV]]7 #AcFAEJIIt$ ??n ,, ,AeDIIt$ ??n ,, , C z -/A.///s 7EEc4tjd}|jdd|jgd}d}tjt |5t |dd d d d t |d d }t|ddtjg|jtjk(sJt |d d tj }t|ddtjg|jtjk(sJy #1swYxYw) z4Check check_array is correct with pd.NA in a series.rrr^Int64rZrrTF)rrN)rrr[) rQrrNArRrSrr!rKrvr[rirf)rX_int64rX_outs rU*test_check_array_panadas_na_support_seriesr/s   X &BiiAruu Wi5G C z -FGtuEF 5E JEEAq"&&>* ;;"** $$ $ 5E EEAq"&&>* ;;"** $$ $FFs DDctjd}tjgdgdgdgtj}|j |}t |jtjk(sJt |tjtjk(sJ|jdtji}t|jtjtjtjft |jtjk(sJt |tjtjk(sJ|jdtji}t |jtjk(sJt |tjtjk(sJ|jdtji}t |jtjk(sJt |tjtjk(sJ|jtj}t |jtjk(sJt |tjtjk(sJ|j d|jgdi}t |jtj k(sJt |tjtjk(sJy) Nrrrr_rr rZrr^cat_col)rQrrKrrfr&rr[r,rgfloat16r#rrlri Categoricalrh)rryX_dfcat_dfs rU%test_check_array_pandas_dtype_castingr:4s7   X &B )Y 2"**EA <<?D t  " "bjj 00 0 t< 0 6 6"** DD D ;;2:: 'Dt{{RZZRZZ$HI t  " "bjj 00 0 t< 0 6 6"** DD D ;;288} %D t  " "bjj 00 0 t< 0 6 6"** DD D ;;2:: 'D t  " "bjj 00 0 t< 0 6 6"** DD D ;;rxx D t  " "bhh .. . t< 0 6 6"** DD D \\9bnnY&?@ AF v  $ $ 00 0 v\ 2 8 8BJJ FF FrcBtjddgddgddgddgg}t|}t|}|j|jk(sJt|tj }|jtjtj k(sJy)Ng?gffffff?g333333?g?g?r`rZ)rKrrrr[rf)arrmock_df checked_arrs rU"test_check_array_on_mock_dataframer?Ys ((S#Jc S#Jc C DCC Gg&K    )) )gRZZ8K    4 44 4rcgdgdgdg}t|jjdk(sJt|djjdk(sJy)Nrr1r2iFr)rr[kindrs rU test_check_array_dtype_stabilityrCbsM Iy)A q>   $ $ ++ + qE * 0 0 5 5 << !>#zz2::.$en I ??bjj0 00A% %% &  ::rzz* %.  "**,,, ---5(((?)))sAH5B+H5A(H55H>cddgddgg}tj|}t}d}tjt |5t |ddddd }tjt|5t ||dddd }tjt|5t |gdddtjt|5t |d dddtjt d 5t ||gdddy#1swYxYw#1swYxYw#1swYxYw#1swY`xYw#1swYyxYw) Nrr^rXrziSparse data was passed, but dense data is required. Use '.toarray\(\)' to convert to a dense numpy array.rFrzjParameter 'accept_sparse' should be a string, boolean or list of strings. You provided 'accept_sparse=.*'.z]When providing 'accept_sparse' as a tuple or list, it must contain at least one string value.r)rsrrrQrRrrrS)ryr invalid_typers rU-test_check_array_accept_sparse_type_exceptionrUs7 Q!QA MM! E5L A y ,0E/0 G z -7E67 5 z --E,- z --E,- y .9E,899%0077----99s<D%8D1+D=E  E%D.1D:=E EEcddgddgg}tj|}t|dt|dt|dgt|dy) Nrr^rXrTrRr)r)rsrr)ryrs rU+test_check_array_accept_sparse_no_exceptionrWsL Q!QA MM! ET*U+eW-X.r)rcscrbsr)paramsc#Ktjdd|j}|jdk(rot|dr"t d|j D|_n|j jd|_|jjd|_n@|jjd|_ |jjd|_ |yw)NrYrrcoordsc3>K|]}|jdyw)rhN)rg).0vs rU zX_64bit..sA1QXXg.Asrh) rsrLparamrtupler]rowrgcolindicesindptr)requestrys rUX_64bitris "b/A}} 1h  AAAAHEELL)AEEELL)AEII$$W- 88??7+ GsC&C(c t|ddy)NT)accept_large_sparser)r)ris rU1test_check_array_accept_large_sparse_no_exceptionrlsTFrcd}tjt|5t|dddddy#1swYyxYw)NzbOnly sparse matrices with 32-bit integer indices are accepted. Got int64 indices. Please do reportrTF)rrkr)rirs rU4test_check_array_accept_large_sparse_raise_exceptionrnsA < z -LG4UKLLLs6?cd}tjt|5tggdddd}tjt|5tgddddt j d}tjt |5tdddddtjd}tjd }d }tjt|5t||d dddtjt|5t||d d dddtjd}tjd }d}tjt|5t||ddddtjt|5t||dddddtjdjdd}tjd}d}tjt|5t||dddtjd}tjd}t||d\}}t||t||y#1swYexYw#1swY?xYw#1swYxYw#1swYxYw#1swYxYw#1swY>xYw#1swYxYw#1swYxYw)NzC0 feature\(s\) \(shape=\(1, 0\)\) while a minimum of 1 is required.rz@0 sample\(s\) \(shape=\(0,\)\) while a minimum of 1 is required.FrzgInput should have at least 1 dimension i.e. satisfy `len(x.shape) > 0`, got scalar `array(42)` instead.rH)rrYrzC1 sample\(s\) \(shape=\(1, 10\)\) while a minimum of 2 is required.r^)ensure_min_samples)rprrzD2 feature\(s\) \(shape=\(10, 2\)\) while a minimum of 3 is required.rX)ensure_min_featuresT)rqrrrYzD0 feature\(s\) \(shape=\(10, 0\)\) while a minimum of 1 is required.)rYrrrr) rQrRrSrreescaperrKrcremptyrr#)rryrr y_checkeds rU2test_check_array_min_samples_and_features_messagesrwsU PC z -RD NC z -)B%() )) B C y ,)B%() A  A PC z -.!Q1-. z -?!Q1>? A  A QC z -/!QA./ z ->!QA=>  B"A  A QC z -!Q  A  A$QD9Iyq)$q)$s )))).. ??// >>s_ JJJ(3J5%KK6K% K)JJ%(J25J?K KK&)K2cltjgdgdg}tjtd5t |dddgdgdg}tjtd5t |dddd}tjtd5t |dddtjgdtjgdg}tjtd5t |dddtjgdtjgdf}tjtd5t |dddt tjgdgdg}tjtd5t |dddtjddgddgg}tjtd5t |dddtjgd}tjtd5t|dddy#1swYxYw#1swYxYw#1swYxYw#1swYrxYw#1swY"xYw#1swYxYw#1swYxYw#1swYyxYw) N?@@@@@@@@@@@zComplex data not supportedr)ryr}rrz)rzr{r|r~rr) rKrrQrRrSrrrs coo_matrixr3)ryrs rU#test_check_array_complex_data_errorr"s *,DEFA z)E FA "#;.TestClassWithDeprecatedFitMethodz7Deprecated for the purpose of testing has_fit_parameterNcyNrS)selfryrrs rUrzDtest_has_fit_parameter..TestClassWithDeprecatedFitMethod.fitS rr)r __module__ __qualname__rrrSrrU TestClassWithDeprecatedFitMethodrRs M N  O rrz=has_fit_parameter fails for class with deprecated fit method.)rErr r)rs rUtest_has_fit_parameterrLsm !5GG G 2O DD D S/ 22 2 SUO 44 4 = OG Orc tjddgddgg}tjd}tjddgddgg}|tj|tj |tj |tj|tj|tj|d}tjt5t|ddd|jD]\}}tjt 5t|dddtjt5t|ddddt|d}tj"|r,|j$|k(sJt'|j)|t'||y#1swYxYw#1swYxYw#1swY~xYw) Nrrr^)denserrrXrlilrYT)raise_exceptionF) raise_warning)rKrrcrs dok_matrixrrtr lil_matrix bsr_matrixrQrRrSritemswarns UserWarningissparserr#ru)arr_symarr_badarr_asym test_arrays arr_formatr<outputs rUtest_check_symmetricr\s}hhAA'(GggajGxx!Q!Q()H}}X&}}X&}}X&}}X&}}X&}}X&K z "! !',,. 0 C \\+ & ! C  ! ]]: & 7 C 6 7!E: ;;v ==J. .. v~~/ 9 vw / 0 !!  ! ! 7 7s$! G$ GGG G G% cGddt}tjt5t |dddt |j y#1swY(xYw)NceZdZdZdZy)6test_check_is_fitted_with_is_fitted..Estimatorcd|_|S)NT)r7rkwargss rUrz:test_check_is_fitted_with_is_fitted..Estimator.fits"DOKrc6t|dxr |jS)Nr7)rr7rs rU__sklearn_is_fitted__zLtest_check_is_fitted_with_is_fitted..Estimator.__sklearn_is_fitted__s4.B4?? BrN)rrrrrrSrrU Estimatorrs   Crr)r rQrRr r?r)rs rU#test_check_is_fitted_with_is_fittedrsNCMC ~ &% $%IKOO%&%%s A!!A*cBGddt}t|y)z;Check that check_is_fitted passes for stateless estimators.c$eZdZdZfdZxZS):test_check_is_fitted_stateless..StatelessEstimatorc|SrrSrs rUrz>test_check_is_fitted_stateless..StatelessEstimator.fitKrc2t|}d|_|S)NF)super__sklearn_tags__ requires_fit)rtagsrs rUrzKtest_check_is_fitted_stateless..StatelessEstimator.__sklearn_tags__s7+-D %D Kr)rrrrr __classcell__)rs@rUStatelessEstimatorrs   rrN)r r?)rs rUtest_check_is_fitted_statelessrs]&()rctjt5ttdddtjt5tddddt }t } tjt 5t|dddtjt 5t|dddd}d}tjt|5t||dddd}d}tjt|5t||ddd|jt|jtt|Jt|Jy#1swYYxYw#1swY9xYw#1swYxYw#1swYxYw#t$rJdwxYw#1swYxYw#1swYxYw) Nrz&check_is_fitted failed with ValueErrorz!Random message %(name)s, %(name)sz+Random message ARDRegression, ARDRegressionr)rz"Another message %(name)s, %(name)szAnother message SVR, SVR) rQrRrr?rrr rSAttributeErrorrr )ardsvrrrs rUtest_check_is_fittedrs y !' &' y ! /C %C? ]]> * ! C  ! ]]> * ! C  ! .C 9E z /&%& /C &E ~U 3&%& CGGZ\ CGGZ\ 3  '' ' 3  '' '?'' ! ! ! ! ?>>>u? && &&skF F4F4 F!F4: F(F4-G"GF FF% F4(F1-F44GGGcGddt}d}|}t|ddgrJtjt|5t |ddgdddt|ddgt rJtjt|5t |ddgt dddt|ddgtrJtjt|5t |ddgtdddd |_t|ddgrJtjt|5t |ddgdddt|ddgt rJtjt|5t |ddgt dddt|ddgtsJt |ddgtd |_ t|ddgsJt |ddgt|ddgt sJt |ddgt t|ddgtsJt |ddgty#1swYxYw#1swYxYw#1swYcxYw#1swY%xYw#1swYxYw) NceZdZdZy)4test_check_is_fitted_attributes..MyEstimatorc|SrrSrryrs rUrz8test_check_is_fitted_attributes..MyEstimator.fitrrN)rrrrrSrrU MyEstimatorrs rrz not fitteda_b_) attributesr)r all_or_anyrr) r r7rQrRr r?allrxrr)rrests rUtest_check_is_fitted_attributesrs1m C -C#4,77 7 ~S 16t 56#4,3GG G ~S 1Ft EF#4,3GG G ~S 1Ft EFCF#4,77 7 ~S 16t 56#4,3GG G ~S 1Ft EF ctTls CC CCT4LSA CF ctTl 33 3CT4L1 ctTls CC CCT4LSA ctTls CC CCT4LSA366FFFF 66FFs<H8II,I5I,8IIII),I5wrap)singlelistrc)idscxt}tjtd5t ||dgddd|j t t ||dgtjtd5t ||dgdddy#1swYkxYw#1swYyxYw)Nzis not fitted yetrcoef_ coef_bad_)rrQrRr r?rr )rrs rU$test_check_is_fitted_with_attributesrs /C ~-@ A.T7)_-. CGGZ\Cwi) ~-@ A2T;-0122..22sB$B0$B-0B9cxtdgdgdgdgdgtddgddgggddgddgtdgdtjdgtjd t j td 5tddgdgd d d t j td 5tddgdd d d t j td 5tddgtd d d t j t5tddgtjdd d d t j td 5tddgtd d d y #1swYxYw#1swYxYw#1swYxYw#1swYhxYw#1swYy xYw)zpTest that `check_consistent_length` raises on inconsistent lengths and wrong input types trigger TypeErrors.rr^rXrr_rr)r^rr^inconsistent numbers of samplesrNzgot <\w+ 'int'>zgot <\w+ 'object'>Expected sequence or array-like) r>rKrrsrrQrRrSrrpr rSrrUtest_check_consistent_lengthrswQC!qcA34aVq!fX.Ac CQCrxx}bmmF6KL z)J K-A,- y(: ;+A*+ y(= >2A12 y !5A 45 y(I JAA(=(?@AA--++2255AAs<>F1F #F"F$ F0F  FF!$F-0F9zarray_namespace, device, _c t||}td5t|jgd||jddgddgddgg|gdgdt jdt t jd dgdd gd d ggtjtd 5t|jddg||jdg|d d d d d d y #1swYxYw#1swYy xYw)zCTest that check_consistent_length works with different array types.Tarray_api_dispatchr)devicerr^rXr#rZrrrN) rrr>rrKrprsrrQrRrS)array_namespacer_xps rU&test_check_consistent_length_array_apir s ov 6B 4 0  JJyJ 0 JJAAA/J ?   JJf 5 LL1a&1a&1a&1 2  ]]:-N O  # Aq6& 12::qc&:3Q        s$BC:+2C.C:.C7 3C::Dc ddl}tjgdgdgdg}|j|gd}t |y#t $r t dwxYw)Nrrr1r2)rrrr%zPandas not found)rrKrr&r> ImportErrorr)rryr8s rU"test_check_dataframe_fit_attributer$sU+ HHiI6 7||A'8|9% +)**+s AAActjdtjg}tjt 5t |dddtjdt |tjdtjt 5t |dddy#1swYnxYw#1swYyxYw)NrT) assume_finiteF) rKrinfrQrRrSr=sklearn set_configrs rUtest_suppress_validationr1s !RVVA z "! T*a U+ z "!  s B8# C8CC cFtd}t|jgdd}t|t j gd|jgdj d}t|dd}t|t j gdty) NrrFrr#category)r[rrZ)rrrr#rKrrgrp)rresss rUtest_check_array_seriesr<sr h B bii *e A++A4zOestimator_name, estimator_value, delegates, expected_result, expected_exception estimator_ SubEstimatorrSattribute_presentr estimators_custom_estimator no_estimatorattribute_absent)'fitted_estimator_with_default_delegates estimator_with_default_delegates#list_of_estimators_with_estimators_&custom_estimator_with_custom_delegates#no_estimator_with_default_delegates5estimator_with_default_delegates_but_absent_attributec| td}n td|}Gdd}|}t||||r'tj|5||dddy|||k(sJy#1swYyxYw)z Tests the _estimator_has function by verifying: - Functionality with default and custom delegates. - Raises ValueError if delegates are missing. - Raises AttributeError if the specified attribute is missing. Nr) delegatesc eZdZy))test_estimator_has..MockEstimatorNrrSrrU MockEstimatorr)s rr*)r5setattrrQrR)estimator_nameestimator_valuer'expected_resultexpected_exceptioncheckr*rs rUtest_estimator_hasr1sJ232iH   A A~/ ]]- .  !H  Qx?***  s  A11A:c4tjgdgdgdgdg}||}t|d|ddgddgg}t|dd|d<||}tjt d5t|ddddy#1swYyxYw) N)rrrr)rrrrrrrrbz Negative r)rKrrArQrRrS)rrrys rUtest_check_non_negativer3s , lLIJAq Aq"AA Aq"AdGq A z 5"1b!"""s 8 BBc>tjd}d}d}tjt|5t ||dddd}tjt|5t ||t dddy#1swYFxYw#1swYyxYw)Nr^r^z;estimator requires y to be passed, but the target y is NonerzGRandomForestRegressor requires y to be passed, but the target y is Noner)rKrcrQrRrSrr ryrrs rU test_check_X_y_informative_errorr8!s A A GC z -!Q TC z -;!Q"7"9:;; ;;s B'BBBcGdd}|}t|t|k(sJGdd}tjtd5t|dddy#1swYyxYw)NceZdZdZdZy)Jtest_retrieve_samples_from_non_standard_shape..TestNonNumericShapecd|_yN)z not numericrrs rU__init__zStest_retrieve_samples_from_non_standard_shape..TestNonNumericShape.__init__/ )DJrctgdS)Nr)lenrs rU__len__zRtest_retrieve_samples_from_non_standard_shape..TestNonNumericShape.__len__2s y> !rN)rrrr?rCrSrrUTestNonNumericShaper;.s  * "rrDceZdZdZy)Jtest_retrieve_samples_from_non_standard_shape..TestNoLenWeirdShapecd|_yr=r>rs rUr?zStest_retrieve_samples_from_non_standard_shape..TestNoLenWeirdShape.__init__:r@rNrrrr?rSrrUTestNoLenWeirdShaperF9s *rrIrr)r;rBrQrRr)rDryrIs rU-test_retrieve_samples_from_non_standard_shaperJ-sh"" A ?c!f $$ $** y(I J,(*+,,,s A**A3r)r^rXg@r_c tj5tjdt|dtj ddd}ddd|k(sJy#1swYxYw)zPTest that check_scalar returns no error/warning if valid inputs are providedrE test_namer^r_both target_typemin_valmax_valinclude_boundariesN)rFrGrHrCnumbersReal)rscalars rUtest_check_scalar_validrVAsa  "  g&  %     Q;;   s 5AA#zJx, target_name, target_type, min_val, max_val, include_boundaries, err_msg test_name1rneitherz1test_name1 must be an instance of float, not int.z6test_name1 must be an instance of float, not NoneType.z4test_name1 must be an instance of int, not NoneType.z9test_name1 must be an instance of {float, bool}, not int. test_name2ztest_name2 == 1, must be > 2.r_ test_name3ztest_name3 == 5, must be < 4. test_name4rightztest_name4 == 2, must be > 2. test_name5leftztest_name5 == 4, must be < 4. test_name6zbad parameter valuezyUnknown value for `include_boundaries`: 'bad parameter value'. Possible values are: ('left', 'right', 'both', 'neither'). test_name7zT`include_boundaries`='left' without specifying explicitly `min_val` is inconsistent. test_name8zU`include_boundaries`='right' without specifying explicitly `max_val` is inconsistent.c  tjt5}t||||||dddt j t |k(sJt |j t|sJy#1swYNxYw)zLTest that check_scalar returns the right error if a wrong input is givenrNN)rQrR ExceptionrCr rrr)r target_namerOrPrQrRr raised_errors rUtest_check_scalar_invalidrfRs{l y ! \ #1    |!! "c'l 22 2 l(($w- 88 8  s A99Br)r_y-C6 ?zJThere are imaginary parts in eigenvalues \(1e\-05 of the maximum real part)r_g-C6 gưz?There are negative eigenvalues \(1e\-06 of the maximum positiveg|۽z?There are negative eigenvalues \(1e\-10 of the maximum positive)r_g-=z=the largest eigenvalue is more than 1e\+12 times the smallest)nominalnominal_np_arrayinsignificant_imagzinsignificant negzinsignificant neg float32zinsignificant neg float64zinsignificant posz(lambdas, expected_lambdas, w_type, w_msgenable_warningsc<|sd}|Etj5tjdtt ||}dddn-t j ||5t ||}dddt|y#1swYxYw#1swY"xYw)NrE)rjr)rFrGrHr r0rQrr!)lambdasexpected_lambdasw_typew_msgrj lambdas_fixeds rU test_check_psd_eigenvalues_validrqs  ~  $ $ &   ! !'+B C2M   \\& . 2M  $m4     s(B#BBB)r_y@z/There are significant imaginary parts in eigenv)rz,All eigenvalues are negative \(maximum is -1)r_rz*There are significant negative eigenvaluesga2U0*3?ggh㈵>g|)significant_imagz all negativezsignificant negzsignificant neg float32zsignificant neg float64zlambdas, err_type, err_msgcrtj||5t|dddy#1swYyxYw)Nr)rQrRr0)rlerr_typers rU"test_check_psd_eigenvalues_invalidrv/s/ xw /(w'(((s -6ctjdddd}|jdrJt|tjd}|jdsJtdtjd}t |tjdtdtjd}t |dtjdzt j td 5ttjd tjd dddd }t j t| 5ttjdtjd dddtjd}tjdtj}t||}|jtjk(sJtjdt}td||j}|jtjk(sJtjd}tjt|}d|d<d}t j t| 5t||ddddy#1swYxYw#1swY;xYw#1swYyxYw)NrYr^r)r_rr)r_r^r_rz)Sample weights must be 1D array or scalarr)r^rr5z/sample_weight.shape == \(4,\), expected \(2,\)!rrZirz1Negative values in data passed to `sample_weight`T)r) rKrcrr2r!rQrRrSrfr[rrir;)rrryrs rUtest_check_sample_weightrx<sGGBK!$M"">22 2("''&/JM   ~ .. .)AMM2771:.)@MM1rwwqz>2 z)T UARWWV_@A =C z -<RWWQZ2776?;< AGGARZZ0M(:M   "** ,, , c"A(q@M   "** ,, , AGGLO,MM"AG z 1I]A4HII1AA <<&IIs$:4J34KK 3J=K  Kructjdjdd}||||}}t||sJy)Nr4rXrKrerr-rubaserrs rU!test_allclose_dense_sparse_equalsr}hs= 99Q<  1 %D 4='$-qA !!Q '' 'rctjdjdd}||||dz}}t||rJy)Nr4rXrrzr{s rU%test_allclose_dense_sparse_not_equalsrosE 99Q<  1 %D 4='$(+qA%a++ ++rctjdjdd}||dz}d}tjt |5t ||dddy#1swYyxYw)Nr4rXrzFCan only compare two sparse matrices, not a sparse matrix and an arrayr)rKrerrQrRrSr-)rurrrs rU test_allclose_dense_sparse_raiservs[ ! Q"AAA RC z -%q!$%%%s  A$$A-c6tdddd}tjtd5|ddddddtjtd5|dddd dddtddddd d }tjtd 5|dddddtdddd }tjtd 5|dddddy#1swYxYw#1swYxYw#1swY_xYw#1swYyxYw)Nrr$dcyrrSrrr$rs rUf1z=test_deprecate_positional_args_warns_for_function..f1 rPass c=3 as keyword argsrr^rXPass c=3, d=4 as keyword argsr)rr$rcyrrSrs rUf2z=test_deprecate_positional_args_warns_for_function..f2rrzPass b=2 as keyword argscyrrSrs rUf3z=test_deprecate_positional_args_warns_for_function..f3rr)rr4rQr FutureWarning)rrrs rU1test_deprecate_positional_args_warns_for_functionrs1    m+F G 1a  m+K L 1aA  Q!q    m+F G 1a 1    m+F G 1a%s/ C+ C7 D D+C47DD Dctdd}tjtd5|dddddy#1swYyxYw)Nz1.1)versioncyrrSrrs rUrzEtest_deprecate_positional_args_warns_for_function_version..f1rrz,From version 1.1 passing these as positionalrrr^r)rs rU9test_deprecate_positional_args_warns_for_function_versionrsM. /  L  1as AA cGdd}tjtd5|ddddddtjtd5|dddd dddGd d }tjtd5|ddddddtjtd5|dddd dddy#1swYxYw#1swY}xYw#1swYQxYw#1swYyxYw) Nc$eZdZeddddZy):test_deprecate_positional_args_warns_for_class..A1rrcyrrSrrrr$rs rUr?zCtest_deprecate_positional_args_warns_for_class..A1.__init__rrNrrrr4r?rSrrUA1rs #&'1  $ rrrrrr^rXrrc&eZdZedddddZy):test_deprecate_positional_args_warns_for_class..A2rrcyrrSrs rUr?zCtest_deprecate_positional_args_warns_for_class..A2.__init__rrN)rrrrSrrUA2rs # !q  $ rr)rQrr)rrs rU.test_deprecate_positional_args_warns_for_classrs m+F G 1a  m+K L 1aA m+F G 1a  m+K L 1aAs/ C C C(; C4CC%(C14C=rfrXctjjdd}gdtjgdt j gdj t j gddddd}t|||}||n tt|jd}d D]}||||urJ|d t|d |k(sJt|d t|d |t|d t|d |y) Nrr^)rr^rXrrxxx)rr sparse-col sparse-row scalar-int scalar-strNone)rZrfr)rrrrrrr)rKrLrandnrrsrtrr/rrangerrr#r")rfry_paramsrindices_keys rUtest_check_method_paramsrs 1A,'mmL133mmL1G"!GW EF!-w4aggaj8I3JHA+c{gcl***+ &>^GFOXF FF Fvgww7G(RS |nW\-BHMr sp_format)TrrXrrYctjd}tdd}|jjj |}t ||}|durd}tj|sJ|j|k(sJt||y)NrrYrXrRTr) rQrrr&sparse from_spmatrixrrsrrr")rrsp_matsdfrs rU"test_check_sparse_pandas_sp_formatrs   X &B "2q )F ,,   + +F 3C I 6FD ;;v   ==I %% % 0rzntype1, ntype2) ) longdoubler6)r6rf)rfdouble)rlrd)rdlong)bytern)ushortro)rouint64)rmrkctjd}|j|jj gd|d|jj gd|dd}t |ddg y ) zXCheck that pandas dataframes having sparse extension arrays with mixed dtypes works.rrrrrr[ fill_valuerrrcol1col2rrXrRN)rQrr&arrays SparseArrayr)ntype1ntype2rrs rU%test_check_pandas_sparse_mixed_dtypesrsi"   X &B II)))6a)PII)))6a)P  B 5%.1rz ntype1, ntype2, expected_subtyperrrrfrirkrshortrlintcrdintprrrhlonglongint_ubytermrnruintcrouintruintp ulonglongc0tjd}|j|jj gd|d|jj gd|dd}t |ddg }t j|j|sJy) NrrrrrrrrXrR) rQrr&rrrrK issubdtyper[)rrexpected_subtyperrr<s rUtest_check_pandas_sparse_validrs.   X &B II)))6a)PII)))6a)P  B b 7C ==$4 55 5rconstructor_name)rrcr dataframe sparse_csr sparse_csccLgdgdg}t||}t|dk(sJy)z$Check _num_features for array-likes.rr1rXN)r r:)rrys rUtest_num_featuresr's. IA1./A  q  rrr#)FTF)rg333333 @g@rrr$)rr rjrdict)rrcrseriesclt||}|dk(rd}n |dk(rd}n|}d|}t|dr|tjdz }n1t |dt r|d z }nt |dt r|d z }tjt| 5t|dddy#1swYyxYw) Nrz numpy.ndarrayrzpandas.*Series5Unable to find the number of features from X of type rz with shape (3,)rz" where the samples are of type strz# where the samples are of type dictr) r rrsrtrr rrQrRrr:)ryrexpected_type_namemessages rU&test_num_features_errors_1d_containersr2s 1./A7", X %-- ?@R?ST q'299/00 AaD# 77 AaD$ 88 y 0as  B**B3)rrFr)rr rjrcdt|j}tjt|5t |dddy#1swYyxYw)Nrr)rrrQrRrr:)ryrs rU test_num_features_errors_scalarsrSsD A$q'BVBVAW XC y ,as A  Anamesr)zlist-intrdefault MultiIndexc tjd}|jddgddgddgg|}tj5tj dt t|}d d d |Jy #1swYxYw) zGet feature names with pandas dataframes without warning. Column names with consistent dtypes will not warn, such as int or MultiIndex. rrr^rr_rrrEN)rQrr&rFrGrHrr6)rrrys rU2test_get_feature_names_pandas_with_ints_no_warningrZs   X &B q!fq!fq!f-u =A  "&g}5"1%& ==&&s &A99Bctjd}tdDcgc]}d| }}|jgdgdg|}t |}t ||ycc}w)z)Get feature names with pandas dataframes.rrXcol_rr1rN)rQrrr&r6r#)rrAr%ry feature_namess rUtest_get_feature_names_pandasrms_   X &B#(8,aaSz,G, i+W =A&q)M}g. -s A"zconstructor_name, minversion))pyarrowz12.0.0)rz1.5.0)polarsz0.18.2chgdgdg}gd}t||||}t|}t||y)z:Uses the dataframe exchange protocol to get feature names.rrr^rXrXr)col_0col_1col_2) columns_namer"N)r r6r#)rr"rr%rrs rU)test_get_feature_names_dataframe_protocolrws= y !D)G  W B'r*M}g.r)rrrcftgdgdg|}|dvrt|rJyt|sJy)Nrr)rr)r r8)rrs rU!test_is_pandas_df_other_librariesrs< Y 24D EB00 $$$$R   rctjd}|jgdg}t|sJtt j gdrJtdrJy)z8Check behavior of is_pandas_df when pandas is installed.rrrN)rQrr&r8rKr)rrs rUtest_is_pandas_dfrsX   X &B yk "B   RZZ 233 3Q rcbttjgdrJtdrJy)z1Check _is_pandas_df when pandas is not installed.rrN)r8rKr)hide_available_pandass rU&test_is_pandas_df_pandas_not_installedrs,RZZ 233 3Q rrrrrcjtgdgdg||}|dvrt|rJyt|sJy)Nrrr!)rr)r r9)rr"rs rU!test_is_polars_df_other_librariesrsF  I B 33 $$$$R   rc@Gdd}|}t|rJy)zACheck _is_polars_df for object that looks like a polars dataframeceZdZdZy)Ntest_is_polars_df_for_duck_typed_polars_dataframe..NotAPolarsDataFramec$gd|_d|_y)Nr my_schemar%schemars rUr?zWtest_is_polars_df_for_duck_typed_polars_dataframe..NotAPolarsDataFrame.__init__s$DL%DKrNrHrSrrUNotAPolarsDataFramers &rr Nr9)r not_a_polars_dfs rU1test_is_polars_df_for_duck_typed_polars_dataframer s'&& *+O_-- --rcXtjgdgdg}t|}|Jy)z/Get feature names return None for numpy arrays.rr1N)rKrr6)ryrs rUtest_get_feature_names_numpyrs) )Y'(A q !E ==rz names, dtypesz['int', 'str']pizzaz['list', 'str']zint-strzlist-strctjd}|jddgddgddgg|}tjd|d }tj t | 5t|}d d d y #1swYy xYw) zAGet feature names errors when the feature names have mixed dtypesrrr^rr_rrz]Feature names are only supported if all input features have string names, but your input has a. as feature name / column name types. If you want feature names to be stored and validated, you must convert them all to strings, by using X.columns = X.columns.astype(str) for example. Otherwise you can remove feature / column names from your input data, or convert them all to a non-string data type.rN)rQrr&rsrtrRrr6)rrrryrs rU%test_get_feature_names_invalid_dtypesrs   X &B q!fq!fq!f-u =A )) $X&? ? C y ,&"1%&&&s & A;;Bc"eZdZddZdZddZy)PassthroughTransformerNc"t||d|S)NT)reset)rFrs rUrzPassthroughTransformer.fitsdAT* rc|SrrS)rrys rU transformz PassthroughTransformer.transformsrct||Sr)r.)rinput_featuress rUget_feature_names_outz,PassthroughTransformer.get_feature_names_outs&t^<zextension_dtype, regular_dtype))rrj)r+rh)rri)rrpinclude_objectcjtjd}|j|jgd||jgddd}|r|jgdd|d <|j |d j | }t |d }t |d }t||y ) zKCheck pandas extension arrays give the same result as non-extension arrays.r)rrrrrZ)r4rr3rrh)rr$rrprr)rN)rQrr&rassignrgrr#)extension_dtype regular_dtyperGr X_regular X_extensionX_regular_checkedX_extension_checkeds rU$test_check_array_multiple_extensionsrPls   X &B <}=(*=>rc~tjd}|jgdgdd}t|dk(sJy)zDUse the DataFrame interchange protocol to get n_samples from polars.rrr1rrXN)rQrr&r;)plrs rU#test_num_samples_dataframe_protocolrSs8   X &B II6 7B  q  rr output_format)rrXrc|ddgddggtj}t|dr/|jj tj |_nt|dr;t|dr/|j j tj |_ntt|drht|dr\|jj tj |_|jj tj |_t|| }|d k(rS|j jtj k(sJ|jjtj k(sJy |jjtj k(sJ|jjtj k(sJy ) zGCheck the consistency of the indices dtype with sparse matrices/arrays.rrrZoffsetsrdrerfrgrRrN) rKrirrVrgrdrdrfrgrr[re)rrTryrs rU1test_check_array_dia_to_int32_indexed_csr_csc_coorWs? 1a&1a&)>S  88q==rcdgdfdgdfdtjddz fdgdfdgd fdd gd gd ggfd gdgdgfdgdgfdd d gd d gd d ggfddd gdd gd d ggfdgdgfdtjdjdfg }|D]_\}}|dvr)tt |tj |3t jt5t |ddday#1swYlxYw)Nbinary)spameggr_)rrrr continuousrYg4@ multiclassr)rrr^r^rrr^rXzmultilabel-indicatorr)rrrzmulticlass-multioutputr_rzcontinuous-multioutput)rrX)r^rbra) rKrerr#rDrrQrRrS)EXAMPLESy_typers rUtest_column_or_1drfs& *+ < ryy}t+, y! ' aS1#' )Y!78 !I;/ !QFQFQF#;< !QFQFQF#;< !I;/ !299R=#8#8#AB H  ; ; |A <z* Q     s  C00C9 c<Gdd}t|rJy)z@Check that _is_polars_df return False for non-dataframe objects.ceZdZdZy)+test__is_polars_df..LooksLikePolarsc(ddg|_ddg|_y)Nrrrrs rUr?z4test__is_polars_df..LooksLikePolars.__init__s:DL*DKrNrHrSrrULooksLikePolarsris %rrkNr )rks rUtest__is_polars_dfrls"%% _.// //rc^tjjd}t|dd}tj||sJ|j j sJd|j _t|dd}tj||rJ|j j sJy)zyCheck the behavior of check_array when a writeable array is requested without copy if possible, on numpy arrays. rsizeFTr]force_writeableN)rKrLuniformrrr writeable)ryr[s rUtest_check_array_writeable_nprts x(A aeT :C  sA && & 99   AGG aeT :C""3** * 99   rcptjjd}t|d}t |dd}tj ||sJ|j jsJt|d}t |dd}tj ||rJ|j jsJy ) aCheck the behavior of check_array when a writeable array is requested without copy if possible, on a memory-map. A common situation is when a meta-estimators run in parallel using multiprocessing with joblib, which creates read-only memory-maps of large arrays. rrnzw+rFTrprN)rKrLrrr$rrrrs)rymmapr[s rUtest_check_array_writeable_mmaprws x(A $Q$ 7D d =C  sD )) ) 99    $Q# 6D d =C""3-- - 99   rctjd}tjj d}|j |d}t |dd}tj||sJ|jjsJd|j_ |j |d}t |dd}tj||rJ|jjsJy) zxCheck the behavior of check_array when a writeable array is requested without copy if possible, on a dataframe. rrrnFr\TrpN) rQrrKrLrrr&rrrrs)rryrr[s rUtest_check_array_writeable_dfry s   X &B x(A ae $B bud ;C  sB '' ' 99   AGG ae $B bud ;C""3++ + 99   rc2tjgdgdg}td5tjt |dsJt j t5t |ddddddy#1swYxYw#1swYyxYw)NrrTrrR)rsrrrrrQrRr)X_sps rU8test_check_array_on_sparse_inputs_with_array_api_enabledr| sy <<I. /D 4 0{{;t4@AAA ]]9 %      s#r?r@rArBrCrDrErFrVrmark parametrizerLrrrrrrvrrrrrrrrprrfilterwarningsrrrfrir)r/r:r?rCrPrUrWfixturerirlrnrwrrrrrrrrrcrrrrrrrrrrrrrrrSrr1rtrrrr dia_matrixr3r8rJrVrrrTIntegralrjrrf_psd_cases_validvalueskeysrq_psd_cases_invalidrvrxr}rrrrrrrrr?integerunsignedintegerrrrrrrrrrrrrr rrrr$r'r*r1r8r;rArFrPrSrWr\rfrlrtrwryr|rrrSrrUrsn* ' *8&'2F.F2;   7>0$'%T"))  7 #YRYYr1U%C D11G  ,&ffe_rvv{+bffe_=BJJ #>?/@  /5 T45 d78 $(OP k#>? T/0 d23 d23 FF   ?  Q,-&BJJ #>?  @'(  'BCBJJ #>?%1@D%1P ; BHHq"&&k] # ! BHHq"&&k] # ! BHHq"&&k] # C  Arvv;-v .0UV$,tUm<G=%&G )QRA SA H sc3Z 3*sCj)53*sCj)5 d|$4,t -T:  ( (J **bjj !2::. RZZ BJJ//:%*"GJ5=()V9>/34 5 ,G L<%~'T  0F ' *!(H"BJ Z]D% (.I 2 2A( -/'   ( + E rzz2::& D) D':;8<848&9   6$/404U  &94%@ A       &94%@ A      ^R*=t)DE O     &94%@ A       &94%@ A       &8$%? @     M-\ a8r+s8r+<            "  " ;,(n- .  P     I J    LL  N O        L M    DM  Q R      6 7      6 7      6 7      6 7     ! M        #        #  Cmpb9cpb9&!Q($3!1a&)8288QF+;T2F!QV  %hbhh1v&68OQST!U2::.!Qrzz*K " !VBJJ/!Qrzz*K " !QH ->.  "#  " " $% *T5M:5;  54 9 7 4 $bjj14  $rzz24 +:   " " $%  $ $ &' (  ()IXRXXr}}bmm$LM(N( RXXr}}bmm$LM,N, R]]BMM$BC%D%60TAq6N340&HI1J1$   2  2& <- 9bkk* 9bkk* $ '2::& "**% $  # *bjj) $ '2--. 8R//0 (B../ 2--. +r112( 6)( 6G! ! qC8c1X&  0 +-QRS *28WXY   %(^U1XtsCj3*%=>6   /"I /  /+-OP!Q!  " &y1!45 (2156 %h/23 ! ! . q#$ C:  12 J &&" =] =$$ 6JHDD/:&1aAq"&&*ACU)VW*X*$) ) $)D%=9?:?*!^#n4~E*?@2A  2,xrxx{HBHHQK&@Aq6Aq6BR%STU 00&,.)) 1 0 BHH1v1v&!Q!Q(89 : ! # %  BHH1v1v&!Q!Q(89 :  A   ,! ,r