§
    §éUgÓˆ  ã                   óB  — d dl Z d dlZd dlZd dl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mZmZmZmZ d dlmZmZmZmZ d dlmZ eeeegZeegz   ZdZej                             d	e› d
�¦  «        Z ej         ddgddgddgddgddgddgg¦  «        Z! ej         g d¢¦  «        Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d„ Z*d„ Z+d„ Z,d„ Z-d„ Z.d„ Z/d„ Z0ej         1                    de¦  «        d„ ¦   «         Z2ej         1                    de¦  «        d „ ¦   «         Z3ej         1                    d!e¦  «        d"„ ¦   «         Z4d#„ Z5ej         1                    de¦  «        d$„ ¦   «         Z6ej         1                    de¦  «        d%„ ¦   «         Z7ej         1                    de¦  «        d&„ ¦   «         Z8ej         1                    de¦  «        d'„ ¦   «         Z9ej         1                    de¦  «        ej         1                    d(d)d*g¦  «        ej         1                    d+d)d*g¦  «        d,„ ¦   «         ¦   «         ¦   «         Z:ej         1                    d-d.¦  «        ej         1                    d/e¦  «        d0„ ¦   «         ¦   «         Z;d1„ Z<d2„ Z=d3„ Z>d4„ Z?d5„ Z@ej         1                    d6d7 ej         g d8¢g d9¢g¦  «         ej         g d9¢g d9¢g¦  «         ej         d dgg¦  «         ej         d7d7g¦  «        fd7d:g ej         g d8¢g d9¢g¦  «         ej         g d;¢g d;¢g¦  «         ej         d d7gg¦  «         ej         d7d:g¦  «        fd ej         dd gddgg¦  «         ej         ddgddgg¦  «         ej         d dgg¦  «         ej         ddg¦  «        gg¦  «        d<„ ¦   «         ZAej         1                    d=d7dgdd:ggd>fg¦  «        d?„ ¦   «         ZBej         1                    d/e¦  «        d@„ ¦   «         ZCdA„ ZDdB„ ZEdC„ ZFej         1                    dDe¦  «        dE„ ¦   «         ZGdS )Fé    N)Ú	logsumexp)Úload_digitsÚ	load_iris)Úcross_val_scoreÚtrain_test_split)ÚBernoulliNBÚCategoricalNBÚComplementNBÚ
GaussianNBÚMultinomialNB)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equal)ÚCSR_CONTAINERSz/The default value for `force_alpha` will changezignore:z:FutureWarningéþÿÿÿéÿÿÿÿé   é   )r   r   r   r   r   r   c                 óØ   — t           j                             | ¦  «        }|                     d¬¦  «        }|                     d¬¦  «        dk                         t
          ¦  «        }||fS )N)é
   é   ©Úsizer   r   )ÚnpÚrandomÚRandomStateÚnormalÚastypeÚint)Úglobal_random_seedÚrngÚX1Úy1s       ú]/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/tests/test_naive_bayes.pyÚget_random_normal_x_binary_yr&   $   sZ   € å
Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ	�Š˜ˆÑ	!Ô	!€BØ
�*Š*˜"ˆ*Ñ
Ô
 Ò
!×	)Ò	)­#Ñ	.Ô	.€BØˆrˆ6€Mó    c                 ó¢   — t           j                             | ¦  «        }|                     dd¬¦  «        }t          j        g d¢¦  «        }||fS )Né   )é   éd   r   )r   r   r   r   r   r   )r   r   r   ÚrandintÚarray)r!   r"   ÚX2Úy2s       r%   Ú$get_random_integer_x_three_classes_yr0   ,   sN   € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ	�Š�Q˜XˆÑ	&Ô	&€BÝ	ŒÐ$Ð$Ð$Ñ	%Ô	%€BØˆrˆ6€Mr'   c                  ó2  — t          ¦   «         } |                      t          t          ¦  «                             t          ¦  «        }t          |t          ¦  «         |                      t          ¦  «        }|                      t          ¦  «        }t          t          j
        |¦  «        |d¦  «         t          j        t          d¬¦  «        5  t          ¦   «                              t          t          ddg¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Né   z;The target label.* in y do not exist in the initial classes©Úmatchr   r   ©Úclasses)r   ÚfitÚXÚyÚpredictr   Úpredict_probaÚpredict_log_probar   r   ÚlogÚpytestÚraisesÚ
ValueErrorÚpartial_fit)ÚclfÚy_predÚy_pred_probaÚy_pred_log_probas       r%   Útest_gnbrF   5   s(  € õ
 ‰,Œ,€CØ�WŠW•Q�‰]Œ]×"Ò"¥1Ñ%Ô%€FÝ�v�qÑ!Ô!Ð!à×$Ò$¥QÑ'Ô'€LØ×,Ò,­QÑ/Ô/ÐÝ�bœf \Ñ2Ô2Ð4DÀaÑHÔHÐHõ
 
ŒÝÐWð
ñ 
ô 
ð 7ð 7õ 	‰Œ× Ò ¥¥A°°1¨vÐ Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s   Ã1DÄDÄDc                 ón  — t          ¦   «                              t          t          ¦  «        }t	          t          j        ddg¦  «        dz  |j        d¦  «         t          | ¦  «        \  }}t          ¦   «                              ||¦  «        }t	          |j         	                    ¦   «         d¦  «         d S )Nr   ç      @r2   r   )
r   r7   r8   r9   r   r   r-   Úclass_prior_r&   Úsum)r!   rB   r#   r$   s       r%   Útest_gnb_priorrK   K   s“   € å
‰,Œ,×
Ò
�1�aÑ
 Ô
 €CÝ�bœh¨¨1 vÑ.Ô.°Ñ4°cÔ6FÈÑJÔJÐJÝ)Ð*<Ñ=Ô=�F€BˆÝ
‰,Œ,×
Ò
˜2˜rÑ
"Ô
"€Cå˜cÔ.×2Ò2Ñ4Ô4°aÑ8Ô8Ð8Ð8Ð8r'   c                 ó¾  — t          j        d¦  «        }t          ¦   «                              t          t
          ¦  «        }t          ¦   «                              t          t
          |¦  «        }t          |j        |j        ¦  «         t          |j        |j        ¦  «         t           j	         
                    | ¦  «        }|                     t
          j        d         ¦  «        }t          ¦   «                              t          t
          |¬¦  «        }t          ¦   «                              t          t
          ddg|dz  ¬¦  «        }|                     t          t
          |dz  ¬¦  «         t          |j        |j        ¦  «         t          |j        |j        ¦  «         |                     dt          j        d         d¦  «        }t          j        |t          j        d         ¬¦  «        }t          ¦   «                              t          |         t
          |         ¦  «        }	t          ¦   «                              t          t
          |¦  «        }t          |	j        |j        ¦  «         t          |	j        |j        ¦  «         t
          dk                         t           j        ¦  «        }t          ¦   «                              t          t
          |¬¦  «        }d	S )
z5Test whether sample weights are properly used in GNB.r*   r   ©Úsample_weightr   r   ©r6   rN   é   )Ú	minlengthN)r   Úonesr   r7   r8   r9   r   Útheta_Úvar_r   r   ÚrandÚshaperA   r,   Úbincountr   Úfloat64)
r!   ÚswrB   Úclf_swr"   Úclf1Úclf2ÚindrN   Úclf_dupls
             r%   Útest_gnb_sample_weightr_   U   sÿ  € õ 
Œ�‰Œ€BÝ
‰,Œ,×
Ò
�1�aÑ
 Ô
 €CÝ‰\Œ\×Ò�a¥ BÑ'Ô'€Få˜cœj¨&¬-Ñ8Ô8Ð8Ý˜cœh¨¬Ñ4Ô4Ð4õ Œ)×
Ò
Ð 2Ñ
3Ô
3€Cà	�Š•!”'˜!”*Ñ	Ô	€BÝ‰<Œ<×Ò�A�q°ÐÑ3Ô3€DÝ‰<Œ<×#Ò#¥A¥q°1°a°&ÈÈQÉÐ#ÑOÔO€DØ×Ò•Q�¨¨a©ÐÑ0Ô0Ð0å˜dœk¨4¬;Ñ7Ô7Ð7Ý˜dœi¨¬Ñ3Ô3Ð3ð �+Š+�a�œ œ RÑ
(Ô
(€CÝ”K ­q¬w°q¬zÐ:Ñ:Ô:€Må‰|Œ|×Ò¥ #¤­¨#¬Ñ/Ô/€HÝ‰\Œ\×Ò�a¥ MÑ2Ô2€Få˜hœo¨v¬}Ñ=Ô=Ð=Ý˜hœm¨V¬[Ñ9Ô9Ð9õ ˜!’V—O’O¥B¤JÑ/Ô/€MÝ
‰,Œ,×
Ò
�1�a¨}Ð
Ñ
=Ô
=€C€C€Cr'   c                  óú   — t          t          j        ddg¦  «        ¬¦  «        } d}t          j        t
          |¬¦  «        5  |                      t          t          ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z:Test whether an error is raised in case of negative priorsg      ð¿ç       @©ÚpriorszPriors must be non-negativer3   N©	r   r   r-   r>   r?   r@   r7   r8   r9   ©rB   Úmsgs     r%   Útest_gnb_neg_priorsrg   |   s¯   € å
�BœH d¨C [Ñ1Ô1Ð
2Ñ
2Ô
2€Cà
'€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   Á!A0Á0A4Á7A4c                  óT  — t          t          j        ddg¦  «        ¬¦  «                             t          t
          ¦  «        } t          |                      ddgg¦  «        t          j        ddgg¦  «        d¦  «         t          | j        t          j        ddg¦  «        ¦  «         dS )	z6Test whether the class prior override is properly usedç333333Ó?gffffffæ?rb   çš™™™™™¹¿g[È9ãhê?g–Žßs\Æ?r2   N)	r   r   r-   r7   r8   r9   r   r;   rI   ©rB   s    r%   Útest_gnb_priorsrm   …   sœ   € å
�BœH c¨3 ZÑ0Ô0Ð
1Ñ
1Ô
1×
5Ò
5µa½Ñ
;Ô
;€CÝØ×Ò˜D $˜<˜.Ñ)Ô)Ý
ŒÐ$Ð&7Ð8Ð9Ñ:Ô:Ø	ñô ð õ
 ˜cÔ.µ´¸#¸s¸Ñ0DÔ0DÑEÔEÐEÐEÐEr'   c                  ó  — t          j        ddgddgddgddgddgddgddgddgd	d	gd
d
gg
¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          |¬¦  «        }|                     | |¦  «         d S )Nr   r   éýÿÿÿéüÿÿÿéûÿÿÿr   r   r   é   r)   )
g{®Gáz´?çìQ¸…ëÁ?g¸…ëQ¸ž?ç{®GázÄ?ç)\�Âõ(¼?rt   gìQ¸…ë±?rs   ru   ç        )
r   r   r   rr   r)   r*   é   r2   é	   r   rb   )r   r-   r   r7   )r8   rc   ÚYrB   s       r%   Útest_gnb_priors_sum_iscloserz   �   s±   € å
Œà�ˆHØ�ˆHØ�ˆHØ�ˆHØ�ˆHØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFð	
ñ	ô 	€Aõ ŒXÐQÐQÐQÑRÔR€FÝ
ŒÐ0Ð0Ð0Ñ1Ô1€AÝ
˜FÐ
#Ñ
#Ô
#€Cà‡G‚GˆAˆq�M„M€M€M€Mr'   c                  óú   — t          t          j        g d¢¦  «        ¬¦  «        } d}t          j        t
          |¬¦  «        5  |                      t          t          ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z`Test whether an error is raised if the number of prior is different
    from the number of class)ç      Ð?r|   r|   r|   rb   ú-Number of priors must match number of classesr3   Nrd   re   s     r%   Útest_gnb_wrong_nb_priorsr~   §   s´   € õ �BœHÐ%=Ð%=Ð%=Ñ>Ô>Ð
?Ñ
?Ô
?€Cà
9€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð rh   c                  óú   — t          t          j        ddg¦  «        ¬¦  «        } d}t          j        t
          |¬¦  «        5  |                      t          t          ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z?Test if an error is raised if the sum of prior greater than onera   ç      ð?rb   z!The sum of the priors should be 1r3   Nrd   re   s     r%   Útest_gnb_prior_greater_oner�   ±   s¯   € å
�BœH c¨3 ZÑ0Ô0Ð
1Ñ
1Ô
1€Cà
-€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð rh   c                  óð   — t          t          j        ddg¦  «        ¬¦  «        } |                      t          t
          ¦  «         |                      ddgg¦  «        t          j        dg¦  «        k    sJ ‚dS )z@Test if good prediction when class prior favor largely one classg{®Gáz„?g®Gáz®ï?rb   rk   r   N)r   r   r-   r7   r8   r9   r:   rl   s    r%   Útest_gnb_prior_large_biasrƒ   º   sd   € å
�BœH d¨D \Ñ2Ô2Ð
3Ñ
3Ô
3€CØ‡G‚G�A�q�M„M€MØ�;Š;˜˜t˜�~Ñ&Ô&­"¬(°A°3©-¬-Ò7Ð7Ð7Ð7Ð7Ð7r'   c                  ó²   — d} d}d}t          j        dt          j        d         f¦  «        }t	          j        | |||¦  «        \  }}||k    sJ ‚||k    sJ ‚dS )z4Test when the partial fit is called without any datar+   rv   r€   r   r   N)r   Úemptyr8   rV   r   Ú_update_mean_variance)Úprev_pointsÚmeanÚvarÚx_emptyÚtmeanÚtvars         r%   Ú"test_gnb_check_update_with_no_datar�   Á   sd   € ð €KØ€DØ
€CÝŒh˜�1œ7 1œ:�Ñ'Ô'€GÝÔ2°;ÀÀcÈ7ÑSÔS�K€Eˆ4Ø�DŠ=ˆ=ˆ=ˆ=Ø�3Š;ˆ;ˆ;ˆ;ˆ;ˆ;r'   c                  ó6  — t          ¦   «                              t          t          ¦  «        } t          ¦   «                              t          t          t          j        t          ¦  «        ¦  «        }t          | j        |j        ¦  «         t          | j	        |j	        ¦  «         t          | j
        |j
        ¦  «         t          ¦   «                              t          dd d…d d …f         t          dd d…         t          j        t          ¦  «        ¦  «        }|                     t          dd d…         t          dd d…         ¦  «         t          | j        |j        ¦  «         t          | j	        |j	        ¦  «         t          | j
        |j
        ¦  «         d S )Nr   r   r   )r   r7   r8   r9   rA   r   Úuniquer   rS   rT   rI   )rB   Úclf_pfÚclf_pf2s      r%   Útest_gnb_partial_fitr’   Í   s)  € Ý
‰,Œ,×
Ò
�1�aÑ
 Ô
 €CÝ‰\Œ\×%Ò%¥a­­B¬Iµa©L¬LÑ9Ô9€FÝ˜cœj¨&¬-Ñ8Ô8Ð8Ý˜cœh¨¬Ñ4Ô4Ð4Ý˜cÔ.°Ô0CÑDÔDÐDå‰lŒl×&Ò&¥q¨¨¨A¨¨q¨q¨q¨¤zµ1°Q°T¸°T´7½B¼IÅa¹L¼LÑIÔI€GØ×Ò�˜!˜$˜Q˜$œ¥ 1 4 a 4¤Ñ)Ô)Ð)Ý˜cœj¨'¬.Ñ9Ô9Ð9Ý˜cœh¨¬Ñ5Ô5Ð5Ý˜cÔ.°Ô0DÑEÔEÐEÐEÐEr'   c                  óÒ   ‡‡— t          ¦   «         } | j        | j        cŠŠˆˆfd„dD ¦   «         }t          |d         |d         ¦  «         t          |d         |d         ¦  «         d S )Nc                 ó†   •— g | ]=}t          ¦   «                              |‰z  ‰¦  «                             |‰z  ¦  «        ‘Œ>S © )r   r7   r:   )Ú.0Úfr8   r9   s     €€r%   ú
<listcomp>z9test_gnb_naive_bayes_scale_invariance.<locals>.<listcomp>ß   sC   ø€ ÐRÐRÐR¸A�j‰lŒl×Ò˜q 1™u aÑ(Ô(×0Ò0°°Q±Ñ7Ô7ÐRÐRÐRr'   )ç»½×Ùß|Û=r   g    _ Br   r   r   )r   ÚdataÚtargetr   )ÚirisÚlabelsr8   r9   s     @@r%   Ú%test_gnb_naive_bayes_scale_invariancerž   Û   so   øø€ å‰;Œ;€DØŒ9�d”k€D€A€qØRÐRÐRÐRÐRÐAQÐRÑRÔR€FÝ�v˜a”y &¨¤)Ñ,Ô,Ð,Ý�v˜a”y &¨¤)Ñ,Ô,Ð,Ð,Ð,r'   ÚDiscreteNaiveBayesc                 óä   — t          |¦  «        \  }} | ¦   «                              ||¦  «        }t          t          j        t          j        g d¢¦  «        dz  ¦  «        |j        d¦  «         d S )N)r   r   r   rH   r2   )r0   r7   r   r   r=   r-   Úclass_log_prior_)rŸ   r!   r.   r/   rB   s        r%   Útest_discretenb_priorr¢   ä   sw   € õ 2Ð2DÑEÔE�F€BˆØ
Ð
Ñ
Ô
×
"Ò
" 2 rÑ
*Ô
*€CÝÝ
Œ�rŒx˜	˜	˜	Ñ"Ô" SÑ(Ñ)Ô)¨3Ô+?Àñô ð ð ð r'   c                 óî  —  | ¦   «         }|                      ddgddgddggg d¢¦  «          | ¦   «         }|                     ddgddgddggg d¢ddg¬¦  «         t          |j        |j        ¦  «         | t          u rKt          t          |j        ¦  «        ¦  «        D ](}t          |j        |         |j        |         ¦  «         Œ)nt          |j        |j        ¦  «          | ¦   «         }|                     ddggdgddg¬¦  «         |                     ddggdg¦  «         |                     ddggdg¦  «         t          |j        |j        ¦  «         | t          u �rxt          t          |j        ¦  «        ¦  «        D ]€}t          |j        |         j	        |j        |         j	        ¦  «         t          t          j        |j        |         d¬¦  «        t          j        |j        |         d¬¦  «        ¦  «         Œ�t          |j        d         d         t          j        ddg¦  «        ¦  «         t          |j        d         d         t          j        ddg¦  «        ¦  «         t          |j        d         d         t          j        ddg¦  «        ¦  «         t          |j        d         d         t          j        ddg¦  «        ¦  «         d S t          |j        |j        ¦  «         d S )Nr   r   ©r   r   r   r5   ©Úaxisr   )r7   rA   r   Úclass_count_r	   ÚrangeÚlenÚcategory_count_Úfeature_count_rV   r   rJ   r-   )rŸ   r[   r\   ÚiÚclf3s        r%   Útest_discretenb_partial_fitr®   î   s  € àÐÑÔ€DØ‡H‚Hˆq�!ˆf�q˜!�f˜q !˜fÐ% y y yÑ1Ô1Ð1àÐÑÔ€DØ×Ò�q˜!�f˜q !˜f q¨! fÐ-¨y¨y¨yÀ1ÀaÀ&ÐÑIÔIÐIÝ�tÔ(¨$Ô*;Ñ<Ô<Ð<Ø�]Ð*Ð*Ý•s˜4Ô/Ñ0Ô0Ñ1Ô1ð 	Qð 	QˆAÝ˜tÔ3°AÔ6¸Ô8LÈQÔ8OÑPÔPÐPÐPð	Qõ 	˜4Ô.°Ô0CÑDÔDÐDàÐÑÔ€Dà×Ò�q˜!�f�X ˜s¨Q°¨FÐÑ3Ô3Ð3Ø×Ò�q˜!�f�X ˜sÑ#Ô#Ð#Ø×Ò�q˜!�f�X ˜sÑ#Ô#Ð#Ý�tÔ(¨$Ô*;Ñ<Ô<Ð<Ø�]Ð*Ñ*õ •s˜4Ô/Ñ0Ô0Ñ1Ô1ð 	ð 	ˆAÝØÔ$ QÔ'Ô-¨tÔ/CÀAÔ/FÔ/Lñô ð õ Ý”�tÔ+¨AÔ.°QÐ7Ñ7Ô7Ý”�tÔ+¨AÔ.°QÐ7Ñ7Ô7ñô ð ð õ 	˜4Ô/°Ô2°1Ô5µr´xÀÀAÀÑ7GÔ7GÑHÔHÐHõ 	˜4Ô/°Ô2°1Ô5µr´xÀÀAÀÑ7GÔ7GÑHÔHÐHõ 	˜4Ô/°Ô2°1Ô5µr´xÀÀAÀÑ7GÔ7GÑHÔHÐHõ 	˜4Ô/°Ô2°1Ô5µr´xÀÀAÀÑ7GÔ7GÑHÔHÐHÐHÐHå˜4Ô.°Ô0CÑDÔDÐDÐDÐDr'   Ú
NaiveBayesc                 óð  — t          |¦  «        \  }}t          j        t          d¬¦  «        5   | ¦   «                              ||¦  «         d d d ¦  «         n# 1 swxY w Y    | ¦   «         }|                     ||t          j        |¦  «        ¬¦  «         t          j        t          d¬¦  «        5  |                     ||t          j        d¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz8classes must be passed on the first call to partial_fit.r3   r5   ú.is not the same as on last call to partial_fité*   )r0   r>   r?   r@   rA   r   r�   Úarange)r¯   r!   r.   r/   rB   s        r%   Ú$test_NB_partial_fit_no_first_classesr´      sv  € õ 2Ð2DÑEÔE�F€Bˆå	ŒÝÐTð
ñ 
ô 
ð )ð )ð 	ˆ
‰Œ× Ò   RÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð ˆ*‰,Œ,€CØ‡O‚O�B˜¥B¤I¨b¡M¤M€OÑ2Ô2Ð2Ý	ŒÝÐJð
ñ 
ô 
ð 7ð 7ð 	�Š˜˜B­¬	°"©¬ˆÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s#   ®AÁAÁ AÂ3+C+Ã+C/Ã2C/c            	      óŒ  — g d¢g d¢g d¢g} ddgddgddgg}g d¢}t          t          t          g| |g¦  «        D ]Á\  }} |¦   «                              ||¦  «        }|                     |d	d …         ¦  «        d
k    sJ ‚|                     |d         g¦  «        j        dk    sJ ‚t          |                     |d d
…         ¦  «                             d¬¦  «        t          j
        ddg¦  «        d¦  «         ŒÂg d¢}t          t          t          g| |g¦  «        D �]%\  }} |¦   «                              ||¦  «        }|                     |dd…         ¦  «        j        dk    sJ ‚|                     |d d
…         ¦  «        j        dk    sJ ‚t          t          j        |                     |d         g¦  «        ¦  «        d¦  «         t          t          j        |                     |d	         g¦  «        ¦  «        d¦  «         t          t          j        t          j        |j        ¦  «        ¦  «        d¦  «         �Œ'd S )N)r   r+   r   ©r   r   r   )r   r+   r   r   r   r   rr   )r   r   r   r   r   )r   r   r¥   r€   r*   ©r   r   r   )r   r   )r   r   )Úzipr   r   r7   r:   r;   rV   r   rJ   r   r-   r   Úexpr¡   )ÚX_bernoulliÚX_multinomialr9   rŸ   r8   rB   s         r%   Útest_discretenb_predict_probar¼   3  sn  € ð
 �;�; 	 	 	¨;¨;¨;Ð7€KØ˜�V˜a ˜V a¨ VÐ,€Mð 	ˆ	ˆ	€AÝ!$Ý	•mÐ$ {°MÐ&Bñ"ô "ð 
ð 
ÑÐ˜Að !Ð Ñ"Ô"×&Ò& q¨!Ñ,Ô,ˆØ�{Š{˜1˜R˜S˜Sœ6Ñ"Ô" aÒ'Ð'Ð'Ð'Ø× Ò  ! A¤$ Ñ(Ô(Ô.°&Ò8Ð8Ð8Ð8Ý!Ø×Ò˜a   œeÑ$Ô$×(Ò(¨aÐ(Ñ0Ô0µ"´(¸CÀ¸:Ñ2FÔ2FÈñ	
ô 	
ð 	
ð 	
ð
 	ˆ	ˆ	€AÝ!$Ý	•mÐ$ {°MÐ&Bñ"ô "ð Eñ EÑÐ˜Að !Ð Ñ"Ô"×&Ò& q¨!Ñ,Ô,ˆØ× Ò   1 Q 3¤Ñ(Ô(Ô.°&Ò8Ð8Ð8Ð8Ø× Ò   2 A 2¤Ñ'Ô'Ô-°Ò7Ð7Ð7Ð7Ý�BœF 3×#4Ò#4°a¸´d°VÑ#<Ô#<Ñ=Ô=¸qÑAÔAÐAÝ�BœF 3×#4Ò#4°a¸´e°WÑ#=Ô#=Ñ>Ô>ÀÑBÔBÐBÝ�BœF¥2¤6¨#Ô*>Ñ#?Ô#?Ñ@Ô@À!ÑDÔDÐDÑDðEð Er'   c                 óü   —  | ¦   «         }|                      d¬¦  «         |                     dgdgdggg d¢¦  «         t          j        |j        ¦  «        }t          |t          j        ddg¦  «        ¦  «         d S )NF)Ú	fit_priorr   r   ©r   r   r   ç      à?)Ú
set_paramsr7   r   r¹   r¡   r   r-   )rŸ   rB   Úpriors      r%   Útest_discretenb_uniform_priorrÃ   T  s€   € ð
 Ð
Ñ
Ô
€CØ‡N‚N˜U€NÑ#Ô#Ð#Ø‡G‚GˆaˆS�1�#˜�sˆO˜Y˜Y˜YÑ'Ô'Ð'ÝŒF�3Ô'Ñ(Ô(€EÝ˜e¥R¤X¨s°C¨jÑ%9Ô%9Ñ:Ô:Ð:Ð:Ð:r'   c                 ó*  —  | ddg¬¦  «        }|                      dgdgdggg d¢¦  «         t          j        |j        ¦  «        }t	          |t          j        ddg¦  «        ¦  «         d}t          j        t          |¬¦  «        5  |                      dgdgdggg d	¢¦  «         d d d ¦  «         n# 1 swxY w Y   d
}t          j        t          |¬¦  «        5  | 	                    dgdggddgg d¢¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrÀ   ©Úclass_priorr   r   r¿   r}   r3   r   r·   r±   r¤   r5   )
r7   r   r¹   r¡   r   r-   r>   r?   r@   rA   )rŸ   rB   rÂ   rf   s       r%   Útest_discretenb_provide_priorrÇ   `  s¬  € ð Ð
¨#¨s¨Ð
4Ñ
4Ô
4€CØ‡G‚GˆaˆS�1�#˜�sˆO˜Y˜Y˜YÑ'Ô'Ð'ÝŒF�3Ô'Ñ(Ô(€EÝ˜e¥R¤X¨s°C¨jÑ%9Ô%9Ñ:Ô:Ð:ð :€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ,ð ,Ø�Š�!��q�c˜A˜3�   Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ð ;€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ?ð ?Ø�Š˜!˜˜q˜c˜
 Q¨ F°I°I°IˆÑ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ?ð ?s$   ÂB2Â2B6Â9B6Ã!DÄDÄDc                 ó|  — t          ¦   «         }t          |j        |j        dd¬¦  «        \  }}}}d g d¢fD ]„} | |¬¦  «        }|                     |j        |j        ¦  «          | |¬¦  «        }|                     ||g d¢¬¦  «         |                     ||¦  «         t          |j        |j        ¦  «         Œ…d S )Nçš™™™™™Ù?iŸ  )Ú	test_sizeÚrandom_state)rj   rj   rÉ   rÅ   r·   r5   )r   r   rš   r›   r7   rA   r   r¡   )	rŸ   rœ   Ú
iris_data1Ú
iris_data2Úiris_target1Úiris_target2rÂ   Úclf_fullÚclf_partials	            r%   Ú.test_discretenb_provide_prior_with_partial_fitrÒ   s  sð   € õ
 ‰;Œ;€DÝ9IØŒ	�4”;¨#¸Cð:ñ :ô :Ñ6€J�
˜L¨,ð ˜˜˜Ð(ð 
ð 
ˆØ%Ð%°%Ð8Ñ8Ô8ˆØ�Š�T”Y ¤Ñ,Ô,Ð,Ø(Ð(°UÐ;Ñ;Ô;ˆØ×Ò 
¨LÀ)À)À)ÐÑLÔLÐLØ×Ò 
¨LÑ9Ô9Ð9Ý!ØÔ% {Ô'Cñ	
ô 	
ð 	
ð 	
ð
ð 
r'   c                 óª  — g d¢g d¢g d¢g d¢g}g d¢}t          j        g d¢t           j        ¬¦  «        }||                     ¦   «         z  } | ¦   «                              |||¬¦  «        }t          |                     |¦  «        g d¢¦  «          | ¦   «         }|                     |d d	…         |d d	…         g d
¢|d d	…         ¬¦  «         |                     |d	d…         |d	d…         |d	d…         ¬¦  «         |                     |dd …         |dd …         |dd …         ¬¦  «         t          |                     |¦  «        g d¢¦  «         d S )Nr¿   r¤   ©r   r   r   )r   r   r   r   ©r   r   r   r   )ÚdtyperM   )r   r   r   r   r   r·   rO   r   )r   r-   rX   rJ   r7   r   r:   rA   )rŸ   r8   r9   rN   rB   s        r%   Ú(test_discretenb_sample_weight_multiclassr×   ˆ  ss  € ð 	ˆ	ˆ	Øˆ	ˆ	Øˆ	ˆ	Øˆ	ˆ	ð		€Að 	ˆˆ€AÝ”H˜\˜\˜\µ´Ð<Ñ<Ô<€MØ�]×&Ò&Ñ(Ô(Ñ(€MØ
Ð
Ñ
Ô
×
"Ò
" 1 a°}Ð
"Ñ
EÔ
E€CÝ�s—{’{ 1‘~”~ | | |Ñ4Ô4Ð4ð Ð
Ñ
Ô
€CØ‡O‚O�A�b�q�b”E˜1˜R˜a˜Rœ5¨)¨)¨)À=ÐQSÐRSÐQSÔCT€OÑUÔUÐUØ‡O‚O�A�a˜�c”F˜A˜a ˜cœF°-ÀÀ!ÀÔ2D€OÑEÔEÐEØ‡O‚O�A�a�b�b”E˜1˜Q˜R˜Rœ5°¸a¸b¸bÔ0A€OÑBÔBÐBÝ�s—{’{ 1‘~”~ | | |Ñ4Ô4Ð4Ð4Ð4r'   Úuse_partial_fitFTÚtrain_on_single_class_yc                 óN  — g d¢g d¢g d¢g}g d¢}|r|d d…         }|d d…         }t          t          t          |¦  «        ¦  «        ¦  «        }t          |¦  «        } | ¦   «         }|r|                     |||¬¦  «         n|                     ||¦  «         |                     |d d…         ¦  «        |d         k    sJ ‚g d	¢}|D ]\}	t          ||	d ¦  «        }
|
€Œt          |
t          j
        ¦  «        r|
j        d         |k    sJ ‚ŒD|
D ]}|j        d         |k    sJ ‚ŒŒ]d S )
NrÔ   r¶   r¿   )r   r   r   r   r5   r   r   )Úclasses_r§   r¡   r«   Úfeature_log_prob_)ÚsortedÚlistÚsetr©   rA   r7   r:   ÚgetattrÚ
isinstancer   ÚndarrayrV   )rŸ   rØ   rÙ   r8   r9   r6   Únum_classesrB   Úattribute_namesÚattribute_nameÚ	attributeÚelements               r%   Ú)test_discretenb_degenerate_one_class_caserè   Ÿ  s|  € ð" 
ˆˆ�I�I�I˜y˜y˜yÐ)€AØˆ	ˆ	€AØð ØˆcˆrˆcŒFˆØˆcˆrˆcŒFˆÝ•T�#˜a™&œ&‘\”\Ñ"Ô"€GÝ�g‘,”,€Kà
Ð
Ñ
Ô
€CØð Ø�Š˜˜1 gˆÑ.Ô.Ð.Ð.à�Š��1‰ŒˆØ�;Š;�q˜˜!˜”uÑÔ  1¤Ò%Ð%Ð%Ð%ðð ð €Oð *ð 
7ð 
7ˆÝ˜C °Ñ6Ô6ˆ	ØÐàÝ�i¥¤Ñ,Ô,ð 	7Ø”? 1Ô%¨Ò4Ð4Ð4Ð4Ð4ð %ð 7ð 7�Ø”} QÔ'¨;Ò6Ð6Ð6Ð6Ð6ð7ð
7ð 
7r'   Úkind)ÚdenseÚsparseÚcsr_containerc                 óþ  — t          |¦  «        \  }}| dk    r|}n| dk    r ||¦  «        }t          ¦   «         }d}t          j        t          |¬¦  «        5  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ||¦  «                             |¦  «        }t          ||¦  «         |                     |¦  «        }	| 	                    |¦  «        }
t          t          j        |	¦  «        |
d¦  «         t          ¦   «         }|                     |d d…         |d d…         t          j        |¦  «        ¬¦  «         |                     |dd…         |dd…         ¦  «         |                     |dd …         |dd …         ¦  «         |                     |¦  «        }t          ||¦  «         |                     |¦  «        }| 	                    |¦  «        }t          t          j        |¦  «        |d¦  «         t          ||	¦  «         t          ||
¦  «         t          ¦   «         }|                     ||t          j        |¦  «        ¬¦  «         |                     |¦  «        }t          ||¦  «         |                     |¦  «        }| 	                    |¦  «        }t          t          j        |¦  «        |d¦  «         t          ||	¦  «         t          ||
¦  «         d S )	Nrê   rë   z!Negative values in data passed tor3   r2   r   r5   r)   )r0   r   r>   r?   r@   r7   r:   r   r;   r<   r   r   r=   rA   r�   )ré   r!   rì   r.   r/   r8   rB   rf   rC   rD   rE   r\   Úy_pred2Úy_pred_proba2Úy_pred_log_proba2r­   Úy_pred3Úy_pred_proba3Úy_pred_log_proba3s                      r%   Ú	test_mnnbrô   Ô  s
  € õ 2Ð2DÑEÔE�F€Bˆàˆw‚€ØˆˆØ	�Ò	Ð	ØˆM˜"ÑÔˆõ ‰/Œ/€Cà
-€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š���B‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�WŠW�Q˜‰^Œ^×#Ò# AÑ&Ô&€Få�v˜rÑ"Ô"Ð"ð ×$Ò$ QÑ'Ô'€LØ×,Ò,¨QÑ/Ô/ÐÝ�bœf \Ñ2Ô2Ð4DÀaÑHÔHÐHõ ‰?Œ?€DØ×Ò�Q�r˜�r”U˜B˜r ˜rœF­B¬I°b©M¬MÐÑ:Ô:Ð:Ø×Ò�Q�q˜�s”V˜R  ! œWÑ%Ô%Ð%Ø×Ò�Q�q�r�r”U˜B˜q˜r˜rœFÑ#Ô#Ð#à�lŠl˜1‰oŒo€GÝ�w Ñ#Ô#Ð#à×&Ò& qÑ)Ô)€MØ×.Ò.¨qÑ1Ô1ÐÝ�bœf ]Ñ3Ô3Ð5FÈÑJÔJÐJÝ˜m¨\Ñ:Ô:Ð:ÝÐ/Ð1AÑBÔBÐBõ ‰?Œ?€DØ×Ò�Q˜¥B¤I¨b¡M¤MÐÑ2Ô2Ð2à�lŠl˜1‰oŒo€GÝ�w Ñ#Ô#Ð#Ø×&Ò& qÑ)Ô)€MØ×.Ò.¨qÑ1Ô1ÐÝ�bœf ]Ñ3Ô3Ð5FÈÑJÔJÐJÝ˜m¨\Ñ:Ô:Ð:ÝÐ/Ð1AÑBÔBÐBÐBÐBs   ÁA<Á<B ÂB c                  óf  — t          j        ddgddgg¦  «        } t          j        ddg¦  «        }t          ¦   «         }t          j        ¦   «         5  t          j        dt          ¦  «         |                     | |g d¢¬¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ddgg¦  «        dk    sJ ‚|                     ddgg¦  «        dk    sJ ‚|                     ddgg¦  «        dk    sJ ‚t          j        ¦   «         5  t          j        dt          ¦  «         |                     ddggdg¦  «         d d d ¦  «         n# 1 swxY w Y   |                     ddgg¦  «        dk    sJ ‚|                     ddgg¦  «        dk    sJ ‚|                     ddgg¦  «        dk    sJ ‚d S )Nr   r   Úerrorr·   r5   r   )	r   r-   r   ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningrA   r:   )r8   r9   rB   s      r%   Ú!test_mnb_prior_unobserved_targetsrû     s@  € õ 	Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AÝ
Œ�!�Q�ÑÔ€Aå
‰/Œ/€Cå	Ô	 Ñ	"Ô	"ð 1ð 1ÝÔ˜g¥~Ñ6Ô6Ð6à�Š˜˜1 i i iˆÑ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð
 �;Š;˜˜A˜�xÑ Ô  AÒ%Ð%Ð%Ð%Ø�;Š;˜˜A˜�xÑ Ô  AÒ%Ð%Ð%Ð%Ø�;Š;˜˜A˜�xÑ Ô  AÒ%Ð%Ð%Ð%õ 
Ô	 Ñ	"Ô	"ð 'ð 'ÝÔ˜g¥~Ñ6Ô6Ð6à�Š˜!˜Q˜˜ 1 #Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð
 �;Š;˜˜A˜�xÑ Ô  AÒ%Ð%Ð%Ð%Ø�;Š;˜˜A˜�xÑ Ô  AÒ%Ð%Ð%Ð%Ø�;Š;˜˜A˜�xÑ Ô  AÒ%Ð%Ð%Ð%Ð%Ð%s$   Á5BÂBÂBÄ5EÅEÅEc                  óŠ  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          d¬¦  «        }|                     | |¦  «         t          j        dd	g¦  «        }t	          t          j        |j        ¦  «        |¦  «         t          j        g d
¢g d¢g¦  «        }t	          t          j        |j        ¦  «        |¦  «         t          j        g d¢g¦  «        }t          j        ddgg¦  «        }|t          j        |¦  «        z  }t	          | 	                    |¦  «        |¦  «         d S )N©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   r   r   r€   ©Úalphag      è?r|   )rÉ   gš™™™™™é?çš™™™™™É?rÉ   rÉ   r  )çUUUUUUÕ?çUUUUUUå?r  r  r  r  g¦@fgÑ;u?gÇ¿à€y–?)
r   r-   r   r7   r   r¹   r¡   rÜ   rJ   r;   )r8   ry   rB   rÆ   Úfeature_probÚX_testÚunnorm_predict_probar;   s           r%   Útest_bnbr
  *  s_  € õ 	ŒØ	Ð	Ð	Ð/Ð/Ð/Ð1CÐ1CÐ1CÐEWÐEWÐEWÐXñ	ô 	€Aõ
 	Œ���ÑÔ€Aõ ˜CÐ
 Ñ
 Ô
 €CØ‡G‚GˆAˆq�M„M€Mõ ”(˜D $˜<Ñ(Ô(€KÝ�bœf SÔ%9Ñ:Ô:¸KÑHÔHÐHõ ”8à*Ð*Ð*ØBÐBÐBð	
ñô €Lõ �bœf SÔ%:Ñ;Ô;¸\ÑJÔJÐJõ ŒXÐ)Ð)Ð)Ð*Ñ+Ô+€Fõ œ8Ð&:Ð<OÐ%PÐ$QÑRÔRÐØ(­2¬6Ð2FÑ+GÔ+GÑG€MÝ˜c×/Ò/°Ñ7Ô7¸ÑGÔGÐGÐGÐGr'   c                  ó®  — t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          d¬¦  «        }|                     | |¦  «         t          j        |j        dz   ¦  «        }t          j        t          j        |j        dz   ¦  «        | j        d	         d	f¦  «        j	        }t          |j        ||z
  ¦  «         d S )
N)r   r   r   ©r   r   r   r¶   )r   r   r   )r   r   r   r   r   r€   r  ra   r   )r   r-   r   r7   r=   r«   Útiler§   rV   ÚTr   rÜ   )r8   ry   rB   ÚnumÚdenoms        r%   Útest_bnb_feature_log_probr  Y  sÐ   € õ 	Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	°9°9°9¸i¸i¸iÐHÑIÔI€AÝ
Œ���Ñ!Ô!€Aõ ˜CÐ
 Ñ
 Ô
 €CØ‡G‚GˆAˆq�M„M€Mõ Œ&�Ô# cÑ)Ñ
*Ô
*€CÝŒG•B”F˜3Ô+¨cÑ1Ñ2Ô2°Q´W¸Q´ZÀ°OÑDÔDÔF€Eõ ˜cÔ3°c¸E±kÑCÔCÐCÐCÐCr'   c                  ój  — t          j        g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          j        g d¢g d¢g¦  «        }t          j        |j        ¦  «        }t          j        |j        ¦  «        }t	          d¦  «        D ]F}t          j        ||         ¦  «         ||<   ||         ||                              ¦   «         z  ||<   ŒGt          d	¬
¦  «        }t          j	        d¦  «        }t          j        t          |¬¦  «        5  |                     |  |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     | |¦  «         t          j        g d¢g d¢g¦  «        }t          |j        |¦  «         t          j        ddg¦  «        }	t          |j        |	¦  «         t          j        g d¢¦  «        }
t          |j        |
¦  «         t%          |j        |¦  «         t          d	d¬¦  «        }|                     | |¦  «         t%          |j        |¦  «         d S )Nrý   rþ   rÿ   r   r  )çÇqÇq¼?çÇqÇqÌ?r  r  r  r  )çUUUUUUÅ?r  çUUUUUUµ?r  r  r  r   r€   r  z8Negative values in data passed to ComplementNB (input X)r3   )r   r   r   r   r   r   r   r   )r   rr   r   r   r   r   T)r  Únorm)r   r-   ÚzerosrV   r¨   r=   rJ   r
   ÚreÚescaper>   r?   r@   r7   r   r«   r§   Úfeature_all_r   rÜ   )r8   ry   ÚthetaÚweightsÚnormed_weightsr¬   rB   rf   Úfeature_countÚclass_countÚfeature_alls              r%   Útest_cnbr"  p  s…  € õ 	ŒØ	Ð	Ð	Ð/Ð/Ð/Ð1CÐ1CÐ1CÐEWÐEWÐEWÐXñ	ô 	€Aõ
 	Œ���ÑÔ€Aõ ŒHðð ð ðð ð ð	
ñô €Eõ* Œh�u”{Ñ#Ô#€GÝ”X˜eœkÑ*Ô*€NÝ�1‰XŒXð :ð :ˆÝ”f˜U 1œXÑ&Ô&Ð&ˆ�‰
Ø# AœJ¨°¬¯ªÑ)9Ô)9Ñ9ˆ�qÑÐõ ˜SÐ
!Ñ
!Ô
!€Cå
Œ)ÐNÑ
OÔ
O€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š���A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡G‚GˆAˆq�M„M€Mõ ”HÐ0Ð0Ð0Ð2DÐ2DÐ2DÐEÑFÔF€MÝ�sÔ)¨=Ñ9Ô9Ð9Ý”(˜A˜q˜6Ñ"Ô"€KÝ�sÔ'¨Ñ5Ô5Ð5Ý”(Ð-Ð-Ð-Ñ.Ô.€KÝ�sÔ'¨Ñ5Ô5Ð5Ý˜cÔ3°WÑ=Ô=Ð=å
˜S tÐ
,Ñ
,Ô
,€CØ‡G‚GˆAˆq�M„M€MÝ˜cÔ3°^ÑDÔDÐDÐDÐDs   ÄD<Ä<E ÅE c           	      óø  — t          ¦   «         }t          | ¦  «        \  }}|                     ||¦  «                             |¦  «        }t	          ||¦  «         t          j        ddgddgg¦  «        }t          j        ddg¦  «        }t          dd¬¦  «        }|                     ||¦  «         t	          |j        t          j        ddg¦  «        ¦  «         t          j        d	d
gg¦  «        }t          j        dg¦  «        }t          j	        d¦  «        }	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   t          j        ddgg¦  «        }
t          j        ddgg¦  «        }|                     ¦   «         }t          |                     |
¦  «        ||z  ¦  «         t!          |j        ¦  «        |j        d         k    sJ ‚t          j        d	d	gd	dgd	d	gddgg¦  «        }t          j        g d¢¦  «        }t          dd¬¦  «        }|                     ||¦  «         t	          |                     t          j        d	d	gg¦  «        ¦  «        t          j        dg¦  «        ¦  «         t	          |j        t          j        ddg¦  «        ¦  «         dD ]î}t          j        d	d	gd	dgd	d	gddgg¦  «        }t          j        g d¢¦  «        }t          j        g d¢¦  «        |z  }t          dd¬¦  «        }|                     |||¬¦  «         t	          |                     t          j        d	d	gg¦  «        ¦  «        t          j        dg¦  «        ¦  «         t	          |j        t          j        ddg¦  «        ¦  «         Œïd S )Nr   rr   r   r)   F)r  r¾   r   r*   r   r   z9Negative values in data passed to CategoricalNB (input X)r3   r  çÇqÇqÜ?rÕ   )r€   rj   r)   g-Cëâ6?)r   r   r   çš™™™™™¹?rM   )r	   r0   r7   r:   r   r   r-   Ún_categories_r  r  r>   r?   r@   rJ   r   r;   r©   rª   rV   )r!   rB   r.   r/   rC   ÚX3Úy3r8   r9   Ú	error_msgÚX3_testÚbayes_numeratorÚbayes_denominatorÚfactorrN   s                  r%   Útest_categoricalnbr.  ·  s%  € å
‰/Œ/€CÝ1Ð2DÑEÔE�F€Bˆà�WŠW�R˜‰_Œ_×$Ò$ RÑ(Ô(€FÝ�v˜rÑ"Ô"Ð"å	Œ�A�q�6˜A˜q˜6Ð"Ñ	#Ô	#€BÝ	Œ�1�a�&Ñ	Ô	€BÝ
˜a¨5Ð
1Ñ
1Ô
1€Cà‡G‚GˆB��O„O€OÝ�sÔ(­"¬(°A°q°6Ñ*:Ô*:Ñ;Ô;Ð;õ 	Œ�1�b�'�ÑÔ€AÝ
Œ�!�‰Œ€AÝ”	ÐUÑVÔV€IÝ	Œ•z¨Ð	3Ñ	3Ô	3ð ð Ø�Š�A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å	Œ•z¨Ð	3Ñ	3Ô	3ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ Œh˜˜A˜�xÑ Ô €Gõ ”h °Ð >Ð?Ñ@Ô@€OØ'×+Ò+Ñ-Ô-ÐÝØ×Ò˜'Ñ"Ô" OÐ6GÑ$Gñô ð õ
 ˆsÔ"Ñ#Ô# r¤x°¤{Ò2Ð2Ð2Ð2õ 	Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2€AÝ
Œ���ÑÔ€AÝ
˜a¨5Ð
1Ñ
1Ô
1€CØ‡G‚GˆAˆq�M„M€MÝ�s—{’{¥2¤8¨a°¨V¨HÑ#5Ô#5Ñ6Ô6½¼À!À¹¼ÑFÔFÐFÝ�sÔ(­"¬(°A°q°6Ñ*:Ô*:Ñ;Ô;Ð;à'ð @ð @ˆÝŒH�q˜!�f˜q !˜f q¨! f¨q°!¨fÐ5Ñ6Ô6ˆÝŒH�\�\�\Ñ"Ô"ˆÝœ   Ñ1Ô1°FÑ:ˆÝ !¨uÐ5Ñ5Ô5ˆØ�Š��1 MˆÑ2Ô2Ð2Ý˜3Ÿ;š;¥r¤x°!°Q°°Ñ'9Ô'9Ñ:Ô:½B¼HÀaÀS¹M¼MÑJÔJÐJÝ˜3Ô,­b¬h¸¸1°vÑ.>Ô.>Ñ?Ô?Ð?Ð?ð@ð @s$   Ä5EÅEÅEÅ=F Æ F$Æ'F$zDmin_categories, exp_X1_count, exp_X2_count, new_X, exp_n_categories_r   )r   r   r   r  rr   )r   r   r   r   c                 ó´  — t          j        ddgddgddgddgg¦  «        }t          j        g d¢¦  «        }t          j        dg¦  «        }t          dd| ¬¦  «        }|                     ||¦  «         |j        \  }	}
t          |	|¦  «         t          |
|¦  «         |                     |¦  «        }t          ||¦  «         t          |j        |¦  «         d S )Nr   r   rÕ   F©r  r¾   Úmin_categories)r   r-   r	   r7   rª   r   r:   r&  )r1  Úexp_X1_countÚexp_X2_countÚnew_XÚexp_n_categories_ÚX_n_categoriesÚy_n_categoriesÚexpected_predictionrB   ÚX1_countÚX2_countÚpredictionss               r%   Ú&test_categoricalnb_with_min_categoriesr<  î  sá   € õD ”X  1˜v¨¨1 v°°1¨v¸¸1°vÐ>Ñ?Ô?€NÝ”X˜l˜l˜lÑ+Ô+€NÝœ( A 3™-œ-Ðå
˜a¨5ÀÐ
PÑ
PÔ
P€CØ‡G‚GˆN˜NÑ+Ô+Ð+ØÔ,Ñ€HˆhÝ�x Ñ.Ô.Ð.Ý�x Ñ.Ô.Ð.Ø—+’+˜eÑ$Ô$€KÝ�{Ð$7Ñ8Ô8Ð8Ý�sÔ(Ð*;Ñ<Ô<Ð<Ð<Ð<r'   zmin_categories, error_msgz"'min_categories' should have shapec                 ó*  — t          j        ddgddgddgddgg¦  «        }t          j        g d¢¦  «        }t          dd| ¬¦  «        }t          j        t
          |¬¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   rÕ   Fr0  r3   )r   r-   r	   r>   r?   r@   r7   )r1  r)  r8   r9   rB   s        r%   Ú(test_categoricalnb_min_categories_errorsr>    sÝ   € õ 	Œ�1�a�&˜1˜a˜& 1 a &¨1¨a¨&Ð1Ñ2Ô2€AÝ
Œ���ÑÔ€Aå
˜a¨5ÀÐ
PÑ
PÔ
P€CÝ	Œ•z¨Ð	3Ñ	3Ô	3ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á$BÂBÂBc                 óš  — t          j        ddgddgg¦  «        }t          j        ddg¦  «        }t          dd¬¦  «        }d}t          j        t
          |¬¦  «        5  |                     ||ddg¬¦  «         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   t          j        ddgddgg¦  «        }t          | 	                    |¦  «        |¦  «         t          dd¬¦  «        }t          j        t
          |¬¦  «        5  |                     ||ddg¬¦  «         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   t          j        d	d
gddgg¦  «        }t          | 	                    |¦  «        |¦  «         t          dd¬¦  «        }t          j        t
          |¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ddgddgg¦  «        }t          | 	                    |¦  «        |¦  «          | |¦  «        }t          dd¬¦  «        }t          j        t
          |¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ddgddgg¦  «        }t          | 	                    |¦  «        |¦  «         t          dd¬¦  «        }t          j        t
          |¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d	d
gddgg¦  «        }t          | 	                    |¦  «        |¦  «         d S )Nr   r   rv   F©r  Úforce_alphazFalpha too small will result in numeric errors, setting alpha = 1.0e-10r3   r5   r  r  r€   )r   r-   r   r>   ÚwarnsÚUserWarningrA   r7   r   r;   r   r	   )rì   r8   r9   Únbrf   Úprobs         r%   Ú
test_alpharF  -  s@  € õ 	Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AÝ
Œ�!�Q�ÑÔ€AÝ	˜3¨EÐ	2Ñ	2Ô	2€BØ
R€CÝ	Œ•k¨Ð	-Ñ	-Ô	-ð -ð -Ø
�Š�q˜! a¨ VˆÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -å	Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åŒ8�a˜�V˜a ˜VÐ$Ñ%Ô%€DÝ˜b×.Ò.¨qÑ1Ô1°4Ñ8Ô8Ð8å	˜S¨eÐ	4Ñ	4Ô	4€BÝ	Œ•k¨Ð	-Ñ	-Ô	-ð -ð -Ø
�Š�q˜! a¨ VˆÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -å	Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åŒ8�g˜wÐ'¨!¨Q¨Ð0Ñ1Ô1€DÝ˜b×.Ò.¨qÑ1Ô1°4Ñ8Ô8Ð8å	˜S¨eÐ	4Ñ	4Ô	4€BÝ	Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åŒ8�c˜3�Z # s Ð,Ñ-Ô-€DÝ˜b×.Ò.¨qÑ1Ô1°4Ñ8Ô8Ð8ð 	ˆ�aÑÔ€AÝ	˜3¨EÐ	2Ñ	2Ô	2€BÝ	Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åŒ8�a˜�V˜a ˜VÐ$Ñ%Ô%€DÝ˜b×.Ò.¨qÑ1Ô1°4Ñ8Ô8Ð8å	˜S¨eÐ	4Ñ	4Ô	4€BÝ	Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø
�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åŒ8�g˜wÐ'¨!¨Q¨Ð0Ñ1Ô1€DÝ˜b×.Ò.¨qÑ1Ô1°4Ñ8Ô8Ð8Ð8Ð8s~   ÁBÂB
ÂB
Â,CÃCÃCÅE*Å*E.Å1E.ÆF3Æ3F7Æ:F7È'I
É
IÉIË	K,Ë,K0Ë3K0Í NÎNÎ
Nc                  ó†  — t          j        ddgddgg¦  «        } t          j        ddg¦  «        }t          j        ddg¦  «        }t          |d¬¦  «        }|                     | |ddg¬¦  «         t          j        ddgdd	gg¦  «        }t	          |j        t          j        |¦  «        ¦  «         t          j        d
dgddgg¦  «        }t	          |                     | ¦  «        |¦  «         t          j        ddg¦  «        }t          |d¬¦  «        }d}t          j	        t          |¬¦  «        5  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        |dz  dg¦  «        }t          |d¬¦  «        }|                     | |ddg¬¦  «         t	          |                     ¦   «         |dgd¬¦  «         t          j        g d¢¦  «        }t          |d¬¦  «        }d}t          j	        t          |¬¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r   r   Fr@  r5   rÀ   rÉ   g333333ã?grÇqÇá?r$  g¼œ‚—Sà?gÖ‡ÆúÐXß?r€   rk   z+All values in alpha must be greater than 0.r3   r™   é   )Údecimal)r€   ra   g      @z7When alpha is an array, it should contains `n_features`)r   r-   r   rA   r   rÜ   r=   r;   r>   r?   r@   r7   Ú_check_alpha)	r8   r9   r  rD  r  rE  Úm_nbÚexpected_msgÚ	ALPHA_MINs	            r%   Útest_alpha_vectorrN  X  s¿  € Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"€AÝ
Œ�!�Q�ÑÔ€Aõ ŒH�a˜�VÑÔ€EÝ	˜U°Ð	6Ñ	6Ô	6€BØ‡N‚N�1�a ! Q €NÑ(Ô(Ð(õ ”8˜e U˜^¨e°U¨^Ð<Ñ=Ô=€LÝ˜bÔ2µB´F¸<Ñ4HÔ4HÑIÔIÐIõ Œ8�e˜U�^ g¨wÐ%7Ð8Ñ9Ô9€DÝ˜b×.Ò.¨qÑ1Ô1°4Ñ8Ô8Ð8õ ŒH�c˜4�[Ñ!Ô!€EÝ˜u°%Ð8Ñ8Ô8€DØ@€LÝ	Œ•z¨Ð	6Ñ	6Ô	6ð ð Ø�Š��A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð €IÝŒH�i !‘m SÐ)Ñ*Ô*€EÝ˜u°%Ð8Ñ8Ô8€DØ×Ò�Q˜ A q 6ÐÑ*Ô*Ð*Ý˜d×/Ò/Ñ1Ô1°I¸sÐ3CÈRÐPÑPÔPÐPõ ŒH�_�_�_Ñ%Ô%€EÝ˜u°%Ð8Ñ8Ô8€DØL€LÝ	Œ•z¨Ð	6Ñ	6Ô	6ð ð Ø�Š��A‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   Ä4EÅEÅEÈH6È6H:È=H:c                  óÈ  — t          d¬¦  «        \  } }t          j        |dk    |dk    ¦  «        }| |         ||         }}t          t	          d¬¦  «        | |d¬¦  «        }|                     ¦   «         dk    sJ ‚t          t	          d¬¦  «        ||d¬¦  «        }|                     ¦   «         d	k    sJ ‚t          t          d¬¦  «        | d
k    |d¬¦  «        }|                     ¦   «         dk    sJ ‚t          t          d¬¦  «        |d
k    |d¬¦  «        }|                     ¦   «         dk    sJ ‚t          t          ¦   «         | |d¬¦  «        }|                     ¦   «         dk    sJ ‚t          t          d¬¦  «        | |d¬¦  «        }|                     ¦   «         dk    sJ ‚t          t          ¦   «         ||d¬¦  «        }|                     ¦   «         dk    sJ ‚d S )NT)Ú
return_X_yr   r2   r   r  )Úcvg…ëQ¸…ë?g®Gázî?rr   g�Âõ(\�ê?gq=
×£pí?g¤p=
×£è?r%  )Úvar_smoothingg{®Gázì?)r   r   Ú
logical_orr   r   rˆ   r   r   )r8   r9   Ú
binary_3v8ÚX_3v8Úy_3v8Úscoress         r%   Útest_check_accuracy_on_digitsrX  €  sÞ  € õ  $Ð'Ñ'Ô'�D€A€qÝ”˜q Ašv q¨A¢vÑ.Ô.€JØ�Z”= ! J¤-ˆ5€Eõ �]°Ð4Ñ4Ô4°a¸¸rÐBÑBÔB€FØ�;Š;‰=Œ=˜4ÒÐÐÐå�]°Ð4Ñ4Ô4°e¸UÀrÐJÑJÔJ€FØ�;Š;‰=Œ=˜4ÒÐÐÐõ �[¨rÐ2Ñ2Ô2°A¸²E¸1ÀÐDÑDÔD€FØ�;Š;‰=Œ=˜4ÒÐÐÐå�[¨rÐ2Ñ2Ô2°E¸A²I¸uÈÐLÑLÔL€FØ�;Š;‰=Œ=˜4ÒÐÐÐõ �Z™\œ\¨1¨a°BÐ7Ñ7Ô7€FØ�;Š;‰=Œ=˜4ÒÐÐÐå�Z°cÐ:Ñ:Ô:¸A¸qÀRÐHÑHÔH€FØ�;Š;‰=Œ=˜4ÒÐÐÐå�Z™\œ\¨5°%¸BÐ?Ñ?Ô?€FØ�;Š;‰=Œ=˜4ÒÐÐÐÐÐr'   c                  ó¶  — d} t          dd¬¦  «        }|                     ¦   «         dk    sJ ‚t          j        ddg¦  «        }t          |d¬¦  «        }|j        d         |_        t          |                     ¦   «         |¦  «         d| z  }t          dd¬¦  «        }t          j        t          |¬	¦  «        5  |                     ¦   «         | k    sJ ‚	 d
d
d
¦  «         n# 1 swxY w Y   t          dd¬¦  «        }t          j        t          |¬	¦  «        5  |                     ¦   «         | k    sJ ‚	 d
d
d
¦  «         n# 1 swxY w Y   t          |d¬¦  «        }|j        d         |_        t          j        t          |¬	¦  «        5  t          |                     ¦   «         t          j        | dg¦  «        ¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )zÂThe provided value for alpha must only be
    used if alpha < _ALPHA_MIN and force_alpha is True.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/10772
    r™   r   Tr@  rv   r€   zCalpha too small will result in numeric errors, setting alpha = %.1eFr3   N)
r   rJ  r   r-   rV   Ún_features_in_r   r>   rB  rC  )Ú
_ALPHA_MINÚbÚalphasrf   s       r%   Útest_check_alphar^  ¡  s¦  € ð €JÝ˜!¨Ð.Ñ.Ô.€AØ�>Š>ÑÔ˜qÒ Ð Ð Ð åŒX�s˜C�jÑ!Ô!€Få˜&¨dÐ3Ñ3Ô3€Aà”| A”€AÔÝ�q—~’~Ñ'Ô'¨Ñ0Ô0Ð0ð 	NØ
ñ	ð õ 	˜!¨Ð/Ñ/Ô/€AÝ	Œ•k¨Ð	-Ñ	-Ô	-ð .ð .Ø�~Š~ÑÔ :Ò-Ð-Ð-Ð-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ 	˜!¨Ð/Ñ/Ô/€AÝ	Œ•k¨Ð	-Ñ	-Ô	-ð .ð .Ø�~Š~ÑÔ :Ò-Ð-Ð-Ð-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ 	˜&¨eÐ4Ñ4Ô4€Aà”| A”€AÔÝ	Œ•k¨Ð	-Ñ	-Ô	-ð Jð JÝ˜1Ÿ>š>Ñ+Ô+­R¬X°zÀ3Ð6GÑ-HÔ-HÑIÔIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jð Jð Js6   Â:C"Ã"C&Ã)C&ÄEÅEÅEÆ
7GÇGÇGÚ	Estimatorc                 ó0  — t          |¦  «        \  }} | ¦   «                              ||¦  «        }|                     |¦  «        }t          |d¬¦  «        }|t	          j        |¦  «        j        z
  }t          |                     |¦  «        |¦  «         d S )Nr   r¥   )	r0   r7   Úpredict_joint_log_probar   r   Ú
atleast_2dr  r   r<   )r_  r!   r.   r/   ÚestÚjllÚ
log_prob_xÚlog_prob_x_ys           r%   Útest_predict_joint_probarg  Æ  s�   € å1Ð2DÑEÔE�F€BˆØ
ˆ)‰+Œ+�/Š/˜"˜bÑ
!Ô
!€CØ
×
%Ò
% bÑ
)Ô
)€CÝ˜3 QÐ'Ñ'Ô'€JØ�œ zÑ2Ô2Ô4Ñ4€LÝ�C×)Ò)¨"Ñ-Ô-¨|Ñ<Ô<Ð<Ð<Ð<r'   )Hr  r÷   Únumpyr   r>   Úscipy.specialr   Úsklearn.datasetsr   r   Úsklearn.model_selectionr   r   Úsklearn.naive_bayesr   r	   r
   r   r   Úsklearn.utils._testingr   r   r   r   Úsklearn.utils.fixesr   ÚDISCRETE_NAIVE_BAYES_CLASSESÚALL_NAIVE_BAYES_CLASSESrf   ÚmarkÚfilterwarningsÚ
pytestmarkr-   r8   r9   r&   r0   rF   rK   r_   rg   rm   rz   r~   r�   rƒ   r�   r’   rž   Úparametrizer¢   r®   r´   r¼   rÃ   rÇ   rÒ   r×   rè   rô   rû   r
  r  r"  r.  r<  r>  rF  rN  rX  r^  rg  r•   r'   r%   ú<module>ru     sc  ðØ 	€	€	€	Ø €€€à Ð Ð Ð Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ Eðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð /Ð .Ð .Ð .Ð .Ð .à +¨]¸LÈ-ÐXÐ Ø6¸*¸ÑEÐ à7€ØŒ[×'Ò'Ð(E°#Ð(EÐ(EÐ(EÑFÔF€
ð €B„Hˆr�2ˆh˜˜R˜ 2 r (¨Q°¨F°Q¸°F¸QÀ¸FÐCÑDÔD€Ø€B„HÐÐÐÑ Ô €ðð ð ðð ð ð7ð 7ð 7ð,9ð 9ð 9ð$>ð $>ð $>ðNð ð ðFð Fð Fðð ð ð.ð ð ðð ð ð8ð 8ð 8ð	ð 	ð 	ðFð Fð Fð-ð -ð -ð „×ÒÐ-Ð/KÑLÔLðð ñ MÔLðð „×ÒÐ-Ð/KÑLÔLð.Eð .Eñ MÔLð.Eðb „×Ò˜Ð'>Ñ?Ô?ð7ð 7ñ @Ô?ð7ð$Eð Eð EðB „×ÒÐ-Ð/KÑLÔLð;ð ;ñ MÔLð;ð „×ÒÐ-Ð/KÑLÔLð?ð ?ñ MÔLð?ð$ „×ÒÐ-Ð/KÑLÔLð
ð 
ñ MÔLð
ð( „×ÒÐ-Ð/KÑLÔLð5ð 5ñ MÔLð5ð, „×ÒÐ-Ð/KÑLÔLØ„×ÒÐ*¨U°D¨MÑ:Ô:Ø„×ÒÐ2°U¸D°MÑBÔBð/7ð /7ñ CÔBñ ;Ô:ñ MÔLð/7ðd „×Ò˜Ð!4Ñ5Ô5Ø„×Ò˜¨.Ñ9Ô9ð4Cð 4Cñ :Ô9ñ 6Ô5ð4Cðn&ð &ð &ð:,Hð ,Hð ,Hð^Dð Dð Dð.DEð DEð DEðN4@ð 4@ð 4@ðn „×ÒØJð ØˆBŒH�i�i�i   Ð+Ñ,Ô,ØˆBŒH�i�i�i   Ð+Ñ,Ô,ØˆBŒH�q˜!�f�XÑÔØˆBŒH�a˜�VÑÔð	
ð �ˆFØˆBŒH�i�i�i   Ð+Ñ,Ô,ØˆBŒH�l�l�l L L LÐ1Ñ2Ô2ØˆBŒH�q˜!�f�XÑÔØˆBŒH�a˜�VÑÔð	
ð Ø�”˜1˜a˜& 1 a &Ð)Ñ*Ô*Ø�”˜1˜a˜& 1 a &Ð)Ñ*Ô*Ø�”˜1˜a˜&˜Ñ"Ô"Ø�”˜!˜Q˜Ñ Ô ðð'ñô ð>=ð =ñ?ô ð>=ð" „×ÒØàˆaˆ&�1�a�&Ð	Ð?Ð@ðñô ðð ñô ðð „×Ò˜¨.Ñ9Ô9ð'9ð '9ñ :Ô9ð'9ðT%ð %ð %ðP ð  ð  ðB"Jð "Jð "JðJ „×Ò˜Ð&=Ñ>Ô>ð=ð =ñ ?Ô>ð=ð =ð =r'   