§
    ¢éUg³?  ã                   óÆ   — d dl Z d dlZd dlmZmZ d dlmZ d dl	m
Z
mZmZ d„ Z G d„ d¦  «        Z G d„ d	e¦  «        Z G d
„ de¦  «        Z G d„ d¦  «        Zd„ Zdd„ZdS )é    N)Ú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   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       úm/var/www/surfInsights/venv3-11/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�ˆ>Ðó    c                   ó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                 óD   — t           j                             d¦  «         d S ©Nr   ©rF   ÚrandomÚseed©Úselfs    rM   Úsetup_methodzQAPCommonTests.setup_method5   ó   € Ý
Œ	�Š�qÑÔÐÐÐrO   c                 ól  — g d¢g d¢g d¢g d¢g}g d¢g d¢g d¢g d¢g}t          ||| j        dd	d
œ¬¦  «        }t          |j        d¦  «         t          |j        t          j        g d¢¦  «        ¦  «         t          ||| j        d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
œ¬¦  «        }d S )N)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   r   F©ÚrngÚmaximize©ÚmethodÚoptionsr   ©r   rE   rA   r   TÚfaqr   )r   rE   rA   r   r-   )r   rA   r   rE   )r   r`   r   ÚfunÚcol_indrF   rG   ©rX   rI   rJ   Úress       rM   Útest_accuracy_1zQAPCommonTests.test_accuracy_1<   sv  € àˆ\ˆ\Øˆ\ˆ\Øˆ\ˆ\Øˆ\ˆ\ðˆð
 ˆ\ˆ\Øˆ\ˆ\Øˆ\ˆ\Øˆ\ˆ\ðˆõ
 # 1 a°´Ø34À%Ð+HÐ+HðJñ Jô Jˆå�S”W˜bÑ!Ô!Ð!Ý�S”[¥"¤(¨<¨<¨<Ñ"8Ô"8Ñ9Ô9Ð9å" 1 a°´Ø34À$Ð+GÐ+GðIñ Iô Iˆð Œ;˜%ÒÐå˜œ "Ñ%Ô%Ð%Ý˜œ¥b¤h¨|¨|¨|Ñ&<Ô&<Ñ=Ô=Ð=Ð=å˜œ "Ñ%Ô%Ð%Ý˜œ¥b¤h¨|¨|¨|Ñ&<Ô&<Ñ=Ô=Ð=å" 1 a°´Ø34À$Ð+GÐ+GðIñ Iô IˆˆˆrO   c                 ó~  — 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
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œ¬¦  «        }t	          |j        d¦  «         t	          |j        t          j        g d¢¦  «        ¦  «         d S )N)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   r   Fr\   r_   rc   é²   )r   r   rA   rE   é°   rb   Ti  )rE   rA   r   r   )rF   rG   r   r`   r   rd   re   rf   s       rM   Útest_accuracy_2zQAPCommonTests.test_accuracy_2_   sh  € åŒH�l�l�lØ"�l�lØ"�l�lØ"�l�lð$ñ %ô %ˆõ
 ŒH�l�l�lØ"�l�lØ"�l�lØ"�l�lð$ñ %ô %ˆõ
 # 1 a°´Ø34À%Ð+HÐ+HðJñ Jô JˆàŒ;˜%ÒÐå˜œ #Ñ&Ô&Ð&Ý˜œ¥b¤h¨|¨|¨|Ñ&<Ô&<Ñ=Ô=Ð=Ð=å˜œ #Ñ&Ô&Ð&Ý˜œ¥b¤h¨|¨|¨|Ñ&<Ô&<Ñ=Ô=Ð=å" 1 a°´Ø34À$Ð+GÐ+GðIñ Iô Iˆå�S”W˜cÑ"Ô"Ð"Ý�S”[¥"¤(¨<¨<¨<Ñ"8Ô"8Ñ9Ô9Ð9Ð9Ð9rO   c                 óÜ  — t          ¦   «         \  }}}t          ||| j        ddi¬¦  «        }t          d|j        cxk    odk     nc ¦  «         t          |j        t          |||j        ¦  «        ¦  «         t          ||| j        d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|i¬¦  «        }t          d|j        cxk    odk     nc ¦  «         t          |j        |         ||         ¦  «         t          j
        t          j        t          |¦  «        ¦  «        |g¦  «        j        }t          ||| j        d|i¬¦  «        }t          |j        |d d …df         j        ¦  «         t          |j        d¦  «         t          |j        d¦  «         t          j        d¦  «        }t          ||| j        ddi¬¦  «        }t          |j        d¦  «         t          |j        d¦  «         d S )Nr]   r   r_   é”+  éR  Tr\   i! iL )rB   rC   r   Úpartial_matchr   )r   r   )rN   r   r`   r   rd   r   Ú_scorere   rF   rG   ÚasarrayÚTÚarangeÚlenÚnitÚempty)rX   rI   rJ   rL   rg   Ú	seed_costrV   rw   s           rM   Útest_accuracy_3zQAPCommonTests.test_accuracy_3z   sŒ  € å™œ‰ˆˆ1ˆhõ # 1 a°´Ø,1°1¨:ð7ñ 7ô 7ˆå�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)Ý�S”W�f Q¨¨3¬;Ñ7Ô7Ñ8Ô8Ð8õ # 1 a°´Ø34À$Ð+GÐ+GðIñ Iô Iˆå�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)Ý�S”W�f Q¨¨3¬;Ñ7Ô7Ñ8Ô8Ð8õ ”H˜Z˜Z˜ZÑ(Ô(ˆ	ÝŒz˜9 h¨yÔ&9Ð:Ñ;Ô;Ô=ˆÝ" 1 a°´Ø,;¸TÐ+BðDñ Dô Dˆå�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)Ý�S”[ Ô+¨X°iÔ-@ÑAÔAÐAõ Œz�2œ9¥S¨¡V¤VÑ,Ô,¨hÐ7Ñ8Ô8Ô:ˆÝ" 1 a°´Ø,;¸TÐ+BðDñ Dô Dˆå�S”[ $ q q q¨! t¤*¤,Ñ/Ô/Ð/Ý�S”W˜eÑ$Ô$Ð$Ý�S”W˜aÑ Ô Ð õ ”˜Ñ Ô ˆÝ" 5¨%¸¼Ø,1°1¨:ð7ñ 7ô 7ˆå�S”W˜aÑ Ô Ð Ý�S”W˜aÑ Ô Ð Ð Ð rO   c                 óh   ‡ ‡‡— t          ¦   «         \  ŠŠ}ˆˆˆ fd„}t          t          |¦  «         d S )Nc                  ó<   •— t          ‰ ‰‰j        ddi¬¦  «         d S )Nz	ekki-ekkiTr_   )r   r`   )rI   rJ   rX   s   €€€rM   Úfz.QAPCommonTests.test_unknown_options.<locals>.f¤   s4   ø€ Ý   A¨d¬kØ*5°tÐ)<ð>ñ >ô >ð >ð >ð >rO   )rN   r   r   )rX   rL   r|   rI   rJ   s   `  @@rM   Útest_unknown_optionsz#QAPCommonTests.test_unknown_options¡   sO   øøø€ Ý™œ‰ˆˆ1ˆhð	>ð 	>ð 	>ð 	>ð 	>ð 	>ð 	>õ 	•_ aÑ(Ô(Ð(Ð(Ð(rO   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__rY   rh   rl   ry   r}   © rO   rM   rQ   rQ   1   sn   € € € € € ðð ðð ð ðIð Ið IðF:ð :ð :ð6%!ð %!ð %!ðN)ð )ð )ð )ð )rO   rQ   c                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚTestFAQrc   c                 óJ  — 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	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 )NÚmaxiterr2   ©ra   Úshuffle_inputTrn   ro   r   Ú
randomized)r]   ÚP0rŠ   )rN   ru   r   r   rv   r   rd   rF   ÚonesÚfloatÚ_doubly_stochastic)rX   rI   rJ   rL   rK   rg   ÚKs          rM   Útest_optionszTestFAQ.test_options­   sp  € å™œ‰ˆˆ1ˆhÝ�‰FŒFˆõ # 1 aØ,5°q¨>ð;ñ ;ô ;ˆå�S”W˜aÑ Ô Ð õ # 1 aØ,;¸TÐ+BðDñ Dô Dˆå�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)õ # 1 aØ34¸LÐ+IÐ+IðKñ Kô Kˆå�˜œÐ(Ð(Ò(Ð( 5Ò(Ð(Ð(Ð(Ñ)Ô)Ð)õ ŒG�Q˜�F‰OŒO�e A™hœhÑ&ˆÝ˜qÑ!Ô!ˆÝ" 1 aØ,0°!¨9ð6ñ 6ô 6ˆå�˜œÐ(Ð(Ò(Ð( 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' parameter©ÚmatchrŠ   rU   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   ÚidentityÚpytestÚraisesÚ
ValueErrorr   Ú	TypeErrorr‹   )rX   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€   r`   r�   r�   r‚   rO   rM   r„   r„   ª   s7   € € € € € Ø€Fð*ð *ð *ð6'ð 'ð 'ð 'ð 'rO   r„   c                   ó$   — e Zd ZdZd„ Zd„ Zd„ ZdS )ÚTest2optÚ2optc                 óØ  — d}t           j                             ||¦  «        }t           j                             ||¦  «        }t          ||| j        ¬¦  «        }t           j                             d¦  «         t           j                             ||¦  «        }t           j                             ||¦  «        }t          ||| j        ¬¦  «        }t          |j        |j        ¦  «         d S )Né   )r`   r   )rF   rU   Úrandr   r`   rV   r   rv   )rX   rK   rI   rJ   Úres1Úres2s         rM   Útest_deterministiczTest2opt.test_deterministicõ   sµ   € àˆåŒI�NŠN˜1˜aÑ Ô ˆÝŒI�NŠN˜1˜aÑ Ô ˆÝ# A q°´Ð=Ñ=Ô=ˆå
Œ	�Š�qÑÔÐåŒI�NŠN˜1˜aÑ Ô ˆÝŒI�NŠN˜1˜aÑ Ô ˆÝ# A q°´Ð=Ñ=Ô=ˆå�T”X˜tœxÑ(Ô(Ð(Ð(Ð(rO   c           	      óÔ  — d}t           j                             ||¦  «        }t           j                             ||¦  «        }t          ||| j        ddi¬¦  «        }t          j        t          j        d¦  «        |j        g¦  «        j        }t          ||| j        d|dœ¬¦  «        }ddg}t          j        t          j        d¦  «        |         |j        |         g¦  «        j        }t          ||| j        d||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   r]   r   r_   )r]   Úpartial_guessrE   rB   )r]   r¨   rp   r   )rF   rU   r£   r   r`   rG   rt   re   rs   r   rv   r   )
rX   rK   rI   rJ   r¤   Úguessr¥   Úfixr’   Úres3s
             rM   Útest_partial_guesszTest2opt.test_partial_guess  so  € ØˆÝŒI�NŠN˜1˜aÑ Ô ˆÝŒI�NŠN˜1˜aÑ Ô ˆå# A q°´Ø-2°A¨Jð8ñ 8ô 8ˆå”�"œ) A™,œ,¨¬Ð5Ñ6Ô6Ô8ˆÝ# A q°´Ø45ÈÐ,NÐ,NðPñ Pô Pˆà�!ˆfˆÝ”�"œ) A™,œ, sÔ+¨T¬\¸#Ô->Ð?Ñ@Ô@ÔBˆÝ# A q°´Ø45ÈØ>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   r_   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_matrixr™   rš   r›   r   rF   r˜   r`   rU   r£   r‹   ©rX   Ú_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€   r`   r¦   r¬   r�   r‚   rO   rM   rŸ   rŸ   ò   sF   € € € € € Ø€Fð)ð )ð )ð .ð .ð .ð&-ð -ð -ð -ð -rO   rŸ   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestQAPOncec                 óD   — t           j                             d¦  «         d S rS   rT   rW   s    rM   rY   zTestQAPOnce.setup_methodI  rZ   rO   c                 óØ	  — t          j        t          d¬¦  «        5  t          t          j                             d¦  «        t          j                             d¦  «        ¦  «         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 d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          j                             d¦  «        t          j                             d¦  «        ¦  «         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 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 )Nz`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 size)rB   rB   z.`partial_match` can have only as many seeds asrA   rp   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™   rš   r›   r   rF   rU   r¯   r˜   r£   r‹   r°   s     rM   Útest_common_input_validationz(TestQAPOnce.test_common_input_validationM  s&  € åŒ]�:Ð-AÐBÑBÔBð 	ð 	Ý Ý”	× Ò  Ñ(Ô(Ý”	× Ò  Ñ(Ô(ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 Œ]�:Ð-AÐBÑBÔBð 	ð 	Ý Ý”	× Ò  Ñ(Ô(Ý”	× Ò  Ñ(Ô(ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝÐ"EðGñ Gô Gð 	ð 	å Ý”	× Ò  Ñ+Ô+Ý”	× Ò  Ñ+Ô+ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ]ÝØBðDñ Dô Dð 	ð 	õ !Ý”	× Ò  Ñ(Ô(Ý”	× Ò  Ñ(Ô(ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ˆÝŒ]ÝØ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½   œAA3Á3A7Á:A7ÂAC0Ã0C4Ã7C4ÄAE-Å-E1Å4E1ÆAG*Ç*G.Ç1G.ÈAI&É&I*É-I*ÊAKËK#Ë&K#ÌAM)Í)M-Í0M-ÎA
O%Ï%O)Ï,O)ÐA
Q!Ñ!Q%Ñ(Q%ÒASÓS#Ó&S#N)r~   r   r€   rY   r¶   r‚   rO   rM   r³   r³   H  s7   € € € € € ðð ð ðFð Fð Fð Fð FrO   r³   c                 óŒ   — t          j        | |f¦  «        }t          |¦  «        D ]}t          j        | ¦  «        |d d …|f<   Œ|S )N)rF   ÚzerosÚrangert   )Ú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¾   )r™   ÚnumpyrF   Úscipy.optimizer   r   Úscipy.optimize._qapr   rq   Únumpy.testingr   r   r   rN   rQ   r„   rŸ   r³   r¯   r�   r‚   rO   rM   ú<module>rÎ      sg  ðØ €€€Ø Ð Ð Ð Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =Ð =ð"ð "ð "ðJv)ð v)ð v)ð v)ð v)ñ v)ô v)ð v)ðrEð Eð Eð Eð Eˆnñ Eô Eð EðPSð Sð Sð Sð Sˆ~ñ Sô Sð SðlKð Kð Kð Kð Kñ Kô Kð Kð\ð ð ðð ð ð ð ð rO   