+
    0ieh                        R t ^ RIt^ RIt^ RIt^ RIHt ^ RIHt ^ RI	H
t
 ^ RIHtHt  ^ RItR t ! R R	]4      t ! R
 R4      t ! R R4      tR#   ] d    ]! R4      t L5i ; i)zTests for hyp2f1 for complex values.

Author: Albert Steppi, with credit to Adam Kullberg (FormerPhycisist) for
the implementation of mp_hyp2f1 below, which modifies mpmath's hyp2f1 to
return the same branch as scipy's on the standard branch cut.
N)
NamedTuple)assert_allclose)hyp2f1)check_versionMissingModulempmathc                J   VP                   R8  ;'       d    \        VP                  4      R8  p\        W ,
          \        W ,
          4      ,
          4      R8  ;'       d    \        W ,
          4      ^ 8*  p\        W!,
          \        W!,
          4      ,
          4      R8  ;'       d    \        W!,
          4      ^ 8*  pV'       d   VP                   R,           pV'       d%   V'       g   V'       g   VP                   R,           pMTp\	        \
        P                  ! WW'4      4      # )a	  Return mpmath hyp2f1 calculated on same branch as scipy hyp2f1.

For most values of a,b,c mpmath returns the x - 0j branch of hyp2f1 on the
branch cut x=(1,inf) whereas scipy's hyp2f1 calculates the x + 0j branch.
Thus, to generate the right comparison values on the branch cut, we
evaluate mpmath.hyp2f1 at x + 1e-15*j.

The exception to this occurs when c-a=-m in which case both mpmath and
scipy calculate the x + 0j branch on the branch cut. When this happens
mpmath.hyp2f1 will be evaluated at the original z point.
      ?V瞯<                y        V瞯<)realabsimagroundcomplexr   r   )abczon_branch_cutcond1cond2z_mpmaths   &&&&    ]/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/special/tests/test_hyp2f1.py	mp_hyp2f1r      s     FFSL::S[7%:Mae$%/EEE!%LA4EEae$%/EEE!%LA4EEFFTMeu66H$6==q344    c                   ,   a  ] tR t^1t o V 3R ltRtV tR# )Hyp2f1TestCasec                b   < V ^8  d   Qh/ S[ ;R&   S[ ;R&   S[ ;R&   S[;R&   S[;R&   S[ ;R&   # )   r   r   r   r   expectedrtol)floatr   )format__classdict__s   "r   __annotate__Hyp2f1TestCase.__annotate__1   sJ     H H  H  J	 
   K r    N)__name__
__module____qualname____firstlineno____annotate_func____static_attributes____classdictcell__r$   s   @r   r   r   1   s      r   r   c            &       <  a  ] tR t^:t o Rt]P                  P                  R]P                  ! ]	! RRRqRr]
P                  R,           ^ R7      4      ]P                  ! ]	! RRRqRRs^ R7      4      ]P                  ! ]	! R^ RqRrRs^ R7      4      ]P                  ! ]	! R^ ^ RrRs^ R7      4      ]P                  ! ]	! RR^ Rr]
P                  R,           ^ R7      4      ]P                  ! ]	! RR^ R]
P                  R,           ^ R7      4      ]P                  ! ]	! RRtRqRrRuRR7      4      ]P                  ! ]	! RRqRqRrRvRR7      4      ]P                  ! ]	! RqRwRqRrRxRR7      4      ]P                  ! ]	! RyR	RyRrRzRR7      4      ]P                  ! ]	! R{R
R|RsR}RR7      4      .4      R 4       t]P                  P                  R]P                  ! ]	! RRRRsR~RR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      ]P                  ! ]	! RRRRsRRR7      4      .4      R 4       t]P                  P                  R]P                  ! ]	! RRRRRRR7      4      ]P                  ! ]	! RRRRRRR7      4      ]P                  ! ]	! RR R!RRR"R7      4      ]P                  ! ]	! RRRRRR"R7      ]P                  P                  ]P"                  R8  R#R$7      R%7      .4      R& 4       t]P                  P                  R]P                  ! ]	! R|R'R(RRRR7      4      ]P                  ! ]	! RRRRRRR7      4      ]P                  ! ]	! RR)R*RRR+R7      4      ]P                  ! ]	! R|RRRRRR7      4      ]P                  ! ]	! R'R|R,RRRR7      4      ]P                  ! ]	! RRRRRRR7      4      ]P                  ! ]	! R-R|R*RRRR7      4      ]P                  ! ]	! RR.R/RRRR7      4      .4      R0 4       t]P                  P                  R]P                  ! ]	! RRRRRR1R7      4      ]P                  ! ]	! R2RRRRR3R7      4      ]P                  ! ]	! R2RR4RRR5R7      4      ]P                  ! ]	! RRRRRR5R7      4      ]P                  ! ]	! RRRRRR+R7      4      .4      R6 4       t]P                  P                  R]P                  ! ]	! RRRRRR7R7      4      ]P                  ! ]	! R8RRRRR9R7      4      ]P                  ! ]	! R'R(RRRR:R7      4      ]P                  ! ]	! R'R;R<RRR=R7      4      ]P                  ! ]	! R-R,R<RRR:R7      4      ]P                  ! ]	! R'R,R>RRR?R7      4      ]P                  ! ]	! RRRRRRR7      4      ]P                  ! ]	! RRRRRR"R7      ]P                  P                  R@RA7      R%7      ]P                  ! ]	! R'R;R<RRRR7      4      .	4      RB 4       t]P                  P                  R]P                  ! ]	! R'R(R>RRR:R7      4      ]P                  ! ]	! RCR;RDRRRER7      4      ]P                  ! ]	! R8R,RFRRR:R7      4      ]P                  ! ]	! R-RGRFRRR:R7      4      ]P                  ! ]	! R'R,RRRRR7      4      ]P                  ! ]	! R'RGRRRRR7      4      ]P                  ! ]	! RCRGRRRRR7      4      ]P                  ! ]	! R)RR<RRRHR7      4      ]P                  ! ]	! R-RRIRRRR7      4      ]P                  ! ]	! RCRRDRRR:R7      4      ]P                  ! ]	! R)RRRRRHR7      4      ]P                  ! ]	! R8RRRRRHR7      4      ]P                  ! ]	! R)RRRRRR7      4      ]P                  ! ]	! RR(R<RRRHR7      4      ]P                  ! ]	! RR;R>RRR:R7      4      ]P                  ! ]	! RR;RDRRRJR7      4      ]P                  ! ]	! RR(RRRR:R7      4      ]P                  ! ]	! RR*RRRRHR7      4      ]P                  ! ]	! RR(RRRR:R7      4      ]P                  ! ]	! RRRDRRR:R7      4      ]P                  ! ]	! RRRDRRR:R7      4      ]P                  ! ]	! RRRDRRR:R7      4      ]P                  ! ]	! RRRRRRHR7      4      ]P                  ! ]	! RRRRRR7R7      4      ]P                  ! ]	! RRRRRRR7      4      .4      RK 4       t]P                  P                  R. ]P                  ! ]	! RLRRRRRHR7      4      N]P                  ! ]	! RRMER ERERRHR7      4      N]P                  ! ]	! RNRNER ERERR:R7      4      N]P                  ! ]	! ERERRRERR?R7      4      N]P                  ! ]	! RORPRERERR:R7      4      N]P                  ! ]	! ERRNRRER	RHR7      4      N]P                  ! ]	! RMRER
ERERRHR7      4      N]P                  ! ]	! RERRERERRR7      4      N]P                  ! ]	! RMRNRERERRHR7      4      N]P                  ! ]	! R-RRRERRHR7      4      N]P                  ! ]	! RRMRRERRHR7      4      N]P                  ! ]	! RRRERERRHR7      4      N]P                  ! ]	! RR(R<RERR:R7      4      N]P                  ! ]	! RPRLRQRERRRR7      ]P                  P                  RSRA7      R%7      N]P                  ! ]	! RMERER ERERRR7      4      N]P                  ! ]	! RRRTRERRR7      4      N]P                  ! ]	! RPRRRERR7R7      4      N]P                  ! ]	! RMRRERERRR7      4      N]P                  ! ]	! RLERER
ERERRHR7      4      N]P                  ! ]	! RRRRERRR7      4      N]P                  ! ]	! RCR*RERERRR7      4      N]P                  ! ]	! ROERRRERR:R7      4      N]P                  ! ]	! R8R(RERER RR7      4      N]P                  ! ]	! RRR2ERER!RUR7      4      N]P                  ! ]	! R'R;RDERER"RHR7      4      N]P                  ! ]	! RERR2ERER#R:R7      4      N]P                  ! ]	! RMERRRER$RHR7      4      N]P                  ! ]	! R-R,RERER%RHR7      4      N]P                  ! ]	! RRR<RER&RHR7      4      N]P                  ! ]	! R8R(RFERER'RVR7      4      N]P                  ! ]	! RCRRDRER(RR7      4      N]P                  ! ]	! RNRMRERER)RR7      4      N4      RW 4       t]P                  P                  R. ]P                  ! ]	! RLRPR4ER*ER+RHR7      4      N]P                  ! ]	! RXRCR;ER,ER-RR7      4      N]P                  ! ]	! RR8RER*ER.RHR7      4      N]P                  ! ]	! R-RYRER*ER/R7R7      4      N]P                  ! ]	! R'RRZER*ER0R[R7      4      N]P                  ! ]	! R'RRDER,ER1RHR7      4      N]P                  ! ]	! RXRRER2ER3R:R7      4      N]P                  ! ]	! R\RRER*ER4RVR7      4      N]P                  ! ]	! RR;R4ER5ER6RR7      4      N]P                  ! ]	! RR*RDER2ER7RHR7      4      N]P                  ! ]	! RRRER,ER8RR7      4      N]P                  ! ]	! RR;RER2ER9RER7      4      N]P                  ! ]	! RRRFER5ER:RHR7      4      N]P                  ! ]	! RRR>ER2ER;RR7      4      N]P                  ! ]	! RERER ER2ER<R]R7      ]P                  P                  RSRA7      R%7      N]P                  ! ]	! RRRER,ER=RHR7      4      N]P                  ! ]	! RTRTR,ER5ER>RHR7      4      N]P                  ! ]	! RTR2RER*ER?RHR7      4      N]P                  ! ]	! R4ER R*ER*ER@RHR7      4      N]P                  ! ]	! R2ER
RER2ERARHR7      4      N]P                  ! ]	! RRQR*ER2ERBR7R7      4      N]P                  ! ]	! RRTRER5ERCRR7      4      N]P                  ! ]	! RRR;ER,ERDRR7      4      N]P                  ! ]	! RER
RER*ERERHR7      4      N]P                  ! ]	! RNRMRQERFERGR]R7      ]P                  P                  RSRA7      R%7      N]P                  ! ]	! RMRLRTERHERIRHR7      4      N]P                  ! ]	! RPRPRERJERKR:R7      4      N]P                  ! ]	! R8RRERJERLRHR7      4      N]P                  ! ]	! R)RRFERMERNRVR7      4      N]P                  ! ]	! R-RRIEROERPRR7      4      N]P                  ! ]	! R-RRERQERRR:R7      4      N]P                  ! ]	! RPRER EROERSRR7      4      N]P                  ! ]	! RRYR*ERTERUR:R7      4      N]P                  ! ]	! RRYR*ERVERWRHR7      4      N]P                  ! ]	! RR(ER
ERXERYR:R7      4      N]P                  ! ]	! RRGRERVERZR9R7      4      N]P                  ! ]	! ERERRERJER[RHR7      4      N]P                  ! ]	! RRRERJER\RR7      4      N]P                  ! ]	! RRRERJER]R:R7      4      N]P                  ! ]	! RRRERMER^R:R7      4      N]P                  ! ]	! RRQR;ERQER_RR7      4      N]P                  ! ]	! RQR2RERJER`RR7      4      N]P                  ! ]	! R4ER
R*ERVERaR^R7      4      N]P                  ! ]	! R2ER
RERJERbRHR7      4      N]P                  ! ]	! RRQR*ERMERcR:R7      4      N]P                  ! ]	! ER
R2RERHERdRHR7      4      N]P                  ! ]	! ER RR(EROEReRR7      4      N]P                  ! ]	! RRRERfERgR_R7      4      N4      R` 4       t]P                  P                  R. ]P                  ! ]	! RTR;R2ERhERiRaR7      4      N]P                  ! ]	! RMRPRTERjERkR:R7      4      N]P                  ! ]	! R'R,RERhERlR:R7      4      N]P                  ! ]	! RCR\RERhERmRbR7      4      N]P                  ! ]	! R)RRERhERnR9R7      4      N]P                  ! ]	! RCRRZERhERoR]R7      ]P                  P                  RSRA7      R%7      N]P                  ! ]	! RZRRERjERpRR7      4      N]P                  ! ]	! R-RER
ERqERrRcR7      4      N]P                  ! ]	! RR,R\ERjERsRR7      4      N]P                  ! ]	! RR,RZERjERtRHR7      4      N]P                  ! ]	! RR*RERuERvR:R7      4      N]P                  ! ]	! RRRERhERwRHR7      4      N]P                  ! ]	! RRRTERuERxR:R7      4      N]P                  ! ]	! RRRDERqERyRHR7      4      N]P                  ! ]	! RRRERjERzR"R7      4      N]P                  ! ]	! RERER
ERuER{R:R7      4      N]P                  ! ]	! RRQR(ERqER|RER7      4      N]P                  ! ]	! RR2RERjER}RHR7      4      N]P                  ! ]	! R4RR(ERhER~RdR7      4      N]P                  ! ]	! RRRERhERRHR7      4      N]P                  ! ]	! ER
RQR*ERjERR:R7      4      N]P                  ! ]	! RRQRERhERR:R7      4      N]P                  ! ]	! ER
RR*ERuERR:R7      4      N]P                  ! ]	! RER RERqERRHR7      4      N]P                  ! ]	! RLRNRTERERR]R7      ]P                  P                  RSRA7      R%7      N]P                  ! ]	! R'RRQERERRHR7      4      N]P                  ! ]	! RCR\RERERRR7      4      N]P                  ! ]	! R-R;RERERRHR7      4      N]P                  ! ]	! RLRRERERR[R7      4      N]P                  ! ]	! R2RR2ERERRVR7      4      N]P                  ! ]	! R)RRERERRHR7      4      N]P                  ! ]	! RLERER ERERRaR7      4      N]P                  ! ]	! RRGRQERERR:R7      4      N]P                  ! ]	! RR(R<ERERR:R7      4      N]P                  ! ]	! ERRNRERERRR7      4      N]P                  ! ]	! ERRPRERERReR7      4      N]P                  ! ]	! RRRDERERR:R7      4      N]P                  ! ]	! RRRQERERRR7      4      N]P                  ! ]	! RRRERERRHR7      4      N]P                  ! ]	! RRER
ERERR:R7      4      N]P                  ! ]	! RTRR(ERERRR7      4      N]P                  ! ]	! R4RTRERERRHR7      4      N]P                  ! ]	! RER R(ERERRR7      4      N]P                  ! ]	! RTER RERERRHR7      4      N]P                  ! ]	! ER
R2R;ERERRJR7      4      N]P                  ! ]	! ER
RQRERERRHR7      4      N]P                  ! ]	! ER RR,ERERRfR7      4      N]P                  ! ]	! RER RERERRHR7      4      N4      Rg 4       t]P                  P                  R]P                  ! ]	! R)R*R>ERERR:R7      4      ]P                  ! ]	! RCR,RIERERRR7      4      ]P                  ! ]	! R8RGR>ERERRR7      4      ]P                  ! ]	! R8R,RERERRHR7      4      ]P                  ! ]	! R-R*RERERRHR7      4      ]P                  ! ]	! R-RGRERERRR7      4      ]P                  ! ]	! R)RR<ERERRHR7      4      ]P                  ! ]	! R8RRFERERR:R7      4      ]P                  ! ]	! RCRRFERERRHR7      4      ]P                  ! ]	! R8RRERERRHR7      4      ]P                  ! ]	! R-RRERERRHR7      4      ]P                  ! ]	! R8RRERERR7R7      4      ]P                  ! ]	! RR*RIERERR:R7      4      ]P                  ! ]	! RRGRFERERR:R7      4      ]P                  ! ]	! RRGRDERERRR7      4      ]P                  ! ]	! RR(RERERR:R7      4      ]P                  ! ]	! RR(RERERRHR7      4      ]P                  ! ]	! RR;RERERR5R7      4      ]P                  ! ]	! RRRFERERR9R7      4      ]P                  ! ]	! RRRIERERRHR7      4      ]P                  ! ]	! RRR>ERERRHR7      4      ]P                  ! ]	! RRRERERR:R7      4      ]P                  ! ]	! RRRERERR:R7      4      ]P                  ! ]	! RRRERERRHR7      4      ]P                  ! ]	! ^^^ERERRHR7      4      .4      Rh 4       t]P                  P                  R]P                  ! ]	! RERRiERRjR:R7      4      .4      Rk 4       t]P                  P8                  ]! ]Rl4      Rm 4       4       tRn t Rot!V t"Rp# (  
TestHyp2f1aR  Tests for hyp2f1 for complex values.

Expected values for test cases were computed using mpmath. See
`scipy.special._precompute.hyp2f1_data`. The verbose style of specifying
test cases is used for readability and to make it easier to mark individual
cases as expected to fail. Expected failures are used to highlight cases
where improvements are needed. See
`scipy.special._precompute.hyp2f1_data.make_hyp2f1_test_cases` for a
function to generate the boilerplate for the test cases.

Assertions have been added to each test to ensure that the test cases match
the situations that are intended. A final test `test_test_hyp2f1` checks
that the expected values in the test cases actually match what is computed
by mpmath. This test is marked slow even though it isn't particularly slow
so that it won't run by default on continuous integration builds.
hyp2f1_test_caseg      ?g?r   )r   r   r   r   r    r!   r
   gvIh%<=g	@g333333?c                @    Vw  r#rErg\        \        W#WE4      WgR 7       R# r!   Nr   r   selfr2   r   r   r   r   r    r!   s   &&      r   test_c_non_positive_int"TestHyp2f1.test_c_non_positive_intK   s"    h &6"aHqQ*H@r   g      ?g(@g       @g(\O4@g33333#r@g     t@g@g-q=gffffff"@g     l@g-a=gdy=g     e@gfffffb@g?gt =gfffff&N@c                z    Vw  r#rErgV^8X  d   WB,
          V,
          ^ 8  g   Q h\        \        W#WE4      WgR7       R# )zNTests for case z = 1, c - a - b > 0.

Expected answers computed using mpmath.
r5   Nr6   r7   s   &&      r   test_unital_argumentTestHyp2f1.test_unital_argument   s;    t &6"aHAv!%!)a-''qQ*H@r   g433333@g     k@ǧV@g`@gHz>zFails on 32 bit.)	conditionreason)marksc                    Vw  r#rErg\        ^V,           V,
          V,
          4      R8  d   \        V^,           4      R8  g   Q h\        \        W#WE4      WgR7       R# )zNTests for case z ~ -1, c ~ 1 + a - b

Expected answers computed using mpmath.
r
   r5   Nr   r   r   r7   s   &&      r    test_special_case_z_near_minus_1+TestHyp2f1.test_special_case_z_near_minus_1@  sP    j &6"aH1q519q=!E)c!a%j5.@@@qQ*H@r   gj{k8 @gQDi?g-1 @gHh@g|=gog @g;R@g@g333ENHAc                    Vw  r#rErgV\        V4      8X  d   V^ 8  g   V\        V4      8X  d   V^ 8  g   Q h\        \        W#WE4      WgR7       R# )    r5   N)intr   r   r7   s   &&      r   test_a_b_negative_int TestHyp2f1.test_a_b_negative_inty  sI    l &6"aHCF{q1uSVA==qQ*H@r   gAfc=g      !@gAfc=g      @gdy=c                (   Vw  r#rErg\        WB,
          \        WB,
          4      ,
          4      R 8  d   WB,
          ^ 8  g<   \        WC,
          \        WC,
          4      ,
          4      R 8  d   WC,
          ^ 8  g   Q h\        \        W#WE4      WgR7       R# )r
   r5   N)r   rG   r   r   r7   s   &&      r   :test_a_b_neg_int_after_euler_hypergeometric_transformationETestHyp2f1.test_a_b_neg_int_after_euler_hypergeometric_transformation  sr    t &6"aHQU#$u,QU#$u,	
< 	qQ*H@r   g+=gnho?g|=g+<g0z0@gԔ8 @g-=gPcP@gV瞯<zPoor convergence.)r?   c                    Vw  r#rErg\        V4      R8  d   VP                  ^ 8  g   Q h\        \        W#WE4      WgR7       R# )z|z| < 0.9 and real(z) >= 0.?r5   Nr   r   r   r   r7   s   &&      r   test_region1TestHyp2f1.test_region1  s=    D &6"aH1v|!++qQ*H@r   gl0@gXQ @g:0y5>gda0@g՗' @gvIh%,=g
?gV瞯<c                    Vw  r#rErg\        V4      ^8  d   VP                  ^ 8  g   Q h\        \        W#WE4      WgR7       R# )z|z| < 1 and real(z) < 0.r5   NrO   r7   s   &&      r   test_region2TestHyp2f1.test_region2z  s=    B &6"aH1vzaffqj((qQ*H@r   g     @0@g      @g      @g      ?g      @g     0@g:0yE>zUnhandled parameters.g      @gMg<g&.>c                    Vw  r#rErgR\        V4      u;8:  d   ^8:  d   M Q h\        ^V,
          4      R8  g   Q h\        \        W#WE4      WgR7       R# )z"0.9 <= |z| <= 1 and |1 - z| < 0.9.rN   r5   NrB   r7   s   &&      r   test_region3TestHyp2f1.test_region3  sN    T
 &6"aHc!f!!66c!a%j3&666qQ*H@r          @g      0@      @gh㈵>r	   gMbP?g7Qu=g8J==c                    Vw  r#rErgR\        V4      u;8:  d   ^8:  d   M Q h\        ^V,
          4      R8  g   Q h\        \        W#WE4      WgR7       R# )zw0.9 <= |z| <= 1 and |1 - z| >= 1.

This region is unhandled by of the standard transformations and
needs special care.
rN   r5   NrB   r7   s   &&      r   test_region4TestHyp2f1.test_region4  sN    b &6"aHc!f!!77c!a%jC&777qQ*H@r   gHj>g+=g-C6
?gMb@?g^~z=gMg<c                    Vw  r#rErg^\        V4      u;8  d   R8  d-   M Q h\        ^V,
          4      R8  d   VP                  ^ 8  g   Q h\        \        W#WE4      WgR7       R# )z11 < |z| < 1.1 and |1 - z| >= 0.9 and real(z) >= 0皙?rN   r5   NrO   r7   s   &&      r   test_region5TestHyp2f1.test_region5  sX    Z &6"aH3q6CEECAJ#$5!&&A+EEqQ*H@r   c                    Vw  r#rErg\        V4      ^8  dD   ^\        V4      u;8  d   R8  d.   M M*\        ^V,
          4      R8  d   VP                  ^ 8  d   Q h\        \        W#WE4      WgR7       R# )z|z| > 1 but not in region 5.r^   rN   r5   NrO   r7   s   &&      r   test_region6TestHyp2f1.test_region6  sd    B &6"aHFQJSV!c!c!a%jC&7AFFaK	
I 	qQ*H@r   g333333?g@ԛ?c                @    Vw  r#rErg\        \        W#WE4      WgR 7       R# r4   r6   r7   s   &&      r   test_miscellaneousTestHyp2f1.test_miscellaneous	  s!    " &6"aHqQ*H@r   z1.0.0c           
     P   \        V 4       Uu. uFC  pVP                  R4      '       g   K  \        \        W4      4      '       g   K8  VR8w  g   KA  VNKE  	  ppV FB  pV P	                  \        W4      4      pV F  w  rErgr\        \        WEWg4      VRR7       K!  	  KD  	  R# u upi )aF  Test that expected values match what is computed by mpmath.

This gathers the parameters for the test cases out of the pytest marks.
The parameters are a, b, c, z, expected, rtol, where expected should
be the value of hyp2f1(a, b, c, z) computed with mpmath. The test
recomputes hyp2f1(a, b, c, z) using mpmath and verifies that expected
actually is the correct value. This allows the data for the tests to
live within the test code instead of an external datafile, while
avoiding having to compute the results with mpmath during the test,
except for when slow tests are being run.
testtest_test_hyp2f1gziu6<r5   N)dir
startswithcallablegetattr_get_test_parametersr   r   )
r8   test_methodtest_methodsparamsr   r   r   r   r    _s
   &         r   ri   TestHyp2f1.test_test_hyp2f1	  s     ,/t9
+4K%%f-  WT/0 
 -- K9 	 
 (K..wt/IJF+1'aH	! 5xhO ,2 (
s   B#B#B#B#c                    VP                    UUu. uFC  pVP                  R8X  g   K  VP                  ^,           F  pVP                  ^ ,          NK  	  KE  	  upp# u uppi )z4Get pytest.mark parameters for a test in this class.parametrize)
pytestmarknameargsvalues)r8   ro   markcases   &&  r   rn   TestHyp2f1._get_test_parameters	  sa     (3'='=
'=tyyM) 		! KKNN$ '=
 	
 
s
   A1Ar'   Niy??y      ?        yV?t[59?y. |?lo8?iyx R?y>
ףp=?|Gz?yQ?        y
d?        y*kA        yk|@X        y:5>dA        yk@5>dA        gLYgfffffyg33333eyF%佰G        g)iyouMď$        gfffffYgL4y(D        g33333SiyRU3T        y              y+i,?        y7G&SԾ        y -$ F7        g333333TyL"CA        l        y5P?0y,B.j?kggRigKgty/y       @0yyv?1AAey)14#<6i1GgB!uZgsStyl(?`Cy5ԿyaƮ('qyL2|R?ѓB*?yP^Cy? ?y4=2UX6K[:y]AאPE0Ciy       @       @y4$?s)0>g      gbɰg      /yl(?l(yJ?^&?y$i8Q@#;$yl(?0yU tv?y4P^C?l(y{h`?@,/gާ7yx5? ?yj?<?CXigy]Q/y ?`Cy5Կyg	?ת ?yx5?x5?yi|8?:ASrgb'y ?@y5?y9)@b$8@y`Cy5?Dy5y_oڿ+ uy@y5?0yܭ$@g!D)yd?dֿy`Cy5?z5yեIp?88?gRcy?%g?yx5?z5yܓ8{b@*?y`Cy5Կ@y5?y$i^?`o?y5P`Cy5Կy><Ia-
>y00yb?7@p9y`Cy5ԿDy5yT?lZu{ڿg>Vyz5`Cy5?yy>T	;*?gڏyzR@GI@ghyz5x5?yтq@8Tyz50y&
@??g%+y`Cy5Կ5Py=?@=	Yx<pgqyDy5`Cy5Կy
-=@T~n 6@yDy50y
W`?|6dy`Cy5Կz5y85|@.AyRJ?x?nӿy5P0y84?_ᴾ?yz5Dy5y-@^cy즻@eCyGq?+g\1/yDy5x5?y`B8Agմ/Qyq?^Ғ-?y0 ?y)b?rt{?y0z5yf|#SI\y0`Cy5?y-?Y|?yDy5`Cy5?y<nk(@$nSyz5 ?ySh?>RyX7>~rX@42g      g      yx5?@y5?y^->xcg     /g      y5P?`Cy5?yM\iƔ\yx5?Dy5yAޒm4mg      g      y2ş?}q^oҿy+}<]#xX@y4⦷?3S	0g      y5P? ?y`B3A>5C;Ay_qd#Z?yZy!Aj6my
B6&yعjޥ?XR¿y5P?`Cy5Կy[^0|UFt@yR[?gB?y;쿧kg      yZh@7})ʱyǾܬ]@x͠AytX| ƒRAywr|Y1AARyWQIAyhü'}eqyՊ8?QD?y@y5?x5?y~Cujy2}@?1OSg?y@y5?z5yGU<ARt%3@yT85@+08@ygТ@fȀAy]xO@FygSsa@yÁ32Ao<hKAy4B?3V?yN?{E7y~y> As4 Ay=ۊ-%ΰ7?y ?՗
Z}y{i{4C@&F>ytO#,4?՗
Z}y'OV/xTyP0*9AJOpDyJ/:XBry7wd?y:Tq?@?y ?՗
Z}?yb&?T,#?yT?z]DytO#,4?՗
Z}?y1`-w?01cy ky 6LyED @y'[RjݻyyU쿢f*E @y4y?f?y+*9,yeL@>9@yϞQ}_@y}X4;@A,GIyqR!)?-?yNT+N@>By?~.9M@yXR>@bNj}Ϧ:yYˊ?ZEyi@CPHmë@yy!?lFX?y [? Uf?y](?T?y>e@yy!?jFXy(D!&nyVy\ @!ݨy@6Qk?lFX?yʈ NƐ<y<?lFX?yLaa'*@6-*A@y<?T?y4?a&[֮gοy}>Ӓ@+.AP@y@6Qk?jFXyϝ#9Ġ_@y](?Ty_k@?p~yXA/?T?y|WE AgܢOAy&+￉31@yl^ @Nt~yEDC@yw3>#i.y* Ay݃}K?""?y2ODGA+Ay ,J8l?|p5˿y@0-nq@y"Yښ4sWKR@y0BCEhBNySd?F?yXA/?TyPlQ;N@y&Jvm?T?y9?梤΀y&Jvm?Ty
`C0˝7y[
*2yw3BLSyz5?COyXI@T!NyI	NiYytO#,4?Ty׮[՚)-ڤAy!'h@qiq@y2$н'?cҳ?ytO#,4?T?y,AmڑyAe4y/ ?B`s?y(&	@:˕)	y9MR@b@yS.׿Ӄ?y2F$@EDƓyV'c)d yRQ"(@!-yL7@IX@yv1m@f4^@yĴگbBui'6(_By"NhVk0@y)F+]@yy!?-tbyטp~׋J?y<?-tb?y^?]ѽ?y](?lFX?yFMI@(v@yXA/?jFXybp֛ZއnoBAyiF?-tb?yW>A`Тy<?-tby?D6?!48@y ?T?yf|^)c:My ?lFX?y1jGV`+@I@yI_˿G pysh?Gġ?yXA/?lFX?yI?cnx@?y](?jFXyb.OǸ4y ?jFXy:&@A0bfy^Dh@ݾu@y ?TyM;HBnM+By9~:1<y| ?aPe2?y Ą@*Ky@6Qk?-tb?yU5q?38yA7&/1)@ynDǿO?x?y](?-tbymAAyÀD?0Д@yβK@]C@y5Px5?yj]+Bl?yDy5Dy5y.թ'."thyz55Pyٞ?_bMοy5Pz5yˡ?5rZ]?yhF?@҅PyR,\i@0gA@yDy5@y5?yY6c$#y|N"@y?v:[y0 DEw?&Y9߿ylboE,S*5yXٕ*B@vKdo@yxs6A{;yz55P?yt _iNL<y( @uV1?yE*l>@IryC?.IyOKTO9W?ό>7ᘿyEi3?:p?y3¿gF?yQ5dQX6@ySͧ䄪}yAHq@3'U@yc4V$k$ynt`_OAy      @      @yŞμ?DB]?gɿg )#r(   r)   r*   r+   __doc__pytestrz   ru   paramr   npinfnanr9   r<   xfailsysmaxsizerC   rH   rK   rP   rS   rV   r[   r_   rb   re   slowr   r   ri   rn   r-   r.   r/   s   @r   r1   r1   :   s*      [[LL VVb[	 LL#	 LL #	 LL #	 LL VVb[	 LLVVb[	 LL E	 LL A	 LL G	 LL D	 LL4	Ko	
rfAgrfA [[LL4	 LL3	 LL5	 LL2	 LL2	 LL7	 LL7	 LL7	 LL7	 LL7	 LL9	Oq	
tjAktjA [[LL4  LL'8	 LL8	 LL3 kk''!kkE1- ( =,	
/`Aa/`A [[LL&(>J	 LL()-I	 LL'(>K	 LL()=K	 LL&'>J	 LL()>L	 LL'(>J	 LL H	OQ	
TjAkTjA
 [[LL)=F	 LL)>C	 LL)>E	 LL)=E	 LL)>F	S3	
6nAo6nA [[LL)))>E	 LL())=E	 LL&('>D	 LL&('<F	 LL'''>C	 LL&''>C	 LL)))=F	 LL)))=F kk''/B'C
 LL&('=E	e\	
_@AA_@A [[LL&('>E	 LL(((>K	 LL('(@F	 LL''(=F	 LL&'(>E	 LL&')>B	 LL(')>B	 LL')'?C	 LL'((>C	 LL('(=D	 LL'))>F	 LL())>D	 LL'('@E	 LL(('?E	 LL(('=A	 LL(((>D	 LL(((@A	 LL)()=D	 LL)()>E	 LL()(@B	 LL))(?C	 LL('(?E	 LL)((=C	 LL)()?F	 LL))(>B	c{	
~~A~~A [[D	
LL=D	D	
 LL=D	D	
* LL<D	+D	
> LL=E	?D	
R LL<D	SD	
f LL=D	gD	
z LL>C	{D	
N LL<G	OD	
b LL<B	cD	
v LL'))>B	wD	
J LL>F	KD	
^ LL('(=C	_D	
r LL(('>F	sD	
F LL=E kk''2 ( GD	
` LL=B	aD	
t LL>B	uD	
H LL=C	ID	
\ LL<B	]D	
p LL=C	qD	
D LL)('>F	ED	
X LL(('=K	YD	
l LL>F	mD	
@ LL(('=D	AD	
T LL=C	UD	
h LL&((=C	iD	
| LL=C	}D	
P LL=A	QD	
d LL''(=D	eD	
x LL(''=D	yD	
L	 LL(((=D	M	D	
`	 LL()(=A	a	D	
t	 LL<E	u	D	
GP
AQ
GP
A [[g	
LL=C	g	
 LL((=E	g	
* LL((=C	+g	
> LL'(=D	?g	
R LL&)=J	Sg	
f LL&)(=D	gg	
z LL((=D	{g	
N LL))=D	Og	
b LL(=B	cg	
v LL)((=D	wg	
J LL))=C	Kg	
^ LL)('=C	_g	
r LL))(=D	sg	
F LL))'=D	Gg	
Z LL=E kk''2 ( [g	
t LL)''=C	ug	
H LL'=C	Ig	
\ LL'=D	]g	
p LL(=E	qg	
D LL)=C	Eg	
X LL(=E	Yg	
l LL)=C	mg	
@ LL(=E	Ag	
T LL)=D	Ug	
h LL>D kk''2 ( ig	
B LL=C	Cg	
V LL>C	Wg	
j LL()>D	kg	
~ LL')(>D	g	
R	 LL')(>D	S	g	
f	 LL'>E	g	g	
z	 LL>C	{	g	
N
 LL)(>B	O
g	
b
 LL((=A	c
g	
v
 LL(=C	w
g	
J LL(')=C	Kg	
^ LL>C	_g	
r LL'>C	sg	
F LL>E	Gg	
Z LL()(>E	[g	
n LL(>E	og	
B LL)>C	Cg	
V LL(=E 	Wg	
j LL)>D	kg	
~ LL(>C	g	
R LL)=D	Sg	
f LL(>D	gg	
z LL(=D 	{g	
jVAWjVA [[g	
LL(=G	g	
 LL=C	g	
* LL&')=D	+g	
> LL()=B	?g	
R LL'=D	Sg	
f LL()=C kk''2 ( gg	
@ LL()=D	Ag	
T LL'=D	Ug	
h LL)'=C	ig	
| LL('=G	}g	
P LL(()=B	Qg	
d LL)'=C	eg	
x LL)=C	yg	
L LL()(=C	Mg	
` LL))'=B	ag	
t LL=E	ug	
H LL(=D	Ig	
\ LL)=B	]g	
p LL(=D	qg	
D LL)=C	Eg	
X LL(=C	Yg	
l LL)=C	mg	
@ LL(=D	Ag	
T LL)=D	Ug	
h LL=I kk''2 ( ig	
B LL&=E	Cg	
V LL()=B	Wg	
j LL'()=B	kg	
~ LL=>	g	
R	 LL(=C	S	g	
f	 LL'''=D	g	g	
z	 LL=C	{	g	
N
 LL'=D	O
g	
b
 LL)('=E	c
g	
v
 LL=D	w
g	
J LL=E 	Kg	
^ LL()(=B	_g	
r LL)=D	sg	
F LL=E	Gg	
Z LL(=C	[g	
n LL(=C	og	
B LL)=C	Cg	
V LL(=C	Wg	
j LL(=E	kg	
~ LL(=F	g	
R LL)<B	Sg	
f LL'=C 	gg	
z LL)=B	{g	
jVAWjVA [[LL'('>J	 LL('(<M	 LL(''>F	 LL(')>D	 LL'()>C	 LL'''>C	 LL'('=D	 LL('(>D	 LL()(>D	 LL('(>E	 LL'))>C	 LL()(>C	 LL(((>D	 LL)'(>C	 LL('(>C	 LL)()>C	 LL)()=E	 LL)('=C	 LL()(>G	 LL))(>D	 LL)('>E	 LL()'>C	 LL())>C	 LL())>B	 LLE	c{	
~~A~~A [[ LL/		
 A! A [[67#P $ P2
 
r   r1   c            	         a  ] tR tRt o ]P
                  P                  RRRR]P                  ) ]P                  .4      ]P
                  P                  RRRR]P                  ) ]P                  .4      ]P
                  P                  R	. RO4      ]P
                  P                  R
R.4      R 4       4       4       4       t	R t
RtV tR# )TestHyp2f1ExtremeInputsi	  r   r	   rX         @r   rY         @r   r   c                    \         P                  ! \         P                  ! \         P                  ! W.4      4      4      '       d+   \         P                  ! \        WW44      4      '       g   Q hR # R # )N)r   anyisinfasarrayisnanr   )r8   r   r   r   r   s   &&&&&r   test_inf_a_b$TestHyp2f1ExtremeInputs.test_inf_a_b	  sH    
 66"((2::qf-.//88F1.//0/ 0r   c                6   \         P                  ! \        RRRR4      4      '       g   Q h\         P                  ! \        RRRR4      4      '       g   Q h\         P                  ! \        RRRR4      4      '       g   Q h\         P                  ! \        RRRR4      4      '       g   Q h\         P                  ! \        \         P                  RRR4      4      '       g   Q h\         P                  ! \        R\         P                  RR4      4      '       g   Q hR# )
   r	   r   rY   Ni       @      ?iig)r   r   r   r   )r8   s   &r   test_large_a_b&TestHyp2f1ExtremeInputs.test_large_a_b	  s    xxuc3
;<<=<xxvsC<==>=xxsE3
;<<=<xxsFC<==>= xxrvvsC56676xxsBFFC56676r   r'   N)r   r   g      @g      @r   )r(   r)   r*   r+   r   rz   ru   r   r   r   r   r-   r.   r/   s   @r   r   r   	  s     [[S3S266'266"BC[[S3S266'266"BC[[S"67[[S:,/1 0 8 D D1	8 	8r   r   )r   r   r   numpyr   typingr   numpy.testingr   scipy.specialr   scipy.special._testutilsr   r   r   ImportErrorr   r   r1   r   r'   r   r   <module>r      so        )   A%
52Z w&
 w&
rM8 8N  %8$F%s   A A$#A$