+
    nDj"                     z    ^ RI t ^ RI HtHt ^ RIt^ RIHtH	t	H
t
 ^ RIHt ^ RIHt  ! R R4      t ! R R	4      tR# )
    N)raiseswarns)assert_approx_equalassert_allcloseassert_equal)cdist)statsc                      a  ] tR t^
t o RtR tR tR tR tR t	]
P                  P                  RRR.4      R	 4       tR
 tR tRtV tR# )TestMGCErrorWarningsz0Tests errors and warnings derived from MGC.
    c                    \         P                  ! ^4      p^.^,          p\        \        \        P
                  W4       \        \        \        P
                  W!4       R#    Nnparangeassert_raises
ValueErrorr	   multiscale_graphcorrselfxys   &  T/data/cameron/venvs/s3viz/lib/python3.14/site-packages/scipy/stats/tests/test_mgc.pytest_error_notndarray*TestMGCErrorWarnings.test_error_notndarray   s>    IIbMC"Hj%"<"<aCj%"<"<aC    c                    \         P                  ! ^d4      P                  ^^4      pVP                  ^
^
4      p\        \        \
        P                  W4       R# )d   N)r   r   reshaper   r   r	   r   r   s   &  r   test_error_shape%TestMGCErrorWarnings.test_error_shape   s>    IIcN""2q)IIb"j%"<"<aCr   c                    \         P                  ! ^4      p\         P                  ! ^4      p\        \        \        P
                  W4       R# )   Nr   r   s   &  r   test_error_lowsamples*TestMGCErrorWarnings.test_error_lowsamples   s.    IIaLIIaLj%"<"<aCr   c                   \         P                  ! ^\        R7      p\         P                  V^ &   \	        \
        \        P                  W4       \         P                  ! ^4      p\	        \
        \        P                  W4       R# )r   )dtypeN)r   r   floatnanr   r   r	   r   r   s   &  r   test_error_nans$TestMGCErrorWarnings.test_error_nans    sP    IIb&vv!j%"<"<aCIIbMj%"<"<aCr   c                x    \         P                  ! ^4      p^ p\        \        \        P
                  WVR7       R# )r   compute_distanceNr   )r   r   r.   s   &  r   test_error_wrongdisttype-TestMGCErrorWarnings.test_error_wrongdisttype)   s,    IIbMj%"<"<a'7	9r   reps1c                t    \         P                  ! ^4      p\        \        \        P
                  W"VR7       R# r   )r1   Nr   )r   r1   r   s   && r   test_error_reps$TestMGCErrorWarnings.test_error_reps0   s%     IIbMj%"<"<aNr   c                x    \         P                  ! ^4      p^dp\        \        \        P
                  WVR7       R# r4   )r   r   assert_warnsRuntimeWarningr	   r   )r   r   r1   s   &  r   test_warns_reps$TestMGCErrorWarnings.test_warns_reps9   s(    IIbM^U%?%?DQr   c                    \         P                  ! ^4      p\         P                  ! ^4      \         P                  ,          p\	        \
        \        P                  W4       R# r   )r   r   onesinfr   r   r	   r   r   s   &  r   test_error_infty%TestMGCErrorWarnings.test_error_infty?   s7    IIbMGGBK"&& j%"<"<aCr    N)__name__
__module____qualname____firstlineno____doc__r   r    r$   r*   r/   pytestmarkparametrizer5   r:   r?   __static_attributes____classdictcell____classdict__s   @r   r   r   
   sk     DDDD9 [[V
& O	O
RD Dr   r   c                     a  ] tR t^Ft o RtR tRR lt]P                  P                  ]P                  P                  R. RO4      R 4       4       t]P                  P                  ]P                  P                  RRR.4      R 4       4       t]P                  P                  R 4       t]P                  P                  R	 4       t]P                  P                  R
 4       t]P                  P                  R 4       t]P                  P#                  ^4      ]P                  P$                  R 4       4       tR t]P                  P                  R 4       tRtV tR# )TestMGCStatz(Test validity of MGC test statistic
    c                N    \         P                  P                  R 4      V n        R# )ixKN)r   randomdefault_rngrng)r   s   &r   setup_methodTestMGCStat.setup_methodI   s    99((4r   Nc                   T;'       g    V P                   pVR 8X  dE   VP                  R
^V^3R7      pVRVP                  VP                  ^3R7      ,          ,           pEMVR8X  d   \        P
                  ! V P                   P                  ^ ^V^3R7      4      pV\        P                  ! \        P                  V,          4      ,          pV\        P                  ! \        P                  V,          4      ,          RV P                   P                  VP                  ^3R7      ,          ,           pMVR8X  d   V P                   P                  V^3R7      pV P                   P                  V^3R7      p	V P                   P                  ^RV^3R7      p
V P                   P                  ^RV^3R7      pV^,          ^V
,          ,           ^,
          pV	^,          ^V,          ,           ^,
          pM\        R4      hV^8  d>   V P                   P                  W^,
          3R7      p\        P                  ! W\3^R	7      pWV3# )linearsizeg333333?	nonlinearg?independence      ?)prZ   z3sim_type must be linear, nonlinear, or independence)axisrB   )rT   uniformrR   rZ   r   arraycospisinstandard_normalbinomialr   concatenate)r   sampsdimssim_typerT   r   r   unifuvu_2v_2
dims_noises   &&&&&        r   _simulationsTestMGCStat._simulationsL   s   ooTXXxB
3AC#**1661+*666A $88DHH,,Q
,CDDrvvbeedl++Aruut|,,TXX__1661+_667A '((uaj(9A((uaj(9A((##AE1:#>C((##AE1:#>C!aeaA!aeaA  , - - !811Av1GJQ7Atr   zsim_type, obs_stat, obs_pvaluec                    \         P                  P                  R 4      pV P                  ^d^WR7      w  rV\        P
                  ! WVVR7      w  rxp	\        Wr4       \        W4       R# l   	=gL )rh   ri   rj   rT   random_stateNr   rR   rS   rq   r	   r   r   
r   rj   obs_stat
obs_pvaluerT   r   r   statpvalue_s
   &&&&      r   	test_onedTestMGCStat.test_onedo   sY     ii##J/  sX O  44QLa'+r   c                    \         P                  P                  R 4      pV P                  ^d^WR7      w  rV\        P
                  ! WVVR7      w  rxp	\        Wr4       \        W4       R# rt   rw   rx   s
   &&&&      r   
test_fivedTestMGCStat.test_fived   sY     ii##J/  sX O  44QLa'+r   c                   V P                   P                  ^dRR
R7      pV P                   P                  RR7      p\        P                  ! WV P                   R7      w  r4p\        VR^R7       \        VR^R7       V P                   P                  R
R7      p\        P                  ! WRV P                   R7      w  r4p\        VR^R7       \        VR^R7       R	# )r   r]   rY   ru         ?significantMbP?T)
is_twosamprv   N)r      )P   r   )rT   rf   re   r	   r   r   r   r   r   r{   r|   r}   s   &     r   test_twosampTestMGCStat.test_twosamp   s     HHc3X6HH$$'$2  44QQaD#15FEq9 HH$$($3  44QdBF((LaD#15FEq9r   c                    V P                  ^d^RR7      w  r\        P                  ! W^V P                  R7      w  r4p\	        VR^R7       \	        VR^R7       R# )r   rX   rh   ri   rj   )workersrv   
ףp=
?r   r   N)rq   r	   r   rT   r   r   s   &     r   test_workersTestMGCStat.test_workers   sW       sX F  44Q1BF((LaD$A6FEq9r   c                    V P                  ^d^RR7      w  r\        P                  ! W^R7      w  r4p\        VR^R7       \        VR^R7       R# )r   rX   r   ru   r   r   r   N)rq   r	   r   r   r   s   &     r   test_random_stateTestMGCStat.test_random_state   sM       sX F  44QJaD$A6FEq9r   c                    V P                  ^d^RR7      w  r\        WRR7      p\        W"RR7      p\        P                  ! W4R^R7      w  rVp\	        VR^R7       \	        VR	^R7       R# )
r   r[   r   	euclidean)metricN)r.   rv   gw/?r   r   )rq   r   r	   r   r   )r   r   r   distxdisty	stat_distpvalue_distr}   s   &       r   test_dist_permTestMGCStat.test_dist_perm   sm       s[ Ia;/a;/$)$>$>uPTLM%O!	 	Iu!<KA>r   c                    V P                  ^d^RR7      w  r\        P                  ! W^R7      w  r4p\        VR4       R# )r   rX   r   ru   Ng'^P?)rq   r	   r   r   )r   r   r   r}   r|   s   &    r   test_pvalue_literature"TestMGCStat.test_pvalue_literature   s?       sX F 11!QG1'r   c                "   ^p\         P                  ! V4      P                  R^4      p\        W"4      p\         P                  ! W34      p\
        P                  ! W4RR7      p\        VP                  R4       \        VP                  R4       R# )   Nr-   g        r   rB   )
r   r   r   r   zerosr	   r   r   	statisticr|   )r   nr   r   r   ress   &     r   %test_zero_distance_matrix_index_error1TestMGCStat.test_zero_distance_matrix_index_error   sp     IIaL  Q' a !  ((Ms+

C(r   c                    V P                  ^d^RR7      w  r\        P                  ! W^R7      p\        VP                  VP
                  4       R# )r   rX   r   ru   N)rq   r	   r   r   r{   r   )r   r   r   r   s   &   r   
test_aliasTestMGCStat.test_alias   sA       sX F((A>SXXs}}-r   )rT   )r       N))rX   g@%]?ܣ'^P?)r[   g.?r   )r\   goz_=pgnL?)rX   gxO?r   )r[   g	W?g3m?)rC   rD   rE   rF   rG   rU   rq   rH   rI   xslowrJ   r~   r   r   r   r   r   	fail_slowslowr   r   r   rK   rL   rM   s   @r   rP   rP   F   si    5!F [[[[= @ , , [[[[= 	35	@ , , [[: :& [[: : [[: : [[
? 
? [[2[[(  ()" [[. .r   rP   )rH   r   r   r   r8   numpyr   numpy.testingr   r   r   scipy.spatial.distancer   scipyr	   r   rP   rA   r   r   <module>r      s3     A  L L ( 9D 9Dxc. c.r   