`L iD>ddlZddlZddlmZddlmZddlmZm Z ddl m Z ddl m Z ejjddd gejjd ed d d Zejjdej$dgdZejjdej$dgdZejjdej$dgdZejjdej$dgdZejjdej$dgdZejjdej$dgdZejjdej$dgdZejjdej$dgdZdZejjdddgejjddej$gejj9ddZejjddej$gejjddd gdZejjddej$gejjddd gdZejjddej$gdZ ejjdddgejjddej$gdZ!ejjd d!ej$d"fgd#Z"y)$N)config_context) KNNImputer)nan_euclidean_distancespairwise_distances)KNeighborsRegressor)assert_allcloseweightsuniformdistance n_neighborscd}d}tjj||}tj|d<t ||}|j |}|j ||fk(sJy)N )rr)r r )nprandomrandnanr fit_transformshape)r r n_rowsn_colsXimputer X_imputeds c/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sklearn/impute/tests/test_knn.pytest_knn_imputer_shaper sb F F vv&AffAdG['BG%%a(I ??vv. .. .nac tjtjddd|ggdgd|ddddg|d dd d ggd g}tjt d 5t |j|dddtjtjddd|ggdgd|ddddg|d dd d ggd g}tjdddd|ggdgd|ddddg|d dd d ggd g}t |j|}tjt d 5|j|dddt ddd}tjtjddddgtjddtjdgtjddddgtjddddgg}d}tjt | 5|j|dddtjddgtjdgg}y#1swYxYw#1swYxYw#1swYLxYw)Nr r)rr rr)r#rr#r#rr r$)rrrr%r'zInput X contains (infinity|NaN))matchmissing_valuesr r*r r r#zInput X contains NaN) rarrayinfpytestraises ValueErrorrfit transformr)r rX_fitrmsgs r+test_knn_imputer_default_with_invalid_inputr5s0  VVQ1b !   Aq"  Aq!     A z)J K-"%))!,-  VVQ1b !   Aq"  Aq!     A HH 1a    Aq"  Aq!     E+//6G z)J K!q)LG  VVQ1a VVQ2661 % VVQ1a VVQ1b !   A !C z - A  F VVQK  AW--4s$H"H+H7H(+H47Ic tjdd|dddgdd|dddgdd|dd|gdd||ddgg}t|dj|}|j |}tj |j rJ|jdk(sJtjd d jdd}|j |}t|ddgd f|y) Nr ?rr#rr*r )r8r%r rr r#r8r%) rr,rr1r2isnananyrarangereshaper)r rknn X_transformX_tests r(test_knn_imputer_removes_all_na_featuresrC\s  2q!S ! 2q!Q  2q!R 2r1a   A BA 6 : :1 =C--"Kxx $((** *    && & YYq"  % %a +F--'KF1o-. rc tjddg|dgddgddgddgdd gd d gg}tjddgddgddgddgddgdd gd d gg}td | }t|j ||d}t|| }t|j ||d}t|| }t|j ||y)Nrrr8r#r%rr'rUr$rVrr r r*cyNdists r no_weightz2test_knn_imputer_weight_uniform..no_weight src,tj|Srf)r ones_likerhs runiform_weightz7test_knn_imputer_weight_uniform..uniform_weights||D!!rrG)r rX_imputed_uniformrrjrms rtest_knn_imputer_weight_uniformros 1a&2q'Aq6Aq6Aq6Aq6B8LMA Q!Q!Q!Q!Q!Q"bB2>GG))!,.?@2>GG))!,.?@"CGG))!,.?@rc  tjddg|dgddgddgddgdd gd d gg}td d }gd}|j||ddf||df|j |ddddfd}gd}t |ddddf||}d|dd|fj z }tj||df|}tjddg|dgddgddgddgdd gd d gg} tjddg|dgddgddgddgdd gd d gg} td |} t| j|| t| j|| tj|ddggdgdgdg}tjd} tjd} tjddgd| z d| z g}tj|ddggdgdgdg}tdd |} t| j||tjgdd|d|gddd|ggdgdgdgdg}t ||}|dgdf}|dgd f}d|z }d|z }|dgd f}d|z }tjj|gddfj}tjj|gd dfj}tjj||}tjj||}tjj||}tjgdd|d|gddd|ggdgdgdgdg}td |} t| j||tjddd|gddd|gdd|dggd!gd"gd#gd$|dddgg}t|d%d&|'}d(|ddd)fz }d(|ddd)fz }d(|d*z }d(|dddfz }tj|dd)d)f|}tj|dd)d)f|} tj|d+|}!tj|dddf|}"tjddd|gddd| gdd|!dggd!gd"gd#gd$|"dddgg}t|d ,}#t|#j||y)-Nrrr8r#r%rr'rUr$rVr euclideanr )metricr )rrr#r8r%rr )rrr#r8r%r)r rd)rr r)r#rr#)r8r%r%g@g3@)r r r*rN)rr rr)rrrr)r rr r )rrrr)rr#r8r%rr#r#r#r#r8r8r8r8r%r%r%r%rrrr nan_euclideanFrrsquaredr*r7r!)rr;)r;r)r*r )rr,rr1predictrravelaveragerrrsqrtmamasked_invalidcopyr)$r rnn X_rows_idxknn_imputed_valueX_neighbors_idxrir manual_imputed_valueX_imputed_distance1X_imputed_distance2rdist_0_1dist_0_2 imputed_valuerr1c1_nbor_distsr1c3_nbor_dists r1c1_nbor_wt r1c3_nbor_wtr2c3_nbor_dists r2c3_nbor_wtcol1_donor_valuescol3_donor_valuesr1c1_impr1c3_impr2c3_impr0c3_wr1c3_wr2c2_wr7c0_wr0c3r1c3r2c2r7c0imputer_comp_wts$ r test_knn_imputer_weight_distancersp 1a&2q'Aq6Aq6Aq6Aq6B8LMA K DB#JFF1Z^ a A ./ 1QqS!"W:.q1&O "1QqS!V9a CD$q/)*0022G::a(:&;WM(( Q&*QFQFQFQFRQSHU (( Q#Q'!Q!Q!Q!Q"bRB?GG))!,.ABG))!,.AB  AJ      Aww>?Hww>?HJJ1vH a(l/KLM Aq !     IQ 2NGG))!,i8   ArN 1bM      A #1R 8D1o-.O1o-.O&L&L1o-.O&L,,Q/A-BCHHJ,,Q/A-BCHHJuu}}. }EHuu}}. }EHuu}}. }EH  !X & 1h       IB?GG))!,i8  1bM 1bM 2qM     AqM  A  /5 D 41R4= F 41R4= F 4*+ +F 41Q3< F ::a"bk6 2D ::a"bk6 2D ::a*+V .custom_callables] EEKK K , EEKK K ,yyA' rr8r#)rrUrrU)r8r$rrUrUrVg$@g"@g@r)r rr)rrr,rrr)rrX_0_3X_3_0rrs r test_knn_imputer_callable_metricrs-/VVU 1aBFF#\<"&&!RQUAVWXA E E Q5 <q"d7KLIQ?GG))!,i8rworking_memoryzignore:adhere to working_memoryc tjd|d|gddd|gdd|dggdgdgdgd|dddgg}tj|dd df}tj|dd d f}tj|dd d f}tj|gd df}tj|dd df}tjd|d|gddd|gdd|dggdgdgdgd|dddgg}t| 5t | } t | j ||dddy#1swYyxYw)Nrr rrtrurvrwr'rr!r;rr))rr,meanrrrr) r rrr0c1rrrrr imputer_comps r$test_knn_imputer_with_simple_examplers_  ArN 1bM 2qM     AqM  A 771QqS!V9 D 771QrT2X; D 771QrT2X; D 771_a'( )D 771QrT1W: D a  1dO 4O     1aO  I ~ 6B!4  2215yABBBs (D44D=cdtj|dg|dgd|gg}tjddgddgddgg}t|d|}t|j ||tjd|gg}tjddgg}t|j ||y)NrVr r#rr+r8rr,rrrr2)r r rXrZr@X2 X2_imputeds r+test_knn_imputer_not_enough_valid_distancesrs B8b!Wq"g. /BAr7QFQF34J BAw GCC%%b):6 Ar7) BAq6(#JCMM"%z2rcBtjddg|dgg}tjd|gg}tjddgg}td||}|j|t |j ||tj|ddgd|dgdd|gg}tj|d|gd||g||dgg}tjgdgdgdg}td||} | j|t | j ||y) Nr rr)r r*r r#)r#rr )rr#r)rr r)rr,rr1rr2) r r X1_trainX1_testX1_test_expectedknn1X2_trainX2_testX2_test_expectedknn2s rtest_knn_imputer_nan_distancersxx!Q"a)*HhhBy!Gxx!Q) !B HDHHXDNN7+-=>xx"aaQZ!Q<=HhhQ aR[2r1+>?GxxIy AB !B HDHHXDNN7+-=>rcZtj|dg|dgg}t|d}tjdgdgg}t|j ||tjddgd|gg}tjdgdgg}t|j ||y)Nr rr9r#rFr)r rXr@ X1_expectedr X2_expecteds r'test_knn_imputer_drops_all_nan_featuresrs B7RG$ %B BA 6C((QC!:&KC%%b);7 Aq6Ar7# $B((QC#<(KCMM"%{3rc tjd|gd|g|dgddgddg|dgg}t|dd| }tj|ddd fd |d ddfz }tj|ddd fd |d ddfz }tj|ddd fd |dddfz }tj|ddd fd |dddfz }tjd|gd|g|dgddgddg|dgg}t | 5t |dd} t | j||t |dd} t | j||dddy#1swYyxYw)Nr#rr8r%rr$rxFryr rrsrr r+)rr,rr}rrrr) r rrriX_01X_11X_20X_50 X_expectedknn_3knn_4s r7test_knn_imputer_distance_weighted_not_enough_neighborsrs 1b'Ar7RGaVaVb!WEFA  /5 D ::a!QiT!QqS&\)9 :D ::a!QiT!QqS&\)9 :D ::a!QiT!QqS&\)9 :D ::a!QiT!QqS&\)9 :DAt9q$i$QFQFTSTIVWJ ~ 6<"!ZP++A. ;"!ZP++A. ; <<rs "%P12Y $;<a 4 /5= /|,>->B|,=-=(|,$-$N|,F>-F>R|,9-9|,?-?"|,A-A4|,QA-QAh9()D!95BFF|,=>#B?-6 #BLBFF|,Y $;< 3=- 3BFF|,Y $;<?=-?&BFF|,4-4)D!95BFF|,<-6<,;*GHDIDr