Ë
    âQ(h¾D  ã                   ó0  — 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                   j#                  d«       G d„ d	«      «       Z G d
„ de«      Z G d„ de«      Ze j                   j#                  d«       G d„ d«      «       Zd„ Zdd„Zy)é    N)Údefault_rng)Úquadratic_assignmentÚOptimizeWarning)Ú_calc_score)Úassert_equalÚassert_Úassert_warnsc                  óR  — 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       úl/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_quadratic_assignment.pyÚchr12crO      s¨   € â.Ú.Ú.Ú.Ú.Ú.Ú-Ú.Ú-Ú.Ú-Ú-ð	€Aò 	7Ú7Ú7Ú7Ú5Ú6Ú5Ú7Ú7Ú7Ú5Ú7ð	€Aô �8‰8�A‹;œŸ™ ›€q€AØ	�‰�‰
€Aä�x‰xÒ?Ó@ÀAÀ3ÈÁ7ÑJ€Hàˆa�ˆ>Ðó    z1ignore:The NumPy global RNG was seeded by callingc                   ó’   — e Zd ZdZd„ Zd„ Zd„ Zej                  j                  d„ «       Z
ej                  j                  d„ «       Zy)ÚQAPCommonTestsz6
    Base class for `quadratic_assignment` tests.
    c                 óÈ  — t         j                  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(  rBt        |j                  d«       t        |j                  t        j                  g d¢«      «       nAt        |j                  d«       t        |j                  t        j                  g d¢«      «       t        ||| j                  |dd
œ¬«       y )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‰i×#Ñ#Ð$7Ó8ˆâÚÚÚðˆò
 ÚÚÚðˆô
 # 1 a°·±Ø36ÀEÑ+JôLˆô 	�S—W‘W˜bÔ!Ü�S—[‘[¤"§(¡(ª<Ó"8Ô9ä" 1 a°·±Ø36ÀDÑ+IôKˆð �;‰;˜%Òä˜Ÿ™ "Ô%Ü˜Ÿ™¤b§h¡hª|Ó&<Õ=ä˜Ÿ™ "Ô%Ü˜Ÿ™¤b§h¡hª|Ó&<Ô=ä˜Q ¨$¯+©+Ø-0¸dÑ%Cö	ErP   c                 óÜ  — t         j                  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(  rBt        |j                  d«       t        |j                  t        j                  g d¢«      «       nAt        |j                  d«       t        |j                  t        j                  g d¢«      «       t	        ||| j
                  |ddœ¬«      }t        |j                  d«       t        |j                  t        j                  g d¢«      «       y )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‰i×#Ñ#Ð$7Ó8ˆä�H‰H’lÚ"Ú"Ú"ð$ó %ˆô
 �H‰H’lÚ"Ú"Ú"ð$ó %ˆô
 # 1 a°·±Ø36ÀEÑ+JôLˆð �;‰;˜%Òä˜Ÿ™ #Ô&Ü˜Ÿ™¤b§h¡hª|Ó&<Õ=ä˜Ÿ™ #Ô&Ü˜Ÿ™¤b§h¡hª|Ó&<Ô=ä" 1 a°·±Ø36ÀDÑ+IôKˆô 	�S—W‘W˜cÔ"Ü�S—[‘[¤"§(¡(ª<Ó"8Õ9rP   c                 ó@  — t         j                  j                  d«      }t        «       \  }}}t	        ||| j
                  d|i¬«      }t        d|j                  cxk  xr dk  nc «       t        |j                  t        |||j                  «      «       t	        ||| j
                  |ddœ¬«      }t        d|j                  cxk  xr 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  xr 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«       y )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‰i×#Ñ#Ð$7Ó8ˆÜ›‰ˆˆ1ˆhô # 1 a°·±Ø,1°3¨<ô9ˆä�˜Ÿ™Ö( 5Ô(Ô)Ü�S—W‘Wœf Q¨¨3¯;©;Ó7Ô8ô # 1 a°·±Ø36ÀDÑ+IôKˆä�˜Ÿ™Ö( 5Ô(Ô)Ü�S—W‘Wœf Q¨¨3¯;©;Ó7Ô8ô —H‘HšZÓ(ˆ	Ü�z‰z˜9 h¨yÑ&9Ð:Ó;×=Ñ=ˆÜ" 1 a°·±Ø=AÈ#Ñ+NôPˆä�˜Ÿ™Ö( 5Ô(Ô)Ü�S—[‘[ Ñ+¨X°iÑ-@ÔAô �z‰zœ2Ÿ9™9¤S¨£VÓ,¨hÐ7Ó8×:Ñ:ˆÜ" 1 a°·±Ø=AÈ#Ñ+NôPˆä�S—[‘[ $¢q¨! t¡*§,¡,Ô/Ü�S—W‘W˜eÔ$Ü�S—W‘W˜aÔ ô —‘˜Ó ˆÜ" 5¨%¸¿¹Ø,1°3¨<ô9ˆä�S—W‘W˜aÔ Ü�S—W‘W˜aÕ rP   c                 óT   ‡ ‡‡— t        «       \  ŠŠ}ˆˆˆ fd„}t        t        |«       y )Nc                  ó<   •— t        ‰ ‰‰j                  ddi¬«       y )Nz	ekki-ekkiTrX   )r   rY   )rJ   rK   ra   s   €€€rN   Úfz.QAPCommonTests.test_unknown_options.<locals>.fª   s   ø€ Ü   A¨d¯k©kØ*5°tÐ)<ö>rP   )rO   r	   r   )ra   rM   rx   rJ   rK   s   `  @@rN   Útest_unknown_optionsz#QAPCommonTests.test_unknown_options¦   s!   ú€ ä›‰ˆˆ1ˆhö	>ô 	”_ aÕ(rP   c           	      óÖ  — t        j                  d«      j                  d«      }t        j                  d«      j                  d«      }t        j                  t
        d¬«      5  t         j                  j                  d«      }t        ||| j                  |ddœ¬«       d d d «       t        j                  t        d	¬«      5  t         j                  j                  d«       t        ||| j                  d
di¬«       d d d «       t        j                  t        d¬«      5  t        ||| j                  dddœ¬«       d d d «       y # 1 sw Y   Œ¨xY w# 1 sw Y   ŒVxY w# 1 sw Y   y xY w)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‰I�b‹M×!Ñ! &Ó)ˆÜ�I‰I�b‹M×!Ñ! &Ó)ˆä�\‰\Ô,Ð4KÔLñ 	JÜ—)‘)×'Ñ'¨Ó*ˆCÜ   A¨d¯k©kØ14À%Ñ)HõJ÷	Jô
 �\‰\œ-Ð/QÔRñ 	>Ü�I‰I�N‰N˜1ÔÜ   A¨d¯k©kØ*4°eÐ)<õ>÷	>ô
 �\‰\œ-Ð/RÔSñ 	HÜ   A¨d¯k©kØ12ÀÑ)FõH÷	Hð 	H÷	Jð 	Jú÷
	>ð 	>ú÷
	Hð 	Hús$   Á$<EÃ;EÄ!EÅEÅEÅE(N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__rc   rg   ru   r   ÚmarkÚthread_unsafery   r„   © rP   rN   rR   rR   2   sW   „ ñò EòL:ò<%!ðN ‡[�[×Ññ)ó ð)ð ‡[�[×ÑñHó ñHrP   rR   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚTestFAQr\   c                 óZ  — t         j                  j                  d«      }t        «       \  }}}t	        |«      }t        ||ddi¬«      }t        |j                  d«       t        ||ddi¬«      }t        d|j                  cxk  xr dk  nc «       t        |||d	d
œ¬«      }t        d|j                  cxk  xr dk  nc «       t        j                  ||f«      t        |«      z  }t        |«      }t        ||d|i¬«      }t        d|j                  cxk  xr
 dk  «       y c «       y )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Ç   sù   € ä�i‰i×#Ñ#Ð$7Ó8ˆä›‰ˆˆ1ˆhÜ�‹Fˆô # 1 a°)¸Q°Ô@ˆÜ�S—W‘W˜aÔ ô # 1 a°/À4Ð1HÔIˆÜ�˜Ÿ™Ö( 5Ô(Ô)ô # 1 a¸ÀLÑ1QÔRˆÜ�˜Ÿ™Ö( 5Ô(Ô)ô �G‰G�Q˜�F‹Oœe A›hÑ&ˆÜ˜qÓ!ˆÜ" 1 a°$¸°Ô;ˆÜ�˜Ÿ™Ö( 5Ñ(Õ)Ñ(Õ)rP   c           	      ó
  — t        j                  d«      }|}t        j                  t        d¬«      5  t        ||ddi¬«       d d d «       t        j                  t        d¬«      5  t        ||dd	i¬«       d d d «       t        j                  t        d
¬«      5  t        ||dd	i¬«       d d d «       t        j                  t        «      5  t        ||ddi¬«       d d d «       t        j                  t        d¬«      5  t        t        j                  d«      t        j                  d«      dt        j                  d«      i¬«       d d d «       g d¢g d¢g d¢g}t        j                  t        d¬«      5  t        t        j                  d«      t        j                  d«      d|i¬«       d d d «       y # 1 sw Y   �ŒwxY w# 1 sw Y   �ŒPxY w# 1 sw Y   �Œ)xY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ£xY w# 1 sw Y   y xY w)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‰K˜‹NˆØˆô �]‰]œ:Ð-EÔFñ 	AÜ   A°°hÐ/?Õ@÷	Aä�]‰]ÜÐ"HôJñ 	@ä   A°	¸2¨Õ?÷	@ô �]‰]œ:Ð-MÔNñ 	<Ü   A°°r¨{Õ;÷	<ô
 �]‰]œ9Ó%ñ 	AÜ   A°	¸3Ð/?Õ@÷	Aô �]‰]ÜØIôKñ 	ô !Ü—‘˜A“¤§¡¨A£ØœrŸw™w v›Ð/õ÷	ò ÚÚðˆô �]‰]ÜÐ"IôKñ 	ä Ü—‘˜A“¤§¡¨A£¸¸q¸	õ÷	ð 	÷5	Añ 	Aú÷	@ñ 	@ú÷	<ñ 	<ú÷
	Añ 	Aú÷	ð 	ú÷	ð 	úsH   ³F9Á'GÂGÃG ÄA
G-Å97G9Æ9GÇGÇGÇ G*Ç-G6Ç9HN)r…   r†   r‡   rY   r˜   r£   r‹   rP   rN   r�   r�   Ä   s   „ Ø€Fò*ó2'rP   r�   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚTest2optÚ2optc                 ó€  — d}t        d«      }|j                  ||f¬«      }|j                  ||f¬«      }t        ||| j                  d|i¬«      }t        d«      }|j                  ||f¬«      }|j                  ||f¬«      }t        ||| j                  d|i¬«      }t	        |j
                  |j
                  «       y )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ˆä˜(Ó#ˆØ�J‰J˜Q ˜FˆJÓ#ˆØ�J‰J˜Q ˜FˆJÓ#ˆÜ# A q°·±ÀuÈcÀlÔSˆä�T—X‘X˜tŸx™xÕ(rP   c           	      ó  — d}t         j                  j                  d«      }|j                  ||f¬«      }|j                  ||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  k7  «       t        |j                  ||d
z   z  dz  «       t        |
j                  |dz
  |d
z
  z  dz  «       y )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  sS  € ØˆÜ�i‰i×#Ñ#Ð$7Ó8ˆà�J‰J˜Q ˜FˆJÓ#ˆØ�J‰J˜Q ˜FˆJÓ#ˆä# A q°·±Ø-2°C¨Lô:ˆä—‘œ"Ÿ)™) A›,¨¯©Ð5Ó6×8Ñ8ˆÜ# A q°·±Ø47È%Ñ,PôRˆà�!ˆfˆÜ—‘œ"Ÿ)™) A›, sÑ+¨T¯\©\¸#Ñ->Ð?Ó@×BÑBˆÜ# A q°·±Ø47È%Ø>Cñ-EôFˆô 	�—‘˜A˜q ™s™G A™IÑ%Ô&Ü�T—X‘X˜q ! A¡#™w q™yÔ)Ü�T—X‘X  !¡ a¨¡c™{¨1™}Õ-rP   c                 ó  — t         }t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      | j                  d |dd«      i¬«       d d d «       t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      | j                  dt        dd«      i¬«       d d d «       t        j                  t        d	¬«      5  t	        t        j                  d«      t        j                  d«      | j                  dt
        j                  j                  ddd«      i¬«       d d d «       t        j                  t        d
¬«      5  t	        t        j                  d«      t        j                  d«      | j                  ddt        dd«      z  i¬«       d d d «       t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      | j                  ddt        dd«      z  i¬«       d d d «       t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      | j                  dt        j                  d«      i¬«       d d d «       y # 1 sw Y   �ŒZxY w# 1 sw Y   �ŒøxY w# 1 sw Y   �Œ�xY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ¶xY w# 1 sw Y   y xY w)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  sR  € äˆÜ�]‰]ÜØHôJñ 	Gô !¤§¡¨Q£´·±¸Q³Ø(,¯©Ø*9¹3¸qÀ!»9Ð)EõG÷	Gô �]‰]ÜÐ"IôKñ 	ä Ü—‘˜A“¤§¡¨A£°t·{±{Ø(¬-¸¸1Ó*=Ð>õ÷	ô �]‰]ÜÐ"IôKñ 	ä Ü—‘˜A“¤§¡¨A£°t·{±{Ø(¬"¯)©)¯.©.¸¸A¸qÓ*AÐBõ÷	ô �]‰]ÜÐ"IôKñ 	ä Ü—‘˜A“¤§¡¨A£°t·{±{Ø(¨"¬}¸QÀÓ/BÑ*BÐCõ÷	ô �]‰]ÜØHôJñ 	ô !Ü—‘˜A“¤§¡¨A£°t·{±{Ø(¨!¬m¸A¸qÓ.AÑ*AÐBõ÷	ô �]‰]ÜØEôGñ 	ô !Ü—‘˜A“¤§¡¨A£°t·{±{Ø(¬"¯'©'°&«/Ð:õ÷	ð 	÷I	Gñ 	Gú÷	ñ 	ú÷	ñ 	ú÷	ñ 	ú÷	ð 	ú÷	ð 	úsM   ¢A	KÂAKÃ=A!KÆAK*Ç3AK7É%ALËKËKËK'Ë*K4Ë7L ÌLN)r…   r†   r‡   rY   r­   r³   r£   r‹   rP   rN   r¥   r¥   
  s   „ Ø€Fò)ò.ó*-rP   r¥   c                   ó   — e Zd Zd„ Zy)ÚTestQAPOncec                 óˆ  — t        d«      }t        j                  t        d¬«      5  t	        |j                  d«      |j                  d«      «       d d d «       t        j                  t        d¬«      5  t	        |j                  d«      |j                  d«      «       d d d «       t        j                  t        d¬«      5  t	        |j                  d«      |j                  d«      «       d d d «       t        j                  t        d	¬«      5  t	        |j                  d«      |j                  d
«      «       d d d «       t        }t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      d |dd«      i¬«       d d d «       t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      dt        dd«      i¬«       d d d «       t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      dt        j
                  j                  ddd«      i¬«       d d d «       t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      ddt        dd«      z  i¬«       d d d «       t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      ddt        dd«      z  i¬«       d d d «       t        j                  t        d¬«      5  t	        t        j                  d«      t        j                  d«      dt        j                  d«      i¬«       d d d «       y # 1 sw Y   �ŒtxY w# 1 sw Y   �Œ3xY w# 1 sw Y   �ŒòxY w# 1 sw Y   �Œ±xY w# 1 sw Y   �ŒWxY w# 1 sw Y   �Œ xY w# 1 sw Y   �Œ”xY w# 1 sw Y   �Œ:xY w# 1 sw Y   ŒßxY w# 1 sw Y   y xY w)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  sY  € Ü˜(Ó#ˆä�]‰]œ:Ð-AÔBñ 	Ü Ø—
‘
˜6Ó"Ø—
‘
˜6Ó"ô÷	ô
 �]‰]œ:Ð-AÔBñ 	Ü Ø—
‘
˜6Ó"Ø—
‘
˜6Ó"ô÷	ô �]‰]ÜÐ"EôGñ 	ä Ø—
‘
˜9Ó%Ø—
‘
˜9Ó%ô÷	ô �]‰]ÜØBôDñ 	ô !Ø—
‘
˜6Ó"Ø—
‘
˜6Ó"ô÷	ô ˆÜ�]‰]ÜØFôHñ 	Gô !¤§¡¨Q£´·±¸Q³Ø*9¹3¸qÀ!»9Ð)EõG÷	Gô �]‰]ÜÐ"IôKñ 	ä Ü—‘˜A“¤§¡¨A£Ø(¬-¸¸1Ó*=Ð>õ÷	ô �]‰]ÜÐ"IôKñ 	ä Ü—‘˜A“¤§¡¨A£Ø(¬"¯)©)¯.©.¸¸A¸qÓ*AÐBõ÷	ô �]‰]ÜÐ"IôKñ 	ä Ü—‘˜A“¤§¡¨A£Ø(¨"¬}¸QÀÓ/BÑ*BÐCõ÷	ô �]‰]ÜØHôJñ 	ô !Ü—‘˜A“¤§¡¨A£Ø(¨!¬m¸A¸qÓ.AÑ*AÐBõ÷	ô �]‰]ÜØEôGñ 	ô !Ü—‘˜A“¤§¡¨A£Ø(¬"¯'©'°&«/Ð:õ÷	ð 	÷}	ñ 	ú÷
	ñ 	ú÷	ñ 	ú÷	ñ 	ú÷	Gñ 	Gú÷	ñ 	ú÷	ñ 	ú÷	ñ 	ú÷	ð 	ú÷	ð 	ús|   §+OÁ5+OÃ+OÄ+O+Å%>O8ÇAPÈ*APÊ#APÌ
AP,Í1A
P8ÏOÏOÏO(Ï+O5Ï8PÐPÐPÐP)Ð,P5Ð8QN)r…   r†   r‡   r¼   r‹   rP   rN   rº   rº   `  s   „ ó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¶   ®  sA   € Ü
�(‰(�A�q�6Ó
€CÜ�1‹Xò !ˆÜ—I‘I˜a“LˆŠAˆqˆDŠ	ð!à€JrP   c                 ó�  — d}d| j                  d¬«      z  }d| |z  z  }| }t        |«      D ]–  }t        j                  |j                  d¬«      dz
  «      |k  j	                  «       r<t        j                  |j                  d¬«      dz
  «      |k  j	                  «       r |S 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Ñ€AØ	ˆQ�‰U‰€AØ€Eä�H‹oò #ˆÜ�V‰V�E—I‘I 1�IÓ%¨Ñ)Ó*¨SÑ0×5Ñ5Ô7Ü—‘˜Ÿ	™	 q˜	Ó)¨AÑ-Ó.°Ñ4×9Ñ9Ô;àð €Lð	 ��Q‘‰KˆØ��Q‘‰KˆØ’!�T�'‘
˜Q‘ Ñ"‰ð#ð €LrP   )gü©ñÒMbP?)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ß =Ñ =ò"ðJ ‡�×ÑÐOÓP÷NHð NHó QðNHôbCˆnô CôLSˆ~ô Sðl ‡�×ÑÐOÓP÷Jð Jó QðJòZôrP   