Ë
    âQ(hõ  ã                   ó"  — d dl mZ d dlZd dlZd dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej0                  j3                  dg d¢«      d„ «       Zej0                  j3                  de«      d„ «       Zd„ Zy)é    )Úassert_array_equalN)Úlinear_sum_assignment)Úrandom)Úmatrix)Ú"min_weight_full_bipartite_matching)Ú linear_sum_assignment_assertionsÚ linear_sum_assignment_test_casesc                  ó~   — t        j                  t        d¬«      5  t        g d¢«       d d d «       y # 1 sw Y   y xY w)Nzexpected a matrix©Úmatch©é   é   é   )ÚpytestÚraisesÚ
ValueErrorr   © ó    úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/scipy/optimize/tests/test_linear_assignment.pyÚ&test_linear_sum_assignment_input_shaper      s.   € Ü	�‰”zÐ)<Ô	=ñ )ÜšiÔ(÷)÷ )ñ )ús   œ3³<c                  óÄ   — g d¢g d¢g} t        t        | «      t        t        j                  | «      «      «       t        t        | «      t        t	        | «      «      «       y )Nr   )é   é   é   )r   r   ÚnpÚasarrayr   )ÚCs    r   Ú'test_linear_sum_assignment_input_objectr      sH   € Ú	’IÐ€AÜÔ,¨QÓ/Ü,¬R¯Z©Z¸«]Ó;ô=äÔ,¨QÓ/Ü,¬V°A«YÓ7õ9r   c                  ó¤   — t        j                  d«      } t        t        | j	                  t         j
                  «      «      t        | «      «       y )Nr   )r   Úidentityr   r   ÚastypeÚbool_©ÚIs    r   Ú%test_linear_sum_assignment_input_boolr&      s4   € Ü
�‰�A‹€AÜÔ,¨Q¯X©X´b·h±hÓ-?Ó@Ü,¨QÓ/õ1r   c                  óÊ   — t        j                  d«      } t        j                  t        d¬«      5  t        | j                  t        «      «       d d d «       y # 1 sw Y   y xY w)Nr   zCannot cast array datar   )r   r!   r   r   Ú	TypeErrorr   r"   Ústrr$   s    r   Ú'test_linear_sum_assignment_input_stringr*   %   sC   € Ü
�‰�A‹€AÜ	�‰”yÐ(@Ô	Añ -Ü˜aŸh™h¤s›mÔ,÷-÷ -ñ -ús   ±AÁA"c                  óÆ   — t        j                  t         j                  ddg«      } t        j                  t
        d¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w©Nr   z contains invalid numeric entriesr   )r   ÚdiagÚnanr   r   r   r   r$   s    r   Ú$test_linear_sum_assignment_input_nanr/   +   sF   € Ü
�‰”—‘˜˜A�Ó€AÜ	�‰”zÐ)KÔ	Lñ !Ü˜aÔ ÷!÷ !ñ !ús   ÁAÁA c                  óÈ   — t        j                  dt         j                   dg«      } t        j                  t
        d¬«      5  t        | «       d d d «       y # 1 sw Y   y xY wr,   )r   r-   Úinfr   r   r   r   r$   s    r   Ú'test_linear_sum_assignment_input_neginfr2   1   sH   € Ü
�‰�”R—V‘V�G˜Q�Ó €AÜ	�‰”zÐ)KÔ	Lñ !Ü˜aÔ ÷!÷ !ñ !ús   ÁAÁA!c                  óÒ   — t        j                  d«      } t         j                  | d d …df<   t        j                  t
        d¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w)Nr   r   zcost matrix is infeasibler   )r   r!   r1   r   r   r   r   r$   s    r   Ú$test_linear_sum_assignment_input_infr4   7   sL   € Ü
�‰�A‹€AÜ�f‰f€A‚aˆ€d�GÜ	�‰”zÐ)DÔ	Eñ !Ü˜aÔ ÷!÷ !ñ !ús   ÁAÁA&c                  óÎ   — d} t        j                  | | f«      }t        |«      \  }}t        |t        j                  | «      «       t        |t        j                  | «      «       y )Né   )r   Úonesr   r   Úarange)Únr   Úrow_indÚcol_inds       r   Útest_constant_cost_matrixr<   >   sK   € à	€AÜ
�‰��A�‹€AÜ,¨QÓ/Ñ€GˆWÜ�w¤§	¡	¨!£Ô-Ü�w¤§	¡	¨!£Õ-r   znum_rows,num_cols))r   r   )r   r   )r   r   c                 ó�   — t        j                  || f¬«      }t        |«      \  }}t        |«      dk(  sJ ‚t        |«      dk(  sJ ‚y )N)Úshaper   )r   Úemptyr   Úlen)Únum_rowsÚnum_colsr   r:   r;   s        r   Ú'test_linear_sum_assignment_trivial_costrC   G   sH   € ä
�‰˜ (Ð+Ô,€AÜ,¨QÓ/Ñ€GˆWÜˆw‹<˜1ÒÐÐÜˆw‹<˜1ÒÐÑr   zsign,test_casec                 óD   — t        t        t        j                  | |«       y )N)r   r   r   Úarray)ÚsignÚ	test_cases     r   Ú'test_linear_sum_assignment_small_inputsrH   O   s   € ä$ÜœrŸx™x¨¨yõ:r   c                  óF  — t         j                  j                  d«       t        d«      D ]Ò  } d}d}t        dddd„ ¬«      }t        j                  |j
                  t         j                  «      }|j                  ||j                  |j                  f<   |j                  «       }	 t        |«      \  }}|||f   j                  «       }	 t        |«      \  }}|||f   j                  «       }||k(  sJ ‚|rŒÌk(  rŒÒJ ‚ y # t        $ r d}Y ŒEw xY w# t        $ r d}Y Œ2w xY w)NiÒ  éd   Fg¸…ëQ¸®?c                 óD   — t         j                  j                  dd| «      S )Nr   rJ   )r   r   Úrandint)Úsizes    r   ú<lambda>zItest_two_methods_give_same_result_on_many_sparse_inputs.<locals>.<lambda>a   s   € ¬b¯i©i×.?Ñ.?ÀÀ3ÈÓ.M€ r   )ÚdensityÚdata_rvsT)r   r   ÚseedÚrangeÚfullr>   r1   ÚdataÚrowÚcolÚtocsrr   Úsumr   r   )	Ú_Ú
lsa_raisesÚmwfbm_raisesÚsparseÚdenser:   r;   Úlsa_costÚ
mwfbm_costs	            r   Ú7test_two_methods_give_same_result_on_many_sparse_inputsr`   W   s)  € ô
 ‡I�I‡N�N�4ÔÜ�3‹Zò *ˆØˆ
ØˆÜ˜˜S¨$Ù!MôOˆô —‘˜Ÿ™¤b§f¡fÓ-ˆØ(.¯©ˆˆf�j‰j˜&Ÿ*™*Ð$Ñ%Ø—‘“ˆð	Ü4°UÓ;ÑˆG�WØ˜W gÐ-Ñ.×2Ñ2Ó4ˆHð	 ÜAÀ&ÓIÑˆG�WØ ¨Ð 0Ñ1×5Ñ5Ó7ˆJð ˜\Ò)Ð)Ð)ÚØ˜zÓ)Ð)Ð)ñ/*øô ò 	ØŠJð	ûô
 ò 	 ØŠLð	 ús$   Â&#DÃ
#DÄDÄDÄD ÄD )Únumpy.testingr   r   Únumpyr   Úscipy.optimizer   Úscipy.sparser   Úscipy.sparse._sputilsr   Úscipy.sparse.csgraphr   Ú(scipy.sparse.csgraph.tests.test_matchingr   r	   r   r   r&   r*   r/   r2   r4   r<   ÚmarkÚparametrizerC   rH   r`   r   r   r   ú<module>rj      sž   ðõ -Û ã å 0Ý Ý (Ý C÷ò
)ò
9ò1ò-ò!ò!ò!ò.ð ‡�×ÑÐ,Ò.FÓGñó Hðð ‡�×ÑÐ)Ð+KÓLñ:ó Mð:ó*r   