§
    qŠtj¾  ã                   ó(  — d dl 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mZmZmZ d dlmZ d dlmZ d dl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$ d dl%m&Z& d dl'm(Z( ej)        d„ ¦   «         Z*ej)        d„ ¦   «         Z+ej,         -                    d e¦   «         df e¦   «         df e! e$¦   «          e¦   «         ¦  «        df e! e$¦   «          e¦   «         ¦  «        df e$¦   «         df e¦   «         df e¦   «         df e e$¦   «         d gf e#¦   «         dgf¦  «        dfg¦  «        ej,         -                    dg d¢¦  «        d„ ¦   «         ¦   «         Z. ed¬¦  «        d„ ¦   «         Z/d„ Z0d„ Z1d„ Z2d„ Z3d „ Z4dS )!é    N)Úassert_array_equal)Úconfig_context)ÚBaseEstimatorÚcloneÚis_classifierÚis_clustererÚis_outlier_detectorÚis_regressor)ÚKMeans)Úmake_column_transformer)Úmake_classificationÚmake_regression)ÚNotFittedErrorÚUnsetMetadataPassedError)ÚFrozenEstimator)ÚLinearRegressionÚLogisticRegression)ÚLocalOutlierFactor)Úmake_pipeline)ÚRobustScalerÚStandardScaler)Úset_random_state)Úcheck_is_fittedc                  ó   — t          ¦   «         S ©N)r   © ó    ú^/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/frozen/tests/test_frozen.pyÚregression_datasetr       s   € åÑÔÐr   c                  ó   — t          ¦   «         S r   )r   r   r   r   Úclassification_datasetr!   %   s   € åÑ Ô Ð r   zestimator, datasetr   r!   é   Úmethod)ÚpredictÚpredict_probaÚpredict_log_probaÚdecision_functionÚ	transformc                 óš  — t          | ¦  «        } |                     |¦  «        \  }}t          | ¦  «         |                      ||¦  «         t	          | ¦  «        }|                     dggdg¦  «         t          | |¦  «        r>t           t          | |¦  «        |¦  «         t          ||¦  «        |¦  «        ¦  «         t          | ¦  «        t          |¦  «        k    sJ ‚t          | ¦  «        t          |¦  «        k    sJ ‚t          | ¦  «        t          |¦  «        k    sJ ‚t          | ¦  «        t          |¦  «        k    sJ ‚dS )zžTest that frozen.fit doesn't do anything, and that all other methods are
    exposed by the frozen estimator and return the same values as the estimator.
    r"   N)r   Úgetfixturevaluer   Úfitr   Úhasattrr   Úgetattrr   r
   r   r	   )Ú	estimatorÚdatasetÚrequestr#   ÚXÚyÚfrozens          r   Útest_frozen_methodsr4   *   sJ  € õ< �iÑ Ô €IØ×"Ò" 7Ñ+Ô+�D€A€qÝ�YÑÔÐØ‡M‚M�!�QÑÔÐÝ˜YÑ'Ô'€Fà
‡J‚J��ˆu�q�cÑÔÐåˆy˜&Ñ!Ô!ð VÝÐ5�7 9¨fÑ5Ô5°aÑ8Ô8Ð:Q½'À&È&Ñ:QÔ:QÐRSÑ:TÔ:TÑUÔUÐUå˜Ñ#Ô#¥}°VÑ'<Ô'<Ò<Ð<Ð<Ð<Ý˜	Ñ"Ô"¥l°6Ñ&:Ô&:Ò:Ð:Ð:Ð:Ý˜	Ñ"Ô"¥l°6Ñ&:Ô&:Ò:Ð:Ð:Ð:Ý˜yÑ)Ô)Õ-@ÀÑ-HÔ-HÒHÐHÐHÐHÐHÐHr   T)Úenable_metadata_routingc                 ó  —  G d„ dt           ¦  «        }| \  }}t           |dd¬¦  «                             d¬¦  «                             d¬¦  «        ¦  «        }|                     ||d¬¦  «         t          |¦  «        }|                     |d¬¦  «         |                     |d¬¦  «         |d                              d¬¦  «         t          j        t          t          j        d	¦  «        ¬
¦  «        5  |                     |d¬¦  «         ddd¦  «         n# 1 swxY w Y   |d                              d¬¦  «         t          j        t          ¦  «        5  |                     |d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z8Test that metadata routing works with frozen estimators.c                   ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ú6test_frozen_metadata_routing.<locals>.ConsumesMetadataNc                 ó"   — || _         || _        d S r   ©Úon_fitÚ
on_predict)Úselfr;   r<   s      r   Ú__init__z?test_frozen_metadata_routing.<locals>.ConsumesMetadata.__init__^   s   € Ø ˆDŒKØ(ˆDŒOˆOˆOr   c                 ó*   — | j         r|€J ‚d| _        | S ©NT)r;   Úfitted_)r=   r1   r2   Úmetadatas       r   r+   z:test_frozen_metadata_routing.<locals>.ConsumesMetadata.fitb   s$   € ØŒ{ð ,ØÐ+Ð+Ð+ØˆDŒLØˆKr   c                 óZ   — | j         r|€J ‚t          j        t          |¦  «        ¦  «        S r   )r<   ÚnpÚonesÚlen)r=   r1   rB   s      r   r$   z>test_frozen_metadata_routing.<locals>.ConsumesMetadata.predicth   s,   € ØŒð ,ØÐ+Ð+Ð+Ý”7�3˜q™6œ6‘?”?Ð"r   )NNr   )Ú__name__Ú
__module__Ú__qualname__r>   r+   r$   r   r   r   ÚConsumesMetadatar8   ]   sP   € € € € € ð	)ð 	)ð 	)ð 	)ð	ð 	ð 	ð 	ð	#ð 	#ð 	#ð 	#ð 	#ð 	#r   rJ   Tr:   )rB   ÚtestÚconsumesmetadataFz]Pipeline.predict got unexpected argument(s) {'metadata'}, which are not routed to any object.©ÚmatchN)r   r   Úset_fit_requestÚset_predict_requestr+   r   r$   ÚpytestÚraisesÚ	TypeErrorÚreÚescaper   )r   rJ   r1   r2   Úpipeliner3   s         r   Útest_frozen_metadata_routingrW   Y   s1  € ð#ð #ð #ð #ð #�=ñ #ô #ð #ð  �D€A€qÝØÐ °Ð6Ñ6Ô6ß	Š $ˆÑ	'Ô	'ß	Ò	 dÐ	Ñ	+Ô	+ñô €Hð ‡L‚L��A €LÑ'Ô'Ð'Ý˜XÑ&Ô&€FØ×Ò�Q ÐÑ(Ô(Ð(Ø
‡N‚N�1˜v€NÑ&Ô&Ð&à
ÐÔ×2Ò2¸EÐ2ÑBÔBÐBÝ	ŒÝÝŒið$ñ
ô 
ð
ñ 
ô 
ð +ð +ð 	�Š�q 6ˆÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð ÐÔ×2Ò2¸DÐ2ÑAÔAÐAÝ	ŒÕ/Ñ	0Ô	0ð +ð +Ø�Š�q 6ˆÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s$   Ã9DÄD!Ä$D!ÅFÆFÆ	Fc                 óÆ  —  G d„ dt           ¦  «        }| \  }} |¦   «                              ||¦  «        }t          |¦  «        }t          j        t
          ¦  «        5  |                     ||¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  |                     ||¦  «         ddd¦  «         n# 1 swxY w Y   |j        dk    sJ ‚dS )zATest that calling fit_transform and fit_predict doesn't call fit.c                   ó$   — e Zd Zd„ Zdd„Zdd„ZdS )ú%test_composite_fit.<locals>.Estimatorc                 óX   — 	 | xj         dz  c_         n# t          $ r
 d| _         Y nw xY w| S )Nr"   )Ú_fit_counterÚAttributeError©r=   r1   r2   s      r   r+   z)test_composite_fit.<locals>.Estimator.fitŒ   sL   € ð&ØÐ!Ô! QÑ&Ð!Ô!Ð!øÝ!ð &ð &ð &Ø$%�Ô!Ð!Ð!ð&øøøàˆKs   ‚ “'¦'Nc                 ó   — d S r   r   r^   s      r   Úfit_transformz3test_composite_fit.<locals>.Estimator.fit_transform“   ó   € àˆCr   c                 ó   — d S r   r   r^   s      r   Úfit_predictz1test_composite_fit.<locals>.Estimator.fit_predict—   ra   r   r   )rG   rH   rI   r+   r`   rc   r   r   r   Ú	EstimatorrZ   ‹   sK   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	r   rd   Nr"   )	r   r+   r   rQ   rR   r]   rc   r`   r\   )r!   rd   r1   r2   Úestr3   s         r   Útest_composite_fitrf   ˆ   so  € ðð ð ð ð •Mñ ô ð ð  "�D€A€qØ
ˆ)‰+Œ+�/Š/˜!˜QÑ
Ô
€CÝ˜SÑ!Ô!€Få	Œ•~Ñ	&Ô	&ð !ð !Ø×Ò˜1˜aÑ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !å	Œ•~Ñ	&Ô	&ð #ð #Ø×Ò˜Q Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð Ô !Ò#Ð#Ð#Ð#Ð#Ð#s$   ÁBÂBÂ	BÂ&C	Ã	CÃCc                 ó¦   — | \  }}t          ¦   «                              ||¦  «        }t          |¦  «        }t          |¦  «        }|j        |u sJ ‚dS )z<Test that cloning a frozen estimator keeps the frozen state.N)r   r+   r   r   r.   )r   r1   r2   r.   r3   Úcloneds         r   Útest_clone_frozenri   §   sX   € à�D€A€qÝ Ñ"Ô"×&Ò& q¨!Ñ,Ô,€IÝ˜YÑ'Ô'€FÝ�6‰]Œ]€FØÔ˜yÐ(Ð(Ð(Ð(Ð(Ð(r   c                 óJ  — | \  }}t          ¦   «         }t          |¦  «        }t          j        t          ¦  «        5  t          |¦  «         ddd¦  «         n# 1 swxY w Y   t          ¦   «                              ||¦  «        }t          |¦  «        }t          |¦  «         dS )z5Test that check_is_fitted works on frozen estimators.N)r   r   rQ   rR   r   r   r+   )r   r1   r2   r.   r3   s        r   Útest_check_is_fittedrk   °   sÔ   € à�D€A€qå Ñ"Ô"€IÝ˜YÑ'Ô'€FÝ	Œ•~Ñ	&Ô	&ð  ð  Ý˜ÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  õ !Ñ"Ô"×&Ò& q¨!Ñ,Ô,€IÝ˜YÑ'Ô'€FÝ�FÑÔÐÐÐs   ¼AÁAÁAc                  ó  —  G d„ dt           ¦  «        }  | ¦   «         }t          |¦  «        }|                     ¦   «         }|                     ¦   «         }|j        du sJ ‚|j        du sJ ‚|j        j        du sJ ‚|j        j        du sJ ‚dS )zjTest that frozen estimators have the same tags as the original estimator
    except for the skip_test tag.c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ú#test_frozen_tags.<locals>.Estimatorc                 ó`   •— t          ¦   «                              ¦   «         }d|j        _        |S r@   )ÚsuperÚ__sklearn_tags__Ú
input_tagsÚcategorical)r=   ÚtagsÚ	__class__s     €r   rq   z4test_frozen_tags.<locals>.Estimator.__sklearn_tags__Ã   s'   ø€ Ý‘7”7×+Ò+Ñ-Ô-ˆDØ*.ˆDŒOÔ'ØˆKr   )rG   rH   rI   rq   Ú__classcell__)ru   s   @r   rd   rn   Â   s8   ø€ € € € € ð	ð 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	r   rd   TFN)r   r   rq   Ú
_skip_testrr   rs   )rd   r.   r3   Úfrozen_tagsÚestimator_tagss        r   Útest_frozen_tagsrz   ¾   sÄ   € ðð ð ð ð •Mñ ô ð ð �	‘”€IÝ˜YÑ'Ô'€FØ×)Ò)Ñ+Ô+€KØ×/Ò/Ñ1Ô1€NàÔ! TÐ)Ð)Ð)Ð)ØÔ$¨Ð-Ð-Ð-Ð-àÔ$Ô0°DÐ8Ð8Ð8Ð8ØÔ!Ô-°Ð5Ð5Ð5Ð5Ð5Ð5r   c                  óŠ  — t          ¦   «         } t          | ¦  «        }t          j        t          d¬¦  «        5  |                     d¬¦  «         ddd¦  «         n# 1 swxY w Y   |                     ¦   «         d| ik    sJ ‚t          ¦   «         }|                     |¬¦  «         |                     ¦   «         d|ik    sJ ‚dS )z?Test that FrozenEstimator only exposes the estimator parameter.z&You cannot set parameters of the innerrM   r"   )Úestimator__CNr.   )r.   )r   r   rQ   rR   Ú
ValueErrorÚ
set_paramsÚ
get_paramsr   )re   r3   Ú	other_ests      r   Útest_frozen_paramsr�   Ô   s
  € å
Ñ
Ô
€CÝ˜SÑ!Ô!€Få	Œ•zÐ)QÐ	RÑ	RÔ	Rð *ð *Ø×Ò qÐÑ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð ×ÒÑÔ ;°Ð"4Ò4Ð4Ð4Ð4å"Ñ$Ô$€IØ
×Ò 	ÐÑ*Ô*Ð*Ø×ÒÑÔ ;°	Ð":Ò:Ð:Ð:Ð:Ð:Ð:s   ¹AÁA Á#A )5rT   ÚnumpyrD   rQ   Únumpy.testingr   Úsklearnr   Úsklearn.baser   r   r   r   r	   r
   Úsklearn.clusterr   Úsklearn.composer   Úsklearn.datasetsr   r   Úsklearn.exceptionsr   r   Úsklearn.frozenr   Úsklearn.linear_modelr   r   Úsklearn.neighborsr   Úsklearn.pipeliner   Úsklearn.preprocessingr   r   Úsklearn.utils._testingr   Úsklearn.utils.validationr   Úfixturer   r!   ÚmarkÚparametrizer4   rW   rf   ri   rk   rz   r�   r   r   r   ú<module>r”      s~  ðð 
€	€	€	à Ð Ð Ð Ø €€€Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,à "Ð "Ð "Ð "Ð "Ð "ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð #Ð "Ð "Ð "Ð "Ð "Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ *Ð *Ð *Ð *Ð *Ð *Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø *Ð *Ð *Ð *Ð *Ð *Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4ð „ðð ñ „ðð „ð!ð !ñ „ð!ð „×ÒØà	Ð	Ñ	Ô	Ð1Ð2Ø	Ð	Ñ	Ô	Ð7Ð8Ø	ˆ�~�~Ñ'Ô'Ð)9Ð)9Ñ);Ô);Ñ	<Ô	<Ð>RÐSàˆM˜.˜.Ñ*Ô*Ð,>Ð,>Ñ,@Ô,@ÑAÔAØ$ð	
ð 
ˆÑ	Ô	Ð/Ð0Ø	ˆ‰ŒÐ'Ð(Ø	Ð	Ñ	Ô	Ð3Ð4à#Ð#Ø�Ñ!Ô! A 3Ð'Ø�‘” ! Ð%ñô ð !ð	
ðñô ð, „×ÒØØWÐWÐWñô ðIð Iñ	ô ñ-ô ð4Ið* €¨Ð-Ñ-Ô-ð++ð ++ñ .Ô-ð++ð\$ð $ð $ð>)ð )ð )ðð ð ð6ð 6ð 6ð,;ð ;ð ;ð ;ð ;r   