
    Bpj                        S r SSKJr  SSKrSSKrSSKJr  SSKJ	r	J
r
  SSKJrJr  SSKJrJrJr  SSKJrJrJr  SS	KJr  SS
KJr  SSKrSSKJrJrJrJrJ r   SSK!J"r#J$r$  SSK!r! " S S5      r%g)z@
Unit tests for the differential global minimization algorithm.
    )PoolN)assert_deallocated)DifferentialEvolutionSolver_ConstraintWrapper)differential_evolutionOptimizeResult)BoundsNonlinearConstraintLinearConstraint)rosenminimize	rosen_der)	csr_array)stats)assert_equalassert_allcloseassert_almost_equalassert_string_equalassert_)raiseswarnsc                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,\-R\                  R_                  S+5      S, 5       r0S- r1S. r2S/ r3S0 r4\-R\                  R_                  S+5      S1 5       r5S2 r6S3 r7S4 r8S5 r9\-R\                  R_                  S65      S7 5       r:\-R\                  R_                  S+5      S8 5       r;\-R\                  R_                  S+5      S9 5       r<\-R\                  R_                  S+5      S: 5       r=\-R\                  R_                  S+5      S; 5       r>S< r?\-R\                  R                  \-R\                  R                  \BR                  " 5       S=:H  S>S?9S@ 5       5       rD\-R\                  R_                  SA5      SB 5       rE\-R\                  R_                  S+5      SC 5       rFSD rG\-R\                  R_                  S+5      SE 5       rHSF rISG rJSH rK\-R\                  R_                  S65      SI 5       rLSJ rMSKrNgL)MTestDifferentialEvolutionSolver   c                    [         R                  " SS9U l        [         R                  " SS/SS//5      U l        SS/U l        [        U R                  S/5      U l        [        U R                  S/SS	S
9U l	        [         R                  " [         R                  " SSS5      5      R                  nXR                  l        g )Nraiseinvalid               @r   r    r   d   r               ?)popsizemutation皙?皙?)npseterr
old_seterrarraylimitsboundsr   	quadraticdummy_solverdummy_solver2
atleast_2darangeT
population)selfr8   s     m/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/optimize/tests/test__differential_evolution.pysetup_method,TestDifferentialEvolutionSolver.setup_method   s    ))G4hhR!#R * +*79A
D 9:@ABBEG ]]299S#s#;<>>
(2%    c                 D    [         R                  " S0 U R                  D6  g )N )r,   r-   r.   r9   s    r:   teardown_method/TestDifferentialEvolutionSolver.teardown_method.   s    
		$DOO$r=   c                     US   S-  $ )Nr      r?   )r9   xs     r:   r2   )TestDifferentialEvolutionSolver.quadratic1   s    tQwr=   c                 l   [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S	5        [        [        U R                  S
S9n[        UR                  S
5        [        UR
                  R                  S5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S	5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S	5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S5        [        [        U R                  SS9n[        UR                  S5        [        UR
                  R                  S5        g )Nbest1expstrategy_best1best1binrand1bin_rand1rand1exprand2exp_rand2best2bin_best2rand2binrandtobest1bin_randtobest1randtobest1expcurrenttobest1bin_currenttobest1currenttobest1exp)r   r   r1   r   rJ   mutation_func__name__r9   solvers     r:   test__strategy_resolves7TestDifferentialEvolutionSolver.test__strategy_resolves4   s    -U-1[[6@B 	V__j1V))22H=,U-1[[6@B 	V__j1V))22H=,U-1[[6@B 	V__j1V))22H=,U-1[[6@B 	V__j1V))22H=,U-1[[6@B 	V__j1V))22H=,U-1[[6@B 	V__j1V))22H=,U-1[[6@B 	V__j1V))22H=,U-1[[6@B 	V__j1V))22H=,U-1[[6FH 	V__&67V))22NC,U-1[[6FH 	V__&67V))22NC,U-1[[6IK 	V__&9:V))224EF,U-1[[6IK 	V__&9:V))224EFr=   c                 P   [         R                  " S/5      nU R                  R                  [         R                  " / SQ5      5      n[	        X!5        [         R                  " S/5      nU R                  R                  [         R                  " / SQ5      5      n[	        X!5        g )N皙?rD                     ?)r,   r/   r4   rK   r   rN   r9   resulttrials      r:   test__mutate1-TestDifferentialEvolutionSolver.test__mutate1   sp    4&!""))"((?*CD&4&!""))"((?*CD&r=   c                 P   [         R                  " S/5      nU R                  R                  [         R                  " / SQ5      5      n[	        X!5        [         R                  " S/5      nU R                  R                  [         R                  " / SQ5      5      n[	        X!5        g )Ngrc   r*   )r,   r/   r4   rS   r   rQ   ri   s      r:   test__mutate2-TestDifferentialEvolutionSolver.test__mutate2   sq     4&!""))"((?*CD&3%""))"((?*CD&r=   c                     [         R                  " S/5      nU R                  R                  [         R                  " / SQ5      5      n[	        X!5        g )Ng333333?rc   )r,   r/   r4   rV   r   ri   s      r:   test__randtobest11TestDifferentialEvolutionSolver.test__randtobest1   s9    4&!""//0IJ&r=   c                     [         R                  " S/5      nU R                  R                  S[         R                  " / SQ5      5      n[	        X!5        g )Nr*   r%   rc   )r,   r/   r4   rY   r   ri   s      r:   test__currenttobest14TestDifferentialEvolutionSolver.test__currenttobest1   s@    3%""22HH_%
 	&r=   c                     Sn[        U R                  U R                  US9n[        UR                  [        U5      5        g )Nr'   r%   r)   )r   r2   r1   r   ditherlist)r9   r)   r^   s      r:   test_can_init_with_dithering<TestDifferentialEvolutionSolver.test_can_init_with_dithering   s6    ,T^^-1[[6>@ 	V]]DN3r=   c                 |   [         nSn[        [        [        UU R                  US9  Sn[        [        [        UU R                  US9  S[
        R                  4n[        [        [        UU R                  US9  Sn[        UU R                  US9n[        SUR                  5        [        S UR                  5        g )N)r'   rd   ry   r%   r*   r'   )
r   assert_raises
ValueErrorr   r1   r,   nanr   scalerz   )r9   funcr)   r^   s       r:   +test_invalid_mutation_values_arent_acceptedKTestDifferentialEvolutionSolver.test_invalid_mutation_values_arent_accepted   s    j5++#+		- j5++#+		- =j5++#+		- ,T-1[[6>@ 	S&,,'T6==)r=   c                 v    S n[        [        SS9   [        USS/5        S S S 5        g ! , (       d  f       g = f)Nc                     [         R                  " [         R                  " U S-  5      [         R                  " U 5      /5      $ NrD   )r,   r/   sumrE   s    r:   r   ETestDifferentialEvolutionSolver.test_invalid_functional.<locals>.func   s*    88RVVAF^RVVAY788r=   z,func\(x, \*args\) must return a scalar valuematchrD   )r   RuntimeErrorr   )r9   r   s     r:   test_invalid_functional7TestDifferentialEvolutionSolver.test_invalid_functional   s<    	9 EG #4'7);<G G Gs   *
8c                    [         R                  " S/5      n[        SU R                  R	                  U5      5        [         R                  " S/S//5      U R                  l        [        SU R                  R	                  U5      5        g )N333333?   r#   r   )r,   r/   r   r3   _scale_parametersr0   r9   rk   s     r:   test__scale_parameters6TestDifferentialEvolutionSolver.test__scale_parameters   sh    #R**<<UCD $&88cURDM#: R**<<UCDr=   c                    [         R                  " S/5      n[        SU R                  R	                  U5      5        [         R                  " S/S//5      U R                  l        [        SU R                  R	                  U5      5        g )Nr   r   r#   r   )r,   r/   r   r3   _unscale_parametersr0   r   s     r:   test__unscale_parameters8TestDifferentialEvolutionSolver.test__unscale_parameters   sh    "S$++??FG $&88cURDM#: S$++??FGr=   c                 *   [         R                  " SS9   [        U R                  SS/S9nUR	                  SS/5      n[        US5        S S S 5        [        U R                  SS/5      n[        UR                  SS	/5        g ! , (       d  f       N?= f)
Nr   r   r    r    )      ?      @)r1   r    r'   )r   r   r   )	r,   errstater   r2   r   r   r   r   rE   )r9   r^   vress       r:   test_equal_bounds1TestDifferentialEvolutionSolver.test_equal_bounds   s~    [[)0"J/F **C:6AAs# * %T^^j*5MNSUUS#J' *)s   6B
Bc                     [         R                  " / SQ5      nU R                  R                  U5        [	        US   S5        [        [         R                  " US:  US:*  5      R                  5       5        g )N)皙??r    g     r@gh㈵rD   r   r   r%   )r,   r/   r3   _ensure_constraintr   r   logical_andallr   s     r:   test__ensure_constraint7TestDifferentialEvolutionSolver.test__ensure_constraint   sW    =>,,U3U1Xs#uz5A:6::<=r=   c                 \   [        U R                  S/SSS9nUR                  5       n[        UR                  U R                  UR
                  5      5        [        U R                  S/SSS9nUR                  5       n[        UR                  U R                  UR
                  5      5        g )Nr   r%   F)maxiterpolishT)r   r2   solver   funrE   r9   r^   rj   s      r:   test_differential_evolution;TestDifferentialEvolutionSolver.test_differential_evolution   s     -NNWIq
 VZZ!9:,NNWIq
 VZZ!9:r=   c                     [        U R                  S/5      nUR                  5       n[        UR                  UR                  SSS9  g )Nr   gV瞯<r   )atolrtol)r   r2   r   r   rE   r   s      r:   test_best_solution_retrieval<TestDifferentialEvolutionSolver.test_best_solution_retrieval  s5    ,T^^gYG&((Q?r=   c                   ^^^	 Sm	U4S jmS Tl         [        R                  Tl        UU	4S jmSTl        S Tl        TTl        SS/n[        TUSSS9n[        S0 UDS	T0D6n[        S0 UDS
T	0D6nUR                  UR                  s=L a  SL d   e   eTR                  UR                  s=:X  a  T	:X  d   e   eUR                  S:X  d   eUR                  S:X  d   eUR                  5        H4  u  pVUS;   a  M  [        TR
                  U   U5        [        X5   U5        M6     STl        [        R                  Tl        SUS'   [        S0 UDS	T0D6nUR                  UR                  :  d   eg )N
   c                 Z   > [        U 5      nUTR                  :  a  U Tl        UTl        U$ N)r   valrE   )rE   r   r   s     r:   r   FTestDifferentialEvolutionSolver.test_intermediate_result.<locals>.func  s*    (CTXX~Jr=   c                   > T=R                   S-  sl         U Tl        U R                  R                  S:X  d   eU R                  R                  S   S:X  d   eU R                   TR                   :X  d   e[        U R                  TR                  R                  5        [        U R                  TR                  R                  5        [        U R                  [        U R                  5      5        [        [        U R                  5      5       H5  nU R                  U   n[        U R                  U   5      n[        X#5        M7     [        U R                  U R                  S   5        [        U R                  U R                  S   5        U R                  S:X  d   eU R                  SL d   e[!        U ["        5      (       d   eTR                   T:X  a  [$        eg )Nr%   rD   r   zin progressT)nitintermediate_resultr8   ndimshaper   rE   r   r   r   r   rangelenpopulation_energiesmessagesuccess
isinstancer   StopIteration)r   ir   refcallbackr   s       r:   r   JTestDifferentialEvolutionSolver.test_intermediate_result.<locals>.callback  s   LLAL+>H(&1166!;;;&1177:a???&**hll::: ,..@,00(--2C2CD ,00%8K8M8M2NO32FFGH)==a@/::1=>S& I ,..,77:<,00,@@CE '..-???&..$6661>BBBB||w&## 'r=   r   r   rD   ie F)r   r1   rngr   r   r   &callback function requested stop early/Maximum number of iterations has been exceeded.>   r   r   Tr   r?   )rE   r,   infr   r   r   r   dictr   r   r   itemsr   r   )
r9   r1   kwargsr   r   fieldr   r   r   r   s
          @@@r:   test_intermediate_result8TestDifferentialEvolutionSolver.test_intermediate_result  sm    	 66	$8 '+$&!4F5I$AvAA$?v?w? {{ckk2U22222||sww1'11111{{FFFF{{OOOO))+JE..55e<cBS)	 & 66x$AvAAww   r=   c                 p   SS/nSnSS jn[        [        XS9n[        UR                  U5        S n[        [        XS9nUR                  (       a   eSS jn[        [        XS9n[        UR                  U5        UR                  (       a   eSS jn[        [        UUS9nUR                  (       d   eg )	Nr   r   c                     g)NTr?   paramconvergences     r:   callback_python_trueVTestDifferentialEvolutionSolver.test_callback_terminates.<locals>.callback_python_trueX  s    r=   )r   c                     [         er   )r   )r   s    r:   callback_stopOTestDifferentialEvolutionSolver.test_callback_terminates.<locals>.callback_stopa  s    r=   c                     S/$ )Nr   r?   r   s     r:   callback_evaluates_trueYTestDifferentialEvolutionSolver.test_callback_terminates.<locals>.callback_evaluates_trueg  s	    4Kr=   c                     / $ r   r?   r   s     r:   callback_evaluates_falseZTestDifferentialEvolutionSolver.test_callback_terminates.<locals>.callback_evaluates_falseo  s    Ir=   )r   )r   r   r   r   r   )r9   r1   expected_msgr   rj   r   r   r   s           r:   test_callback_terminates8TestDifferentialEvolutionSolver.test_callback_terminatesT  s    &!?	 (6
 	FNNL9	  (vN>>!!	 (vXFNNL9>>!!	 (v1IK~~~r=   c                 Z    S/nSnS n[        UUUSSS9n[        UR                  S5        g )Nr   )r   r    r   c                 v    [        U[        5      (       d  [        S5      eUS   US   U -  -   US   U S-  -  -   $ )Nzargs should be a tupler   r%   rD   r    )r   tupler   )rE   argss     r:   r2   LTestDifferentialEvolutionSolver.test_args_tuple_is_passed.<locals>.quadratic{  sC    dE** !9::7T!Wq[(47QU?::r=   T:gv)r   r   r   gUUUUUU?)r   r   r   )r9   r1   r   r2   rj   s        r:   test_args_tuple_is_passed9TestDifferentialEvolutionSolver.test_args_tuple_is_passedv  s=    	;
 (	(.-1/3,6	8
 	FJJ/r=   c                 @    [         nS/n[        [        [        UUSS9  g )Nrd   abcrI   )r   r   r   r   )r9   r   r1   s      r:   test_init_with_invalid_strategy?TestDifferentialEvolutionSolver.test_init_with_invalid_strategy  s$    j0 #(		*r=   c                     [         nS/n[        [        [        UU5        SS/n[        [        [        UU5        [        [         [	        SS/SS/5      SS9n[        UR                  S5        g )	Nr   r   )rd   re   rf   r   rD   r   r   )r   r   )r   r   r   r   r	   r   rE   )r9   r   r1   rj   s       r:   test_bounds_checking4TestDifferentialEvolutionSolver.test_bounds_checking  sr    j0 	" 9%j0 	" (61a&1a&)z
 	FHHh/r=   c                 Z   [         R                  " SSS9R                  SS5      n[        [	        USS S 24   USS S 24   5      5      n[        S USS9nSnUR                  US	5      u  pVpxn	[        [        [         R                  " [         R                  " XEXgX/5      5      5      S5        g )
Ng      (@float64)dtyperD   rg   r   r%   r(   rf   )r,   r6   reshaper{   zipr   _select_samplesr   r   uniquer/   )
r9   r0   r1   r^   	candidater1r2r3r4r5s
             r:   test_select_samples3TestDifferentialEvolutionSolver.test_select_samples  s    3i088A>c&A,q!t56,T61E	#33IqA		"((I22#BCDEq	Jr=   c                     [        [        U R                  SS9nUR                  5       n[	        UR
                  S5        [	        UR                  S5        g )Nr%   )r   Fr   )r   r   r1   r   r   r   r   r   s      r:   test_maxiter_stops_solve8TestDifferentialEvolutionSolver.test_maxiter_stops_solve  sA     -UDKKKV^^U+V^^I	Kr=   c           
         [         R                  R                  S5      n[        [        U R
                  SSS9nUR                  5       n[        UR                  S5        [        UR                  S5        [        UR                  S5        [        [        U R
                  SSSUS	9nUR                  5       n[        UR                  S
5        [        UR                  S5        [        UR                  S5        [        [        U R
                  SSSSUS9nUR                  5       n[        UR                  S5        [        UR                  S5        [        UR                  S5        g )Nr   r%   F)maxfunr   rD   z9Maximum number of function evaluations has been exceeded.rf   (   )r(   r   r  r   )   /   deferred)r(   r   r  updatingr   z8Maximum number of function evaluations has been reached.)r,   randomdefault_rngr   r   r1   r   r   nfevr   r   )r9   r   r^   rj   s       r:   test_maxfun_stops_solve7TestDifferentialEvolutionSolver.test_maxfun_stops_solve  s&    ii##J/,UDKK49;V[[!$V^^U+V^^&	' -U-1[[564946146 V[["%V^^U+V^^&	' -U-1[[5649466@146 V[["%V^^U+V^^%	&r=   c                     [        U R                  S/SS9nUR                  5         [        [        R
                  " UR                  5      S5        g )Nr   r#   {Gz?)tolr   )r   r2   r   r   r,   argminr   r]   s     r:   test_quadratic.TestDifferentialEvolutionSolver.test_quadratic  s>    ,T^^.9]157 	RYYv99:A>r=   c                 2    [        U R                  S/SSS9  g )Nr'  r(  r   )r)  r   )r   r2   r@   s    r:   test_quadratic_from_diff_ev;TestDifferentialEvolutionSolver.test_quadratic_from_diff_ev  s    t~~ +}#'#-	/r=   c                     [        U R                  S/SSSS9n[        U R                  S/SSSS9n[        UR                  UR                  5        [        UR                  UR                  5        g )Nr'  Fr%   r'   )r   r   r)  )r   r2   r   rE   r#  )r9   rj   result2s      r:   test_rng_gives_repeatability<TestDifferentialEvolutionSolver.test_rng_gives_repeatability  sf    ')4/4,-,/	1
 ))4/4,-,/	1
 	VXXwyy)V[[',,/r=   c           
          [         R                  R                  5       n/ SQnU H  n[        U R                  S/SUSUS9  M     g )N)r!  latinhypercubesobolhaltonr'  Fr'   )r   r   r)  init)r,   r!  r"  r   r2   )r9   r   initsr8  s       r:   test_random_generator5TestDifferentialEvolutionSolver.test_random_generator	  sD     ii##%?D"4>>$/=*/'*'*(,. r=   c                 X    [        [        U R                  SSS9nUR                  5         g )NrH   r%   )rJ   r   r   r   r1   r   r]   s     r:   test_exp_runs-TestDifferentialEvolutionSolver.test_exp_runs  s&    ,U-1[[6@568
 	r=   c                 ,    SS/n[        [        USSS9  g )N)rf   1   r%   )r(   r   )r   r   )r9   r1   s     r:   test_gh_4511_regression7TestDifferentialEvolutionSolver.test_gh_4511_regression   s    
 7# 	ufb!Dr=   c                    [        [        U R                  SS9nUR                  UR                  5        UR                  5         [        [        R                  " UR                  5      S5        [        UR                  S5        g )Nrd   r
  r   rg   )r   r   r1   _calculate_population_energiesr8   _promote_lowest_energyr   r,   r*  r   _nfevr]   s     r:   "test_calculate_population_energiesBTestDifferentialEvolutionSolver.test_calculate_population_energies0  s]    ,UDKKK--f.?.?@%%'RYYv99:A> 	V\\1%r=   c                    [         R                  R                  S5      n[        [        U R
                  SSUS9n[        U5      u  p4[        [         R                  " US5      S5        [        UR                  S5        [        [        [        U5        [        [        U R
                  US9n[        U5      u  pV[        U5       H  u  pxUu  pXj:  d   eXpeUS:X  d  M    g    g )	N@@ rd      )r(   r  r   r   rD   r  2   )r,   r!  r"  r   r   r1   nextr   sizerH  r   r   	enumerate)r9   r   r^   rE   r   _fun_prevr   soln	x_currentfun_currents              r:   test_iteration.TestDifferentialEvolutionSolver.test_iteration:  s     ii##G,,UDKK46CAfRWWQ]A& 	V\\2& 	mT62 -UDKKSI6l (GA%)"I***#xBw )r=   c                     [         R                  R                  S5      n[        [        U R
                  SSUS9nUR                  5         UR                  S:  d   eg )NrL  皙?F)r)  r   r   )r,   r!  r"  r   r   r1   r   r   r9   r   r^   s      r:   test_convergence0TestDifferentialEvolutionSolver.test_convergenceU  sM    ii##G,,UDKKS49sD!!C'''r=   c                 X    [        [        U R                  S S S9nUR                  5         g )N)r   r  r=  r]   s     r:   test_maxiter_none_GH57318TestDifferentialEvolutionSolver.test_maxiter_none_GH5731\  s$    
 -UDKK48:r=   c           
         [        [        [        /[        U R                  4Q70 SS0D6  [        [        U R                  5      nUR                  5         [        UR                  S5        [        [        R                  " [        R                  " UR                  5      5      5        UR                  5         [        UR                  S5        [        [        R                  " [        R                  " UR                  5      5      5        UR                  SS9  [        UR                  S5        [        [        R                  " [        R                  " UR                  5      5      5        [        [        U R                  SS9nUR                  SS9  [        UR                  S5        [        [        R                  " [        R                  " UR                  5      5      5        [        R                  " SS	S
5      R!                  SS5      n[        [        U R                  USSSSS9n[        UR                  S5        [        [        R                  " [        R                  " UR                  5      5      5        [        UR"                  S:H  5        [        UR$                  S:H  5        [        R&                  " UR)                  U5      SS5      n[+        UR,                  S S U5        [+        [        R.                  " UR,                  S S 5      S5        [+        [        R0                  " UR,                  S S 5      S5        [        R                  " SS	S5      R!                  SS	5      n[        [        [        /[        U R                  4Q70 SU0D6  [        R2                  R5                  SSSS9n[        [        U R                  US9n[7        UR,                  S   US-  5        g )Nr8  rubbishr   r7  )
qmc_enginer6  )r8  r   rd   r   rf   rD   rR   {Gz?r%   )r8  rJ   r   r   r(   )rf   rD      r   r    )lowhighrP  x0)r   r   r   r   r1   init_population_randomr   rH  r   r,   r   isinfr   init_population_lhsinit_population_qmclinspacer  num_population_memberspopulation_shapeclipr   r   r8   minmaxr!  uniformr   )r9   r^   r8   unscaled_populationri  s        r:   test_population_initiation:TestDifferentialEvolutionSolver.test_population_initiatione  s   
 	j1	-t{{+	-  +	-
 -UDKK@
 	%%'V\\1%rxx : :;<=""$V\\1%rxx : :;<=""h"7V\\1%rxx : :;<=,UDKKgN""g"6V\\1%rxx : :;<= [[Q+33Aq9
,UDKK2<6@26AqJ
 	V\\1%rxx : :;<=--23''612 !ggf&@&@&L&',F--bq13FG 	BFF6#4#4Ra#891=BFF6#4#4Ra#891= [[Q+33Aq9
j1	.t{{+	.  ,	. YY3Sq9,4;;2
 	))!,b3h7r=   c                 (   [         R                  R                  S5      n[        [        U R
                  SS/US9nUR                  (       d   e[        [        5         [        [        U R
                  SS/S9  S S S 5        g ! , (       d  f       g = f)NrL  rZ  r+   )ri  r    @rh  )	r,   r!  r"  r   r   r1   r   r   r   )r9   r   r   s      r:   test_x0'TestDifferentialEvolutionSolver.test_x0  sd    ii##G,$UDKKS#JCP{{{ :&"5$++3*E '&&s   B
Bc                 &    S nSS/n[        XSS9  g )Nc                 >    U S   S:  a  [         R                  $ U S   $ )Nr   r'   r%   )r,   r   r   s    r:   sometimes_infWTestDifferentialEvolutionSolver.test_infinite_objective_function.<locals>.sometimes_inf  s    tbyvvQ4Kr=   r$   F)r1   disp)r   )r9   r~  r1   s      r:    test_infinite_objective_function@TestDifferentialEvolutionSolver.test_infinite_objective_function  s    	 &!}%Hr=   c                 Z   [         R                  R                  S5      nSS/n[        [        USUS9nUR
                  S:X  d   eUR                  R                  [        L d   eUR                  5       nUR                  (       d   e[        [        USSUS9nUR                  (       d   eg )NrL  r!   r  r   r   rH   )r   rJ   r   )r,   r!  r"  r   r   	_updating_mapwrapper_mapfuncmapr   r   r   )r9   r   r1   r^   r   s        r:   test_deferred_updating6TestDifferentialEvolutionSolver.test_deferred_updating  s    ii##G,H%,6JC
 :---!!**c111lln{{{ %6J
 {{{r=   c                 D   SS/n[        [        U5      n[        UR                  S:H  5        [	        [
        5         [        [        USS9 nUR                  5         S S S 5        S S S 5        WR                  S:X  d   eg ! , (       d  f       N)= f! , (       d  f       N2= f)Nr!   	immediaterD   )workersr  )r   r   r   r  r   UserWarningr   )r9   r1   r^   ss       r:   test_immediate_updating7TestDifferentialEvolutionSolver.test_immediate_updating  s~    H%,UF;  K/0 ;,UFAF! G   {{j((( GF  s#   BB B 
B	
B
Bc           
      8   SS/n[        S5       n[        [        USUR                  SSS9 nUR                  R
                  c   eUR                  S:X  d   eUR                  5         S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr!   rD   r  r*   rd   )r   r  r)  r(   )
ThreadPoolr   r   r  r  poolr  r   )r9   r1   pr^   s       r:   test_parallel_threads5TestDifferentialEvolutionSolver.test_parallel_threads  s    H%]a!<6J3PQ"
%%**666##z111LLN"
]] "
 "
]]s"   B<A:)B:
B	B
Br   c           	          SS/n[        [        USSSSS9 nUR                  R                  c   eUR                  S:X  d   eUR                  5         S S S 5        g ! , (       d  f       g = f)Nr!   r  rD   rd   r*   )r   r  r(   r)  )r   r   r  r  r  r   )r9   r1   r^   s      r:   test_parallel_processes7TestDifferentialEvolutionSolver.test_parallel_processes  si    H%(6J1#
%%**666##z111LLN
 
 
s   <A
A*c                     [         R                  R                  S5      n[        [        SS/US9nUR                  5         UR                  5       (       d   eg )NrL  r   r  )r,   r!  r"  r   r   r   	convergedr[  s      r:   test_converged.TestDifferentialEvolutionSolver.test_converged  sG    ii##G,,UVV4D#N!!!!r=   c                 b  ^ S nS m[        U[        R                  * S5      n[        [        SS/U4S9nUR                  [        R                  " SS/5      5      n[        US5        [        T[        R                  * S5      n[        [        SS/X%4S9n/ S	Qn/ S
Qn[        Xg5       HJ  u  pUR                  [        R                  " U5      5      n[        U[        R                  " U	5      5        ML     [        UR                  [        R                  " U5      5      [        R                  " U5      5        [        R                  " [        R                  " U5       Vs/ s H  nUR                  U5      PM     sn5      n
U
R                  S:X  d   eU4S jn[        U[        R                  * S5      n[        [        SS/X%4SS9nSUl        [        R                  " [        SS9   UR                  [        R                  " U5      5        S S S 5        g s  snf ! , (       d  f       g = f)Nc                     U S   U S   -   /$ Nr   r%   r?   r   s    r:   constr_fNTestDifferentialEvolutionSolver.test_constraint_violation_fn.<locals>.constr_f      aD1Q4K= r=   c                 \    [         R                  " U S   S-  U S   -   U S   U S   -
  /5      $ Nr   rD   r%   r,   r/   r   s    r:   	constr_f2OTestDifferentialEvolutionSolver.test_constraint_violation_fn.<locals>.constr_f2  2    88QqT1Wqt^QqTAaD[9::r=   ffffff?r   constraintsr   r*   ?))333333?r%   r   )r'   r'   ))r   {Gz?r   )ry  @r   )r   r   r   )rd   r%   rd   c                 (   > T" U 5      R                   $ r   )r7   )rE   r  s    r:   	constr_f3OTestDifferentialEvolutionSolver.test_constraint_violation_fn.<locals>.constr_f3$  s    Q<>>!r=   F)r  
vectorizedTz#An array returned from a Constraintr   )r
   r,   r   r   r   _constraint_violation_fnr/   r   r  r   r5   r   r  pytestr   r   )r9   r  nlcr^   cvnlc2xsvsrE   r   constraint_violationr  r  s               @r:   test_constraint_violation_fn<TestDifferentialEvolutionSolver.test_constraint_violation_fn  s   	!	; "(RVVGS9,UVV4D:=A ,,RXXsCj-ABB$"9rvvgs;,UVV4D:=F
 0;KDA00!=BBa 01  
 	++BHHRL9288B<	
  "xx24((2,)@2>Q *0)H)H)K2>)@  A#))Y666	" #9rvvgs;,UVV4D:=8=? !]]$I
 ++BHHRL9
 
)@
 
s   #H,&H  
H.c           	      R   S nS n[        U[        R                  * S5      n[        [        SS/U4S9nUR                  [        R                  " SS/SS//5      5      u  pV[        USS/5        [        U[        R                  " S	/S
//5      5        UR                  S:X  d   e[        U[        R                  * S5      nS GH_  n[        [        SS/X74USS9nUR                  [        R                  " SS/SS//5      5      u  pV[        USS/5        [        U[        R                  " / SQ/ SQ/5      5        UR                  [        R                  " SS/SS//5      5      u  pV[        USS/5        [        U[        R                  " / SQ/ SQ/5      5        UR                  S:X  d   eUR                  [        R                  " SS/SS//5      5      u  pV[        USS/5        [        U[        R                  " / SQ/ SQ/5      5        UR                  S:X  a  GM`   e   g )Nc                     U S   U S   -   /$ r  r?   r   s    r:   r  ZTestDifferentialEvolutionSolver.test_constraint_population_feasibilities.<locals>.constr_f3  r  r=   c                 4    U S   S-  U S   -   U S   U S   -
  /$ r  r?   r   s    r:   r  [TestDifferentialEvolutionSolver.test_constraint_population_feasibilities.<locals>.constr_f26  s)    aD!GadNAaD1Q4K00r=   r  r   r  r'   r   Fr*   ry  )rD   r%   r  )FTr  )r  r  r   g333333?)r*   rZ  r   )r   r  r   )ry  r  r   )rD   rd   rh   T)r   r   r   )
r
   r,   r   r   r   #_calculate_population_feasibilitiesr/   r   r   r   )	r9   r  r  r  r^   feasr  r  	vectorizes	            r:   (test_constraint_population_feasibilitiesHTestDifferentialEvolutionSolver.test_constraint_population_feasibilities2  s   	!	1 "(RVVGS9,UVV4D:=A
 ==HHsCj2r(+,.TE5>*B3%# 89xx6!!!"9rvvgs;&I08H>A[<E:DFF
 AA3*sCj124HDu~.BHHm^-L$MNAA3*r2h/02HDu~.BHHm]-K$LM88v%%%AA4,R124HDe}-BHHnm-L$MN88v%%%+ 'r=   c                 n   [         R                  R                  S5      nS n[        U[         R                  * S5      n[        [        SS/U4US9n[        [        5         UR                  5       nS S S 5        U" WR                  5      S::  d   eUR                  (       d   eg ! , (       d  f       N:= f)NrL  c                 B    [         R                  " U S   U S   -   /5      $ r  r  r   s    r:   r  GTestDifferentialEvolutionSolver.test_constraint_solve.<locals>.constr_fb      88QqTAaD[M**r=   r  r   )r  r   )r,   r!  r"  r
   r   r   r   r   r  r   rE   r   )r9   r   r  r  r^   r   s         r:   test_constraint_solve5TestDifferentialEvolutionSolver.test_constraint_solve_  s    ii##G,	+ "(RVVGS9,UVV4D:=SJ ;,,.C   #%%%{{{	  s   !B&&
B4c           	         [         R                  R                  S5      nS n[        U[         R                  * S5      n[        [        SS/U4SUSS9n[        [        5         UR                  5       nS S S 5        WR                  S:  d   eUR                  (       a   e[        [        SS/U4S	S
9n[        U5        UR                  R                  5       (       a   e[         R                  " UR                   5      R                  5       (       a   eSnUR"                  S   nUR                   US/   UR                   SU/'   UR$                  US/S S 24   UR$                  SU/S S 24'   UR"                  US/S S 24   UR"                  SU/S S 24'   UR'                  5         [)        UR"                  S   U5        g ! , (       d  f       GNS= f)NrL  c                 B    [         R                  " U S   U S   -   /5      $ r  r  r   s    r:   r  LTestDifferentialEvolutionSolver.test_impossible_constraint.<locals>.constr_fu  r  r=   r   r   r%   r#   )r  r(   r   r   r   F)r  r      )r,   r!  r"  r
   r   r   r   r   r  r   maxcvr   rO  feasibler   isfiniter   r  r8   rG  r   )r9   r   r  r  r^   r   lr  s           r:   test_impossible_constraint:TestDifferentialEvolutionSolver.test_impossible_constraintq  s   ii##G,	+ "(RVVGR8,FF##UX
 ;,,.C   yy1}};;
 -FF##GV??&&((((;;v99:>>@@@@ ((+-3-G-GA-O""Aq6*'-'8'8!Q'C1a&!)$''A	2 	##QFAI. 	%%'V003R83  s   #G  
Gc                    S n[        U[        R                  * S5      n[        [        SS/U4S9nUR
                  nU" SS[        R                  " S/5      SS[        R                  " S/5      5      (       d   eU" SS[        R                  " S/5      SS[        R                  " S/5      5      S	L d   eU" SS[        R                  " S/5      SS[        R                  " S/5      5      (       d   eU" S
S[        R                  " S/5      SS	[        R                  " S/5      5      (       d   eU" SS	[        R                  " SS/5      SS	[        R                  " SS/5      5      (       d   eU" SS	[        R                  " SS/5      SS	[        R                  " SS/5      5      (       d   eU" SS	[        R                  " SS/5      SS	[        R                  " SS/5      5      (       a   eg )Nc                     U S   U S   -   /$ r  r?   r   s    r:   r  CTestDifferentialEvolutionSolver.test_accept_trial.<locals>.constr_f  r  r=   r  r   r  r*   Tr   r   Fg#@r'   g?)r
   r,   r   r   r   _accept_trialr/   )r9   r  r  r^   fns        r:   test_accept_trial1TestDifferentialEvolutionSolver.test_accept_trial  s   	!!(RVVGS9,UVV4D:=A!!#tRXXrd^S$"GGGG3bhhuosD"((C5/JeSTS#tRXXrd^S$"GGGG #tRXXrd^S%2$HHHH 3rxxc
3rxxS	24 4 	5 43rxxc
3rxxT
35 5 	6 5sE288S#J#7E288S#J#79 9 	: : 9r=   c                   ^
 [         R                  " / SQ5      n[         R                  " S[         R                  S/5      n[         R                  " / SQ5      n[        [	        X5      U5      nUR                  U5      S:  R                  5       (       d   eUR                  / SQ5      S:H  R                  5       (       d   e[         R                  " SS5      R                  S	S
5      n/ nU H#  nUR                  UR                  U5      5        M%     [         R                  R                  UR                  UR                  5      [         R                  " U5      R                  5        [         R                  " / SQ5      n[         R                  " / SQ/ SQ/ SQ/5      m
[        [        T
[         R                  * S5      U5      nUR                  U5      S:  R                  5       (       d   eUR                  / SQ5      S:H  R                  5       (       d   e[         R                  " SS5      R                  SS5      n/ nU H#  nUR                  UR                  U5      5        M%     [         R                  R                  UR                  UR                  5      [         R                  " U5      R                  5        [        [        [        T
5      [         R                  * S5      U5      nUR                  U5      S:  R                  5       (       d   eUR                  / SQ5      S:H  R                  5       (       d   eU
4S jn[!        U[         R                  * S5      n	[        U	/ SQ5      nUR                  U5      S:  R                  5       (       d   eUR                  / SQ5      S:H  R                  5       (       d   eg )N)r   r  r   r'   F   )r%   rD   rd   r   )rh         r%      rf   rd   )r%   rD   rd   re   )rf   r   r   rg   )r&   r      r   )r   rD   r   re      r&   re   c                 &   > TR                  U 5      $ r   )dot)rE   As    r:   r   DTestDifferentialEvolutionSolver.test_constraint_wrapper.<locals>.fun  s    558Or=   )r,   r/   r   r   r	   	violationanyr   r6   r  appendtestingr   r7   r   r   r
   )r9   lbubri  pcr  
violationsrE   r   	nonlinearr  s             @r:   test_constraint_wrapper7TestDifferentialEvolutionSolver.test_constraint_wrapper  s   XXk"XXsBFFB'(XXi r3R 1$))++++^,1668888 YYq"%%a+
Abll1o. 


""2<<#5rxx
7K7M7MNXXl#HHlL,?@ 0RVVGQ ?DR 1$))++++-.!388:::: YYq"%%a+
Abll1o. 


""2<<#5rxx
7K7M7MN 01w J "$R 1$))++++-.!388::::	 (bffWa8		+;<R 1$))++++-.!388::::r=   c                 &   S n[        USS/SS/5      n[        USS/5      n[        R                  " UR                  S   5      S:X  d   e/ SQn/ S	Qn[        XE5       H   u  pg[        UR                  U5      U5        M"     [        UR                  [        R                  " U5      R                  5      [        R                  " U5      R                  5        UR                  [        R                  " U5      R                  5      R                  S[        U5      4:X  d   eUR                  [        R                  " U5      R                  5      R                  S[        U5      4:X  d   eUR                  S:X  d   eUR                  S:X  d   eg )
Nc                 b    [         R                  " U S   S-  U S   -   U S   S-  U S   -
  /5      $ r  r  r   s    r:   cons_fQTestDifferentialEvolutionSolver.test_constraint_wrapper_violation.<locals>.cons_f  sA     88QqTQY1-qTQY1-/ 0 0r=   r   g333333rD   r'   r%   r   )rx   )r'   r  )r  r  )r*   333333)r*   r    ))r   r   )r   r*   )r  r   )gRQ?r   )rd  g=
ףp=?)r
   r   r,   rP  r1   r  r   r  r/   r7   r   r   r   
num_constrparameter_count)r9   r  r  r  r  r  rE   r   s           r:   !test_constraint_wrapper_violationATestDifferentialEvolutionSolver.test_constraint_wrapper_violation  s2   	0 "&2w-!Q@c1X.wwryy|$)))HCKDABLLOQ/   	RXXb\^^4	(vvbhhrlnn%++3r7|;;;||BHHRLNN+11aR\AAA}}!!!!!Q&&&r=   c                    [         R                  " 5          [         R                  " S[        5        [        R
                  " / SQ/ SQ/5      nS S S 5        [        WSS5      n[        R                  " S5      n[        X#5      nUR                  U5      R                  S:X  d   e[        R                  " S5      R                  SS	5      nUR                  U5      R                  S
:X  d   eg ! , (       d  f       N= f)Nignore)r%   r%   r%   r   )rD   rD   rD   r    r   r%   re   )rD   r  rf   )rD   rf   )warningscatch_warningssimplefilterPendingDeprecationWarningr,   matrixr   onesr   r  r   r6   r  )r9   r  lcri  cwxtrials         r:   test_matrix_linear_constraint=TestDifferentialEvolutionSolver.test_matrix_linear_constraint  s     $$&!!(,EFYY - / 0F ' fa+WWQZ' ||B%%--- 5!))!Q/||F#))V333 '&s   8C--
C;r  c                 @   S n[         R                  " S5      nSUS/ SQ4'   SUSSS/4'   S	US
/ SQ4'   SUS/ SQ4'   SUSSS/4'   S	US/ SQ4'   SUS/ SQ4'   SUSS
S/4'   S	US/ SQ4'   USS 2SS 24   n[         R                  " / SQ5      n[        U[         R                  * U5      nS/S-  S/S
-  -   S/-   n[         R
                  R                  [         R
                  R                  S5      5      n[        XSXd4SSS9nSnS n	[        U" U5      U	S!S"9  UR                  (       d   e[        UR                  US!S"9  [        UR                  U	S#S"9  [        [         R                  " X'R                  -  U:*  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S$4   :  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :*  5      5        [        [        U5      [         R                  * U5      n[         R
                  R                  [         R
                  R                  S5      5      n[        XSXd4SSS9n[        U" U5      U	5        UR                  (       d   e[        UR                  US%S"9  [        UR                  U	S#S"9  [        [         R                  " X'R                  -  U:*  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S$4   :  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :*  5      5        S& n
S' n[        US S2S S 24   [         R                  * US S 5      n[        USS2S S 24   [         R                  * USS 5      n[!        U
[         R                  * USS 5      n[!        U[         R                  * USS 5      nXMX4n["        R$                  " 5          [         R
                  R                  [         R
                  R                  S5      5      n["        R&                  " S([(        5        [        XSUUSS)S9nS S S 5        [        UR                  US!S"9  [        UR                  U	S#S"9  [        [         R                  " X'R                  -  U:*  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S$4   :  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :*  5      5        g ! , (       d  f       N= f)*Nc                     [         R                  " S/U 45      n [         R                  " SU SS -  5      SU SS -  U SS -  -
  [         R                  " U SS  5      -
  nU$ )Nr   rf   r%   )r,   hstackr   rE   r   s     r:   f2TestDifferentialEvolutionSolver.test_L1.<locals>.f  s_    		A3(#A&&1Qq6"Qq1vXa!f_4rvvae}DCJr=   )r      )rD   rD   r%   r%   r%   )r%   rD   r      )r%   rD   r   )r   r   r%   rd   )re   rf   r   re   )r%   rd   r   r  rf   r  rg   )rg   r&   r  r&   )rD   rd   r  rM  r  rM  	   )r  r  rM  )	r   r   r   r   r   r   r   r   r   r$   r"   i90  rL   rd  )rJ   r   r  r(   r)  )r%   r%   r%   r%   r%   r%   r%   r%   r%   rd   rd   rd   r%   iga2U0*C?r   g{Gzt?r   gMb@?c                     [         R                  " S/U 45      n SU S   -  SU S   -  -   U S   -   U S   -   SU S   -  U S   -   /$ )Nr   rD   rd   r  rM  r  r,   r  r   s    r:   c13TestDifferentialEvolutionSolver.test_L1.<locals>.c1U  s\    		A3(#AadFQqtVOae+ae3qtGaeO% %r=   c                 \    [         R                  " S/U 45      n SU S   -  U S   -
  U S   -   $ )Nr   r   r  r  rM  r  r   s    r:   c23TestDifferentialEvolutionSolver.test_L1.<locals>.c2Z  s5    		A3(#Aad7QqT>AbE))r=   r  rb   )r,   zerosr/   r   r   r!  r"  MT19937r   r   r   rE   r   r   r   r   r
   r  r  r  r  )r9   r  r  bLr1   r   r   x_optf_optr  r  L2NN2r  s                   r:   test_L1'TestDifferentialEvolutionSolver.test_L1  s   	
 HHX)!^
!aW*$!Z-)!^
!aW*$!Z-)!^
!aW*$!Z-ab!"fIHH34Q+!xjl*fX5 ii##BII$5$5e$<=$
4

 8%%d3{{{u40T2qw!|$%suu 0A 6678suu 0A 6678 Yq\BFF7A6 ii##BII$5$5e$<=$
4

 	%%({{{u40T2qw!|$%suu 0A 6678suu 0A 6678
	%
	* Qrr1uXw"16a!Qi"&&!Aa&9RVVGQqV4 bffWa!f5Rn$$&))''		(9(9%(@AC!!(K8(JC'C ' 	u40T2qw!|$%suu 0A 6678suu 0A 6678 '&s   :A&V
Vc           	         [         R                  R                  S5      nS nS n[        US[         R                  5      nS/S-  nUn[
        R                  " 5          [
        R                  " S[        5        [        X%SXS	9nS S S 5        S
nSn	[        U" U	5      U5        [        WR                  U5        [        UR                  U	SS9  UR                  (       d   e[        [         R                  " [         R                   " U" UR                  5      5      S:  5      5        [        [         R                  " UR                  [         R                   " U5      S S 2S4   :  5      5        [        [         R                  " UR                  [         R                   " U5      S S 2S4   :*  5      5        g ! , (       d  f       GN8= f)Nic                     [         R                  " S/U 45      n U S   S-
  S-  SU S   S-
  S-  -  -   U S   S-  -   SU S   S	-
  S-  -  -   SU S   S
-  -  -   SU S
   S-  -  -   U S   S-  -   SU S
   -  U S   -  -
  SU S
   -  -
  SU S   -  -
  nU$ )Nr   r%   r   rD   rf   rM  rd   re   r  rg   r&   r  r  r  s     r:   r  2TestDifferentialEvolutionSolver.test_L2.<locals>.fw  s    		A3(#AaDGa<!QqT"WqL.01Q47:Q!R!|^KadAg: !!A$'	*,-aD!G467!fQqTkBDFqtGLQqT6C Jr=   c                    [         R                  " S/U 45      n SSU S   S-  -  -
  SU S   S-  -  -
  U S   -
  SU S   S-  -  -
  SU S   -  -
  SS	U S   -  -
  U S   S-  -
  S
U S
   S-  -  -
  SU S   -  -   SSU S   -  -
  SU S   -  -
  SU S   S-  -  -
  U S   -
  U S   -   SU S   S-  -  U S   S-  -
  SU S   -  U S   -  -   SU S   S-  -  -
  SU S
   -  -
  SU S   -  -   /$ )Nr      rD   r%   rd   re   rf         rg   r  r&   i  r   r  r  r   s    r:   r  3TestDifferentialEvolutionSolver.test_L2.<locals>.c1~  sF   		A3(#A!AaD!G)Oa!ai/!A$61Q47BQqtVK"QqT'MAaD!G+a!ai7!AaD&@!AaD&L1QqT6)BqtQwJ61=!DqtQwJ1q(1QqT6!A$;61Q47BadF!W%& &r=   r   r   r&   r  rL   rJ   r   r  gy\
E@)gܤ@g$H8?g	޿g0ev@gn8)gk_@/?g0g+?h㈵>r  r%   )r,   r!  r"  r
   r   r  r  r  r  r   r   r   rE   r   r   r   r/   )
r9   r   r  r  r&  r1   r  r   r$  r#  s
             r:   test_L2'TestDifferentialEvolutionSolver.test_L2r  sI    ii##I.		&  Arvv.Q$$&!!(K8(Z-0KC '
 "1 	%%('u40{{{rxx355	*a/01suu 0A 6678suu 0A 6678 '&s   'F66
Gc           	         [         R                  R                  S5      nS n[         R                  " S5      nSUS/ SQ4'   SUS/ SQ4'   S	US
/ SQ4'   USS 2SS 24   n[         R                  " / SQ5      nS n[        X4[         R                  5      n[        US[         R                  5      nS/S-  nXg4n	[        R                  " 5          [        R                  " S[        5        [        X(UU	S
S9n
S S S 5        SnSn[        U" U5      USS9  [        W
R                  USS9  [        U
R                  USS9  U
R                   (       d   e[#        [         R$                  " X:R                  -  U:  5      5        [#        [         R$                  " [         R                  " U" U
R                  5      5      S:  5      5        [#        [         R$                  " U
R                  [         R                  " U5      S S 2S4   :  5      5        [#        [         R$                  " U
R                  [         R                  " U5      S S 2S4   :*  5      5        g ! , (       d  f       GNd= f)Nl   	J^}c                 t   [         R                  " S/U 45      n U S   S-  U S   S-  -   U S   U S   -  -   SU S   -  -
  SU S   -  -
  U S   S-
  S-  -   SU S   S	-
  S-  -  -   U S	   S-
  S-  -   SU S
   S-
  S-  -  -   S	U S   S-  -  -   SU S   S-
  S-  -  -   SU S   S-
  S-  -  -   U S   S-
  S-  -   S-   nU$ )Nr   r%   rD   r  r  rd   r   re   rf   rg   r&   r  r  r  -   r  r  s     r:   r  2TestDifferentialEvolutionSolver.test_L3.<locals>.f  s   		A3(#AQ47QqT1W$qtAaDy02ad7:R!WDaDGa< "#QqT!VaK-034Q46A+>@A1Q46A+NQqT1W9 !A$r'A~.011Q47Q,? bEAI>" %''C
 Jr=   )re   r  )r1  rA  rd   ir%   )r%   rD   r&   r  )r   r     r   rD   )r  r   rA  rD   rd   )r%   rD   r  r   )ir   ic                    [         R                  " S/U 45      n SU S   -  SU S   -  -
  SU S   S-
  S-  -  -
  S	U S
   -  -   SU S   S-
  S-  -  SU S   S-
  S-  -  -
  SU S   S-  -  -
  S	U S   -  -   S-   U S   S-  * SU S   S-
  S-  -  -
  SU S   -  U S   -  -   SU S   -  -
  SU S   -  -   SU S   S-  -  SU S   -  -
  U S   S-
  S-  -
  SU S   -  -   S-   SU S   S-
  S-  -  SU S   S-
  S-  -  -
  SU S   S-  -  -
  U S   -   S-   /$ )Nr   rd   r%   rg   rD   rM  r  r  r&   r   r   re   x   r  rf   rA  r        r   r  r   s    r:   r  3TestDifferentialEvolutionSolver.test_L3.<locals>.c1  s~   		A3(#AadFQqtVOb!A$q&1n4q2w>!Q{NQ!Q{]2QqtQwY>1Q4G#MqT1WHq!A$q&1},q1vad{:R!WDq1vMqtQwJ1Q4'1Q46A+5!A$>C!A$q&1$q!A$q&1}4q1qy@1Q4G"L	N Nr=   r   r   r   r  )r   r  r(   )
gWXp?`@g@gVW@!@g3Ib@grq?g` ?g$F-t%?g6N#@g7h @g]y @g<6cN8@r4  r  ư>)r,   r!  r"  r  r/   r   r   r
   r  r  r  r  r   r   rE   r   r   r   r   r9   r   r  r  r!  r  r"  r&  r1   r  r   r#  r$  s                r:   test_L3'TestDifferentialEvolutionSolver.test_L3  s    ii##M2	 HHW*!\/+!\/*!]
ab!"fIHH^$	N Q266*Arvv.Rf$$&!!(K8(5@!MC '
C%%d3u40T2{{{q55yA~&'rxx355	*a/01suu 0A 6678suu 0A 6678! '&s   (I
I!c           	         [         R                  R                  S5      nS nS n[        U[         R                  * S5      nS/S-  nUn[        X%SUUS9nS	nS
n	[        U" U5      U	SS9  [        UR                  U	SS9  UR                  (       d   e[        [         R                  " [         R                  " U" UR                  5      5      S:*  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :*  5      5        g )N"$zc                     [         R                  " S/U 45      n [         R                  " S[         R                  -  U S   -  5      S-  [         R                  " S[         R                  -  U S   -  5      -  U S   S-  U S   U S   -   -  -  nU* $ )Nr   rD   r%   rd   )r,   r  sinpir  s     r:   r  2TestDifferentialEvolutionSolver.test_L5.<locals>.f  s    		A3(#A66!BEE'!A$,'*266!BEE'!A$,+??aD!GQqT!A$Y')C4Kr=   c                 ~    [         R                  " S/U 45      n U S   S-  U S   -
  S-   SU S   -
  U S   S-
  S-  -   /$ )Nr   r%   rD   re   r  r   s    r:   r  3TestDifferentialEvolutionSolver.test_L5.<locals>.c1  sT    		A3(#AaD!GadNQ&!H!Q{*, ,r=   r   r   r   rD   rM   r3  )gJIť?gU(C@g#gh㈵>r  -C6?r%   )r,   r!  r"  r
   r   r   r   r   r   r   r   r/   rE   
r9   r   r  r  r&  r1   r  r   r#  r$  s
             r:   test_L5'TestDifferentialEvolutionSolver.test_L5  s    ii##I.		,
  RVVGQ/1$Q1<> )%%d3T2{{{rxx355	*a/01suu 0A 6678suu 0A 6678r=   c           	         [         R                  R                  S5      nS nS n[        US[         R                  5      nSS/nUn[        X%SUUSS	9nS
nSn	[        U" U5      U	SS9  [        UR                  U	SS9  [        UR                  USS9  UR                  (       d   e[        [         R                  " [         R                  " U" UR                  5      5      S:  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :*  5      5        g )NrE  c                 f    [         R                  " S/U 45      n U S   S-
  S-  U S   S-
  S-  -   nU$ )Nr   r%   r   rd   rD   r  r  r  s     r:   r  2TestDifferentialEvolutionSolver.test_L6.<locals>.f  s=    		A3(#AQ47Q,!A$)a/CJr=   c                     [         R                  " S/U 45      n U S   S-
  S-  U S   S-
  S-  -   S-
  U S   S-
  S-  * U S   S-
  S-  -
  S-   /$ )Nr   r%   rf   rD   r#   rg   gp=
׳T@r  r   s    r:   r  3TestDifferentialEvolutionSolver.test_L6.<locals>.c1  sl    		A3(#AqT!VaK1Q4!8a-/#5d1fq[LAaD1Hq=058: :r=   r   )   r#   r"   rM   gHz>)rJ   r   r  r)  )gq=
ף0,@g??g1r@  r  MbP?rM  r%   )r,   r!  r"  r
   r   r   r   r   rE   r   r   r   r/   rN  s
             r:   test_L6'TestDifferentialEvolutionSolver.test_L6  s     ii##I.	
	:
  Arvv.X&$Q1<$H!%%d3U3u40{{{rxx355	*a/01suu 0A 6678suu 0A 6678r=   c           	         [         R                  R                  S5      nS nS n[        U/ SQ/ SQ5      nSS/S/S	-  -   nUn[	        X%S
UUS9n/ SQnSn	[        U" U5      U	5        [        UR                  USS9  [        UR                  U	SS9  UR                  (       d   e[        [         R                  " [         R                  " U" UR                  5      5      [         R                  " / SQ5      :  5      5        [        [         R                  " [         R                  " U" UR                  5      5      [         R                  " / SQ5      :*  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :*  5      5        g )NrE  c                     [         R                  " S/U 45      n SU S   S-  -  SU S   -  U S   -  -   SU S   -  -   S	-
  nU$ )
Nr   g+dvqn@rd   rD   g"C?r%   rf   gtۈB@gn@r  r  s     r:   r  2TestDifferentialEvolutionSolver.test_L7.<locals>.f  s[    		A3(#AQqT1W$y1~ad'::QqT>"$-.CJr=   c                 F   [         R                  " S/U 45      n SSU S   -  U S   -  -   SU S   -  U S   -  -   S	U S
   -  U S   -  -
  SSU S   -  U S   -  -   SU S   -  U S   -  -   SU S
   S-  -  -   SSU S
   -  U S   -  -   SU S   -  U S
   -  -   SU S
   -  U S   -  -   /$ )Nr   gl#fUU@g+WPIw?rD   rf   g=BD?r%   re   gOlb?rd   gaۢ T@g+<$!6}?g h?g^5a?g/h"@gxLCs?gݗT?g^gED_?r  r   s    r:   r  3TestDifferentialEvolutionSolver.test_L7.<locals>.c1  s    		A3(#A	!A$qt 33i!nQqT6IIadN1Q4'( y1~ad22Yqt^AaD5HHadAg%& y1~ad22Yqt^AaD5HHadN1Q4'(	 	r=   )r   Z   r  )\   n   r   )N   f   )!   r9  )   r9  rd   rM   r3  )gq S@g] @@g˻f=@g:F@g%ShMcB@gCgbrW  r  r   r%   )r,   r!  r"  r
   r   r   rE   r   r   r   r   r/   rN  s
             r:   test_L7'TestDifferentialEvolutionSolver.test_L7  s]   ii##I.		  K?X&(A5$Q1<>
 %%(u40T2{{{rxx355	*bhh{.CCDErxx355	*bhh}.EEFGsuu 0A 6678suu 0A 6678r=   ppc64lezfails on ppc64le)reasonc           
         [         R                  R                  S5      nS n[         R                  " S5      nSUSSS/4'   SUSSS/4'   USS 2SS 24   n[         R                  " S	S	/5      nS
 n[        X4[         R                  5      n[        U[         R                  " SS5      [         R                  " SS5      5      nS/S-  S/S-  -   nXg4n	[        R                  " 5          [        R                  " S[        5        [        X(SXSS9n
S S S 5        SnSn[        U" U5      USS9  [        W
R                  S S US S SS9  [        U
R                  SS  USS  SS9  [        U
R                   USS9  U
R"                  (       d   e[%        [         R&                  " X:R                  -  U:  5      5        [%        [         R&                  " [         R                  " U" U
R                  5      5      S:  5      5        [%        [         R&                  " [         R                  " U" U
R                  5      5      S:*  5      5        [%        [         R&                  " U
R                  [         R                  " U5      S S 2S4   :  5      5        [%        [         R&                  " U
R                  [         R                  " U5      S S 2S4   :*  5      5        g ! , (       d  f       GN= f)NrE  c                     [         R                  " S/U 45      n SU S   -  SU S   S-  -  -   SU S   -  -   SU S   S-  -  -   nU$ )Nr   rd   r%   r@  rD   g^>r  r  s     r:   r  2TestDifferentialEvolutionSolver.test_L8.<locals>.fE  sY    		A3(#AAaD&8AaD!G++a!f4z!A$'7IICJr=   )rd   rf   )r%   r   r%   re   rd   rD   皙c           	         [         R                  " S/U 45      n S[         R                  " U S   * S-
  5      -  S[         R                  " U S   * S-
  5      -  -   S-   U S   -
  S[         R                  " U S   S-
  5      -  S[         R                  " U S   U S   -
  S-
  5      -  -   S-   U S   -
  S[         R                  " U S   S-
  5      -  S[         R                  " U S   U S   -
  S-
  5      -  -   S	-   /$ )
Nr   i  rd   rh   re   gfffff@r%   rD   g33333;@)r,   r  rG  r   s    r:   r  3TestDifferentialEvolutionSolver.test_L8.<locals>.c1P  s    		A3(#A1d
++d2661Q4%*3E.EEaD!!T	**T"&&1ad42H-HHaD!!T	**T"&&1ad42H-HH r=   MbPrW  )r   i  )rm  g?r  rL   i  )rJ   r   r  r   )gEGr?@gT㥛D@g&D
n?gd,[ٿg#J{@r  gMb`?r(  r   )r,   r!  r"  r  r/   r   r   r
   fullr  r  r  r  r   r   rE   r   r   r   r   rA  s                r:   test_L8'TestDifferentialEvolutionSolver.test_L8?  s;    ii##I.	
 HHV!aV)!aV)ab!"fIHHdD\"		 Q266*BGGAv$658IJQ}Q.f$$&!!(K8 )Z-0157C ' <%%d3bq	5!948ab	5948T2{{{qw!|$%rxx355	*f456rxx355	*e345suu 0A 6678suu 0A 6678+ '&s   '(K
K"rf   c           	         [         R                  R                  S5      nS nS n[        US/S/5      nS/S-  nUn[	        X%SUUS	9n[         R
                  " S5      S-  S
/nSn	[        U" U5      U	5        [        [         R                  " UR                  5      USS9  [        UR                  U	SS9  UR                  (       d   e[        [         R                  " [         R                  " U" UR                  5      5      S:  5      5        [        [         R                  " [         R                  " U" UR                  5      5      S:*  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :  5      5        [        [         R                  " UR                  [         R                  " U5      S S 2S4   :*  5      5        g )NrE  c                 \    [         R                  " S/U 45      n U S   S-  U S   S-
  S-  -   $ )Nr   r%   rD   r  r   s    r:   r  2TestDifferentialEvolutionSolver.test_L9.<locals>.f|  s5    		A3(#AQ47ad1fq[((r=   c                 R    [         R                  " S/U 45      n U S   U S   S-  -
  /$ r  r  r   s    r:   r  3TestDifferentialEvolutionSolver.test_L9.<locals>.c1  s/    		A3(#AaD1Q47N##r=   rp  rW  r   rD   rM   r3  r'   g      ?r  r   r%   )r,   r!  r"  r
   r   sqrtr   absrE   r   r   r   r   r/   rN  s
             r:   test_L9'TestDifferentialEvolutionSolver.test_L9w  s^    ii##I.	)	$  UGeW51$Q1<> As#%%(suuu48T2{{{rxx355	*f456rxx355	*e345suu 0A 6678suu 0A 6678r=   c           	        ^ [         R                  R                  S5      n[        R                  nSnUR
                  " USUS.6nS mSS/nSS	/n[        TXbU4USUS
9nUR                  S   S:X  d   e[        UR                  USS9  [        TXbU4USUS
9nU4S jn	[        XR                  S   SX$4S	/S9n
[        UR                  S   U
R                  5        UR                  UR                  ::  d   eg )Nl   b	)rf   r'   i'  )rP  random_statec                     Uu  p#[         R                  " UR                  " U/U Q76 5      R                  SS9* n[         R                  " U5      (       a  [         R
                  nU$ )Nr   axis)r,   logpmfr   isnanr   )r  r   distrE   lls        r:   r   >TestDifferentialEvolutionSolver.test_integrality.<locals>.func  sO    GD&&!a)--2-66Bxx||VVIr=   TF)r%      )r   gffffff?)r   integralityr   r   r   rf   g?)r   c                 P   > Uu  p#nT" [         R                  " X S   /5      X45      $ )Nr   r  )r  r   nr  rE   r   s        r:   func2?TestDifferentialEvolutionSolver.test_integrality.<locals>.func2  s(    JAQ!qT+T55r=   r%   )r   r1   )r,   r!  r"  r   nbinomrvsr   rE   r   r   r   )r9   r   r  shapesrE   r  r1   r   res2r  LBFGSBr   s              @r:   test_integrality0TestDifferentialEvolutionSolver.test_integrality  s    ii##M2||HHf5s;	 Um9%$T6q	1<U),.
 uuQx1}}vE2 &dF2=d*-/	6 %!T"+.q	688,xx377"""r=   c                    S n/ SQn/ SQn[        XSSS9n[        UR                  S   / SQ5        [        UR                  S   / S	Q5        [        XSUS9n[        UR                  S   / S
Q5        [        UR                  S   / SQ5        [        UR                  / SQ5        UR
                  SL d   e/ SQn[        XSUS9n[        UR                  S   / SQ5        [        UR                  S   / SQ5        [        [        R                  " UR                  S   5      / SQ5        [        [        R                  " UR                  S   5      / SQ5        / SQn[        XSUS9n[        UR                  S   / SQ5        [        UR                  S   / SQ5        / SQn[        R                  " [        SS9   [        XSUS9  S S S 5        g ! , (       d  f       g = f)Nc                     U $ r   r?   r   s    r:   r  BTestDifferentialEvolutionSolver.test_integrality_limits.<locals>.f  s    Hr=   )TFT))rZ  r   r   皙@)ffffff
@皙@F)r1   r   r  r   )rZ  r   r  r%   )r   r  r  )r'   r   g      @)g      ?r        @))r  gr  )g$gffffff@)g      r         %)r>  r  r  )      r   g      $)r  r    g      @))ffffff$g333333 r  g%gr#)r  r   r  )g      !r  g      #))r  g333333$r  r  zOne of the integralityr   )r   r   r0   r   r  r   r,   roundr  r   r   )r9   r  r  r1   r^   s        r:   test_integrality_limits7TestDifferentialEvolutionSolver.test_integrality_limits  s   	 *5 -Qe9>@a(/:a(/: -Qe9DFa(/:a(/:V'')<=}}%%%9,Qe9DFa(*<=a(*:; 	q!124FGq!124DE>,Qe9DFa(*=>a(*;<?]]:-EF'4?A GFFs   <G
Gc           	        ^ S nS n[         R                  " [        SS9   [        XR                  SSS9  S S S 5        [        [        SS9   [        X R                  SS	9  S S S 5        [        [        S
S9   [        X R                  S[        SS9  S S S 5        S/mU4S jnSS/n[        R                  R                  S5      n[        [        USUS9n[        R                  R                  S5      n[        X4SSUS9n[        UR                  UR                  5        TS   UR                  :X  d   eUR                  UR                  :X  d   eg ! , (       d  f       GN$= f! , (       d  f       GN= f! , (       d  f       N= f)Nc                 4    [         R                  " U S-  5      $ r   r,   r   r   s    r:   r2   BTestDifferentialEvolutionSolver.test_vectorized.<locals>.quadratic  s    66!Q$<r=   c                 2    [         R                  " U S-  SS9$ )NrD   r   r  r  r   s    r:   quadratic_vecFTestDifferentialEvolutionSolver.test_vectorized.<locals>.quadratic_vec  s    66!Q$Q''r=   zThe vectorized functionr   Tr  )r  r   z#differential_evolution: the 'vector)r  z$differential_evolution: the 'workers)r  r  r   r   c                 4   > TS==   S-  ss'   [        U 5      $ r  )r   )rE   ncallss    r:   	rosen_vecBTestDifferentialEvolutionSolver.test_vectorized.<locals>.rosen_vec  s    1INI8Or=   rL  rE  r  )r  r   r   )r  r   r   r   r1   r   r  r  r,   r!  r"  r   r   rE   r#  r   )	r9   r2   r  r  r1   r   res1r  r  s	           @r:   test_vectorized/TestDifferentialEvolutionSolver.test_vectorized  sM   	 	( ]]</HI"9kk.2ZI J
 ;&KL"=++.24 M
 ;&LM"=++.2C,68 N
 	 7#ii##I.%eVj*-/ii##I.%iD/9sD 	'ayDII%%%xx488###A JI
 ML
 NMs#   EE&8E8
E#&
E58
Fc           
      p   S nS n[        U[        R                  * S5      n[        USS5      nS nSS/n[        R                  R	                  S5      n[        [        US	XsU/S
S9n[        R                  R	                  S5      n[        XVSS	UX4/S
S9n	[        UR                  U	R                  5        g )Nc                 B    [         R                  " U S   U S   -   /5      $ r  r  r   s    r:   r  MTestDifferentialEvolutionSolver.test_vectorized_constraints.<locals>.constr_f  r  r=   c                 \    [         R                  " U S   S-  U S   -   U S   U S   -
  /5      $ r  r  r   s    r:   r  NTestDifferentialEvolutionSolver.test_vectorized_constraints.<locals>.constr_f2   r  r=   r  )r   r'   r   c                 r    SU SS  U S S S-  -
  S-  -  nUSU S S -
  S-  -  n[         R                  " U5      $ )Nr#   r%   r   r    )r,   squeeze)rE   r   s     r:   r  NTestDifferentialEvolutionSolver.test_vectorized_constraints.<locals>.rosen_vec&  sM    quq"vs{*S00A!af*s""A::a= r=   rL  rE  r  F)r   r   r  r   T)r  r   r   r  r   )	r
   r,   r   r!  r"  r   r   r   rE   )
r9   r  r  nlc1r  r  r1   r   r  r  s
             r:   test_vectorized_constraints;TestDifferentialEvolutionSolver.test_vectorized_constraints  s    	+	; #8bffWc:"9j*E	! 7#ii##I.%eVj*-$<-24 ii##I.%iD/9s37,-24
 	'r=   c                 n  ^^ [        U R                  5      mU4S jmS Tl        [        R                  R                  S5      n[        [        U R                  TSUS9n[        R                  R                  S5      n[        [        U R                  SSUS9nUR                  c   e[        UR                  [        R                  " T5      SS9  UR                  TR                  R                  :X  d   eUR                  UR                  :w  d   eU4S jn[        [        S	S
9   [        [        U R                  USS9  S S S 5        S m[        R                  R                  S5      n[        [        U R                  SUSS9n[        [        UR                  U R                  SS9n[        R                  R                  S5      n[        [        U R                  TUSS9n[        UR                  UR                  5        [        UR                  UR                  5        g ! , (       d  f       N= f)Nc                 L   > [        X4[        SS.UD6Tl        TR                  $ )Nztrust-constr)jacmethod)r   r   r   )r   rE   kwdspfs      r:   r  @TestDifferentialEvolutionSolver.test_polish_function.<locals>.pf>  s$    cS)NSdSBF66Mr=   rE  r%   )r   r   r   Tr@  r  c                    > SU;   d   e[        US   [        5      (       d   eSU;   d   e[        R                  " T5      $ )Nr1   r  )r   r	   r,   r  )r   rE   r  r&  s      r:   dummy_pfFTestDifferentialEvolutionSolver.test_polish_function.<locals>.dummy_pfU  sD    t###d8nf5555 D(((771:r=   z(The result from a user defined polishingr   )r   r   c                     [        X4SS0UD6$ )Nr  L-BFGS-B)r   )r   rE   r  s      r:   r  r  i  s    D?J?$??r=   l   -g F)r   r   r   r  )r1   r  )r   r1   r   r,   r!  r"  r   r   r  r   rE   r  r   r   r   r   )r9   r   r   r   r  r  r&  r  s         @@r:   test_polish_function4TestDifferentialEvolutionSolver.test_polish_function:  s   	 ii##I.$4;;r1#
 ii##I.$4;;tQC
 ww"""rwwqz5ww"&&**$$$ww#''!!!	 <
 #		
	@ ii##L1$4;;u#q
 uceeDKK
Kii##L1%4;;rsA

 	tvv&*;
 
s   'H&&
H4c           	      "   [         R                  R                  S5      nS n[        S S[         R                  5      n[        S [         R                  * S5      n[        USS/X4/SS	US
9nUR                  S	L d   eSUR                  ;   d   eg )NrE  c                 h    [         R                  " U S   5      [         R                  " U S   5      -   $ r  )r,   cosrG  r   s    r:   r   UTestDifferentialEvolutionSolver.test_constraint_violation_error_message.<locals>.func}  s%    66!A$<"&&1,..r=   c                 $    U S   U S   S-
  S-  -
  $ Nr%   r   rD   r?   r   s    r:   <lambda>YTestDifferentialEvolutionSolver.test_constraint_violation_error_message.<locals>.<lambda>  s    1Q41Q46A++=r=   r   c                     U S   U S   S-  -   $ r  r?   r   s    r:   r  r    s    1Q4!A$'>r=   )r   rD   r   r   F)r1   r  r   r   r   z
MAXCV = 0.)r,   r!  r"  r
   r   r   r   r   )r9   r   r   c0r  rj   s         r:   'test_constraint_violation_error_messageGTestDifferentialEvolutionSolver.test_constraint_violation_error_messagez  s    ii##I.	/ !!=q"&&I !9BFF7AF'07/A57H02/4,/1 ~~&&& v~~---r=   c                 $  ^^^	^
^ [         R                  R                  S5      nSm	SnS/T	-  nT	U-  mSmSm
S/mSUUU	U
U4S jjn[        [        UUT
TS	UUS
S9	nUR
                  UL d   eUR                  5         TS   S:  d   e[         R                  R                  S5      n[        [        X4SUS9nUR                  (       d   eSS jn[        R                  " [        SS9   [        [        UUS9  S S S 5        g ! , (       d  f       g = f)NrE  re   r   )r   g      $@r+   gffffff?r   c                 p  > TS==   S-  ss'   [         R                  " X   5      nUR                  T5      n[         R                  " T5      nUR	                  U5        US S nXfU :g     S S nUS S u  pxUS   TX   X   -
  -  -   n	UR                  TS9n
U
T:  n
SX'   [         R                  " XU5      nU$ )Nr   r%   rd   rD   )rP  T)r,   copychoicer6   shufflert  where)r  r8   r   rk   
fill_pointr  idxsr0r  bprime
crossoverscallsr)   r  recombinationtotal_popsizes              r:   custom_strategy_fnLTestDifferentialEvolutionSolver.test_strategy_fn.<locals>.custom_strategy_fn  s    !HMHGGJ12EO4J99]+DKK<D	)*2A.D"1XFB mh^jn4'6 6F /:J#m3J%)J"HHZ7ELr=   rD   F)r(   r  r)   r   rJ   r   r   r  )rJ   r   r   c                 2    [         R                  " SS/5      $ )Nr   r    r  )r  r8   r   s      r:   r  r    s    88S#J''r=   z	strategy*r   rI   r   )r,   r!  r"  r   r   rJ   r   r   r   r  r   r   )r9   r   r(   r1   r  r^   r   r  r)   r  r  r  s          @@@@@r:   test_strategy_fn0TestDifferentialEvolutionSolver.test_strategy_fn  s   ii##I. o-''1	 	* -''

 "4444Qx!|| ii##I.$6QT
 {{{	( ]]<{;"+ <;;s   (D
Dc                 l    [        [        [        S/S-  5          S S S 5        g ! , (       d  f       g = f)NrL  rD   )r   r   r   r@   s    r:   test_reference_cycles5TestDifferentialEvolutionSolver.test_reference_cycles  s%     ;UWIaKP QPPs   %
3)r1   r3   r4   r0   r.   N)Or\   
__module____qualname____firstlineno__r;   rA   r2   r_   rl   ro   rr   ru   r|   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r$  r+  r.  r2  r:  r>  rC  rI  rW  r\  r_  rv  rz  r  r  r  r  r  mark	fail_slowr  r  r  r  r  r  r  r  r  r  r(  r5  rB  rO  rX  rf  xslowxfailplatformmachinerr  r{  r  r  r  r  r  r  r  r  __static_attributes__r?   r=   r:   r   r      s   3&%IGV'
'''4*<=EH
(>;@G!R D0"*0(JK2&h?/0.E &6(D8LFI$)	 [[2 "7:r+&Z$ [[2'9 '9R:4*;X'84& [[2_9 _9B [[2&9 &9P [[219 19j [[29 9< [[29 9<.9` [[[[x'')Y60  2392 39j [[19 9> [[2*# *#X+AZ [[2($ ($T(<>+@.0 [[2@ @Dr=   r   )&__doc__multiprocessing.dummyr   r  r  r  scipy._lib._gcutilsr   %scipy.optimize._differentialevolutionr   r   scipy.optimizer   r   scipy.optimize._constraintsr	   r
   r   r   r   r   scipy.sparser   scipyr   numpyr,   numpy.testingr   r   r   r   r   r  r   r   r   r   r?   r=   r:   <module>r     sV    5   2G A; ; 5 5 "  9 9 1 ~ ~r=   