§
    fŠtjG  ã                   óh   — d dl Z d dl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  G d„ d	¦  «        ZdS )
é    N)Úassert_equalÚassert_allcloseé   )Únchypergeom_fisherÚ	hypergeom)Ú
odds_ratioé   )Údatac            	       ó–  — e Zd Zej                             de¦  «        d„ ¦   «         Zej                             dddgddggddgddggddgddggddgddggg¦  «        d„ ¦   «         Zej                             dg d	¢g d
¢g¦  «        d„ ¦   «         Z	ej        j
        ej                             dg d¢¦  «        d„ ¦   «         ¦   «         Zej                             dddg¦  «        ej                             dddg d¢g¦  «        d„ ¦   «         ¦   «         Zd„ Zd„ Zd„ Zd„ Zej                             dddg¦  «        d„ ¦   «         ZdS ) ÚTestOddsRatiozparameters, rresultc                 ó¦  — |j                              dd¦  «        }t          |j        ¦  «        }|j        dk     rd}d}nd}d}t          |j        |j        |¬¦  «         |                     |j        |¦  «        }t          |j	        |j
        f|j        |¬¦  «         |j        }t          j        |j        ¦  «        }	|	                     ¦   «         }
|	d	                              ¦   «         }|	d d …d	f                              ¦   «         }|d	k    rt          j        |
||¦  «        d	         }nD|t          j        k    rt          j        |
||¦  «        d
         }nt%          j        |
|||¦  «        }t          ||	d         d¬¦  «         d
|j        z
  }|dk    r›|j	        d	k    r;t%          j        |	d         d
z
  |
|||j	        ¦  «        }t          ||dz  d¬¦  «         t          j        |j
        ¦  «        r:t%          j        |	d         |
|||j
        ¦  «        }t          ||dz  d¬¦  «         d S d S |dk    rRt          j        |j
        ¦  «        r7t%          j        |	d         |
|||j
        ¦  «        }t          ||d¬¦  «         d S d S |j	        d	k    r:t%          j        |	d         d
z
  |
|||j	        ¦  «        }t          ||d¬¦  «         d S d S )Nú.ú-i�  gü©ñÒMb@?g{®Gáz”?gš™™™™™©?gš™™™™™¹?©Úrtolr   r	   )r   r   g‚vIhÂ%<=ú	two-sidedr   g•dyáý¥=Úless)ÚalternativeÚreplacer   ÚtableÚ	statisticr   Úconditional_odds_ratioÚconfidence_intervalÚconfidence_levelÚlowÚhighÚconditional_odds_ratio_ciÚnpÚarrayÚsumr   ÚsupportÚinfr   ÚmeanÚsfÚisfiniteÚcdf)ÚselfÚ
parametersÚrresultr   ÚresultÚor_rtolÚci_rtolÚciÚcorr   ÚtotalÚngoodÚnsampleÚ	nchg_meanÚalphar$   r&   s                    ú_/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/stats/tests/test_odds_ratio.pyÚtest_results_from_rz!TestOddsRatio.test_results_from_r   s  € à Ô,×4Ò4°S¸#Ñ>Ô>ˆÝ˜JÔ,Ñ-Ô-ˆàÔ˜cÒ!Ð!ØˆGØˆGˆGàˆGØˆGÝ˜Ô(ØÔ6¸Wð	Fñ 	Fô 	Fð 	Fà×'Ò'¨
Ô(CØ(3ñ5ô 5ˆå˜œ ¤Ð)¨7Ô+LØ$ð	&ñ 	&ô 	&ð 	&ð ÔˆÝ”˜Ô)Ñ*Ô*ˆØ—	’	‘”ˆØ�a”—’‘”ˆØ˜˜˜˜1˜”+—/’/Ñ#Ô#ˆð �!Š8ˆ8Ý!Ô)¨%°¸Ñ@Ô@ÀÔCˆIˆIØ•B”FŠ]ˆ]Ý!Ô)¨%°¸Ñ@Ô@ÀÔCˆIˆIå*Ô/°°u¸gÀsÑKÔKˆIÝ˜	 5¨¤;°UÐ;Ñ;Ô;Ð;ð �JÔ/Ñ/ˆØ˜+Ò%Ð%ØŒv˜ŠzˆzÝ'Ô*¨5°¬;¸©?Ø+0°%¸À"Ä&ñJô J�å  E¨!¡G°%Ð8Ñ8Ô8Ð8ÝŒ{˜2œ7Ñ#Ô#ð :Ý(Ô,¨U°4¬[Ø-2°E¸7ÀBÄGñMô M�å  U¨1¡W°5Ð9Ñ9Ô9Ð9Ð9Ð9ð:ð :ð ˜FÒ"Ð"ÝŒ{˜2œ7Ñ#Ô#ð 8Ý(Ô,¨U°4¬[Ø-2°E¸7ÀBÄGñMô M�å  U°Ð7Ñ7Ô7Ð7Ð7Ð7ð8ð 8ð Œv˜ŠzˆzÝ'Ô*¨5°¬;¸©?Ø+0°%¸À"Ä&ñJô J�å  E°Ð6Ñ6Ô6Ð6Ð6Ð6ð ˆzó    r   r   é   é
   c                 óÚ   — t          |¦  «        }t          |j        t          j        ¦  «         |                     ¦   «         }t          |j        |j        fdt          j        f¦  «         d S )Nr   )	r   r   r   r   Únanr   r   r   r"   )r'   r   r*   r-   s       r4   Útest_row_or_col_zeroz"TestOddsRatio.test_row_or_col_zeroJ   s\   € õ ˜EÑ"Ô"ˆÝ�VÔ%¥r¤vÑ.Ô.Ð.Ø×'Ò'Ñ)Ô)ˆÝ�b”f˜bœgÐ&¨­B¬F¨Ñ4Ô4Ð4Ð4Ð4r6   Úcase)gffffffî?r   g°áŽÜ?;ß?g±¨ˆÓI@)gÍÌÌÌÌÌì?r   g'*Àâá?gUN{JÎi@c                 óà   — |\  }}}}ddgddgg}t          |d¬¦  «        }t          |j        dd¬	¦  «         |                     ||¦  «        }t          |j        |j        g||gd¬	¦  «         d S )
Nr8   é   é)   é]   Úsample©Úkindg;:®Fv%ò?g�íµ ÷Æ°>r   )r   r   r   r   r   r   )	r'   r<   r   r   Úref_lowÚref_highr   r*   r-   s	            r4   Útest_sample_odds_ratio_ciz'TestOddsRatio.test_sample_odds_ratio_ciV   s�   € ð <@Ñ8Ð˜+ w°Ø�b�˜B ˜8Ð$ˆÝ˜E¨Ð1Ñ1Ô1ˆÝ˜Ô(¨(¸Ð>Ñ>Ô>Ð>Ø×'Ò'Ð(8¸+ÑFÔFˆÝ˜œ ¤Ð)¨G°XÐ+>ÀTÐJÑJÔJÐJÐJÐJr6   r   )r   Úgreaterr   c                 ó  — ddgddgg}t          |d¬¦  «        }t          |d¬¦  «        }t          |j        |j        d¬	¦  «         t          |                     |¬
¦  «        |                     |¬
¦  «        d¬	¦  «         d S )Niè  iÐ  i  iT$  rA   rB   Úconditionalgñhãˆµøä>)Úatol©r   gü©ñÒMb`?)r   r   r   r   )r'   r   r   ÚresÚrefs        r4   Ú#test_sample_odds_ratio_one_sided_ciz1TestOddsRatio.test_sample_odds_ratio_one_sided_cil   sž   € ð
 ˜�  d˜|Ð,ˆÝ˜ XÐ.Ñ.Ô.ˆÝ˜ ]Ð3Ñ3Ô3ˆÝ˜œ s¤}¸4Ð@Ñ@Ô@Ð@Ý˜×/Ò/¸KÐ/ÑHÔHØ×/Ò/¸KÐ/ÑHÔHØ!ð	#ñ 	#ô 	#ð 	#ð 	#ð 	#r6   rC   rA   rI   Ú	bad_tableé{   Úfoo)r8   é   é   c                 ó�   — t          j        t          d¬¦  «        5  t          ||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzInvalid shape©ÚmatchrB   ©ÚpytestÚraisesÚ
ValueErrorr   )r'   rC   rO   s      r4   Útest_invalid_table_shapez&TestOddsRatio.test_invalid_table_shapey   s�   € õ Œ]�:¨_Ð=Ñ=Ô=ð 	-ð 	-Ý�y tÐ,Ñ,Ô,Ð,ð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s   œ;»?Á?c                 ó˜   — t          j        t          d¬¦  «        5  t          ddgddgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzmust be an array of integersrU   g      ð?g333333@g      @gÍÌÌÌÌÌ#@rW   ©r'   s    r4   Útest_invalid_table_typez%TestOddsRatio.test_invalid_table_type   s—   € ÝŒ]�:Ð-KÐLÑLÔLð 	1ð 	1Ý˜˜c˜
 S¨# JÐ/Ñ0Ô0Ð0ð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ó   œ?¿AÁAc                 ó˜   — t          j        t          d¬¦  «        5  t          ddgddgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nzmust be nonnegativerU   r	   r   é   éüÿÿÿrW   r]   s    r4   Útest_negative_table_valuesz(TestOddsRatio.test_negative_table_valuesƒ   s—   € ÝŒ]�:Ð-BÐCÑCÔCð 	*ð 	*Ý˜˜A˜  B Ð(Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*r_   c                 óœ   — t          j        t          d¬¦  «        5  t          ddgddggd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nz`kind` must berU   r8   r>   é   é   ÚmagnetoreluctancerB   rW   r]   s    r4   Útest_invalid_kindzTestOddsRatio.test_invalid_kind‡   s±   € ÝŒ]�:Ð-=Ð>Ñ>Ô>ð 	Gð 	GÝ˜˜R˜ 2 r (Ð+Ð2EÐFÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gs   œAÁAÁAc                 óÄ   — t          ddgddgg¦  «        }t          j        t          d¬¦  «        5  |                     d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr7   r8   r   é    z`alternative` must berU   ÚdeplenerationrK   ©r   rX   rY   rZ   r   )r'   r*   s     r4   Útest_invalid_alternativez&TestOddsRatio.test_invalid_alternative‹   sÁ   € Ý˜a ˜W q¨" gÐ.Ñ/Ô/ˆÝŒ]�:Ð-DÐEÑEÔEð 	Dð 	DØ×&Ò&°?Ð&ÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dó   ±AÁAÁAÚlevelg      à¿g      ø?c                 óÄ   — t          ddgddgg¦  «        }t          j        t          d¬¦  «        5  |                     |¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr7   r8   r   rj   zmust be between 0 and 1rU   )r   rl   )r'   ro   r*   s      r4   Útest_invalid_confidence_levelz+TestOddsRatio.test_invalid_confidence_level�   s­   € å˜a ˜W q¨" gÐ.Ñ/Ô/ˆÝŒ]�:Ð-FÐGÑGÔGð 	?ð 	?Ø×&Ò&¸Ð&Ñ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?rn   N)Ú__name__Ú
__module__Ú__qualname__rX   ÚmarkÚparametrizer
   r5   r;   rF   ÚslowrN   r[   r^   rc   rh   rm   rq   © r6   r4   r   r   	   s!  € € € € € à„[×ÒÐ2°DÑ9Ô9ð<7ð <7ñ :Ô9ð<7ð| „[×Ò˜WØ
ˆQˆ�!�R�ÐØ
ˆRˆ�1�a�&ÐØ
ˆQˆ�!�R�ÐØ
ˆQˆ�"�a�Ðð	'ñ ô ð5ð 5ñô ð5ð „[×Ò˜VØFÐFÐFØFÐFÐFðHñIô IðKð KñIô IðKð& „[ÔØ„[×Ò˜]Ð,LÐ,LÐ,LÑMÔMð	#ð 	#ñ NÔMñ Ôð	#ð „[×Ò˜V h°Ð%>Ñ?Ô?Ø„[×Ò˜[¨3°°|°|°|Ð*DÑEÔEð-ð -ñ FÔEñ @Ô?ð-ð1ð 1ð 1ð*ð *ð *ðGð Gð GðDð Dð Dð
 „[×Ò˜W t¨S kÑ2Ô2ð?ð ?ñ 3Ô2ð?ð ?ð ?r6   r   )rX   Únumpyr   Únumpy.testingr   r   Ú_discrete_distnsr   r   Úscipy.stats._odds_ratior   Ú data.fisher_exact_results_from_rr
   r   rx   r6   r4   ú<module>r~      sª   ðØ €€€Ø Ð Ð Ð Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø .Ð .Ð .Ð .Ð .Ð .Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðK?ð K?ð K?ð K?ð K?ñ K?ô K?ð K?ð K?ð K?r6   