§
    µ³Ùg¾D  ã                   óR  — d dl Z d dlZd dlmZ d dlmZmZ d dlm	Z
 d dlmZmZmZ d„ Ze j                             d¦  «         G d„ d	¦  «        ¦   «         Z G d
„ de¦  «        Z G d„ de¦  «        Ze j                             d¦  «         G d„ d¦  «        ¦   «         Zd„ Zdd„ZdS )é    N)Údefault_rng)Úquadratic_assignmentÚOptimizeWarning)Ú_calc_score)Úassert_equalÚassert_Úassert_warnsc                  óH  — g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g} g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g}t          j        | ¦  «        t          j        |¦  «        }} | j        d         }t          j        g d¢¦  «        dg|z  z
  }| ||fS )N)r   éZ   é
   r   r   r   r   r   r   r   r   r   )r   r   r   é   r   r   r   r   r   r   r   r   )r   r   r   r   é+   r   r   r   r   r   r   r   )r   r   r   r   r   éX   r   r   r   r   r   r   )r   r   r   r   r   r   é   r   r   r   r   r   )r   r   r   r   r   r   r   é   r   r   r   r   )r   r   r   r   r   r   r   r   é   r   r   r   )r   r   r   r   r   r   r   r   r   é`   r   r   )r   r   r   r   r   r   r   r   r   r   é   r   )r   r   r   r   r   r   r   r   r   r   r   é%   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   é$   é6   r   é;   éH   é	   é"   éO   é   é.   é_   )r   r   éI   é#   r   é:   é   éN   r!   é,   r   r   )r   r    r   é   r   éa   r"   éB   éE   é=   r   é?   )r   r!   r&   r   é]   é   r   é(   r   é0   éD   éU   )r   r   r   r,   r   é@   é   r   éL   r   r3   r4   )r   r"   r'   r-   r2   r   r   é7   é&   r   r   r   )r   r#   r"   r   r3   r   r   éS   r!   é   é8   r   )r   r$   r(   r.   r   r5   r7   r   r%   r-   é   éP   )r   r!   r)   r   r4   r6   r!   r%   r   r2   é'   é!   )r   r%   r*   r/   r   r   r8   r-   r2   r   éF   éV   )r   r   r   r0   r3   r   r9   r:   r<   r>   r   é   )r   r   r+   r1   r4   r   r   r;   r=   r?   r@   r   r   )é   r3   r   é   r   é   é   é   r   r8   é   r-   r   )ÚnpÚarrayÚshape)ÚAÚBÚnÚopt_perms       úd/granary/edev/quantum/lib/python3.11/site-packages/scipy/optimize/tests/test_quadratic_assignment.pyÚchr12crO      s=  € à.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.Ø.Ð.Ð.Ø-Ð-Ð-Ø.Ð.Ð.Ø-Ð-Ð-Ø.Ð.Ð.Ø-Ð-Ð-Ø-Ð-Ð-ð	€Að 	7Ð6Ð6Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø5Ð5Ð5Ø6Ð6Ð6Ø5Ð5Ð5Ø7Ð7Ð7Ø7Ð7Ð7Ø7Ð7Ð7Ø5Ð5Ð5Ø7Ð7Ð7ð	€Aõ Œ8�A‰;Œ;�œ ™œ€q€AØ	Œ�Œ
€AåŒxÐ?Ð?Ð?Ñ@Ô@ÀAÀ3ÈÁ7ÑJ€Hàˆa�ˆ>Ðó    z1ignore:The NumPy global RNG was seeded by callingc                   óx   — e Zd ZdZd„ Zd„ Zd„ Zej        j	        d„ ¦   «         Z
ej        j	        d„ ¦   «         ZdS )ÚQAPCommonTestsz6
    Base class for `quadratic_assignment` tests.
    c                 óª  — t           j                             d¦  «        }g d¢g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g}t          ||| j        |d	d
œ¬¦  «        }t          |j        d¦  «         t          |j        t          j        g d¢¦  «        ¦  «         t          ||| j        |dd
œ¬¦  «        }| j        dk    r?t          |j        d¦  «         t          |j        t          j        g d¢¦  «        ¦  «         n>t          |j        d¦  «         t          |j        t          j        g d¢¦  «        ¦  «         t          ||| j        |dd
œ¬¦  «         d S )Nì   m«X)Eëc )r   rB   rC   rF   )r   r   r   rF   )r   r   r   r   )r   r   r   r   )r   rC   rF   rC   )r   rF   r   rF   )r   r   rF   r   F©ÚrngÚmaximize©ÚmethodÚoptionsr   ©r   rF   rB   r   TÚfaqr   )r   rF   rB   r   r.   )r   rB   r   rF   )	rG   Úrandomr   r   rY   r   ÚfunÚcol_indrH   ©ÚselfrV   rJ   rK   Úress        rN   Útest_accuracy_1zQAPCommonTests.test_accuracy_1;   sš  € åŒi×#Ò#Ð$7Ñ8Ô8ˆàˆ\ˆ\Øˆ\ˆ\Øˆ\ˆ\Øˆ\ˆ\ðˆð
 ˆ\ˆ\Øˆ\ˆ\Øˆ\ˆ\Øˆ\ˆ\ðˆõ
 # 1 a°´Ø36ÀEÐ+JÐ+JðLñ Lô Lˆõ 	�S”W˜bÑ!Ô!Ð!Ý�S”[¥"¤(¨<¨<¨<Ñ"8Ô"8Ñ9Ô9Ð9å" 1 a°´Ø36ÀDÐ+IÐ+IðKñ Kô Kˆð Œ;˜%ÒÐå˜œ "Ñ%Ô%Ð%Ý˜œ¥b¤h¨|¨|¨|Ñ&<Ô&<Ñ=Ô=Ð=Ð=å˜œ "Ñ%Ô%Ð%Ý˜œ¥b¤h¨|¨|¨|Ñ&<Ô&<Ñ=Ô=Ð=å˜Q ¨$¬+Ø-0¸dÐ%CÐ%Cð	Eñ 	Eô 	Eð 	Eð 	Eð 	ErP   c                 ó¼  — t           j                             d¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        g d¢g d¢g d¢g d	¢g¦  «        }t	          ||| j        |d
dœ¬¦  «        }| j        dk    r?t          |j        d¦  «         t          |j        t          j        g d¢¦  «        ¦  «         n>t          |j        d¦  «         t          |j        t          j        g d¢¦  «        ¦  «         t	          ||| j        |ddœ¬¦  «        }t          |j        d¦  «         t          |j        t          j        g d¢¦  «        ¦  «         d S )NrT   )r   r3   rD   rE   )r3   r   r3   r   )rD   r3   r   rF   )rE   r   rF   r   )r   r   rD   rC   )r   r   r3   rF   )rD   r3   r   r3   )rC   rF   r3   r   FrU   rX   r\   é²   )r   r   rB   rF   é°   r[   Ti  )rF   rB   r   r   )	rG   r]   r   rH   r   rY   r   r^   r_   r`   s        rN   Útest_accuracy_2zQAPCommonTests.test_accuracy_2a   s‚  € ÝŒi×#Ò#Ð$7Ñ8Ô8ˆåŒH�l�l�lØ"�l�lØ"�l�lØ"�l�lð$ñ %ô %ˆõ
 ŒH�l�l�lØ"�l�lØ"�l�lØ"�l�lð$ñ %ô %ˆõ
 # 1 a°´Ø36ÀEÐ+JÐ+JðLñ Lô Lˆð Œ;˜%ÒÐå˜œ #Ñ&Ô&Ð&Ý˜œ¥b¤h¨|¨|¨|Ñ&<Ô&<Ñ=Ô=Ð=Ð=å˜œ #Ñ&Ô&Ð&Ý˜œ¥b¤h¨|¨|¨|Ñ&<Ô&<Ñ=Ô=Ð=å" 1 a°´Ø36ÀDÐ+IÐ+IðKñ Kô Kˆõ 	�S”W˜cÑ"Ô"Ð"Ý�S”[¥"¤(¨<¨<¨<Ñ"8Ô"8Ñ9Ô9Ð9Ð9Ð9rP   c                 ó  — t           j                             d¦  «        }t          ¦   «         \  }}}t	          ||| j        d|i¬¦  «        }t          d|j        cxk    odk     nc ¦  «         t          |j        t          |||j
        ¦  «        ¦  «         t	          ||| j        |ddœ¬¦  «        }t          d|j        cxk    od	k     nc ¦  «         t          |j        t          |||j
        ¦  «        ¦  «         t          j        g d
¢¦  «        }t          j        |||         g¦  «        j        }t	          ||| j        ||dœ¬¦  «        }t          d|j        cxk    odk     nc ¦  «         t          |j
        |         ||         ¦  «         t          j        t          j        t          |¦  «        ¦  «        |g¦  «        j        }t	          ||| j        ||dœ¬¦  «        }t          |j
        |d d …df         j        ¦  «         t          |j        d¦  «         t          |j        d¦  «         t          j        d¦  «        }t	          ||| j        d|i¬¦  «        }t          |j        d¦  «         t          |j        d¦  «         d S )NrT   rV   rX   é”+  éR  TrU   i! iL )rC   rD   r   )Úpartial_matchrV   r   r   )r   r   )rG   r]   r   rO   r   rY   r   r^   r   Ú_scorer_   rH   ÚasarrayÚTÚarangeÚlenÚnitÚempty)	ra   rV   rJ   rK   rM   rb   Ú	seed_costÚseedrr   s	            rN   Útest_accuracy_3zQAPCommonTests.test_accuracy_3   s¨  € ÝŒi×#Ò#Ð$7Ñ8Ô8ˆÝ™œ‰ˆˆ1ˆhõ # 1 a°´Ø,1°3¨<ð9ñ 9ô 9ˆå�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)Ý�S”W�f Q¨¨3¬;Ñ7Ô7Ñ8Ô8Ð8õ # 1 a°´Ø36ÀDÐ+IÐ+IðKñ Kô Kˆå�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)Ý�S”W�f Q¨¨3¬;Ñ7Ô7Ñ8Ô8Ð8õ ”H˜Z˜Z˜ZÑ(Ô(ˆ	ÝŒz˜9 h¨yÔ&9Ð:Ñ;Ô;Ô=ˆÝ" 1 a°´Ø=AÈ#Ð+NÐ+NðPñ Pô Pˆå�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)Ý�S”[ Ô+¨X°iÔ-@ÑAÔAÐAõ Œz�2œ9¥S¨¡V¤VÑ,Ô,¨hÐ7Ñ8Ô8Ô:ˆÝ" 1 a°´Ø=AÈ#Ð+NÐ+NðPñ Pô Pˆå�S”[ $ q q q¨! t¤*¤,Ñ/Ô/Ð/Ý�S”W˜eÑ$Ô$Ð$Ý�S”W˜aÑ Ô Ð õ ”˜Ñ Ô ˆÝ" 5¨%¸¼Ø,1°3¨<ð9ñ 9ô 9ˆå�S”W˜aÑ Ô Ð Ý�S”W˜aÑ Ô Ð Ð Ð rP   c                 óh   ‡ ‡‡— t          ¦   «         \  ŠŠ}ˆˆˆ fd„}t          t          |¦  «         d S )Nc                  ó<   •— t          ‰ ‰‰j        ddi¬¦  «         d S )Nz	ekki-ekkiTrX   )r   rY   )rJ   rK   ra   s   €€€rN   Úfz.QAPCommonTests.test_unknown_options.<locals>.fª   s4   ø€ Ý   A¨d¬kØ*5°tÐ)<ð>ñ >ô >ð >ð >ð >rP   )rO   r	   r   )ra   rM   rx   rJ   rK   s   `  @@rN   Útest_unknown_optionsz#QAPCommonTests.test_unknown_options¦   sO   øøø€ å™œ‰ˆˆ1ˆhð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>õ 	•_ aÑ(Ô(Ð(Ð(Ð(rP   c           	      óò  — t          j        d¦  «                             d¦  «        }t          j        d¦  «                             d¦  «        }t          j        t
          d¬¦  «        5  t           j                             d¦  «        }t          ||| j	        |ddœ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t           j                             d¦  «         t          ||| j	        d
di¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ||| j	        dddœ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©rC   rC   zUse of `RandomState`*©Úmatchr   FrU   rX   z The NumPy global RNG was seeded*rW   z!The behavior when the rng option*)rG   ro   ÚreshapeÚpytestÚwarnsÚDeprecationWarningr]   ÚRandomStater   rY   ÚFutureWarningrt   )ra   rJ   rK   rV   s       rN   Ú test_deprecation_future_warningsz/QAPCommonTests.test_deprecation_future_warnings¯   s`  € õ ŒI�b‰MŒM×!Ò! &Ñ)Ô)ˆÝŒI�b‰MŒM×!Ò! &Ñ)Ô)ˆåŒ\Õ,Ð4KÐLÑLÔLð 	Jð 	JÝ”)×'Ò'¨Ñ*Ô*ˆCÝ   A¨d¬kØ14À%Ð)HÐ)HðJñ Jô Jð Jð	Jð 	Jð 	Jñ 	Jô 	Jð 	Jð 	Jð 	Jð 	Jð 	Jð 	Jøøøð 	Jð 	Jð 	Jð 	Jõ
 Œ\�-Ð/QÐRÑRÔRð 	>ð 	>ÝŒI�NŠN˜1ÑÔÐÝ   A¨d¬kØ*4°eÐ)<ð>ñ >ô >ð >ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>õ
 Œ\�-Ð/RÐSÑSÔSð 	Hð 	HÝ   A¨d¬kØ12ÀÐ)FÐ)FðHñ Hô Hð Hð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hð 	Hð 	Hs6   Á*;B1Â1B5Â8B5Ã:DÄD!Ä$D!ÅE,Å,E0Å3E0N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rc   rg   ru   r   ÚmarkÚthread_unsafery   r„   © rP   rN   rR   rR   2   s—   € € € € € ðð ð Eð  Eð  EðL:ð :ð :ð<%!ð %!ð %!ðN „[Ôð)ð )ñ Ôð)ð „[ÔðHð Hñ ÔðHð Hð HrP   rR   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestFAQr\   c                 óˆ  — t           j                             d¦  «        }t          ¦   «         \  }}}t	          |¦  «        }t          ||ddi¬¦  «        }t          |j        d¦  «         t          ||ddi¬¦  «        }t          d|j	        cxk    odk     nc ¦  «         t          |||d	d
œ¬¦  «        }t          d|j	        cxk    odk     nc ¦  «         t          j
        ||f¦  «        t          |¦  «        z  }t          |¦  «        }t          ||d|i¬¦  «        }t          d|j	        cxk    odk     nc ¦  «         d S )NrT   Úmaxiterr3   ©rZ   Úshuffle_inputTri   rj   Ú
randomized)rV   ÚP0r“   )rG   r]   r   rO   rp   r   r   rq   r   r^   ÚonesÚfloatÚ_doubly_stochastic)ra   rV   rJ   rK   rM   rL   rb   ÚKs           rN   Útest_optionszTestFAQ.test_optionsÇ   sd  € åŒi×#Ò#Ð$7Ñ8Ô8ˆå™œ‰ˆˆ1ˆhÝ�‰FŒFˆõ # 1 a°)¸Q°Ð@Ñ@Ô@ˆÝ�S”W˜aÑ Ô Ð õ # 1 a°/À4Ð1HÐIÑIÔIˆÝ�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)õ # 1 a¸ÀLÐ1QÐ1QÐRÑRÔRˆÝ�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)õ ŒG�Q˜�F‰OŒO�e A™hœhÑ&ˆÝ˜qÑ!Ô!ˆÝ" 1 a°$¸°Ð;Ñ;Ô;ˆÝ�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)Ð)Ð)rP   c           	      óN  — t          j        d¦  «        }|}t          j        t          d¬¦  «        5  t          ||ddi¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ||dd	i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d
¬¦  «        5  t          ||dd	i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ||ddi¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          j        d¦  «        t          j        d¦  «        dt          j        d¦  «        i¬¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢g d¢g d¢g}t          j        t          d¬¦  «        5  t          t          j        d¦  «        t          j        d¦  «        d|i¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrF   zInvalid 'P0' parameterr|   r“   r]   r�   z$'maxiter' must be a positive integerr�   éÿÿÿÿz'tol' must be a positive floatÚtolg      ø?z1`P0` matrix must have shape m' x m', where m'=n-mrC   ©rB   rB   )gš™™™™™Ù?çš™™™™™É?ç333333Ó?)rž   g333333ã?r�   )r�   r�   gffffffæ?z%`P0` matrix must be doubly stochasticrB   )rG   Úidentityr   ÚraisesÚ
ValueErrorr   Ú	TypeErrorr”   )ra   rJ   rK   r—   s       rN   Útest_specific_input_validationz&TestFAQ.test_specific_input_validationà   sî  € åŒK˜‰NŒNˆØˆõ Œ]�:Ð-EÐFÑFÔFð 	Að 	AÝ   A°°hÐ/?Ð@Ñ@Ô@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	AåŒ]ÝÐ"HðJñ Jô Jð 	@ð 	@å   A°	¸2¨Ð?Ñ?Ô?Ð?ð	@ð 	@ð 	@ñ 	@ô 	@ð 	@ð 	@ð 	@ð 	@ð 	@ð 	@øøøð 	@ð 	@ð 	@ð 	@õ Œ]�:Ð-MÐNÑNÔNð 	<ð 	<Ý   A°°r¨{Ð;Ñ;Ô;Ð;ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<õ
 Œ]�9Ñ%Ô%ð 	Að 	AÝ   A°	¸3Ð/?Ð@Ñ@Ô@Ð@ð	Að 	Að 	Añ 	Aô 	Að 	Að 	Að 	Að 	Að 	Að 	Aøøøð 	Að 	Að 	Að 	Aõ Œ]ÝØIðKñ Kô Kð 	ð 	õ !Ý”˜A‘”¥¤¨A¡¤Ø�rœw v™œÐ/ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ˆ_ˆ_Øˆ_ˆ_Øˆ_ˆ_ðˆõ Œ]ÝÐ"IðKñ Kô Kð 	ð 	å Ý”˜A‘”¥¤¨A¡¤¸¸q¸	ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sl   ²AÁAÁAÁ9BÂBÂ!BÃ C!Ã!C%Ã(C%ÄD&Ä&D*Ä-D*ÅAF#Æ#F'Æ*F'Ç9HÈHÈ!HN)r…   r†   r‡   rY   r˜   r£   r‹   rP   rN   r�   r�   Ä   s7   € € € € € Ø€Fð*ð *ð *ð2'ð 'ð 'ð 'ð 'rP   r�   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚTest2optÚ2optc                 ó¢  — d}t          d¦  «        }|                     ||f¬¦  «        }|                     ||f¬¦  «        }t          ||| j        d|i¬¦  «        }t          d¦  «        }|                     ||f¬¦  «        }|                     ||f¬¦  «        }t          ||| j        d|i¬¦  «        }t	          |j        |j        ¦  «         d S )Né   i<2©ÚsizerV   rX   )r   r]   r   rY   r   rq   )ra   rL   rV   rJ   rK   Úres1Úres2s          rN   Útest_deterministiczTest2opt.test_deterministic  sÏ   € ØˆÝ˜(Ñ#Ô#ˆØ�JŠJ˜Q ˜FˆJÑ#Ô#ˆØ�JŠJ˜Q ˜FˆJÑ#Ô#ˆÝ# A q°´ÀuÈcÀlÐSÑSÔSˆå˜(Ñ#Ô#ˆØ�JŠJ˜Q ˜FˆJÑ#Ô#ˆØ�JŠJ˜Q ˜FˆJÑ#Ô#ˆÝ# A q°´ÀuÈcÀlÐSÑSÔSˆå�T”X˜tœxÑ(Ô(Ð(Ð(Ð(rP   c           	      óò  — d}t           j                             d¦  «        }|                     ||f¬¦  «        }|                     ||f¬¦  «        }t          ||| j        d|i¬¦  «        }t          j        t          j        d¦  «        |j        g¦  «        j        }t          ||| j        ||dœ¬¦  «        }ddg}t          j        t          j        d¦  «        |         |j        |         g¦  «        j        }	t          ||| j        |||	d	œ¬¦  «        }
t          |j
        ||d
z   z  dz  k    ¦  «         t          |j
        ||d
z   z  dz  ¦  «         t          |
j
        |dz
  |d
z
  z  dz  ¦  «         d S )Nr3   rT   r©   rV   rX   )rV   Úpartial_guessrF   rC   )rV   r¯   rk   r   )rG   r]   r   r   rY   rH   ro   r_   rn   r   rq   r   )ra   rL   rV   rJ   rK   r«   Úguessr¬   Úfixr}   Úres3s              rN   Útest_partial_guesszTest2opt.test_partial_guess  s‰  € ØˆÝŒi×#Ò#Ð$7Ñ8Ô8ˆà�JŠJ˜Q ˜FˆJÑ#Ô#ˆØ�JŠJ˜Q ˜FˆJÑ#Ô#ˆå# A q°´Ø-2°C¨Lð:ñ :ô :ˆå”�"œ) A™,œ,¨¬Ð5Ñ6Ô6Ô8ˆÝ# A q°´Ø47È%Ð,PÐ,PðRñ Rô Rˆà�!ˆfˆÝ”�"œ) A™,œ, sÔ+¨T¬\¸#Ô->Ð?Ñ@Ô@ÔBˆÝ# A q°´Ø47È%Ø>Cð-Eð -EðFñ Fô Fˆõ 	�”˜A˜q ™s™G A™IÒ%Ñ&Ô&Ð&Ý�T”X˜q ! A¡#™w q™yÑ)Ô)Ð)Ý�T”X  !¡ a¨¡c™{¨1™}Ñ-Ô-Ð-Ð-Ð-rP   c                 ó8  — t           }t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        | j        d |dd¦  «        i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        | j        dt          dd¦  «        i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        | j        dt
          j         	                    ddd¦  «        i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d
¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        | j        ddt          dd¦  «        z  i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        | j        ddt          dd¦  «        z  i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        | j        dt          j
        d¦  «        i¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz0`partial_guess` can have only as many entries asr|   rB   r¯   r3   rF   rX   z%`partial_guess` must have two columnsz%`partial_guess` must have exactly twoz%`partial_guess` must contain only posrš   z0`partial_guess` entries must be less than numberrC   z-`partial_guess` column entries must be unique©rF   rF   )Ú_range_matrixr   r    r¡   r   rG   rŸ   rY   r]   Úrandr”   )ra   Ú_rms     rN   r£   z'Test2opt.test_specific_input_validation0  s•  € åˆÝŒ]ÝØHðJñ Jô Jð 	Gð 	Gõ !¥¤¨Q¡¤µ´¸Q±´Ø(,¬Ø*9¸3¸3¸qÀ!¹9¼9Ð)EðGñ Gô Gð Gð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gõ Œ]ÝÐ"IðKñ Kô Kð 	ð 	å Ý”˜A‘”¥¤¨A¡¤°t´{Ø(­-¸¸1Ñ*=Ô*=Ð>ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝÐ"IðKñ Kô Kð 	ð 	å Ý”˜A‘”¥¤¨A¡¤°t´{Ø(­"¬)¯.ª.¸¸A¸qÑ*AÔ*AÐBðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝÐ"IðKñ Kô Kð 	ð 	å Ý”˜A‘”¥¤¨A¡¤°t´{Ø(¨"­}¸QÀÑ/BÔ/BÑ*BÐCðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝØHðJñ Jô Jð 	ð 	õ !Ý”˜A‘”¥¤¨A¡¤°t´{Ø(¨!­m¸A¸qÑ.AÔ.AÑ*AÐBðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝØEðGñ Gô Gð 	ð 	õ !Ý”˜A‘”¥¤¨A¡¤°t´{Ø(­"¬'°&©/¬/Ð:ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	sq   £A	A8Á8A<Á?A<ÂAC7Ã7C;Ã>C;ÄAFÆFÆFÆ-AH	È	HÈHÈ/AJÊJÊJÊ1ALÌLÌLN)r…   r†   r‡   rY   r­   r³   r£   r‹   rP   rN   r¥   r¥   
  sF   € € € € € Ø€Fð)ð )ð )ð.ð .ð .ð*-ð -ð -ð -ð -rP   r¥   c                   ó   — e Zd Zd„ ZdS )ÚTestQAPOncec                 óV	  — t          d¦  «        }t          j        t          d¬¦  «        5  t	          |                     d¦  «        |                     d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          |                     d¦  «        |                     d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          |                     d¦  «        |                     d¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d	¬¦  «        5  t	          |                     d¦  «        |                     d
¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          }t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        d |dd¦  «        i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        dt          dd¦  «        i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        dt          j         	                    ddd¦  «        i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        ddt          dd¦  «        z  i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        ddt          dd¦  «        z  i¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t	          t          j        d¦  «        t          j        d¦  «        dt          j
        d¦  «        i¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Ninn¼ z`A` must be squarer|   )rB   rC   rœ   z`B` must be squarez!`A` and `B` must have exactly two)rB   rB   rB   z*`A` and `B` matrices must be of equal sizer{   z.`partial_match` can have only as many seeds asrB   rk   r3   rF   r�   z%`partial_match` must have two columnsz%`partial_match` must have exactly twoz%`partial_match` must contain only posrš   z0`partial_match` entries must be less than numberrC   z-`partial_match` column entries must be uniquerµ   )r   r   r    r¡   r   r]   r¶   rG   rŸ   r·   r”   )ra   rV   r¸   s      rN   Útest_common_input_validationz(TestQAPOnce.test_common_input_validationd  s  € Ý˜(Ñ#Ô#ˆåŒ]�:Ð-AÐBÑBÔBð 	ð 	Ý Ø—
’
˜6Ñ"Ô"Ø—
’
˜6Ñ"Ô"ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 Œ]�:Ð-AÐBÑBÔBð 	ð 	Ý Ø—
’
˜6Ñ"Ô"Ø—
’
˜6Ñ"Ô"ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝÐ"EðGñ Gô Gð 	ð 	å Ø—
’
˜9Ñ%Ô%Ø—
’
˜9Ñ%Ô%ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝØBðDñ Dô Dð 	ð 	õ !Ø—
’
˜6Ñ"Ô"Ø—
’
˜6Ñ"Ô"ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ˆÝŒ]ÝØFðHñ Hô Hð 	Gð 	Gõ !¥¤¨Q¡¤µ´¸Q±´Ø*9¸3¸3¸qÀ!¹9¼9Ð)EðGñ Gô Gð Gð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gõ Œ]ÝÐ"IðKñ Kô Kð 	ð 	å Ý”˜A‘”¥¤¨A¡¤Ø(­-¸¸1Ñ*=Ô*=Ð>ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝÐ"IðKñ Kô Kð 	ð 	å Ý”˜A‘”¥¤¨A¡¤Ø(­"¬)¯.ª.¸¸A¸qÑ*AÔ*AÐBðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝÐ"IðKñ Kô Kð 	ð 	å Ý”˜A‘”¥¤¨A¡¤Ø(¨"­}¸QÀÑ/BÔ/BÑ*BÐCðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝØHðJñ Jô Jð 	ð 	õ !Ý”˜A‘”¥¤¨A¡¤Ø(¨!­m¸A¸qÑ.AÔ.AÑ*AÐBðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝØEðGñ Gô Gð 	ð 	õ !Ý”˜A‘”¥¤¨A¡¤Ø(­"¬'°&©/¬/Ð:ðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s¹   «7A.Á.A2Á5A2Â7CÃCÃCÃ=7E Å EÅEÅ&7F)Æ)F-Æ0F-ÇAH%È%H)È,H)ÉAJÊJ"Ê%J"ËAL(Ì(L,Ì/L,ÍA
N$Î$N(Î+N(Ï
A
P Ð P$Ð'P$ÑARÒR"Ò%R"N)r…   r†   r‡   r¼   r‹   rP   rN   rº   rº   `  s(   € € € € € ðGð Gð Gð Gð GrP   rº   c                 óŒ   — t          j        | |f¦  «        }t          |¦  «        D ]}t          j        | ¦  «        |d d …|f<   Œ|S )N)rG   ÚzerosÚrangero   )ÚaÚbÚmatÚis       rN   r¶   r¶   ®  sJ   € Ý
Œ(�A�q�6Ñ
Ô
€CÝ�1‰XŒXð !ð !ˆÝ”I˜a‘L”LˆˆAˆAˆAˆqˆD‰	ˆ	Ø€JrP   çü©ñÒMbP?c                 óÀ  — d}d|                       d¬¦  «        z  }d| |z  z  }| }t          |¦  «        D ]¨}t          j        |                      d¬¦  «        dz
  ¦  «        |k                          ¦   «         rCt          j        |                      d¬¦  «        dz
  ¦  «        |k                          ¦   «         r n#d|| z  z  }d| |z  z  }|d d …d f         | z  |z  }Œ©|S )Niè  r   r   )Úaxis)Úsumr¿   rG   ÚabsÚall)ÚPr›   Úmax_iterÚcÚrÚP_epsÚits          rN   r–   r–   µ  sô   € ð €HØ	ˆA�EŠE�qˆE‰MŒMÑ€AØ	ˆQ�‰U‰€AØ€Eå�H‰oŒoð #ð #ˆÝŒV�E—I’I 1�IÑ%Ô%¨Ñ)Ñ*Ô*¨SÒ0×5Ò5Ñ7Ô7ð 	Ý”˜Ÿ	š	 q˜	Ñ)Ô)¨AÑ-Ñ.Ô.°Ò4×9Ò9Ñ;Ô;ð	ð ˆEà��Q‘‰KˆØ��Q‘‰KˆØ�!�!�!�T�'”
˜Q‘ Ñ"ˆˆà€LrP   )rÄ   )r   ÚnumpyrG   Únumpy.randomr   Úscipy.optimizer   r   Úscipy.optimize._qapr   rl   Únumpy.testingr   r   r	   rO   r‰   ÚfilterwarningsrR   r�   r¥   rº   r¶   r–   r‹   rP   rN   ú<module>rÖ      s¿  ðØ €€€Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ð"ð "ð "ðJ „×ÒÐOÑPÔPðNHð NHð NHð NHð NHñ NHô NHñ QÔPðNHðbCð Cð Cð Cð Cˆnñ Cô Cð CðLSð Sð Sð Sð Sˆ~ñ Sô Sð Sðl „×ÒÐOÑPÔPðJð Jð Jð Jð Jñ Jô Jñ QÔPðJðZð ð ðð ð ð ð ð rP   