
    sg                     D    d dl Z d dlZd dlmZmZ d dlmZ  G d d      Zy)    N)assert_equalassert_array_equal)CensoredDatac                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
ej                  j                  d	ej                  ej                   g      d
        Zd Zd Zy)TestCensoredDatac                    dg}dg}ddg}ddgg}t        ||||      }t        |j                  |       t        |j                  |       t        |j                  |       t        |j
                  |       |j                         }t        |t        j                  |||t        j                  |d      f             y )N   r            )leftrightinterval)axis)
r   r   _uncensored_left_right	_interval	_uncensornpconcatenatemean)self
uncensoredr   r   r   dataudatas          W/var/www/html/venv/lib/python3.12/site-packages/scipy/stats/tests/test_censored_data.py
test_basiczTestCensoredData.test_basic   s    S
sAF8JT%-/T%%z2TZZ&T[[%(T^^X. UBNNJe,.GGH1,E,G H 	I    c                 |   t        j                  g d      }t        j                  g dt              }t        j                  ||      }t        |j                  ||           t        |j                  ||          t        |j                  g        t        |j                  t        j                  d             y N)r   r         @)r   r	   r   )dtyper   r
   )r   arrayboolr   right_censoredr   r   r   r   r   emptyr   xis_censoredr   s       r   test_right_censoredz$TestCensoredData.test_right_censored   s    HH[!hhy5**1k:T%%q+7T[[!K.1TZZ$T^^RXXf%56r   c                 |   t        j                  g d      }t        j                  g dt              }t        j                  ||      }t        |j                  ||           t        |j                  ||          t        |j                  g        t        |j                  t        j                  d             y r!   )r   r%   r&   r   left_censoredr   r   r   r   r   r(   r)   s       r   test_left_censoredz#TestCensoredData.test_left_censored$   s    HH[!hhy5))![9T%%q+7TZZ;0T[["%T^^RXXf%56r   c                 \   g d}g d}t        j                  ||      }t        |j                  t	        j
                  t        t        ||                         |j                  j                  dk(  sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ y )N)      ?       @      @g      @)      ?r"   g      @g      @lowhighr   )r   interval_censoredr   r   r   r%   listzipr   shaper   r   r   abr   s       r   test_interval_censored_basicz-TestCensoredData.test_interval_censored_basic-   s      --!!<4>>288DQO+DE%%---zz4'''{{  D(((r   c                 r   dt         j                   dddddg}ddt         j                  ddd	t         j                  g}t        j                  ||
      }t	        |j
                  ddgdd	gg       t	        |j                  ddg       t	        |j                  dg       t	        |j                  ddg       y )Nr1   g      *r2   r4   g      $@g      g     @r3   g      &@r5   )	r   infr   r9   r   r   r   r   r   r=   s       r   test_interval_censored_mixedz-TestCensoredData.test_interval_censored_mixed6   s    
 266'5#sD$7&"&&#sD"&&9--!!<4>>S#Jt+EF4++c3Z84::x04;;6r   c           
         t        j                  ddgddgddgdt         j                  gdt         j                  gt         j                   dgddgg      }t        |      }t	        |j
                  ddg       t	        |j                  dg       t	        |j                  ddg       t	        |j                  ddgddgg       y )Nr   r	   r
   r   	      r   )	r   r%   rB   r   r   r   r   r   r   )r   r   r   s      r   test_interval_to_other_typesz-TestCensoredData.test_interval_to_other_typesC   s    
 88aVVV[[!vvgq\V% & X.T%%1v.TZZ!%T[[1a&)T^^q!fq!f%56r   c                    t        g g g g       }|j                  j                  dk(  sJ |j                  j                  dk(  sJ |j                  j                  dk(  sJ |j
                  j                  dk(  sJ t        |      dk(  sJ y )N)r   r   r   r   r8   r$   r   )r   r   r<   r   r   r   len)r   r   s     r   test_empty_arraysz"TestCensoredData.test_empty_arraysU   s    r"rJ%%---zz4'''{{  D(((~~##v---4yA~~r   c                    t        j                  t        d      5  t        g dg       d d d        t        j                  t        d      5  t        g dg       d d d        t        j                  t        d      5  t        g dg       d d d        t        j                  t        d      5  t        g dg       d d d        t        j                  t        d	      5  t        d
t        j
                  dg       d d d        t        j                  t        d	      5  t        d
t        j
                  dg       d d d        t        j                  t        d	      5  t        d
t        j
                  dg       d d d        t        j                  t        d	      5  t        d
t        j
                  gddgg       d d d        t        j                  t        d      5  t        d
dgddgt        j                  t        j                  gg       d d d        t        j                  t        d      5  t        d
dgddgg       d d d        y # 1 sw Y   6xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   \xY w# 1 sw Y   (xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzmust be a one-dimensionalmatchr	   r
   r   )r   )r   )r   zmust be a two-dimensionalrG   zmust not contain nanr	   r
   r   z both values must not be infiniterE   z$left value must not exceed the rightr   )pytestraises
ValueErrorr   r   nanrB   r   s    r   test_invalid_constructor_argsz.TestCensoredData.test_invalid_constructor_args]   s/   ]]:-HI 	1YK0	1]]:-HI 	+yk*	+]]:-HI 	,	{+	,]]:-HI 	/9+.	/ ]]:-CD 	4QN3	4]]:-CD 	.q"&&!n-	.]]:-CD 	/2661~.	/]]:-CD 	9Arvv;A"78	9 ]]:!CE 	FAq6Aq6BFFBFF3C"DE	F ]]:!GI 	4Aq6Aq6"23	4 	4-	1 	1	+ 	+	, 	,	/ 	/	4 	4	. 	.	/ 	/	9 	9	F 	F	4 	4sw   I I-I:5J(J)J!*J.+!J;/2KK I*-I7:JJJ!J+.J8;KKKfuncc                    t        j                  t        d      5   |g dgg d       d d d        t        j                  t        d      5   |g dg dg       d d d        t        j                  t        d      5   |ddt        j                  gg d       d d d        t        j                  t        d	      5   |g dg d
       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   y xY w)Nz`x` must be one-dimensionalrM   rO   r   r	   r	   z"`censored` must be one-dimensionalz`x` must not containr	   r
   must have the same lengthr   r   r	   r	   )rP   rQ   rR   r   rS   )r   rV   s     r   %test_invalid_left_right_censored_argsz6TestCensoredData.test_invalid_left_right_censored_argsx   s     ]]:!>@ 	))i(	) ]]:!EG 	)YK(	) ]]:-CD 	,!Q+	,]]:-HI 	*L)	* 	*	) 	)	) 	)	, 	,	* 	*s/   CC# C/ C;C #C,/C8;Dc                 v   t        j                  t        d      5  t        j                  dggddg       d d d        t        j                  t        d      5  t        j                  dgddgg       d d d        t        j                  t        d      5  t        j                  d	d
t
        j                  gg d       d d d        t        j                  t        d      5  t        j                  g dg d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   y xY w)Nz`low` must be a one-dimensionalrM   r      r   r5   z `high` must be a one-dimensionalz`low` must not containr	   r
   rX   rY   rO   rZ   )rP   rQ   rR   r   r9   r   rS   rT   s    r   test_invalid_censored_argsz+TestCensoredData.test_invalid_censored_args   s   ]]:!BD 	C**uAq6B	C ]]:!CE 	C**s1a&B	C ]]:-EF 	F**Aq"&&>9E	F]]:-HI 	D**9lC	D 	D	C 	C	C 	C	F 	F	D 	Ds/   DD*D#'D/DD #D,/D8c                     g d}t        |      }|j                         dk(  sJ t        dgdgddgg      }|j                         dk(  sJ y )NrO   r   r"   
   r	   )r   r   r   r
   )r   num_censored)r   r*   data1data2s       r   test_count_censoredz$TestCensoredData.test_count_censored   sV    Q!!#q(((RDQF8L!!#q(((r   N)__name__
__module____qualname__r   r,   r/   r@   rC   rH   rK   rU   rP   markparametrizer   r.   r'   r[   r^   rd    r   r   r   r   	   st    I 77)77$46 [[Vl&@&@&2&A&A&C D
*D
*
D)r   r   )	rP   numpyr   numpy.testingr   r   scipy.statsr   r   rj   r   r   <module>rn      s      : $O) O)r   