
    (phG                     `    S SK r S SKrS SKJrJr  SSKJrJr  S SK	J
r
  SSKJr   " S S	5      rg)
    N)assert_equalassert_allclose   )nchypergeom_fisher	hypergeom)
odds_ratio   )datac            	          \ rS rSr\R
                  R                  S\5      S 5       r\R
                  R                  SSS/SS//SS/SS//SS/SS//SS/SS///5      S 5       r	\R
                  R                  S	/ S
Q/ SQ/5      S 5       r
\R
                  R                  \R
                  R                  S/ SQ5      S 5       5       r\R
                  R                  SSS/5      \R
                  R                  SSS/ SQ/5      S 5       5       rS rS rS rS r\R
                  R                  SSS/5      S 5       rS rg!)"TestOddsRatio	   zparameters, rresultc                    UR                   R                  SS5      n[        UR                  5      nUR                  S:  a  SnSnOSnSn[        UR                  UR                  US9  UR                  UR                  U5      n[        UR                  UR                  4UR                  US9  UR                  n[        R                  " UR                  5      n	U	R                  5       n
U	S	   R                  5       nU	S S 2S	4   R                  5       nUS	:X  a  [        R                   " XU5      S	   nOFU[        R"                  :X  a  [        R                   " XU5      S
   nO[$        R&                  " XX5      n[        XS   SS9  S
UR                  -
  nUS:X  a  UR                  S	:  a5  [$        R(                  " U	S   S
-
  XXR                  5      n[        XS-  SS9  [        R*                  " UR                  5      (       a4  [$        R,                  " U	S   XXR                  5      n[        UUS-  SS9  g g US:X  aW  [        R*                  " UR                  5      (       a1  [$        R,                  " U	S   XXR                  5      n[        UUSS9  g g UR                  S	:  a3  [$        R(                  " U	S   S
-
  XXR                  5      n[        XSS9  g g )N.-i  gMb@?g{Gz?g?g?rtolr   r	   )r   r   gvIh%<=	two-sidedr   gdy=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                    T/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_odds_ratio.pytest_results_from_r!TestOddsRatio.test_results_from_r   s    ,,44S#>J,,-c!GGGG((66W	F''
(C(C(35)7+L+L$	& ))*		a1+//# !8!))%@CIBFF]!))%@CI*//gKI	;U; J///+%vvz'**5;?+0&&J!G%8{{277##(,,U4[-27GGMU1W59 $ F"{{277##(,,U4[-27GGMU7 $ vvz'**5;?+0&&J6     r   r      
   c                     [        U5      n[        UR                  [        R                  5        UR                  5       n[        UR                  UR                  4S[        R                  45        g )Nr   )	r   r   r   r   nanr   r   r   r#   )r(   r   r+   r.   s       r5   test_row_or_col_zero"TestOddsRatio.test_row_or_col_zeroJ   sO     E"V%%rvv.'')bffbgg&BFF4r8   case)gffffff?r   g?;?gI@)g?r   g'*?gUN{Ji@c                     Uu  p#pESS/SS//n[        USS9n[        UR                  SSS	9  UR                  X#5      n[        UR                  UR
                  /XE/SS	9  g )
Nr:      )   ]   samplekindg;:Fv%?gư>r   )r   r   r   r   r   r   )	r(   r?   r   r   ref_lowref_highr   r+   r.   s	            r5   test_sample_odds_ratio_ci'TestOddsRatio.test_sample_odds_ratio_ciV   sm     <@8wbB8$E1(((>''(8F)G+>TJr8   r   )r   greaterr   c                     SS/SS//n[        USS9n[        USS9n[        UR                  UR                  SS	9  [        UR                  US
9UR                  US
9SS	9  g )Ni  i  i  iT$  rD   rE   conditionalgh㈵>)atolr   gMb`?)r   r   r   r   )r(   r   r   resrefs        r5   #test_sample_odds_ratio_one_sided_ci1TestOddsRatio.test_sample_odds_ratio_one_sided_cil   sn    
 d|,X.]3s}}4@//K/H//K/H!	#r8   rF   rD   rM   	bad_table{   foo)r:         c                 |    [         R                  " [        SS9   [        X!S9  S S S 5        g ! , (       d  f       g = f)NzInvalid shapematchrE   pytestraises
ValueErrorr   )r(   rF   rT   s      r5   test_invalid_table_shape&TestOddsRatio.test_invalid_table_shapey   s&     ]]:_=y, >==s   
-
;c                     [         R                  " [        SS9   [        SS/SS//5        S S S 5        g ! , (       d  f       g = f)Nzmust be an array of integersrZ   g      ?g333333@g      @g#@r\   r(   s    r5   test_invalid_table_type%TestOddsRatio.test_invalid_table_type   s3    ]]:-KLc
S#J/0 MLL	   5
Ac                     [         R                  " [        SS9   [        SS/SS//5        S S S 5        g ! , (       d  f       g = f)Nzmust be nonnegativerZ   r	   r      r\   rc   s    r5   test_negative_table_values(TestOddsRatio.test_negative_table_values   s3    ]]:-BCAB() DCCrf   c                     [         R                  " [        SS9   [        SS/SS//SS9  S S S 5        g ! , (       d  f       g = f)	Nz`kind` must berZ   r:   rA         magnetoreluctancerE   r\   rc   s    r5   test_invalid_kindTestOddsRatio.test_invalid_kind   s5    ]]:-=>R2r(+2EF ?>>s	   4
Ac                     [        SS/SS//5      n[        R                  " [        SS9   UR	                  SS9  S S S 5        g ! , (       d  f       g = f)	Nr9   r:   r       z`alternative` must berZ   deplenerationrO   r   r]   r^   r_   r   )r(   r+   s     r5   test_invalid_alternative&TestOddsRatio.test_invalid_alternative   sF    aWq"g./]]:-DE&&?&C FEE   A
Alevelg      g      ?c                     [        SS/SS//5      n[        R                  " [        SS9   UR	                  US9  S S S 5        g ! , (       d  f       g = f)Nr9   r:   r   rs   zmust be between 0 and 1rZ   )r   ru   )r(   ry   r+   s      r5   test_invalid_confidence_level+TestOddsRatio.test_invalid_confidence_level   sF    aWq"g./]]:-FG&&&> HGGrx    N)__name__
__module____qualname____firstlineno__r]   markparametrizer
   r6   r=   rI   slowrR   r`   rd   rj   rp   rv   r{   __static_attributes__r}   r8   r5   r   r   	   s   [[2D9<7 :<7| [[W
Q!R
R1a&
Q!R
Q"a	' 55 [[VFFHIKIK& [[[[],LM	# N 	# [[Vh%>?[[[3|*DE- F @-1*GD
 [[WtSk2? 3?r8   r   )r]   numpyr   numpy.testingr   r   _discrete_distnsr   r   scipy.stats._odds_ratior    data.fisher_exact_results_from_rr
   r   r}   r8   r5   <module>r      s#      7 < . 2K? K?r8   