Ë
    âQ(hG  ã                   ó`   — 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y)
é    N)Úassert_equalÚassert_allcloseé   )Únchypergeom_fisherÚ	hypergeom)Ú
odds_ratioé   )Údatac            	       ó†  — e Zd Zej                  j                  de«      d„ «       Zej                  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                  j                  dg d	¢g d
¢g«      d„ «       Z	ej                  j                  ej                  j                  dg d¢«      d„ «       «       Zej                  j                  dddg«      ej                  j                  dddg d¢g«      d„ «       «       Zd„ Zd„ Zd„ Zd„ Zej                  j                  dddg«      d„ «       Zy) ÚTestOddsRatiozparameters, rresultc                 óÒ  — |j                   j                  dd«      }t        |j                  «      }|j                  dk  rd}d}nd}d}t        |j                  |j                  |¬«       |j                  |j                  |«      }t        |j                  |j                  f|j                  |¬«       |j                  }t        j                  |j                  «      }	|	j                  «       }
|	d	   j                  «       }|	d d …d	f   j                  «       }|d	k(  rt        j                   |
||«      d	   }nF|t        j"                  k(  rt        j                   |
||«      d
   }nt%        j&                  |
|||«      }t        ||	d   d¬«       d
|j                  z
  }|dk(  r¡|j                  d	kD  r:t%        j(                  |	d   d
z
  |
|||j                  «      }t        ||dz  d¬«       t        j*                  |j                  «      r8t%        j,                  |	d   |
|||j                  «      }t        ||dz  d¬«       y y |dk(  rUt        j*                  |j                  «      r5t%        j,                  |	d   |
|||j                  «      }t        ||d¬«       y y |j                  d	kD  r8t%        j(                  |	d   d
z
  |
|||j                  «      }t        ||d¬«       y y )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/skyplay_api_hub/venv/lib/python3.12/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Ü˜×(Ñ(Ø×6Ñ6¸Wõ	Fà×'Ñ'¨
×(CÑ(CØ(3ó5ˆä˜Ÿ™ §¡Ð)¨7×+LÑ+LØ$õ	&ð ×ÑˆÜ—‘˜×)Ñ)Ó*ˆØ—	‘	“ˆØ�a‘—‘“ˆØš˜1˜‘+—/‘/Ó#ˆð �!Š8Ü!×)Ñ)¨%°¸Ó@ÀÑC‰IØ”B—F‘FŠ]Ü!×)Ñ)¨%°¸Ó@ÀÑC‰Iä*×/Ñ/°°u¸gÀsÓKˆIÜ˜	 5¨¡;°UÕ;ð �J×/Ñ/Ñ/ˆØ˜+Ò%Ø�v‰v˜ŠzÜ'×*Ñ*¨5°©;¸©?Ø+0°%¸À"Ç&Á&óJ�ä  E¨!¡G°%Õ8Ü�{‰{˜2Ÿ7™7Ô#Ü(×,Ñ,¨U°4©[Ø-2°E¸7ÀBÇGÁGóM�ä  U¨1¡W°5Ö9ð $ð ˜FÒ"Ü�{‰{˜2Ÿ7™7Ô#Ü(×,Ñ,¨U°4©[Ø-2°E¸7ÀBÇGÁGóM�ä  U°Ö7ð $ð �v‰v˜ŠzÜ'×*Ñ*¨5°©;¸©?Ø+0°%¸À"Ç&Á&óJ�ä  E°Ö6ð ó    r   r   é   é
   c                 óæ   — t        |«      }t        |j                  t        j                  «       |j                  «       }t        |j                  |j                  fdt        j                  f«       y )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   sO   € ô ˜EÓ"ˆÜ�V×%Ñ%¤r§v¡vÔ.Ø×'Ñ'Ó)ˆÜ�b—f‘f˜bŸg™gÐ&¨¬B¯F©F¨Õ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¬	«       |j                  ||«      }t        |j                  |j
                  g||gd¬	«       y )
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   su   € ð <@Ñ8Ð˜+ w°Ø�b�˜B ˜8Ð$ˆÜ˜E¨Ô1ˆÜ˜×(Ñ(¨(¸Õ>Ø×'Ñ'Ð(8¸+ÓFˆÜ˜Ÿ™ §¡Ð)¨G°XÐ+>ÀTÖJr6   r   )r   Úgreaterr   c                 óè   — ddgddgg}t        |d¬«      }t        |d¬«      }t        |j                  |j                  d¬	«       t        |j                  |¬
«      |j                  |¬
«      d¬	«       y )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   sn   € ð
 ˜�  d˜|Ð,ˆÜ˜ XÔ.ˆÜ˜ ]Ô3ˆÜ˜Ÿ™ s§}¡}¸4Õ@Ü˜×/Ñ/¸KÐ/ÓHØ×/Ñ/¸KÐ/ÓHØ!ö	#r6   rC   rA   rI   Ú	bad_tableé{   Úfoo)r8   é   é   c                 ó~   — t        j                  t        d¬«      5  t        ||¬«       d d d «       y # 1 sw Y   y xY w)NzInvalid shape©ÚmatchrB   ©ÚpytestÚraisesÚ
ValueErrorr   )r'   rC   rO   s      r4   Útest_invalid_table_shapez&TestOddsRatio.test_invalid_table_shapey   s1   € ô �]‰]œ:¨_Ô=ñ 	-Ü�y tÕ,÷	-÷ 	-ñ 	-ús   œ3³<c                 ó†   — t        j                  t        d¬«      5  t        ddgddgg«       d d d «       y # 1 sw Y   y xY w)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ñ 	1Ü˜˜c˜
 S¨# JÐ/Ô0÷	1÷ 	1ñ 	1úó	   œ7·A c                 ó†   — t        j                  t        d¬«      5  t        ddgddgg«       d d d «       y # 1 sw Y   y xY w)Nzmust be nonnegativerU   r	   r   é   éüÿÿÿrW   r]   s    r4   Útest_negative_table_valuesz(TestOddsRatio.test_negative_table_valuesƒ   s;   € Ü�]‰]œ:Ð-BÔCñ 	*Ü˜˜A˜  B Ð(Ô)÷	*÷ 	*ñ 	*úr_   c                 óŠ   — t        j                  t        d¬«      5  t        ddgddggd¬«       d d d «       y # 1 sw Y   y xY w)	Nz`kind` must berU   r8   r>   é   é   ÚmagnetoreluctancerB   rW   r]   s    r4   Útest_invalid_kindzTestOddsRatio.test_invalid_kind‡   sB   € Ü�]‰]œ:Ð-=Ô>ñ 	GÜ˜˜R˜ 2 r (Ð+Ð2EÕF÷	G÷ 	Gñ 	Gús	   œ9¹Ac                 óª   — t        ddgddgg«      }t        j                  t        d¬«      5  |j	                  d¬«       d d d «       y # 1 sw Y   y xY w)	Nr7   r8   r   é    z`alternative` must berU   ÚdeplenerationrK   ©r   rX   rY   rZ   r   )r'   r*   s     r4   Útest_invalid_alternativez&TestOddsRatio.test_invalid_alternative‹   sR   € Ü˜a ˜W q¨" gÐ.Ó/ˆÜ�]‰]œ:Ð-DÔEñ 	DØ×&Ñ&°?Ð&ÔC÷	D÷ 	Dñ 	Dúó   ­A	Á	AÚlevelg      à¿g      ø?c                 óª   — t        ddgddgg«      }t        j                  t        d¬«      5  |j	                  |¬«       d d d «       y # 1 sw Y   y xY w)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�   sN   € ä˜a ˜W q¨" gÐ.Ó/ˆÜ�]‰]œ:Ð-FÔ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ñ<7ó :ð<7ð| ‡[�[×Ñ˜WØ
ˆQˆ�!�R�ÐØ
ˆRˆ�1�a�&ÐØ
ˆQˆ�!�R�ÐØ
ˆQˆ�"�a�Ðð	'ó ñ5óð5ð ‡[�[×Ñ˜VÚFÚFðHóIñKóIðKð& ‡[�[×ÑØ‡[�[×Ñ˜]Ò,LÓMñ	#ó Nó ð	#ð ‡[�[×Ñ˜V h°Ð%>Ó?Ø‡[�[×Ñ˜[¨3°²|Ð*DÓEñ-ó Fó @ð-ò1ò*òGòDð
 ‡[�[×Ñ˜W t¨S kÓ2ñ?ó 3ñ?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ß <Ý .Ý 2÷K?ò K?r6   