+
    0iE                        ^ RI t ^ RIHt ^ RIHtHt ^ RIt^ RIt^ RI	H
t
HtHtHt ^ RIHt ^ RIHt ^ RIHtHt ^ RIHt ^ R	IHtHtHtHtHtHtHtHt  ! R
 R4      t ! R R4      t  ! R R]P6                  4      t!R t"R t#R t$R t% ! R R4      t& ! R R]&4      t' ! R R]&4      t( ! R R]&4      t) ! R R4      t* ! R R]&4      t+ ! R  R!4      t, ! R" R#4      t- ! R$ R%4      t. ! R& R'4      t/R( t0]Pb                  Pe                  R)]Pf                  ]Ph                  ]Pj                  ]Pl                  .4      R* 4       t7R# )+    N)Counter)combinationsproduct)assert_allcloseassert_equalassert_array_equalassert_array_less)distance)shapiro)_test_find_index_test_low_0_bit)qmc)van_der_corputn_primesprimes_from_2_toupdate_discrepancy	QMCEngine_l1_norm_perturb_discrepancy&_lloyd_centroidal_voronoi_tessellationc                      a  ] tR t^t o R tR tR tR tR tR t	R t
R t]P                  P                  R	R
R7      ]P                  P                  R 4       4       tR tR tR tR tR tRtV tR# )	TestUtilsc                   ^ .^.R..pR.^.^..p\         P                  ! VR^R7      p\        W24       ^ ^ .^^.RR..p\        P                  ! R^ .^^..4      pR^ .^^.^R..p\         P                  ! W^ ,          V^,          R7      p\        W24       \         P                  ! W4^ ,          V^,          RR7      p\        WQ4       . RO. R	O. R
O.p^ . ROrv. RO. RO. RO.p\         P                  ! WVR7      p\        W24       R# )r         ?l_boundsu_bounds      @Tr   r   reverseNr   r   r   )   r#   r#   )r   r   r   )         )r&   r         ?)r   scaler   nparray)selfspaceoutscaled_spaceboundsscaled_back_spacer   r   s   &       X/var/www/html/photoedit/myenv/lib/python3.14/site-packages/scipy/stats/tests/test_qmc.py
test_scaleTestUtils.test_scale   s   qcC5!taS1#yya@* Q!Q#s,B7QF+,AwAC)yyVAYO*IIlAY/5ay$H)1 I7	()]3yyHM*    c                B   \         P                  P                  R 4      pVP                  R4      pVP                  ^
4      ) ^
,          pVP                  ^
4      ^
,          p\        P                  ! W#VRR7      p\        P                  ! WSVRR7      p\        Wb4       R# )l	   EaT4G*wv F)r    TN   
   )r)   randomdefault_rngr   r(   r   )r+   rngsampleabscaledunscaleds   &      r1   test_scale_randomTestUtils.test_scale_random4   sw    ii##$KLH%ZZ^Ob JJrNR6a799V48)r4   c           	        \         P                  ! \        R R7      ;_uu_ 4        . ROp\        P                  ! VR^R7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        ^ ^ .^^.RR..p\
        P                  ! R^.^^..4      p\        P                  ! W^ ,          V^,          R7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        ^ ^ .^^.RR..p. RO^^.rC\        P                  ! WVR7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        ^ ^ .^^.RR..p\
        P                  ! . RO. RO.4      p\        P                  ! W^ ,          V^,          R7       RRR4       \         P                  ! \        RR7      ;_uu_ 4        ^ ^ .^R.RR..p\
        P                  ! R^ .^^..4      p\        P                  ! W^ ,          V^,          R7       RRR4       \         P                  ! \        R	R7      ;_uu_ 4        R^ .^^.^R
..p\
        P                  ! R^ .^^..4      p\        P                  ! WR^ ,          V^,          RR7       RRR4       R#   + '       g   i     ELS; i  + '       g   i     EL; i  + '       g   i     EL; i  + '       g   i     ELD; i  + '       g   i     L; i  + '       g   i     R# ; i)Sample is not a 2D arraymatchr   r   NzBounds are not consistentz/'l_bounds' and 'u_bounds' must be broadcastableSample is not in unit hypercuber'   zSample is out of boundsr   Tr   r   r#   r   r!   )r!   r      )r$   r%   r%   )pytestraises
ValueErrorr   r(   r)   r*   )r+   r,   r/   r   r   r-   s   &     r1   test_scale_errorsTestUtils.test_scale_errors=   su   ]]:-HIIEIIeb15 J ]]:-IJJVaVc3Z0EXXAwA/0FIIeQi&)D K
 ]]: .G H HVaVc3Z0E!+aVhIIeB	H ]]: .G H HVaVc3Z0EXXz956FIIeQi&)D	H ]]: .: ; ;VaXSz2EXXAwA/0FIIeQi&)D	; ]]:-GHH7QFQH-CXXAwA/0FIIc1Iq	"$ IH7 JII KJJ
H H HH H H; ; IHHsK   J/AJ!)+J5 AK	:AK4AK0J	!J2	5K		K	K-	0L	c           
        \         P                  ! ^^.^^.^^.^^.^^.^^..4      pRV,          R,
          R,          p\         P                  ! ^^.^^.^^.^^.^^.^^..4      pRV,          R,
          R,          p\        \        P                  ! V4      RRR7       \        \        P                  ! V4      RRR7       \         P                  ! . RO. RO. RO. RO. RO. RO. RO.4      pRV,          R,
          R,          p\        \        P                  ! VRR7      R	RR7       \        \        P                  ! VR
R7      RRR7       \        \        P                  ! VRR7      RRR7       R F`  p\         P
                  ! ^V) ,          4      p\        \        P                  ! \         P                  ! ^.V,          .4      RR7      V4       Kb  	  R# )r#          @      ?ǘ?-C6?atolg/$?MDmethodr   WDS?CD:M?L2-starN      (@rI   r#   r#   rI   rI   rI   r#   rI   rI   rI   rI   rI   rI   r#   r#   r#   r#   r#   r#   r#   r#   r#   rI   rI   r#   rI   rI   rI   r#   r#   rI   rI   rI   rI   r#   r#   rI   rI   rI   r#   rI   rI         @rI                @   )r)   r*   r   r   discrepancysqrt)r+   space_1space_2r<   dimrefs   &     r1   test_discrepancyTestUtils.test_discrepancy_   s   ((QFQFQFQFQFQFKL=3&95((QFQFQFQFQFQFKL=3&95 	0&tD0&tD
 -------/ 0 ,$3t<f!	#t<f!	#t<f!	# )C''!sd)$CCOOBHHqc#gY,?3<>?BD )r4   c           	     z   \         P                  ! ^^.^^.^^.^^.^^.^^..4      p\        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! V4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! ^^.4       RRR4       ^ ^ .^^.RR..p\        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! VRR7       RRR4       R#   + '       g   i     L; i  + '       g   i     Lu; i  + '       g   i     R# ; i)	r#   rG   rE   NrD   r   'toto' is not a valid ...totorW   )r)   r*   rJ   rK   rL   r   rm   r+   r<   s   & r1   test_discrepancy_errors!TestUtils.test_discrepancy_errors   s    Aq6Aq6Aq6Aq6Aq6Aq6JK]]@
 
 OOF#

 ]]:-HIIOOQF# J a&1a&3*-]]:-IJJOOF62 KJ
 

 JI KJJs$   DD D)D	D&	)D:	c           
        \         P                  ! . RO. RO. RO. RO. RO. RO. RO.4      pRV,          R,
          R,          p\        \        P                  ! VR^R7      RRR7       \        \        P                  ! VR^R7      R	RR7       \        \        P                  ! VR
^R7      RRR7       R Fa  p\         P
                  ! ^V) ,          4      p\        \        P                  ! \         P                  ! ^.V,          .4      RRR7      V4       Kc  	  VP                  \        RR 4       \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! VRR7       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        P                  ! VRR7       RRR4       R#   + '       g   i     LW; i  + '       g   i     R# ; i)rI   rP   rQ   rV   )rX   workersr   rS   rT   rY   rZ   r[   r\   r]   	cpu_countc                      R # N r   r4   r1   <lambda>5TestUtils.test_discrepancy_parallel.<locals>.<lambda>   s    Tr4   zCannot determine therE   r|   NzInvalid number of workers...r_   r`   ra   rb   rc   rd   re   rf   rg   r!   )r)   r*   r   r   rm   rn   setattrosrJ   rK   NotImplementedErrorrL   )r+   monkeypatchr<   rq   rr   s   &&   r1   test_discrepancy_parallel#TestUtils.test_discrepancy_parallel   sg   -------/ 0 ,$3tQG!	# 	tQG!	# 	tQG!	# )C''!+&CCOOBHHqcCi[,A3<bJKNP )
 	B\:]].6LMMOOFB/ N ]]:-KLLOOFB/ ML NM MLLs   F=G=G	G!	c           	     F   \         P                  ! ^^.^^.^^.^^.^^.^^..4      p\        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! V4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! ^^.4       RRR4       ^ ^ .^^.RR..p\        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! VRR7       RRR4       \         P                  ! ^ ^ .^ ^ .^ ^..4      p\        P                  ! \        R	R7      ;_uu_ 4        \
        P                  ! V4       RRR4       \         P                  ! RR..4      p\        P                  ! \        R
R7      ;_uu_ 4        \
        P                  ! V4       RRR4       R#   + '       g   i     ELf; i  + '       g   i     EL5; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r#   rG   rE   NrD   r   rv   rw   rW   z!Sample contains duplicate points.z'Sample must contain at least two points)	r)   r*   rJ   rK   rL   r   geometric_discrepancywarnsUserWarningrx   s   & r1   !test_geometric_discrepancy_errors+TestUtils.test_geometric_discrepancy_errors   s   Aq6Aq6Aq6Aq6Aq6Aq6JK]]:-OPP%%f- Q ]]:-HII%%q!f- J a&1a&3*-]]:-IJJ%%fV< K Aq6Aq6Aq623\\+-PQQ%%f- R C:,']]:-VWW%%f- XW QPP JII KJ RQ XWWs<   GG G)G< HG	G&	)G9	<H	H 	c                   \         P                  ! ^ ^ .^^..4      p\        \        P                  ! V4      \         P
                  ! ^4      4       \        \        P                  ! VRR7      \         P
                  ! ^4      4       \         P                  ! ^ ^ .^ ^.R^..4      p\        \        P                  ! V4      R4       \        \        P                  ! VRR7      R4       \         P                  ! ^ ^ .RR.^^..4      p\        \        P                  ! V4      \         P
                  ! ^4      ^,          4       \        \        P                  ! VRR7      \         P
                  ! ^4      ^,          4       \        \        P                  ! VRR7      R4       \        \        P                  ! VRRR7      R4       \         P                  P                  R	4      p\        P                  ! ^VR
7      P                  ^24      p\        \        P                  ! V4      R4       \        \        P                  ! VRR7      R4       R# )r   mstrW   r         ?      ?	chebyshev)metric)rX   r   l	   s;80riR$ dr;   gY$?guڗ8?N)	r)   r*   r   r   r   rn   r9   r:   LatinHypercube)r+   r<   r;   s   &  r1   test_geometric_discrepancy$TestUtils.test_geometric_discrepancy   s   Aq6Aq6*+11&92771:F11&GQRTAq6Aq6C84511&93?11&GNAq6D$<!Q8911&92771:>J11&GQRVWX11&MtT%%fU;OQT	
 ii##$KL##aS188<11&9;NO%%fU;=P	
r4   z5minimum_spanning_tree ignores zero distances (#18892)T)reasonstrictc                    \         P                  ! ^ ^ .^ ^ .^ ^..4      p\        \        P                  ! VRR7      R4       R# )r   r   rW   r   N)r)   r*   r   r   r   rx   s   & r1   2test_geometric_discrepancy_mst_with_zero_distances<TestUtils.test_geometric_discrepancy_mst_with_zero_distances   s<     Aq6Aq6Aq62311&GMr4   c           	     x   \         P                  ! ^^.^^.^^.^^.^^.^^..4      pRV,          R,
          R,          p\        P                  ! VRR RR7      p\	        VR,          VRR V4      p\        VRRR7       \         P                  P                  R	4      pVP                  R4      p\        P                  ! V4      p\        P                  ! VRR RR7      p\	        VR,          VRR V4      p\        W5RR7       \        P                  ! \        R
R7      ;_uu_ 4        \	        VR,          VRR ^,           V4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \	        VR,          V^ ,          V4       RRR4       ^^.p\        P                  ! \        RR7      ;_uu_ 4        \	        WaRR V4       RRR4       RR..p\        P                  ! \        RR7      ;_uu_ 4        \	        WaRR V4       RRR4       . ROp\        P                  ! \        RR7      ;_uu_ 4        \	        WaRR V4       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)r#   rP   rQ   NT)	iterativerR   rS   rT   l	   gy,!uUxFYo9"] rG   rE   rD   zx_new is not in unit hypercuber   zx_new is not a 1D arrayz&x_new and sample must be broadcastabler^   r   )rh   r8   )g333333?皙?r   )r)   r*   r   rm   r   r   r9   r:   rJ   rK   rL   )r+   ro   	disc_init	disc_iterr;   disc_refx_news   &      r1   test_update_discrepancy!TestUtils.test_update_discrepancy   s:   ((QFQFQFQFQFQFKL=3&95OOGCRLDA	&wr{GCRL)L		65 ii##$KL**W%??7+OOGCRLDA	&wr{GCRL)L		$7 ]]: .: ; ;wr{GCRL1,<iH; ]]:-HIIwr{GAJ	B J A]]: .: ; ;ucrlI>; s]]:-GHHucrlI> I ]]: .> ? ?ucrlI>? ?#; ; ; JI; ;
 IH? ? ?s<   )I4I/ JJJ(I,	/I?	J	J%	(J9	c                   \         P                  P                  R 4      p\        P                  ! ^VR7      pVP                  ^
4      p\        P
                  ! V4      p\        ^d4       F  pVP                  ^
4      pVP                  ^
4      pVP                  ^4      p\        W6WxV4      pW7V3,          W6V3,          uW6V3&   W7V3&   \        P
                  ! V4      p	\        WI4       K  	  R# )l	   PvWuW=lWx" r;   N)
r)   r9   r:   r   r   rm   rangeintegersr   r   )
r+   r;   qmc_genr<   discirow_1row_2coldisc_references
   &         r1   test_perm_discrepancyTestUtils.test_perm_discrepancy  s    ii##$JK$$QC0#v&sALL$ELL$E,,q/C'u4HDcz"F#:$6 3F#:cz 2 __V4ND1 r4   c                   R pR pR pR p\         P                  P                  R4      pVP                  R4      p\        P                  ! VRR7      pV! V4      p\        Wx4       \        P                  ! VRR7      pV! V4      p\        Wx4       \        P                  ! VR	R7      pV! V4      p\        Wx4       \        P                  ! VR
R7      pV! V4      p\        Wx4       R# )z,Alternative definitions from Matt Haberland.c                 <   V P                   w  rT p\        P                  ! \        P                  ! ^R\        P                  ! VR,
          4      ,          ,           R\        P                  ! VR,
          4      ^,          ,          ,
          ^R7      4      pV R,          pV R,          p\        P                  ! \        P                  ! \        P                  ! ^R\        P                  ! VR,
          4      ,          ,           R\        P                  ! VR,
          4      ,          ,           R\        P                  ! W5,
          4      ,          ,
          ^R7      ^ R7      4      pRV,          ^V,          V,          ,
          ^V^,          ,          V,          ,           # )r#   r   axisNNNNr   r   Nr   gUUUUUU?shaper)   sumprodabsxnsxijdisc1xkjdisc2s   &      r1   disc_c2FTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_c2*  s+   77DACFF277A&)"&&S/&9%:&)"&&S/1*<&<%=DEG HE J-CJ-CFF266"''!,/sSy0A,A+B,/sSy0A,A+B -0sy0A,A+B IJ#K ()	* +E
 A:!e+a1fUl::r4   c                    V P                   w  rV R,          pV R,          p\        P                  ! \        P                  ! \        P                  ! R\        P                  ! W4,
          4      ,
          \        P                  ! W4,
          4      ^,          ,           ^R7      ^ R7      4      pRV,          ) ^V^,          ,          V,          ,           # )Nr   r   r   r'   gUUUUUU?r   )r   r   r   r   r   r   s   &     r1   disc_wdFTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_wd9  s    77DAJ-CJ-C66"&&+-66#)+<*=+-66#)+<a+?*@FG"I '() *D 1H9qAv},,r4   c                    V P                   w  rT p\        P                  ! \        P                  ! RR\        P                  ! VR,
          4      ,          ,
          R\        P                  ! VR,
          4      ^,          ,          ,
          ^R7      4      pV R,          pV R,          p\        P                  ! \        P                  ! \        P                  ! RR\        P                  ! VR,
          4      ,          ,
          R\        P                  ! VR,
          4      ,          ,
          R\        P                  ! W5,
          4      ,          ,
          R\        P                  ! W5,
          4      ^,          ,          ,           ^R7      ^ R7      4      pR	V,          ^V,          V,          ,
          ^V^,          ,          V,          ,           # )
r%   r   r   g?r   r   r   g      ?r   gUUUUUU?r   r   s   &      r1   disc_mdFTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_mdC  sH   77DACFF277C&)"&&S/&9%:&)"&&S/1*<&<%=DEG HE J-CJ-CFF266"''$,/sSy0A,A+B,/sSy0A,A+B -0sy0A,A+B -0sy0A10D,D	+E
 01#2
 9:; <E A:!e+a1fUl::r4   c                 H   V P                   w  r\        P                  ! ^V) ,          ^^V,
          ,          V,          \        P                  ! \        P                  ! ^V ^,          ,
          ^R7      4      ,          ,
          \        P                  ! \        V4       UUu. uFW  p\        V4       FE  p\        P                  ! ^\        P                  ! WR3,          WR3,          4      ,
          4      NKG  	  KY  	  upp4      V^,          ,          ,           4      # u uppi )r&   r   r   )r   r)   rn   r   r   r   maximum)r   r   r   kjs   &    r1   disc_star_l2KTestUtils.test_discrepancy_alternative_implementation.<locals>.disc_star_l2S  s    77DA77qb	A!a%L1,&&Q!V!456 6&&"1X%uQx! GGA

1T7AdG <<=/7 >%  !V s   !ADl	   j;<Q`siyX r[   rW   rY   rV   r]   Nr6   )r)   r9   r:   r   rm   r   )	r+   r   r   r   r   r;   r<   	disc_currdisc_alts	   &        r1   +test_discrepancy_alternative_implementation5TestUtils.test_discrepancy_alternative_implementation'  s    	;	-	; 		 ii##$KLH%OOF48	6?	,OOF48	6?	,OOF48	6?	,OOF9=	'	,r4   c                    \        ^
4      pVR,          ^8X  g   Q h\        ^4      pVR,          R8X  g   Q h\        R4      pVR,          R8X  g   Q hR# )r8   i  i^  i5	  Nr   )r   )r+   primess   & r1   test_n_primesTestUtils.test_n_primesq  sS    "bzR#bzS   #bzT!!!r4   c                :    \        ^24      p. ROp\        W4       R# )2   N)rI   r&   r%                           %   )   +   /   )r   r   )r+   r   r-   s   &  r1   test_primesTestUtils.test_primes{  s    !"%F$r4   r   N)__name__
__module____qualname____firstlineno__r2   rA   rM   rs   ry   r   r   r   rJ   markxfailthread_unsafer   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r1   r   r      s     +<* $D#DJ3!0F.*
0 [[J   [[N 	
N(?T2"H-T"% %r4   r   c                   2   a  ] tR tRt o R tR tR tRtV tR# )TestVDCi  c                    \        ^
4      p. ROp\        W4       \        ^
^R7      p\        W4       \        ^
^R7      p\        W4       \        ^^R7      p\        WR,          4       R# )r8   r   )start_indexr&   NNN)
        r   r   r         ?      ?      ?      ?g      ?g      ?r   r   )r+   r<   r-   s   &  r1   test_van_der_corputTestVDC.test_van_der_corput  s[    #-$A.$A.$q1B(r4   c                    R p\        ^
RVR7      p\        ^^RVR7      p\        W2R,          4       \        ^^RV^R7      p\        W2R,          4       \        ^^RV^R7      p\        W2R,          4       R# )l	   	XCf
Kl<{O8 Tscrambler;   )r   r  r;   r   )r   r  r;   r|   Nr  )r+   r;   r-   r<   s   &   r1   test_van_der_corput_scramble$TestVDC.test_van_der_corput_scramble  sw    5R$C8q4SIB(1ta
 	B(1ta
 	B(r4   c                    \         P                  ! \        R R7      ;_uu_ 4        \        ^
^R7       RRR4       R#   + '       g   i     R# ; i)z'base' must be at least 2rE   )baseN)rJ   rK   rL   r   r+   s   &r1   test_invalid_base_errorTestVDC.test_invalid_base_error  s.    ]]:-IJJ2A& KJJJs	   =A	r   N)	r   r   r   r   r  r  r  r   r   r   s   @r1   r   r     s     ))"' 'r4   r   c                   H   a a ] tR tRt oRV 3R lltRR^/R lltRtVtV ;t# )RandomEnginei  c                *   < \         SV `  WVR 7       R# ))r   optimizationr;   N)super__init__)r+   r   r  r;   	__class__s   &&&&r1   r  RandomEngine.__init__  s    1SAr4   r|   c               R    V P                   P                  WP                  34      pV# r   )r;   r9   r   )r+   r   r|   r<   s   &&$ r1   _randomRandomEngine._random  s    !VV-r4   r   NN)r#   )	r   r   r   r   r  r  r   r   __classcell__)r  r   s   @@r1   r  r    s     Ba  r4   r  c                     \        ^RR7      p V P                  ^R7      pV P                  ^R7      pV P                  ^8X  g   Q hV P                  4        V P                  ^ 8X  g   Q hV P                  ^R7      p\	        W4       V P                  4        V P                  ^R7       V P                  ^R7      p\	        W$4       V P                  ^8X  g   Q hR# )rI   l	   F,@IY^+Ge r   r   N)r  r9   num_generatedresetr   fast_forward)enginesample_1sample_2sample_1_testsample_2_tests        r1   test_subclassing_QMCEnginer*    s    !!HIF}}q}!H}}q}!H2%%% LLN1$$$MMAM&M) LLN
!MMAM&M)2%%%r4   c                     \         P                  ! \        R R7      ;_uu_ 4        \        R4       RRR4       \         P                  ! \        R R7      ;_uu_ 4        \        R4       RRR4       Rp \         P                  ! \        V R7      ;_uu_ 4        \        ^4      pVP	                  ^RR7       RRR4       R#   + '       g   i     L; i  + '       g   i     Lr; i  + '       g   i     R# ; i)z d must be a non-negative integerrE   Nz*'u_bounds' and 'l_bounds' must be integers皙?r   )rI   r   )rJ   rK   rL   r  r   )msgr%  s     r1   test_raisesr.    s    	z)L	M	MT 
N 
z)L	M	MR 
N 8C	z	-	-aS1 
.	- 
N	M 
N	M 
.	-	-s#   C CC& C	C#	&C7	c                     \        ^RR7      p V P                  ^^
R7      p\        \        P                  ! V4      ^ .4       VP
                  \        P
                  ! R4      8X  g   Q hV P                  ^^
RR7      p\        \        P                  ! V4      ^ ^.4       R
p^pV P                  4        V P                  ^4      pWCV,
          ,          V,           p\        P                  ! V4      P                  \        P                  4      pV P                  4        V P                  W#^RR7      p\        W4       V P                  W#^dRR7      p\        VP                  4       VP                  4       3W#^,
          34       V P                  W#^dRR7      p\        VP                  4       VP                  4       3W#34       R	# )r#   l	   llG[/Ww r   r!  int64T)r   endpointFr   r   r1  N)r  r   r   r)   uniquedtyper#  r9   floorastyper0  minmax)r%  r<   lowhigh
ref_samples        r1   test_integersr=    s\   !!HIF __Q"_%F6"QC(<<288G,,,,__Q"t_4F6"QF+
CD LLNr"Jcz*S0J*%,,RXX6J
LLN__S2_FF$ __S3_GF&**,

-!V}=__S3_FF&**,

-{;r4   c                     ^
p \         P                  P                  R4      pVP                  R
RV R7      pVP                  ^^V RR7      p\	        WR7      pVP                  W#^dRR7      p\        VP                  ^ R7      V4       \        VP                  ^ R7      V^,
          4       VP                  W#^dRR7      p\        VP                  ^ R7      V4       \        VP                  ^ R7      V4       R	# )r8   l	   G]	#0m$ave )r:  r;  sizeT)r:  r;  r?  r1  r   Fr2  r   Nr3  r   )r)   r9   r:   r   r  r   r8  r9  )r   r;   r:  r;  r%  r<   s         r1   test_integers_ndr@    s    
A
))

 E
FC
,,2BQ,
/C<<AAA<=D!%F__S3_GF#S)#T!V,__S3_FF#S)#T*r4   c                     a  ] tR tRt o Rt]t]t]t]t	RR.t
RR.tR#V 3R lR	 lltV 3R
 lR lt]P                  P!                  R]
]R7      R 4       t]P                  P!                  R]
]R7      R 4       t]P                  P!                  R]
]R7      R 4       t]P                  P!                  R]
]R7      R 4       t]P                  P!                  R]
]R7      R 4       t]P                  P!                  R]
]R7      R 4       t]P                  P!                  R]
]R7      ]P                  P!                  RRR ]P.                  ! R]P                  P0                  R7      34      R 4       4       t]P                  P!                  R]
]R7      R 4       t]P                  P!                  RR.4      R 4       tR t]P                  P!                  RR]P<                  3RR 3.4      R  4       tR! t R"t!V t"R# )$QMCEngineTestsi  zGeneric tests for QMC engines.TF	ScrambledUnscrambled	   \v$PdvuL2+C c                &   < V ^8  d   QhRS[ RS[/# rI   r  return)boolr   )formatr   s   "r1   __annotate__QMCEngineTests.__annotate__  s     5 55 
	5r4   c                    V P                   '       d   V P                  ! RR VRV/VB # V'       d   \        P                  ! 4        R# V P                  ! RRV/VB # )r  seedNr   )can_scrambleqmcerJ   skip)r+   r  r;   kwargss   &&&,r1   r%  QMCEngineTests.engine  sO     99ChCSCFCCyy4c4V44r4   c                :   < V ^8  d   QhRS[ RS[P                  /# rG  )rI  r)   ndarray)rJ  r   s   "r1   rK  rL  !  s#     D D$ D2:: Dr4   c                B    V'       d   V P                   # V P                  # r   )scramble_ndunscramble_nd)r+   r  s   &&r1   	referenceQMCEngineTests.reference!  s    #+tC1C1CCr4   r  )idsc                    V P                  ^ VR7      pVP                  ^4      p\        \        P                  ! R4      V4       R# )r   r   r  N)rh   r   r%  r9   r   r)   emptyr+   r  r%  r<   s   &&  r1   	test_0dimQMCEngineTests.test_0dim$  5    q84q!288F+V4r4   c                    V P                  ^VR7      pVP                  ^ 4      p\        \        P                  ! R4      V4       R# )rI   r]  Nr   rI   r^  r`  s   &&  r1   test_0sampleQMCEngineTests.test_0sample*  rc  r4   c                t    V P                  ^VR7      pVP                  ^4      pRVP                  8X  g   Q hR# )rI   r]  Nr#   rI   )r%  r9   r   r`  s   &&  r1   test_1sampleQMCEngineTests.test_1sample0  s4    q84q!%%%r4   c                    V P                  ^dVR7      pVP                  R4      p\        P                  ! V^ 8  4      '       g   Q h\        P                  ! V^8*  4      '       g   Q hR# )d   r]     N)r%  r9   r)   allr`  s   &&  r1   test_boundsQMCEngineTests.test_bounds6  sT    sX6s#vvfk""""vvfk""""r4   c                    V P                  VR 7      pV P                  ^VR7      pVP                  \        V4      R7      p\	        WBRR7       VP
                  \        V4      8X  g   Q hR# )r  r]  r!  r   rT   N)rY  r%  r9   lenr   r"  )r+   r  r<  r%  r<   s   &&   r1   test_sampleQMCEngineTests.test_sample=  sZ    ^^X^6
q84Z16##s:666r4   c                   V P                  ^VR7      pVP                  ^R7      pV P                  ^VR7      p\        V4      ^,          pVP                  VR7      pVP                  VR7      p\        WcVR RR7       R# )rI   r]  r!  Nr   rT   )r%  r9   rt  r   )r+   r  r%  r<  n_half_r<   s   &&     r1   test_continuingQMCEngineTests.test_continuingF  su    q84]]Q]'
q84ZA%MMFM#(67 3$?r4   r;   c                 @    \         P                  P                  R 4      # rE  )r)   r9   r:   r   r4   r1   r   QMCEngineTests.<lambda>X  s    BII))*QRr4   N)marksc                    \        V4      '       d   V! 4       pV P                  ^WR7      pVP                  ^R7      pVP                  4        VP                  ^ 8X  g   Q hVP                  ^R7      p\        WT4       R# )rI   r   r  r;   r!  N)callabler%  r9   r#  r"  r   )r+   r  r;   r%  r<  r<   s   &&&   r1   
test_resetQMCEngineTests.test_resetS  sk     C==%Cq8=]]Q]'
##q(((#+r4   c                X   V P                  ^VR7      pVP                  ^R7      pV P                  ^VR7      pVP                  ^4       VP                  ^R7      p\        WCR,          RR7       VP	                  4        . p\        ^4       FC  pV^,          ^ 8X  d"   VP                  VP                  4       4       K2  VP                  ^4       KE  	  \        T\        ^4       Uu. uF  qf^,          ^ 8X  g   K  VNK  	  up,          \        P                  ! V4      RR7       R# u upi )rI   r]  r!  :rh   NNr   rT   h㈵>N)	r%  r9   r$  r   r#  r   appendr)   concatenate)r+   r  r%  r<  r<   
even_drawsr   s   &&     r1   test_fast_forward QMCEngineTests.test_fast_forwardi  s    q84]]Q]'
q84A#2T: 	
qA1uz!!&--/2##A&	 
 	58:8a1uz8:;NN:&	
:s   'D'
;D'
c                   ^2pV P                  W!R7      pVP                  R4      p\        \        P                  ! V^ R7      \        P
                  ! RV4      RR7       \        \        P                  ! V^^ R7      \        P
                  ! RV4      RR7       \        \        P                  ! V^K^ R7      \        P
                  ! RV4      RR7       R	# )
r   r]  i   r   r   {Gz?rT   r   r   N)r%  r9   r   r)   meanrepeat
percentile)r+   r  r   r%  r<   s   &&   r1   test_distribution QMCEngineTests.test_distribution  s    q4t$GGF#RYYsA%6T	
 	MM&"1-ryyq/A	
 	MM&"1-ryyq/A	
r4   c                    R p\         P                  ! \        VR7      ;_uu_ 4        V P                  ^RRR7       RRR4       R#   + '       g   i     R# ; i)z)'toto' is not a valid optimization methodrE   Frw   r   r  r  N)rJ   rK   rL   r%  r+   messages   & r1   test_raises_optimizer$QMCEngineTests.test_raises_optimizer  s9    >]]:W55KK!e&KA 6555   AA	zoptimization,metric	random-CDlloydc                    \        V 4      ) # r   )r   r<   s   &r1   r   r~    s    hv&6%6r4   c                    V P                  ^RR7      pVP                  ^@R7      pV! V4      pV P                  ^RVR7      pVP                  ^@R7      pV! V4      pW8  g   Q hR# )rI   Fr]  r!  r  N)r%  r9   )	r+   r  r   r%  
sample_ref
metric_refoptimal_sample_metric_s	   &&&      r1   test_optimizersQMCEngineTests.test_optimizers  si     q51]]R](
J'
;;U;N//B/'/###r4   c                >   \         P                  P                  R 4      p. p\        ^4       F7  pV P	                  ^RVR7      pVP                  VP                  ^4      4       K9  	  \        P                  ! \        RR7      ;_uu_ 4        \        V^ ,          V^,          4       RRR4       \        P                  ! \        RR7      ;_uu_ 4        \        V^ ,          V^,          4       RRR4       R#   + '       g   i     LY; i  + '       g   i     R# ; i)l	   B"V6DGlUN Tr  zArrays are not equalrE   N)
r)   r9   r:   r   r%  r  rJ   rK   AssertionErrorr   )r+   r;   r<   r   r%  s   &    r1   test_consume_prng_state&QMCEngineTests.test_consume_prng_state  s    ii##$FGqA[[1t[=FMM&--*+  ]]>1GHHF1I. I]]>1GHHF1I. IH IHHHHs   C8D8D	D	r   r}  )#r   r   r   r   __doc__NotImplementedrP  rO  rX  rW  r  r[  r%  rY  rJ   r   parametrizera  rf  rj  rp  ru  rz  paramr   r  r  r  r  r   rm   r  r  r   r   r   s   @r1   rB  rB    sK    (D!L"M Ke}H
&C5 5 D D [[Zs;5 <5
 [[Zs;5 <5
 [[Zs;& <&
 [[Zs;# <# [[Zs;7 <7 [[Zs;
@ <
@ [[Zs;[[3RLLV[[%>%>?	
, <, [[Zs;
 <
2 [[Z$0
 1
B
 [[#//*67	9	$	$
/ 
/r4   rB  c                      a  ] tR tRt o ]P
                  tRt]P                  ! ^ ^ .RR.RR.RR.RR.RR.R R!.R"R#..4      t
]P                  ! RR.RR.RR.R	R
.RR.RR.RR.RR..4      tR tRtV tR# )$
TestHaltoni  Tg{'?gؖd?gz'd?gG?g{'?gk97?g oO(?goS?g{'?ggrY?gAP?gR?g{'?gyr?g oO(?g͟E?c                @   V P                  R R7      pV P                  ^R R7      pVP                  \        V4      ^R7      p\	        W1RR7       VP                  4        VP                  ^
4      pVP                  4        VP                  ^
^R7      p\        W14       R# )Trs  r]  )r   r|   gMbP?rT   r   N)rY  r%  r9   rt  r   r#  r   r   )r+   r<  r%  r<   s   &   r1   test_workersTestHalton.test_workers  s    ^^T^2
q40Z!<6 	__R(
Q/V(r4   r   Nr   gUUUUUU?r   gUUUUUU?r   gqq?r  gqq?r  g98?r  gqq?r  grq?)r   r   r   r   r   HaltonrP  rO  r)   r*   rX  rW  r  r   r   r   s   @r1   r  r    s     ::DLHHq!fuen$enuen$enuen$enuen> ?M
 ((Z4'4'4'4'4'4'4'46 7K) )r4   r  c                   &  a  ] tR tRt o ]P
                  tRtR tR t	R t
]P                  P                  R^^.4      ]P                  P                  RRR.4      ]P                  P                  R	R
R.4      R 4       4       4       tR tR tRtV tR
# )TestLHSi  Tc                2    \         P                  ! R 4       R# zNot applicable: not a sequence.NrJ   rQ  r+   argss   &*r1   rz  TestLHS.test_continuing      56r4   c                2    \         P                  ! R 4       R# r  r  r  s   &*r1   r  TestLHS.test_fast_forward  r  r4   c                2    \         P                  ! R 4       R# zJNot applicable: the value of reference sample is implementation dependent.Nr  r  s   &*r1   ru  TestLHS.test_sample       1 	2r4   strengthr  Fr  Nr  c                   \         P                  P                  R 4      p^pV^,          p^p\        P                  ! WrVVVR7      pVP                  VR7      p	V	P
                  Wg38X  g   Q hVP                  V8X  g   Q h\         P                  ! V4      R,           V,          p
\         P                  ! WV34      P                  p\         P                  ! W8g  4      '       g   Q h\         P                  ! V	^ R7      pV'       d
   RV,          M^ p\        WVR7       \         P                  ! W,
          V8  4      '       g   Q hV^8X  d   Vf   \         P                  ! V4      p\        \        W4      4      p\        \!        VP"                  4      ^4       FU  w  ppV	RVV.3,          pVV,          P%                  \&        4      pV Uu0 uF  p\)        V4      kK  	  pp\+        VV4       KW  	  R# R# R# u upi )l	   pIrtS"Md@B )r   r  r  r  r;   r!  r   r   rT   Nr   )r)   r9   r:   r   r   r   r"  arangebroadcast_toTanysortr   setr   r   r   r   r7  inttupler   )r+   r  r  r  r;   pr   r   r%  r<   
expected1dexpectedsorted_sampletolunique_elementsdesiredr   r   
samples_2dresrowres_sets   &&&&                  r1   test_sample_stratifiedTestLHS.test_sample_stratified  s    ii##$JKqD##a-51=(+- #||v%%%##q(((
 iilS(A-
??:1v688vvf())))Q/!cAgqc:vvf'#-....q=\1 iilO'/CDG$U688_a81#A1vI.
!A~--c2145#5:5Wg.	 9	 2= 6s   G8c                    V P                  ^RR7      pVP                  ^@R7      pV P                  ^RRR7      pVP                  ^@R7      p\        W$4       R# )r#   Fr]  r!  r  r  N)r%  r9   r   )r+   r%  r  r  r  s   &    r1   test_optimizer_1dTestLHS.test_optimizer_1d  sP    q51]]R](
;;U;M//B/':/r4   c                @   R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^^R7       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^^R7      pVP                  ^4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^^R7      pVP                  ^4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^^R7      pVP                  ^	4       RRR4       R#   + '       g   i     EL; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)znot a valid strengthrE   )r  Nz%n is not the square of a prime number)r   r  zn is too small for d)rJ   rK   rL   r   r   r9   )r+   r  r%  s   &  r1   r.  TestLHS.test_raises  s   )]]:W55q1- 6 ;]]:W55''!a8FMM" 6 ;]]:W55''!a8FMM! 6 *]]:W55''!a8FMM! 65 655 65
 65
 655s/   E.*E&*E9*FE#	&E6	9F		F	r   )r   r   r   r   r   r   rP  rO  rz  r  ru  rJ   r   r  r  r  r.  r   r   r   s   @r1   r  r    s     DL772 [[Z!Q0[[Z%7[[^dK-@A#/ B 8 1#/J0 r4   r  c                   J  a  ] tR tRt o ]P
                  tRt]P                  ! RR.RR.RR.RR.RR.RR.R	R
.R
R	..4      t
]P                  ! RR.RR.RR.RR.RR.RR.RR.RR..4      tR tR tR tR t]P"                  P%                  R^^.4      R  4       tR! tR"tV tR## )$	TestSoboli+  Tr  r   r   r   r  r  r  r  ga6?gtAAz?g`?g_k m?gsAdn?grIâ?gqL?g|?g+&C?g#*H;?g&fb_?g]bnQ?gvD2(?gt|!?g$\?g4>z@?c                    \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! ^4      pVP                  ^
4       RRR4       R#   + '       g   i     R# ; i)'The balance properties of Sobol' pointsrE   N)rJ   r   r   r   Sobolr9   r+   r%  s   & r1   test_warningTestSobol.test_warningB  sH    \\+ .> ? ?YYq\FMM"? ? ? ?s   (AA(	c                   \         P                  ! ^RR7      pVP                  ^4      p\        V P                  R,          V4       VP                  ^4      p\        V P                  R,          V4       \
        P                  ! \        RR7      ;_uu_ 4        VP                  ^4       RRR4       R#   + '       g   i     R# ; i)rI   Frs  :Nrh   N:rh   ri   Nr  rE   N)r   r  random_base2r   rX  rJ   rK   rL   r+   r%  r<   s   &  r1   test_random_base2TestSobol.test_random_base2H  s    1u-$$Q'4--b16: $$Q'4--c2F; ]]: .> ? ?"? ? ? ?s   B55C	c                   \         P                  ! \        R R7      ;_uu_ 4        \        P                  ! \        P                  P
                  ^,           4       RRR4       \         P                  ! \        RR7      ;_uu_ 4        \        P                  ! ^^AR7       RRR4       R#   + '       g   i     LW; i  + '       g   i     R# ; i)z Maximum supported dimensionalityrE   NzMaximum supported 'bits' is 64)bits)rJ   rK   rL   r   r  MAXDIMr  s   &r1   
test_raiseTestSobol.test_raiseV  s    ]]: .? @ @IIcii&&*+@ ]]: .= > >IIab!> >	@ @> > >s   6B*B=*B:	=C	c                f   \         P                  ! R RR7      p\        VP                  4       P	                  4       P                  4       4      p\        VP                  4       P	                  4       P                  4       4      p\        V\        RR /4      4       \        V\        RR /4      4       R# )iW  Frs  r  r   N)r   r  r   r9   flattentolistr   )r+   r%  count1count2s   &   r1   test_high_dimTestSobol.test_high_dim_  s|    4%000299;<00299;<VWc4[12VWc4[12r4   r  c                @   \         P                  ! ^RVR7      p^V,          pVP                  V4      p\        V P                  RV V4       \
        P                  ! \        RR7      ;_uu_ 4        VP                  4        RRR4       R#   + '       g   i     R# ; i)rI   Fr  r  Nzincreasing `bits`rE   )r   r  r9   r   rX  rJ   rK   rL   )r+   r  r%  nsr<   s   &&   r1   	test_bitsTestSobol.test_bitsf  sm    1u48Wr"4--cr2F;]]:-@AAMMO BAAAs   1BB	c                    \         P                  ! ^R^@R7      pVP                  ^4      p\        V P                  V4       R# )rI   Fr  N)r   r  r9   r   rX  r  s   &  r1   test_64bitsTestSobol.test_64bitsp  s2    1u26q!4--v6r4   r   N)r   r   r   r   r   r  rP  rO  r)   r*   rX  rW  r  r  r  r  rJ   r   r  r  r  r   r   r   s   @r1   r  r  +  s     99DLHHr2h"Cj#Tl#Tl$en$en$en$en. /M ((Z4&	2'4'4'4'4'4'46 7K#"3 [[VaV, -7 7r4   r  c                   &   a  ] tR tRt o R tRtV tR# )TestLow0Bitiv  c                N    . ROpV F  w  r#\        \        V4      V4       K  	  R# )r   N)	r   r#   ri  )rI   r#   r%   rI   )r   rh   )l    !   )l        r#   )l    "   )l    A   )r   r   )r+   test_vectorin_r-   s   &   r1   test_examplesTestLow0Bit.test_examplesw  s&    
 $HC-s3 $r4   r   N)r   r   r   r   r
  r   r   r   s   @r1   r  r  v  s     4 4r4   r  c                     a  ] tR tRt o ]P
                  tRtR tR t	R t
R tR t]P                  P                  RRRR.^^.3R
R
.RR.3.4      R 4       tR t]P                  P                  R. RO. RO.4      R 4       t]P                  P                  R. RO. RO.4      R 4       tR t]P                  P                  R. RORR..4      ]P                  P                  R^^..4      R 4       4       tR tRtV tR	# )TestPoissoni  Fc                2    \         P                  ! R 4       R# )zToo costly in memory.Nr  r  s   &*r1   rp  TestPoisson.test_bounds  s    +,r4   c                2    \         P                  ! R 4       R# )z"Not applicable: recursive process.Nr  r  s   &*r1   r  TestPoisson.test_fast_forward  s    89r4   c                2    \         P                  ! R 4       R# r  r  r  s   &*r1   ru  TestPoisson.test_sample  r  r4   c                   R p^pV P                  ^VRR7      pVP                  VR7      p\        V4      V8:  g   Q h\        V4      V8  g   Q hVP                  VR7      p\        V4      V8:  g   Q h\        V4      V8  g   Q h\        P
                  ! WV.^ R7      p\        V4      V^,          8:  g   Q h\        V4      V8  g   Q hR# )皙?F)r   radiusr  r!  r   N)r%  r9   rt  l2_normr)   r  )r+   r  r  r  r%  sample_initsample_continuedr<   s   &*      r1   rz  TestPoisson.test_continuing  s     q%@mmbm);2%%%{#v---!==2=.#$***'(F222 ?aH6{b1f$$$v&(((r4   c                h   \         P                  P                  R 4      p^2pRRrCWC,
          VP                  ^4      ,          V,           p. ROpRR.p\        WeV4      pV FN  w  rpV P	                  WWR7      pVP                  V4      p\        V4      V8:  g   Q h\        V4      V
8  d   KN  Q h	  R# )l	   x_4vZ.c g{Gz?皙?volumesurface)r   r  hyperspherer;   N)r#   r&   rh   )r)   r9   r:   r   rP  rt  r  )r+   r;   r  r:  r;  radii
dimensionshypersphere_methodsgenr   r  r  r%  r<   s   &             r1   test_mindistTestPoisson.test_mindist  s    ii##$KL#Tszz!},s2
'3j)<=&)"A{YY  F ]]2&Fv;"$$$6?f,,, '*r4   zl_bounds, u_boundsNr,  gffffff@c                v    R pV P                  ^W1VR7      pVP                  4       p\        V4      V8  g   Q hR# )r  r   r  r   r   N)rP  
fill_spacer  )r+   r   r   r  r%  r<   s   &&&   r1   test_fill_spaceTestPoisson.test_fill_space  s=     Qv8T""$v&(((r4   c                   R p\         P                  ! RR.4      pRp\         P                  P                  R4      pV P	                  ^W,          VW"V,           R7      pVP                  4       p\         P                  P                  R4      pV P	                  ^WR7      pVP                  4       p\        V4      V8  g   Q h\        WgV,          V,           4       R# )r  g333333@g@l   >u )r   r  r;   r   r   )r   r  r;   Ng )r)   asarrayr9   r:   rP  r(  r  r   )r+   r  shiftr(   r;   r%  r  rr   s   &       r1   test_bounds_shift_scale#TestPoisson.test_bounds_shift_scale  s     

D#;'ii##J/Qv|$)EM  C!ii##J/Qv7! s|v%%%Y./r4   r   c                    R p. ROpV P                  ^W!VR7      pVP                  ^4      pV F  p\        Wc4       \        W4       K  	  R# )r  r'  N)r&   r&   rI   rP  r9   r	   )r+   r   r  r   r%  r<   points   &&     r1   test_sample_inside_lower_bounds+TestPoisson.test_sample_inside_lower_bounds  sP    H  
 r"Ee.h. r4   r   c                    R p. ROpV P                  ^W#VR7      pVP                  ^4      pV F  p\        Wa4       \        W64       K  	  R# )r  r'  N)r6  r!   r1  )r+   r   r  r   r%  r<   r2  s   &&     r1   test_sample_inside_upper_bounds+TestPoisson.test_sample_inside_upper_bounds  sP    H  
 r"Ee.h. r4   c           	         R p. ROp. ROp\         P                  ! \        RR7      ;_uu_ 4        V P                  ^WVR7       RRR4       R#   + '       g   i     R# ; i)r  z1Bounds are not consistent 'l_bounds' < 'u_bounds'rE   r'  N)r&   rI   r#   r   r!   r   rJ   rK   rL   rP  )r+   r  r   r   s   &   r1   test_inconsistent_bound_value)TestPoisson.test_inconsistent_bound_value  sW    ]]EG G II&hIOG G G Gs   AA	c           	         R p\         P                  ! \        RR7      ;_uu_ 4        V P                  ^VW!R7       RRR4       R#   + '       g   i     R# ; i)r  zP'l_bounds' and 'u_bounds' must be broadcastable and respect the sample dimensionrE   r'  Nr;  )r+   r   r   r  s   &&& r1   test_inconsistent_bounds$TestPoisson.test_inconsistent_bounds   sR     ]]$% % IIF!  	% % % %r  c                    R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^RR7       RRR4       R#   + '       g   i     R# ; i)z*'toto' is not a valid hypersphere samplingrE   rw   )r  N)rJ   rK   rL   r   PoissonDiskr  s   & r1   r.  TestPoisson.test_raises  s5    ?]]:W55OOA62 6555s   A

A	r   r  r3  r   r!   r:  )r#   rI   r#   )r   r   r   r   r   rB  rP  rO  rp  r  ru  rz  r$  rJ   r   r  r)  r.  r3  r7  r<  r?  r.  r   r   r   s   @r1   r  r    s1    ??DL-:2)&-* [[1	R1a&)c3Z#s,DEG)G)0( [[Z,	)BC
/ D
/ [[Z,	)BC
/ D
/P [[Z,R)AB[[Z1a&2	 3 C	3 3r4   r  c                      a  ] tR tRt o R t]P                  P                  R4      R 4       tR t	R t
]P                  P                  R4      R 4       tRtV tR	# )
TestMultinomialQMCi  c           
        \         P                  ! . R
O4      p\        P                  ! \        RR7      ;_uu_ 4        \
        P                  ! V^
R7       RRR4       \         P                  ! . RO4      pRp\        P                  ! \        VR7      ;_uu_ 4        \
        P                  ! V^
R7       RRR4       \         P                  ! . RO4      pRp\        P                  ! \        VR7      ;_uu_ 4        \
        P                  ! V^
\
        P                  ! ^R7      R7       RRR4       R	p\        P                  ! \        VR7      ;_uu_ 4        \
        P                  ! V^
\         P                  P                  4       R7       RRR4       R#   + '       g   i     ELK; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)Q?z'Elements of pvals must be non-negative.rE   )n_trialsNz Elements of pvals must sum to 1.z Dimension of `engine` must be 1.r   )rH  r%  "`engine` must be an instance of...)rG  p=
ף?gffffff?)\(?)rG  rK  r   rL  rM  rG  rK  r  rL  rM  )
r)   r*   rJ   rK   rL   r   MultinomialQMCr  r9   r:   )r+   r  r  s   &  r1   test_validations#TestMultinomialQMC.test_validations  s4   HH45]]: .A B Bq2.B
 HH235]]:W55q2. 6 HH345]]:W55q2cii!nE 6 8]]:W55q2bii6K6K6MN 65#B B B 65 65 655s/   FF,;/F?6GF)	,F<	?G	G#	zignore::UserWarningc                @   \         P                  P                  R 4      p\         P                  ! . RO4      p^dp\         P                  ! W2,          4      P                  \        4      p\        P                  ! W#VR7      p\        VP                  ^4      V^R7       R# )l	   (u@gP{- )rH  rN  rT   NrN  )
r)   r9   r:   r*   
atleast_2dr7  r  r   rO  r   )r+   r;   r  rH  r  r%  s   &     r1   test_MultinomialBasicDraw,TestMultinomialQMC.test_MultinomialBasicDraw+  sm    ii##$IJHH34==.55c:##AsCa((;r4   c                B   \         P                  P                  R 4      p\         P                  ! . RO4      p\        P
                  ! VRVR7      pVP                  ^4      p\        V\         P                  ! V4      ,          \         P                  ! V4      RR7       R# )l	   8X7:ct]+C: i    )rH  r;   rS   rT   NrN  )	r)   r9   r:   r*   r   rO  r   r   rS  )r+   r;   r  r%  drawss   &    r1   test_MultinomialDistribution/TestMultinomialQMC.test_MultinomialDistribution5  sj    ii##$JKHH34##A#>a u-r}}Q/?dKr4   c                6   \         P                  ! . RO4      p\        V4      p\        \	        WR4      ^ 4       \        \	        WR4      ^4       \        \	        WR4      ^4       \        \	        WR4      ^4       \        \	        WR4      V^,
          4       R# )r   皙?rQ   r  gaۢ?g7?N)r   r[  g?g333333?r   ?gGz?rQ   )r)   r*   rt  r   r   )r+   p_cumulativer?  s   &  r1   test_FindIndex!TestMultinomialQMC.test_FindIndex<  sy    xx KL< %l#>B%l#>B%l'BAF%l'BAF%l#>qIr4   c                t   \         P                  P                  R 4      p\         P                  ! . RO4      p^dp\         P                  ! W2,          4      P                  \        4      p\        P                  ! ^RVR7      p\        P                  ! W#VVR7      p\        VP                  ^4      V^R7       R# )l	   aFkq|'x< Tr
  )rH  r%  r;   rT   NrN  )r)   r9   r:   r*   rS  r7  r  r   r  rO  r   )r+   r;   r  rH  r  base_enginer%  s   &      r1   test_other_engine$TestMultinomialQMC.test_other_engineE  s     ii##$KLHH34==.55c:iiDc:##A(+-a((;r4   r   N)r   r   r   r   rP  rJ   r   filterwarningsrT  rX  r^  rb  r   r   r   s   @r1   rE  rE    s_     O. [[ 56< 7<LJ [[ 56	< 7	<r4   rE  c                   J   a  ] tR tRt o R tR tR tR tR tR t	R t
R	tV tR
# )TestNormalQMCiR  c                   \         P                  ! \        P                  ! ^4      R7      pVP	                  4       p\        VP                  R4       VP	                  ^R7      p\        VP                  R4       \         P                  ! \        P                  ! ^4      R7      pVP	                  4       p\        VP                  R4       VP	                  ^R7      p\        VP                  R4       R# )r#   )r  r!  Nr#   r#   r%   r#   ri  r  r   MultivariateNormalQMCr)   zerosr9   r   r   r+   r%  sampless   &  r1   test_NormalQMCTestNormalQMC.test_NormalQMCS  s    **<--/W]]F+--!-$W]]F+**<--/W]]F+--!-$W]]F+r4   c                   \         P                  ! \        P                  ! ^4      RR7      pVP	                  4       p\        VP                  R4       VP	                  ^R7      p\        VP                  R4       \         P                  ! \        P                  ! ^4      RR7      pVP	                  4       p\        VP                  R4       VP	                  ^R7      p\        VP                  R4       R# )	r#   T)r  inv_transformr!  Nrh  ri  ri  r  rj  rm  s   &  r1   test_NormalQMCInvTransform(TestNormalQMC.test_NormalQMCInvTransforma  s    **!D2--/W]]F+--!-$W]]F+**!D2--/W]]F+--!-$W]]F+r4   c                b   \         P                  P                  R 4      p\        P                  ! \         P
                  ! ^4      RVR7      pVP                  ^R7      p\         P                  ! RR.RR..4      p\        W4RR7       \         P                  P                  R 4      p\        P                  ! \         P
                  ! ^4      RVR7      pVP                  ^R7      p\         P                  ! . RO. RO.4      p\        W4RR7       \         P                  P                  R 4      p\        P                  ! ^RVR	7      p\        P                  ! \         P
                  ! ^4      RWQR
7      pVP                  ^R7      p\         P                  ! . RO. RO.4      p\        W4RR7       R# )l	   q)*syRM@
K F)r  rr  rN  r!  gxDg?rS   rT   r  rr  r;   Tr
  )r  rr  r%  r;   NLpɻgUy)rw  rx  gZ?)g#ڎrgΌ~42?gԻx?n)	r)   r9   r:   r   rk  rl  r*   r   r  )r+   r;   r%  rn  samples_expectedra  s   &     r1   test_NormalQMCSeeded"TestNormalQMC.test_NormalQMCSeededq  s`   ii##$KL**!E=--!-$88i%;&/%:%< == ii##$KL**!Es<--!-$88%E%E%G H= ii##$KLiiDc:**!E
 --!-$88%E%E%G H=r4   c                "   \         P                  P                  R 4      p\        P                  ! \         P
                  ! ^4      VRR7      pVP                  ^R7      p\         P                  ! R	R
.RR..4      p\        W4RR7       \         P                  P                  R 4      p\        P                  ! \         P
                  ! ^4      VRR7      pVP                  ^R7      p\         P                  ! . RO. RO.4      p\        W4RR7       R# )l	   9e)-%5Z%_6 T)r  r;   rr  r!  g+`?g]@"i?rS   rT   N<9\M)r}  r~  g,D?)g˚X`?g7@gaTR')r)   r9   r:   r   rk  rl  r*   r   )r+   r;   r%  rn  ry  s   &    r1    test_NormalQMCSeededInvTransform.TestNormalQMC.test_NormalQMCSeededInvTransform  s    ii##$KL**!#T;--!-$88i%;&.%9%; <= ii##$KL**!#T;--!-$88%E%B%D E=r4   c                    R Fp  p\         P                  ! VRR7      p\         P                  ! \        P                  ! V4      VRR7      pVP                  4       p\        VP                  ^V34       Kr  	  R# )r   Fr]  T)r  r%  rr  Nr   r#   rI   )r   r  rk  r)   rl  r9   r   r   )r+   r   ra  r%  rn  s   &    r1   rb  TestNormalQMC.test_other_engine  s\    A))a%8K..BHHQK6A=ACF mmoGA/ r4   c                   \         P                  P                  R 4      p\        P                  ! \         P
                  ! ^4      VR7      pVP                  RR7      p\        \         P                  ! VP                  ^ R7      4      R8  4      '       g   Q h\        \         P                  ! VP                  ^ R7      ^,
          4      R8  4      '       g   Q hR	 F"  p\        VRV3,          4      w  rVVR8  d   K"  Q h	  \         P                  ! VP                  4       4      p\         P                  ! VR	,          4      R8  g   Q hR# )
i3  )r  r;      r!  r   r  r   r\  Nr  r)   r9   r:   r   rk  rl  ro  r   r  stdr   cov	transposer+   r;   r%  rn  r   ry  pvalr  s   &       r1   test_NormalQMCShapiro#TestNormalQMC.test_NormalQMCShapiro  s    ii##E***E--#-&266',,A,./$67777266'++1+-12T9::::Agadm,GA#::  ffW&&()vvc$i 4'''r4   c                   \         P                  P                  R 4      p\        P                  ! \         P
                  ! ^4      RVR7      pVP                  RR7      p\        \         P                  ! VP                  ^ R7      4      R8  4      '       g   Q h\        \         P                  ! VP                  ^ R7      ^,
          4      R8  4      '       g   Q hR
 F"  p\        VRV3,          4      w  rVVR8  d   K"  Q h	  \         P                  ! VP                  4       4      p\         P                  ! VR
,          4      R8  g   Q hR	# )iTrv  r  r!  r   r  r   r\  Nr  r  r  s   &       r1   !test_NormalQMCShapiroInvTransform/TestNormalQMC.test_NormalQMCShapiroInvTransform  s    ii##H-**!Dc;--#-&266',,A,./$67777266'++1+-12T9::::Agadm,GA#::  ffW&&()vvc$i 4'''r4   r   N)r   r   r   r   ro  rs  rz  r  rb  r  r  r   r   r   s   @r1   rf  rf  R  s.     ,, >@>&0(( (r4   rf  c                   V   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tRtV tR# )TestMultivariateNormalQMCi  c           	        R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^ .\        P
                  ! ^R7      R7       RRR4       R p\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! . R	O\        P
                  ! ^R7      R7       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^ ^ .\        P                  P                  4       R7       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^ ^ .^^.^^..4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^ ^ .^^ .^^..4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        \        P                  ! ^ .^^ .^ ^..4       RRR4       R#   + '       g   i     EL; i  + '       g   i     ELu; i  + '       g   i     EL$; i  + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)
z(Dimension of `engine` must be consistentrE   rI  )r%  NrJ  zCovariance matrix not PSD.z#Covariance matrix is not symmetric.z/Dimension mismatch between mean and covariance.r"   )	rJ   rK   rL   r   rk  r  r)   r9   r:   r  s   & r1   rP  *TestMultivariateNormalQMC.test_validations  s   =]]:W55%%qc#))a.A 6 >]]:W55%%i		AG 6 8]]:W55%%q!fRYY5J5J5LM 6 0]]:W55%%q!f1v1v.>? 6 9]]:W55%%q!f1v1v.>? 6 E]]:W55%%qcQFQF+;< 65) 655 655 655 65 65 655sG   /H0H "7H4 I I#I.H	 H1	4I	I	I+	.I?	c                j    \         P                  ! . RO. RO. RO. RO.4      pVP                  f   Q hR# )r   Nr"   )r#   r   r#   )r   r#   r#   )r#   r#   rI   )r   rk  _corr_matrixr  s   & r1   test_MultivariateNormalQMCNonPD9TestMultivariateNormalQMC.test_MultivariateNormalQMCNonPD  s2    **	9i8
 ""...r4   c                   \         P                  ! ^ ^R7      pVP                  4       p\        VP                  R4       VP                  ^R7      p\        VP                  R4       \         P                  ! ^ ^.^^ .^ ^..R7      pVP                  4       p\        VP                  R4       VP                  ^R7      p\        VP                  R4       \
        P                  ! . RO4      p\
        P                  ! . R	O. R
O. RO.4      p\         P                  ! W44      pVP                  4       p\        VP                  R4       VP                  ^R7      p\        VP                  R4       R# )r   )r  r  r!  Nrh  ri  ri  r  r  r#   r   r   r   r#   r   r   r   r#   r#   r&   r%   r&   r   rk  r9   r   r   r)   r*   r+   r%  rn  r  r  s   &    r1   test_MultivariateNormalQMC4TestMultivariateNormalQMC.test_MultivariateNormalQMC  s   **q9--/W]]F+--!-$W]]F+ **AaVaV<LM--/W]]F+--!-$W]]F+ xx	"hh	9i89**45--/W]]F+--!-$W]]F+r4   c                   \         P                  ! ^ ^RR7      pVP                  4       p\        VP                  R4       VP                  ^R7      p\        VP                  R4       \         P                  ! ^ ^.^^ .^ ^..RR7      pVP                  4       p\        VP                  R4       VP                  ^R7      p\        VP                  R	4       \
        P                  ! . R
O4      p\
        P                  ! . RO. RO. RO.4      p\         P                  ! W4RR7      pVP                  4       p\        VP                  R4       VP                  ^R7      p\        VP                  R4       R# )r   T)r  r  rr  r!  )rr  Nrh  ri  ri  r  r  r  r  r  r  r  r  r  s   &    r1   &test_MultivariateNormalQMCInvTransform@TestMultivariateNormalQMC.test_MultivariateNormalQMCInvTransform  s   **qM--/W]]F+--!-$W]]F+ **Qq!fq!f-T
 --/W]]F+--!-$W]]F+ xx	"hh	9i89**4DI--/W]]F+--!-$W]]F+r4   c                r   \         P                  P                  R 4      pVP                  R	4      pW"P	                  4       ,          \         P
                  ! VP                  ^4      4      ,           p\        P                  ! \         P                  ! ^ ^ .4      VRVR7      pVP                  ^R7      p\         P                  ! R
R.RR..4      p\        WVRR7       \         P                  P                  R 4      pVP                  R4      pW"P	                  4       ,          \         P
                  ! VP                  ^4      4      ,           p\        P                  ! \         P                  ! . RO4      VRVR7      pVP                  ^R7      p\         P                  ! . RO. RO.4      p\        WVRR7       R# )l	   b{1/YK $`F F)rr  r;   r!  gΧU?gK\ @rS   rT   NrI   rI   g X4g0<쿩r&   r&   r"   )gZh44gA->gZC)g~T~O?g*ʥo@gc}E?
r)   r9   r:   standard_normalr  diagr   rk  r*   r   r+   r;   r=   Ar%  rn  ry  s   &      r1    test_MultivariateNormalQMCSeeded:TestMultivariateNormalQMC.test_MultivariateNormalQMCSeeded   sS   ii##$KL'

1 66**288QF+;Q9>CI--!-$88h	%:&.%9%; <= ii##$KL'

1 66**288I+>9>CI--!-$88%F%C%E F=r4   c                n   \         P                  P                  R 4      pVP                  R	4      pW"P	                  4       ,          \         P
                  ! VP                  ^4      4      ,           p\        P                  ! \         P                  ! ^ ^ .4      W1RR7      pVP                  ^R7      p\         P                  ! RR
.RR..4      p\        WVRR7       \         P                  P                  R 4      pVP                  R4      pW"P	                  4       ,          \         P
                  ! VP                  ^4      4      ,           p\        P                  ! \         P                  ! . RO4      W1RR7      pVP                  ^R7      p\         P                  ! . RO. RO.4      p\        WVRR7       R# )l	   A^}KT0zubN T)r;   rr  r!  gFX?gO=`?rS   rT   Nr  ggR4r  r"   )go.2?gikD0NgPN)g4YgҫJC?g-v2 @r  r  s   &      r1   ,test_MultivariateNormalQMCSeededInvTransformFTestMultivariateNormalQMC.test_MultivariateNormalQMCSeededInvTransform7  sQ   ii##$KL'

1 66**HHaVa
 --!-$88h	%:&/%:%< == ii##$KL'

1 66**HHY4
 --!-$88%E%D%F G=r4   c                   \         P                  P                  R 4      p\        P                  ! ^ ^ .^^ .^ ^..VR7      pVP                  RR7      p\        \         P                  ! VP                  ^ R7      4      R8  4      '       g   Q h\        \         P                  ! VP                  ^ R7      ^,
          4      R8  4      '       g   Q hR F"  p\        VRV3,          4      w  rVVR8  d   K"  Q h	  \         P                  ! VP                  4       4      p\         P                  ! VR,          4      R8  g   Q h\        P                  ! RR	.R
R.RR
..VR7      pVP                  RR7      p\        \         P                  ! VP                  ^ R7      ^^.,
          4      R8  4      '       g   Q h\        \         P                  ! VP                  ^ R7      \         P                  ! R
4      ,
          4      R8  4      '       g   Q hR F"  p\        VRV3,          4      w  rVVR8  d   K"  Q h	  \         P                  ! VP                  4       4      p\         P                  ! VR,          R,
          4      R8  g   Q hR# )l   V^Am%2r  r  r;   r  r!  r   r  r   r\  rQ   rP   r'   r   Nr  r)   r9   r:   r   rk  ro  r   r  r  r   r  r  rn   r  s   &       r1   !test_MultivariateNormalQMCShapiro;TestMultivariateNormalQMC.test_MultivariateNormalQMCShapiroP  s   ii##$HI**Qq!fq!f-3
 --#-&266',,A,./$67777266'++1+-12T9::::Agadm,GA#::  ffW&&()vvc$i 4''' **s3*sCj!9s
 --#-&266',,A,.!Q784?@@@@266'++1+-<=DEEEEAgadm,GA#::  ffW&&()vvc$i#o&---r4   c                   \         P                  P                  R 4      p\        P                  ! ^ ^ .^^ .^ ^..VRR7      pVP                  RR7      p\        \         P                  ! VP                  ^ R7      4      R8  4      '       g   Q h\        \         P                  ! VP                  ^ R7      ^,
          4      R8  4      '       g   Q hR F"  p\        VRV3,          4      w  rVVR8  d   K"  Q h	  \         P                  ! VP                  4       4      p\         P                  ! VR,          4      R8  g   Q h\        P                  ! R	R
.RR.RR..VRR7      pVP                  RR7      p\        \         P                  ! VP                  ^ R7      ^^.,
          4      R8  4      '       g   Q h\        \         P                  ! VP                  ^ R7      \         P                  ! R4      ,
          4      R8  4      '       g   Q hR F"  p\        VRV3,          4      w  rVVR8  d   K"  Q h	  \         P                  ! VP                  4       4      p\         P                  ! VR,          R,
          4      R8  g   Q hR# )l	   A"l7D#maxbwcuC T)r  r  r;   rr  r  r!  r   r  r   r\  rQ   rP   r'   r   Nr  r  r  s   &       r1   -test_MultivariateNormalQMCShapiroInvTransformGTestMultivariateNormalQMC.test_MultivariateNormalQMCShapiroInvTransformp  s   ii##$KL**Qq!fq!f-3d
 --#-&266',,A,./$67777266'++1+-12T9::::Agadm,GA#::  ffW&&()vvc$i 4''' **ssc3Z(	
 --#-&266',,A,.!Q784?@@@@266'++1+-<=DEEEEAgadm,GA#::  ffW&&()vvc$i#o&---r4   c                   \         P                  P                  R 4      p\        P                  ! . R
O. RO. RO. RO.VR7      pVP                  RR7      p\        \         P                  ! VP                  ^ R7      4      R8  4      '       g   Q h\         P                  ! \         P                  ! VR,          4      ^,
          4      R8  g   Q h\         P                  ! \         P                  ! VR,          4      ^,
          4      R8  g   Q h\         P                  ! \         P                  ! VR,          4      \         P                  ! ^4      ,
          4      R8  g   Q hR F"  p\        VRV3,          4      w  rVVR8  d   K"  Q h	  \         P                  ! VP                  4       4      p\         P                  ! VR,          4      R8  g   Q h\         P                  ! VR,          ^,
          4      R8  g   Q h\        \         P                  ! VR,          VR,          ,           VR,          ,
          4      R8  4      '       g   Q hR	# )l	   @jSm-\1:c# r  rn  r!  r   r  r   g?r  N)r  r  r  )rQ   r  rQ   )r  rQ   rQ   )rQ   rQ   rP   )r   r   )r   r#   )r   rI   r  r  re  )r)   r9   r:   r   rk  ro  r   r  r  rn   r   r  r  r  s   &       r1   $test_MultivariateNormalQMCDegenerate>TestMultivariateNormalQMC.test_MultivariateNormalQMCDegenerate  s   ii##$JK**  /?C

 --#-&266',,A,./$67777vvbffWT]+a/04777vvbffWT]+a/04777vvbffWT]+bggaj89D@@@Agadm,GA#::  ffW&&()vvc$i 4'''vvc$i!m$t+++266'$-'$-7'$-GH   	 r4   r   N)r   r   r   r   rP  r  r  r  r  r  r  r  r  r   r   r   s   @r1   r  r    s9     =4/,0,4>.>2.@!.F r4   r  c                   2   a  ] tR tRt o R tR tR tRtV tR# )	TestLloydi  c                .   \         P                  P                  R 4      pVP                  ^ ^RR7      p\	        V4      p\        V4      p\        ^4       F<  p\        V^R7      p\	        V4      p\        V4      pW78  g   Q hWH8  g   Q hTpTpTpK>  	  R# )i )r?  )maxiterN)   rI   )r)   r9   RandomStateuniformr   r  r   r   )	r+   r;   r<   base_l1base_l2ry  sample_lloydcurr_l1curr_l2s	   &        r1   
test_lloydTestLloyd.test_lloyd  s    ii##G,Q16"&/qAAAL |,Gl+G $$$$$$GG!F r4   c                    \         P                  ! RR.RR.RR.RR..4      pVP                  4       p\        VR7      p\	        W4       \         P
                  ! W4      '       d   Q hR# )zk
Verify that the input samples are not mutated in place and that they do
not share memory with the output.
r   r  r  N)r)   r*   copyr   r   may_share_memory)r+   sample_origsample_copy
new_samples   &   r1   test_lloyd_non_mutating!TestLloyd.test_lloyd_non_mutating  ss    
 hhc
!$c
!$c
!$c
 , - "&&(;

 	1&&{?????r4   c                    \         P                  ! \        R R7      ;_uu_ 4        . ROp\        V4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        ^ .R.^..p\        V4       RRR4       Rp\         P                  ! \        VR7      ;_uu_ 4        R^ .RR.^^..p\        V4       RRR4       R#   + '       g   i     L; i  + '       g   i     Lj; i  + '       g   i     R# ; i)	z`sample` is not a 2D arrayrE   Nz`sample` dimension is not >= 2r[  z!`sample` is not in unit hypercuber   rH   g)rJ   rK   rL   r   )r+   r<   r-  s   &  r1   test_lloyd_errorsTestLloyd.test_lloyd_errors  s    ]]:-JKK F26: L 0]]:S11cC51#&F26: 2 3]]:S11Qi#saV4F26: 21 LK
 21
 211s#   C#C%C,C	C)	,C=	r   N)	r   r   r   r   r  r  r  r   r   r   s   @r1   r  r    s     ".@ ; ;r4   r  c                 J    \         P                  ! V 4      P                  4       # r   )r
   pdistr8  r  s   &r1   r  r    s    >>&!%%''r4   r%  c                    R p\         P                  P                  V4      pV ! ^VR7      P                  ^4      p\         P                  P                  V4      pV ! ^VR7      P                  ^4      p\        W44       \         P                  P	                  V4      pV ! ^VR7      P                  ^4      pV ! ^VR7      P                  ^4      p\        W44       \         P                  P	                  V4      pV ! ^VR7      P                  ^4      p\        WC4       \        WS4       Rp\
        P                  ! \        VR7      ;_uu_ 4        V ! ^WR7       RRR4       R#   + '       g   i     R# ; i)l   7P )r   rN  r   z3got multiple values for argument now known as `rng`rE   )r   r;   rN  N)r)   r9   r  r   r:   rJ   rK   	TypeError)r%  seed_numberr;   res1res2res3r  s   &      r1   test_deterministicr    s    K
))


,CAC ''*D
))


,CAC ''*D
))


,CAC ''*DA;'..q1D
))


,CA3&&q)DCG	y	0	06 
1	0	0	0s   E##E4	)8r   collectionsr   	itertoolsr   r   rJ   numpyr)   numpy.testingr   r   r   r	   scipy.spatialr
   scipy.statsr   scipy.stats._sobolr   r   r   scipy.stats._qmcr   r   r   r   r   r   r   r   r   r   r  r*  r.  r=  r@  rB  r  r  r  r  r  rE  rf  r  r  r  r   r  r  r  r   rB  r  r   r4   r1   <module>r     sF   	  +    #  @   i% i%X#' #'L3== &.2<D+ k/ k/\) )BRn RjH7 H7V4 4&G3. G3T<< <<~v( v(r] ]@5; 5;r( CJJ		$'$6$6$I J7J7r4   