
    -i5                     
   S SK r S SKrS SKrS SKJr  S SKJrJrJ	r	  S SK
Jr  \R                  R                  SSS9\R                  R                  SS	S9\R                  R                  S
SS9 " S S5      5       5       5       rg)    N)array_namespace)xp_assert_closexp_assert_lessxp_assert_equal)_continued_fractionarray_api_strictzNo fancy indexing assignmentreasonz	jax.numpyzDon't support mutationz
dask.arrayzdask has issues with the shapesc                      \ rS rSr\R
                  R                  S5      r\R                  SSSS9r	SS jr
SS jrS rS	 rS
 r\R                   R#                  S/ SQ5      \R                   R#                  S/ SQ5      S 5       5       r\R                   R'                  SSS9\R                   R#                  SSS/5      \R                   R#                  S/ SQ5      S 5       5       5       rS rS rS rS rS rSrg)TestContinuedFraction   l   Q [    
   )sizec                     US:X  a  SU-  nOUS:X  a  UnOUS-  * n[         R                  " U5      (       a*  [         R                  S:  a  [         R                  " X#5      nU$ )Nr   r      2.0npisscalar__version__	full_like)selfnxys       \/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_continued_fraction.pya1TestContinuedFraction.a1   sT    6!A!VAAA;;q>>bnnu4Q"A    c                     US:X  a  SU-  nOX"-  nUSU-  S-
  -  n[         R                  " U5      (       a*  [         R                  S:  a  [         R                  " X#5      nU$ )Nr   r   r   r   r   )r   r   r   r   ones        r   b1TestContinuedFraction.b1    sU    6!A#CqsQwA;;q>>bnnu4Q"Ar    c                    [        U5      nUS:X  a:  UR                  X#R                  [        R                  UR
                  S9* 5      nU$ US:X  a  UR                  U5      nU$ SUR                  U5      -  [        R                  S-  -   nU$ )Nr   dtyper   r                 ?)r   r   asarraymathinfr'   logpi)r   r   r   xpr   s        r   log_a1TestContinuedFraction.log_a1*   s    Q6QDHHAGG!D DEA
 	 !Vq	A  BFF1I",Ar    c                     [        U5      nUS:X  a:  UR                  X#R                  [        R                  UR
                  S9* 5      nU$ X"-
  nU[        R                  " SU-  S-
  5      -   nU$ )Nr   r&   r   r   )r   r   r)   r*   r+   r'   r,   )r   r   r   r.   r   r"   s         r   log_b1TestContinuedFraction.log_b14   si    Q6QDHHAGG!D DEA  %Cdhhq1uqy))Ar    c                    U R                   nU R                  nSn[        R                  " [        US9   [        SU5        S S S 5        [        R                  " [        US9   [        US5        S S S 5        Sn[        R                  " [        US9   [        X#SS0S9  S S S 5        [        R                  " [        US9   [        X#S[        R                  0S9  S S S 5        [        R                  " [        US9   [        X#SS0S	S
9  S S S 5        [        R                  " [        US9   [        X#SS0S9  S S S 5        [        R                  " [        US9   [        X#S[        R                  0S9  S S S 5        [        R                  " [        US9   [        X#S[        R                  0S	S
9  S S S 5        [        UR                  S5      S	SS9n[        X#4SSS00UD6  [        X#4SSS00UD6  Sn[        R                  " [        US9   [        X#SS9  S S S 5        Sn[        R                  " [        US9   [        X#SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNy= f! , (       d  f       GNO= f! , (       d  f       GN$= f! , (       d  f       N= f! , (       d  f       g = f)Nz`a` and `b` must be callable.)matchr   z=`eps` and `tiny` must be \(or represent the logarithm of\)...epsi)
tolerancesy      ?      ?T)r7   r,   tinyr   y      ?        )argsr,   maxiterr7   z)`maxiter` must be a non-negative integer.r:   z`log` must be boolean.r   )r,   )r   r#   pytestraises
ValueErrorr   r   nanr+   dictr)   )r   r.   r   r#   messagekwargss         r   test_input_validation+TestContinuedFraction.test_input_validation=   s   WWWW1]]:W52& 6]]:W5A& 6 S]]:W5E3<@ 6]]:W5E266?C 6]]:W5E4=dK 6]]:W5FA;? 6]]:W5FBFF3CD 6]]:W5FBFF3CN 6 2::f-4CBFs|FvFBG}GG=]]:W53 6 +]]:W5A. 659 6555 655555555555 65 65sw   I"I"I4 J<J+J*J<KK <K1
I"
I14
J
J
J'*
J9<
K
K 
K.1
K?r'   )float32float64	complex64
complex128shape) )r   )   )rL   r   c                    [        [        U5      n[        X25      n[        R                  R                  S5      nUR                  U5      R	                  U5      nUR                  S5      (       a%  XvR                  U5      R	                  U5      S-  -   OUnUR                  XuS9n[        U R                  U R                  U4S9nUR                  U5      n	[        UR                  U	5        g )N    8eE cr(   r&   r9   )getattrr   randomdefault_rngastype
startswithr)   r   r   r#   tanr   f)
r   rJ   r'   r.   np_dtypexp_dtyperngr   resrefs
             r   
test_basic TestContinuedFraction.test_basica   s     2u%2%ii##$45JJu$$X.9>9I9I#9N9NA

5!((2255TUJJqJ)!$''477!>ffQis#r    torchzpytorch/pytorch#136063r	   rF   rG   c                    [         R                  S:  a  US:X  a  [        R                  " S5        [	        [         U5      n[         R
                  R                  S5      nUR                  U5      R                  U5      nUR                  U5      n[        U R                  U R                  US-   4SS9nUR                  U5      n[        UR                  UR                  UR                   5      5      U5        g )N2rF   z*Scalar dtypes only respected after NEP 50.rN   y                T)r9   r,   )r   r   r=   skiprQ   rR   rS   rT   r)   r   r/   r2   rV   r   exprealrW   )	r   rJ   r'   r.   rX   rZ   r   r[   r\   s	            r   test_logTestContinuedFraction.test_logp   s     NNS u	'9KKDE2u%ii##$45JJu$$X.JJqM!$++t{{!b&PTUffQirwwsuu~.4r    c                    [         R                  R                  S5      nUR                  UR                  5       UR                  S9nUR                  U5      n[        U R                  U R                  U4SS9nUR                  S:X  d   e[        U R                  U R                  U4SS9nUR                  S:X  d   e[        UR                  UR                  U-
  5      UR                  UR                  U-
  5      5        g )NrN   r&   rL   r9   r:      )r   rR   rS   r)   rG   rV   r   r   r#   nitr   absrW   )r   r.   rZ   r   r\   res1res2s          r   test_maxiter"TestContinuedFraction.test_maxiter   s    ii##$45JJszz|2::J6ffQi"477DGG1$Jxx1}}"477DGG1$Jxx1}}rvvdffsl+RVVDFFSL-ABr    c                    UR                  SUR                  S9nUR                  U5      n[        U R                  U R
                  U4SS0S9n[        U R                  U R
                  U4S9n[        UR                  UR                  5        [        UR                  UR                  U-
  5      UR                  UR                  U-
  5      5        g )N      ?r&   r6   gư>)r9   r7   rP   )
r)   rG   rV   r   r   r#   r   rj   rk   rW   )r   r.   r   r\   rl   rm   s         r   test_epsTestContinuedFraction.test_eps   s    JJs"**J-ffQi"477DGG1$/4dm="477DGG1$?txx*rvvdffsl+RVVDFFSL-ABr    c                    ^^ U4S jmU4S jmSu  Tl         Tl         [        TTUR                  S5      4S9nUR                   TR                   s=:X  a%  TR                   s=:X  a  UR                  S-   :X  d   e   eg )Nc                 6   > T=R                   S-  sl         X-  $ Nr   nfev)r   r   as     r   ry   +TestContinuedFraction.test_feval.<locals>.a       FFaKF5Lr    c                 6   > T=R                   S-  sl         X-  $ rv   rw   )r   r   bs     r   r}   +TestContinuedFraction.test_feval.<locals>.b   r{   r    )r   r         ?rP   r   )rx   r   r)   rj   )r   r.   r[   ry   r}   s      @@r   
test_feval TestContinuedFraction.test_feval   sg    		 !!Qbjjn->?xx166:QVV:sww{:::::r    c                 J   UR                  SS[        R                  /UR                  S9n[	        U R
                  U R                  U4SS9n[        UR                  UR                  / SQ5      5        [        UR                  UR                  / SQUR                  S95        g )Nr   r   r&      rh   )TFF)r   )r)   r   r@   rG   r   r   r#   r   successstatusint32)r   r.   r   r[   s       r   test_status!TestContinuedFraction.test_status   ss    JJ2rvvbjjJ9!$''477!rJRZZ0D%EF

BJJ{"((J$KLr    c                    ^ UR                  S5      m[        U4S jU4S jSS9n[        UR                  UR                  S5      5        UR                  UR
                  S-
  s=:X  a  S:X  d   e   eg )Nr   c                    > T$ NrK   r   r"   s    r   <lambda>:TestContinuedFraction.test_special_cases.<locals>.<lambda>   s    Cr    c                    > T$ r   rK   r   s    r   r   r      s    3r    r   r<   r   )r)   r   r   rW   rj   rx   )r   r.   r[   r"   s      @r   test_special_cases(TestContinuedFraction.test_special_cases   sY    jjm!-Jrzz"~.ww#((Q,+!+++++r    rK   N)rq   )__name__
__module____qualname____firstlineno__r   rR   rS   rZ   uniformpr   r#   r/   r2   rD   r=   markparametrizer]   skip_xp_backendsre   rn   rr   r   r   r   __static_attributes__rK   r    r   r   r      s    ))

 3
4CAr#A	"/H [[W&WX[[W&>?$ @ Y$ [[!!'2J!K[[Wy)&<=[[W&>?
5 @ > L
5CC;M,r    r   )r*   r=   numpyr   scipy._lib._array_apir   scipy._lib._array_api_no_0dr   r   r   scipy.stats._continued_fractionr   r   r   r   rK   r    r   <module>r      s       1 X X ? 09WXk2JK l3TU\, \, V	 L Y\,r    