§
    fŠtjdD  ã                   óN  — 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 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_c                  ó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   r2   r3   )r   r!   r&   r,   r1   r   r   é7   é&   r   r   r   )r   r"   r!   r   r2   r   r   éS   r    é   é8   r   )r   r#   r'   r-   r   r4   r6   r   r$   r,   é   éP   )r   r    r(   r   r3   r5   r    r$   r   r1   é'   é!   )r   r$   r)   r.   r   r   r7   r,   r1   r   éF   éV   )r   r   r   r/   r2   r   r8   r9   r;   r=   r   é   )r   r   r*   r0   r3   r   r   r:   r<   r>   r?   r   r   )é   r2   r   é   r   é   é   é   r   r7   é   r,   r   )ÚnpÚarrayÚshape)ÚAÚBÚnÚopt_perms       úl/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/optimize/tests/test_quadratic_assignment.pyÚchr12crN      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                   ó0   — e Zd ZdZd„ Zd„ Zd„ Zd„ Z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   rA   rB   rE   )r   r   r   rE   )r   r   r   r   )r   r   r   r   )r   rB   rE   rB   )r   rE   r   rE   )r   r   rE   r   F©ÚrngÚmaximize©ÚmethodÚoptionsr   ©r   rE   rA   r   TÚfaqr   )r   rE   rA   r   r-   )r   rA   r   rE   )	rF   Úrandomr   r   rX   r   ÚfunÚcol_indrG   ©ÚselfrU   rI   rJ   Úress        rM   Ú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rO   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 )NrS   )r   r2   rC   rD   )r2   r   r2   r   )rC   r2   r   rE   )rD   r   rE   r   )r   r   rC   rB   )r   r   r2   rE   )rC   r2   r   r2   )rB   rE   r2   r   FrT   rW   r[   é²   )r   r   rA   rE   é°   rZ   Ti  )rE   rA   r   r   )	rF   r\   r   rG   r   rX   r   r]   r^   r_   s        rM   Ú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Ð9rO   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 )NrS   rU   rW   é”+  éR  TrT   i! iL )rB   rC   r   )Úpartial_matchrU   r   r   )r   r   )rF   r\   r   rN   r   rX   r   r]   r   Ú_scorer^   rG   ÚasarrayÚTÚarangeÚlenÚnitÚempty)	r`   rU   rI   rJ   rL   ra   Ú	seed_costÚseedrq   s	            rM   Ú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Ñ Ô Ð Ð Ð rO   c                 óÂ   — t          ¦   «         \  }}}t          j        t          ¦  «        5  t	          ||| j        ddi¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz	ekki-ekkiTrW   )rN   ÚpytestÚwarnsr   r   rX   )r`   rI   rJ   rL   s       rM   Útest_unknown_optionsz#QAPCommonTests.test_unknown_options¦   s¬   € Ý™œ‰ˆˆ1ˆhåŒ\�/Ñ*Ô*ð 	>ð 	>Ý   A¨d¬kØ*5°tÐ)<ð>ñ >ô >ð >ð	>ð 	>ð 	>ñ 	>ô 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>øøøð 	>ð 	>ð 	>ð 	>ð 	>ð 	>s   ¬AÁAÁA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   ©rB   rB   zUse of `RandomState`*©Úmatchr   FrT   rW   z The NumPy global RNG was seeded*rV   z!The behavior when the rng option*)rF   rn   Úreshaperv   rw   ÚDeprecationWarningr\   ÚRandomStater   rX   ÚFutureWarningrs   )r`   rI   rJ   rU   s       rM   Ú 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__rb   rf   rt   rx   r�   © rO   rM   rQ   rQ   2   ss   € € € € € ðð ð Eð  Eð  EðL:ð :ð :ð<%!ð %!ð %!ðN>ð >ð >ðHð Hð Hð Hð HrO   rQ   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 )NrS   Úmaxiterr2   ©rY   Úshuffle_inputTrh   ri   Ú
randomized)rU   ÚP0rŽ   )rF   r\   r   rN   ro   r   r   rp   r   r]   ÚonesÚfloatÚ_doubly_stochastic)r`   rU   rI   rJ   rL   rK   ra   ÚKs           rM   Ú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Ò(Ð(Ð(Ð(Ñ)Ô)Ð)Ð)Ð)rO   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 )NrE   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-mrB   ©rA   rA   )gš™™™™™Ù?çš™™™™™É?ç333333Ó?)r™   g333333ã?r˜   )r˜   r˜   gffffffæ?z%`P0` matrix must be doubly stochasticrA   )rF   Úidentityrv   ÚraisesÚ
ValueErrorr   Ú	TypeErrorr�   )r`   rI   rJ   r’   s       rM   Ú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„   rX   r“   rž   r†   rO   rM   rˆ   rˆ   Á   s7   € € € € € Ø€Fð*ð *ð *ð2'ð 'ð 'ð 'ð 'rO   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©ÚsizerU   rW   )r   r\   r   rX   r   rp   )r`   rK   rU   rI   rJ   Úres1Úres2s          rM   Ú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Ñ(Ô(Ð(Ð(Ð(rO   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 )Nr2   rS   r¤   rU   rW   )rU   Úpartial_guessrE   rB   )rU   rª   rj   r   )rF   r\   r   r   rX   rG   rn   r^   rm   r   rp   r   )r`   rK   rU   rI   rJ   r¦   Úguessr§   Úfixr|   Úres3s              rM   Ú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™}Ñ-Ô-Ð-Ð-Ð-rO   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{   rA   rª   r2   rE   rW   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 numberrB   z-`partial_guess` column entries must be unique©rE   rE   )Ú_range_matrixrv   r›   rœ   r   rF   rš   rX   r\   Úrandr�   )r`   Ú_rms     rM   rž   z'Test2opt.test_specific_input_validation-  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„   rX   r¨   r®   rž   r†   rO   rM   r    r      sF   € € € € € Ø€Fð)ð )ð )ð.ð .ð .ð*-ð -ð -ð -ð -rO   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{   )rA   rB   r—   z`B` must be squarez!`A` and `B` must have exactly two)rA   rA   rA   z*`A` and `B` matrices must be of equal sizerz   z.`partial_match` can have only as many seeds asrA   rj   r2   rE   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 numberrB   z-`partial_match` column entries must be uniquer°   )r   rv   r›   rœ   r   r\   r±   rF   rš   r²   r�   )r`   rU   r³   s      rM   Útest_common_input_validationz(TestQAPOnce.test_common_input_validationa  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†   rO   rM   rµ   rµ   ]  s(   € € € € € ðGð Gð Gð Gð GrO   rµ   c                 óŒ   — t          j        | |f¦  «        }t          |¦  «        D ]}t          j        | ¦  «        |d d …|f<   Œ|S )N)rF   ÚzerosÚrangern   )ÚaÚbÚmatÚis       rM   r±   r±   «  sJ   € Ý
Œ(�A�q�6Ñ
Ô
€CÝ�1‰XŒXð !ð !ˆÝ”I˜a‘L”LˆˆAˆAˆAˆqˆD‰	ˆ	Ø€JrO   çü©ñÒ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º   rF   ÚabsÚall)ÚPr–   Úmax_iterÚcÚrÚP_epsÚits          rM   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‘ Ñ"ˆˆà€LrO   )r¿   )rv   ÚnumpyrF   Únumpy.randomr   Úscipy.optimizer   r   Úscipy.optimize._qapr   rk   Únumpy.testingr   r   rN   ÚmarkÚfilterwarningsrQ   rˆ   r    rµ   r±   r‘   r†   rO   rM   ú<module>rÒ      s¹  ðØ €€€Ø Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /ð"ð "ð "ðJ „×ÒÐOÑPÔPðKHð KHð KHð KHð KHñ KHô KHñ QÔPðKHð\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ð ð ðð ð ð ð ð rO   