§
    fŠtjO0  ã                   ó  — d dl mZ d dlZd dlmZmZ d dlZd dlm	Z	m
Z
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d„ Zd„ Zd„ Zej                             dg d¢¦  «        d„ ¦   «         Zej                             dg d¢g d¢g d¢gg d¢g d¢g d¢gg d¢g d¢g d¢gg d¢g d¢gg d¢g d¢gdd gdd gd d ggg¦  «        d!„ ¦   «         Zd"„ Zd#„ Zd$„ Z  ed%dgg d&¢g d'¢g d(¢gg d)¢fg d*¢g d+¢g d,¢gg d-¢fg d.¢g d/¢g d0¢gg d1¢fg d2¢g d3¢g d4¢gg d5¢fd6 e!d7¦  «         e!d7¦  «        g e!d7¦  «         e!d7¦  «        dg e!d7¦  «        d8 e!d7¦  «        ggg d1¢fg¦  «        Z"ej                             d9e"¦  «        d:„ ¦   «         Z#dS );é    )ÚproductN)Úassert_array_equalÚassert_equal)Ú	csr_arrayÚ	coo_arrayÚdiags_array)Úmaximum_bipartite_matchingÚ"min_weight_full_bipartite_matchingc                  ó¼   — t          j        t          ¦  «        5  t          j        ddgddgg¦  «        } t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   é   )ÚpytestÚraisesÚ	TypeErrorÚnpÚarrayr	   )Úgraphs    úf/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/scipy/sparse/csgraph/tests/test_matching.pyÚ5test_maximum_bipartite_matching_raises_on_dense_inputr      s    € Ý	Œ•yÑ	!Ô	!ð *ð *Ý”˜1˜a˜& 1 a &Ð)Ñ*Ô*ˆÝ" 5Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s   š*AÁAÁAc                  óÐ   — t          d¦  «        } t          | d¬¦  «        }t          | d¬¦  «        }t          j        g ¦  «        }t	          ||¦  «         t	          ||¦  «         d S )N©r   r   Úrow©Ú	perm_typeÚcolumn©r   r	   r   r   r   ©r   ÚxÚyÚexpected_matchings       r   Ú+test_maximum_bipartite_matching_empty_graphr       si   € Ý�fÑÔ€EÝ" 5°EÐ:Ñ:Ô:€AÝ" 5°HÐ=Ñ=Ô=€AÝœ ™œÐÝÐ(¨!Ñ,Ô,Ð,ÝÐ(¨!Ñ,Ô,Ð,Ð,Ð,ó    c                  óô   — t          d¦  «        } t          | d¬¦  «        }t          | d¬¦  «        }t          t          j        g ¦  «        |¦  «         t          t          j        ddg¦  «        |¦  «         d S )N©é   r   r   r   r   éÿÿÿÿ©r   r	   r   r   r   ©r   r   r   s      r   Ú4test_maximum_bipartite_matching_empty_left_partitionr(      so   € Ý�fÑÔ€EÝ" 5°EÐ:Ñ:Ô:€AÝ" 5°HÐ=Ñ=Ô=€AÝ•r”x ‘|”| QÑ'Ô'Ð'Ý•r”x  R Ñ)Ô)¨1Ñ-Ô-Ð-Ð-Ð-r!   c                  óô   — t          d¦  «        } t          | d¬¦  «        }t          | d¬¦  «        }t          t          j        g d¢¦  «        |¦  «         t          t          j        g ¦  «        |¦  «         d S )N©r   é   r   r   r   )r%   r%   r%   r&   r'   s      r   Ú5test_maximum_bipartite_matching_empty_right_partitionr,   $   so   € Ý�fÑÔ€EÝ" 5°EÐ:Ñ:Ô:€AÝ" 5°HÐ=Ñ=Ô=€AÝ•r”x   Ñ-Ô-¨qÑ1Ô1Ð1Ý•r”x ‘|”| QÑ'Ô'Ð'Ð'Ð'r!   c                  óø   — t          d¦  «        } t          | d¬¦  «        }t          | d¬¦  «        }t          t          j        ddg¦  «        |¦  «         t          t          j        ddg¦  «        |¦  «         d S )N©r$   r$   r   r   r   r%   r&   r'   s      r   Ú3test_maximum_bipartite_matching_graph_with_no_edgesr/   ,   su   € Ý�fÑÔ€EÝ" 5°EÐ:Ñ:Ô:€AÝ" 5°HÐ=Ñ=Ô=€AÝ•r”x  R Ñ)Ô)¨1Ñ-Ô-Ð-Ý•r”x  R Ñ)Ô)¨1Ñ-Ô-Ð-Ð-Ð-r!   c                  óà   — t          ddgddgg¦  «        } t          | d¬¦  «        }t          | d¬¦  «        }t          j        ddg¦  «        }t	          ||¦  «         t	          ||¦  «         d S )Nr   r   r   r   r   r   r   s       r   Ú>test_maximum_bipartite_matching_graph_that_causes_augmentationr1   4   s~   € õ ˜˜1�v  1˜vÐ&Ñ'Ô'€EÝ" 5°HÐ=Ñ=Ô=€AÝ" 5°EÐ:Ñ:Ô:€AÝœ ! Q Ñ(Ô(ÐÝÐ(¨!Ñ,Ô,Ð,ÝÐ(¨!Ñ,Ô,Ð,Ð,Ð,r!   c                  ó
  — t          ddgddgddgg¦  «        } t          | d¬¦  «        }t          | d¬¦  «        }t          t          j        g d¢¦  «        |¦  «         t          t          j        ddg¦  «        |¦  «         d S )Nr   r   r   r   r   ©r   r%   r   r$   r&   r'   s      r   ÚAtest_maximum_bipartite_matching_graph_with_more_rows_than_columnsr4   ?   sˆ   € Ý˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€EÝ" 5°HÐ=Ñ=Ô=€AÝ" 5°EÐ:Ñ:Ô:€AÝ•r”x 
 
 
Ñ+Ô+¨QÑ/Ô/Ð/Ý•r”x  A Ñ'Ô'¨Ñ+Ô+Ð+Ð+Ð+r!   c                  ó  — t          g d¢g d¢g¦  «        } t          | d¬¦  «        }t          | d¬¦  «        }t          t          j        ddg¦  «        |¦  «         t          t          j        g d¢¦  «        |¦  «         d S )	N)r   r   r   ©r   r   r   r   r   r   r   r$   r3   r&   r'   s      r   ÚAtest_maximum_bipartite_matching_graph_with_more_columns_than_rowsr7   G   s‚   € Ý�y�y�y ) ) )Ð,Ñ-Ô-€EÝ" 5°HÐ=Ñ=Ô=€AÝ" 5°EÐ:Ñ:Ô:€AÝ•r”x  A Ñ'Ô'¨Ñ+Ô+Ð+Ý•r”x 
 
 
Ñ+Ô+¨QÑ/Ô/Ð/Ð/Ð/r!   c                  óö   — ddg} ddg}g d¢}t          | ||fd¬¦  «        }t          |d¬¦  «        }t          |d¬¦  «        }t          j        ddg¦  «        }t	          ||¦  «         t	          ||¦  «         d S )	Nr   r   )r   r   r$   r.   ©Úshaper   r   r   r   )ÚdataÚindicesÚindptrr   r   r   r   s          r   Ú=test_maximum_bipartite_matching_explicit_zeros_count_as_edgesr>   O   s–   € Øˆqˆ6€DØ�!ˆf€GØˆYˆY€FÝ�t˜W fÐ-°VÐ<Ñ<Ô<€EÝ" 5°EÐ:Ñ:Ô:€AÝ" 5°HÐ=Ñ=Ô=€AÝœ ! Q Ñ(Ô(ÐÝÐ(¨!Ñ,Ô,Ð,ÝÐ(¨!Ñ,Ô,Ð,Ð,Ð,r!   c                  ó0  — t          j        dt          ¬¦  «        } g d¢}g d¢}t          | ||fd¬¦  «        }t	          |d¬¦  «        }t	          |d	¬¦  «        }|d
k                         ¦   «         dk    sJ ‚|d
k                         ¦   «         dk    sJ ‚t          t          |j        d         ¦  «        |¦  «        D ]\  }}|d
k    r|||f         sJ ‚Œt          |t          |j        d         ¦  «        ¦  «        D ]\  }}|d
k    r|||f         sJ ‚Œd S )Né2   ©Údtype)2é   é   é   é   é   é   rF   r+   é   é
   rH   é   rC   rD   é   rH   rL   é   é   rF   r+   é   r+   rL   rM   rC   rD   rE   rF   rG   rH   rF   r+   rI   rJ   rH   rK   rC   rD   rL   rH   rL   rM   rN   rF   r+   rO   r+   rL   rM   )r   rH   é   rJ   rJ   rO   rN   rF   rF   rG   é   é   é    é#   rT   é(   é-   é/   rW   é0   r@   )rN   rQ   r9   r   r   r   r%   rL   r   r   )	r   ÚonesÚintr   r	   ÚsumÚzipÚranger:   )r;   r<   r=   r   r   r   ÚuÚvs           r   Ú5test_maximum_bipartite_matching_feasibility_of_resultr`   [   sL  € åŒ7�2�SÐ!Ñ!Ô!€DðJð Jð J€Gðð ð €Få�t˜W fÐ-°XÐ>Ñ>Ô>€EÝ" 5°EÐ:Ñ:Ô:€AÝ" 5°HÐ=Ñ=Ô=€AØ�ŠG�=Š=‰?Œ?˜bÒ Ð Ð Ð Ø�ŠG�=Š=‰?Œ?˜bÒ Ð Ð Ð å•E˜%œ+ aœ.Ñ)Ô)¨1Ñ-Ô-ð ð ‰ˆˆ1Ø�Š7ˆ7Ø˜˜A˜”;ÐÐ�;øÝ�A•u˜Uœ[¨œ^Ñ,Ô,Ñ-Ô-ð ð ‰ˆˆ1Ø�Š7ˆ7Ø˜˜A˜”;ÐÐ�;øðð r!   c                  ó\  — t           j                             d¦  «         t          t          j        d¦  «        dd¬¦  «        } t           j                             d¦  «        }t           j                             d¦  «        }t          j        d¦  «        }|}t          j        dt          ¬¦  «        }t          |||ff¦  «        }|}t          j        d¦  «        }t          j        dt          ¬¦  «        }	t          |	||ff¦  «        }
|| z  |
z  }t          |d¬¦  «        }t          j        d¦  «        }|}t          j        dt          ¬¦  «        }t          |||ff¦  «        }||z  }t          |d	¬¦  «        }|}t          j        d¦  «        }t          j        dt          ¬¦  «        }	t          |	||ff¦  «        }
||
z  }t          t          |                     ¦   «         dk    ¦  «        d
¦  «         t          t          |                     ¦   «         dk    ¦  «        d
¦  «         d S )Né*   rQ   r   Úcsr)ÚoffsetsÚformatrA   r   r   r   F)r   ÚrandomÚseedr   rY   ÚpermutationÚarangerZ   r   r	   r   ÚanyÚdiagonal)ÚAÚ	rand_permÚ
rand_perm2ÚRrowÚRcolÚRdataÚRmatÚCrowÚCcolÚCdataÚCmatÚBÚpermÚC1Úperm2ÚC2s                   r   ÚFtest_matching_large_random_graph_with_one_edge_incident_to_each_vertexr|   q   så  € Ý„I‡N‚N�2ÑÔÐÝ•B”G˜B‘K”K¨°5Ð9Ñ9Ô9€AÝ”	×%Ò% bÑ)Ô)€IÝ”×&Ò& rÑ*Ô*€JåŒ9�R‰=Œ=€DØ€DÝŒG�B�cÐ"Ñ"Ô"€EÝ�e˜d D˜\Ð*Ñ+Ô+€Dà€DÝŒ9�R‰=Œ=€DÝŒG�B�cÐ"Ñ"Ô"€EÝ�e˜d D˜\Ð*Ñ+Ô+€Dàˆq‰�4‰€Aõ & a°5Ð9Ñ9Ô9€DÝŒ9�R‰=Œ=€DØ€DÝŒG�B�cÐ"Ñ"Ô"€EÝ�e˜d D˜\Ð*Ñ+Ô+€DØ	�‰€Bõ ' q°HÐ=Ñ=Ô=€EØ€DÝŒ9�R‰=Œ=€DÝŒG�B�cÐ"Ñ"Ô"€EÝ�e˜d D˜\Ð*Ñ+Ô+€DØ	
ˆT‰€Bõ •�R—[’[‘]”] aÒ'Ñ(Ô(¨%Ñ0Ô0Ð0Ý•�R—[’[‘]”] aÒ'Ñ(Ô(¨%Ñ0Ô0Ð0Ð0Ð0r!   znum_rows,num_cols)r   r#   r*   c                 ó:  — t          || f¦  «        }t          || f¦  «        }t          |¦  «        \  }}t          |¦  «        dk    sJ ‚t          |¦  «        dk    sJ ‚t          |¦  «        \  }}t          |¦  «        dk    sJ ‚t          |¦  «        dk    sJ ‚d S )Nr   )r   r   r
   Úlen)Únum_rowsÚnum_colsÚbiadjacencyÚbiadjacency1Úrow_indÚcol_indÚrow_ind1Úcol_ind1s           r   Ú+test_min_weight_full_matching_trivial_graphr‡   ˜   s¬   € å˜X xÐ0Ñ1Ô1€KÝ˜h¨Ð1Ñ2Ô2€Lå9¸+ÑFÔFÑ€GˆWÝˆw‰<Œ<˜1ÒÐÐÐÝˆw‰<Œ<˜1ÒÐÐÐå;¸LÑIÔIÑ€HˆhÝˆx‰=Œ=˜AÒÐÐÐÝˆx‰=Œ=˜AÒÐÐÐÐÐr!   r�   )r   r   r   )r   r   r   r6   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r$   r   r   )r   r   r   )r   r$   r   r   r$   rH   c                 ó<  — t          j        t          ¦  «        5  t          t	          | ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          t          | ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©N)r   r   Ú
ValueErrorr
   r   r   ©r�   s    r   Ú1test_min_weight_full_matching_infeasible_problemsrŒ   ¦   s.  € õ 
Œ•zÑ	"Ô	"ð Cð CÝ*­9°[Ñ+AÔ+AÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cå	Œ•zÑ	"Ô	"ð Cð CÝ*­9°[Ñ+AÔ+AÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs#   šAÁAÁ
AÁ'BÂBÂBc                  óð  — t          j        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 d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        t          d¬¦  «        5  t          t          | ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          | ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)ç        rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   çü©ñÒMbP?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r�   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r�   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r�   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r�   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r�   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r�   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r�   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r�   )rŽ   g»ì|ä{ë½?rŽ   rŽ   gCðÏw}‹?gN•RDD9³?rŽ   rŽ   rŽ   g½­p¢ÈÀç?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   g<(@¹òé?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   gI}þ 7èê?rŽ   rŽ   rŽ   rŽ   gÇ	vˆ?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   gV¾€ÁâŽê?rŽ   rŽ   rŽ   gÛY‰³\½?rŽ   rŽ   rŽ   gü!‘«š¼?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )gj]8J=È?rŽ   gÉ$]ë}¤?rŽ   rŽ   rŽ   rŽ   rŽ   gâ¦«à\Hè?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   gYI!åæ?rŽ   rŽ   rŽ   rŽ   rŽ   g³ðÿ$œ?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )g-™ Oé?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   gˆö-J;ûÂ?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   gzm�)Ô»?rŽ   rŽ   rŽ   gËz{!.Šì?rŽ   rŽ   rŽ   güoFI%°?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   g-Æe�nä?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   g¸ÐðÁÆÐç?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   gÂÅâ§7¹?rŽ   rŽ   gýqÒfbÛÇ?g¹]!¹Ñ?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   g‡Ÿæ�kç?rŽ   rŽ   gT#P¹Ý?g:àãáw²Ø?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )gvÁCÅöâÒ?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   gŽŒ8»¾¸?rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   zno full matching exists)Úmatch)r   Úasarrayr   r   rŠ   r
   r   r   )Úas    r   Ú.test_min_weight_full_matching_large_infeasibler“   ¶   s¯  € å
Œ
ð	Bð 	Bð 	Bð	Bð 	Bð 	Bð	Bð 	Bð 	Bð	Bð 	Bð 	Bð	Bð 	Bð 	Bð	Bð 	Bð 	Bð	Bð 	Bð 	Bð	Bð 	Bð 	Bð	Bð 	Bð 	Bð	"ð 	"ð 	"ð	Eð 	Eð 	Eð	Eð 	Eð 	Eð	ð 	ð 	ð	Jð 	Jð 	Jð	Jð 	Jð 	Jð	Jð 	Jð 	Jð	Eð 	Eð 	Eð	Bð 	Bð 	Bð	Eð 	Eð 	Eð	Fð 	Fð 	Fð	Gð 	Gð 	Gð	Eð 	Eð 	Eð[/
ñ /	ô /	€Aõ` 
Œ•zÐ)BÐ	CÑ	CÔ	Cð 9ð 9Ý*­9°Q©<¬<Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9å	Œ•zÐ)BÐ	CÑ	CÔ	Cð 9ð 9Ý*­9°Q©<¬<Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9s$   Á2BÂBÂ"BÃC+Ã+C/Ã2C/c                  óJ  — t          d¦  «        } t          j        t          ¦  «        5  t	          | ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t	          |                      ¦   «         ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N))r$   r   r+   )r   r   r   )r   r$   r+   )r   r   ÚwarnsÚUserWarningr
   Útocoor‹   s    r   Ú!test_explicit_zero_causes_warningr˜   î   s%  € ÝÐ=Ñ>Ô>€KÝ	Œ•kÑ	"Ô	"ð 8ð 8Ý*¨;Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8å	Œ•kÑ	"Ô	"ð @ð @Ý*¨;×+<Ò+<Ñ+>Ô+>Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @ð @ð @s#   ©AÁA	ÁA	Á)"BÂBÂBc           
      ót  — |\  }}|dk    }| ||¦  «        z  }|t          j        |¦  «        z  } | ||¬¦  «        \  }}t          |t          j        |¦  «        ¦  «         t          |t          j        |||f         ¦  «                             ¦   «         ¦  «         |j        } | ||¬¦  «        \  }}t          |t          j        |¦  «        ¦  «         t          t          j        |¦  «        t          j        t          j        |||f         ¦  «        ¦  «                             ¦   «         ¦  «         d S )Nr%   )Úmaximize)r   r   r   ÚsortÚflattenÚT)	ÚsolverÚ
array_typeÚsignÚ	test_caseÚcost_matrixÚexpected_costrš   rƒ   r„   s	            r   Ú linear_sum_assignment_assertionsr¤   ø   sH  € ð "+Ñ€K�Ø�rŠz€HØ˜˜ KÑ0Ô0Ñ0€KØ�2œ8 MÑ2Ô2Ñ2€Mà�v˜k°HÐ=Ñ=Ô=Ñ€GˆWÝ�w¥¤¨Ñ 0Ô 0Ñ1Ô1Ð1Ý�}Ý”x ¨G°WÐ,<Ô =Ñ>Ô>×FÒFÑHÔHñJô Jð Jð ”-€KØ�v˜k°HÐ=Ñ=Ô=Ñ€GˆWÝ�w¥¤¨Ñ 0Ô 0Ñ1Ô1Ð1Ý•r”w˜}Ñ-Ô-Ý”w�rœxØ& w°Ð'7Ô8ñ :ô  :ñ ;ô ;ß;Bº7¹9¼9ñFô Fð Fð Fð Fr!   r%   )é�  é–   r¥   )r¥   éÂ  éX  )é,  éá   r©   )r¦   r¥   r©   )r¥   r¦   r¥   r   )r¥   r§   r¨   r$   )r©   rª   r©   r+   )r¦   r$   r©   )rJ   rJ   rI   )é	   rI   r   )r«   rP   é   )rJ   r   rP   )rJ   rJ   rI   rC   )r«   rI   r   r   )r«   rP   r¬   rJ   )rJ   r   r¬   rJ   ÚinfrP   zsign,test_casec                 ó>   — t          t          t          | |¦  «         d S r‰   )r¤   r
   r   )r    r¡   s     r   Ú*test_min_weight_full_matching_small_inputsr¯   /  s,   € å$Ý*­I°t¸YñHô Hð Hð Hð Hr!   )$Ú	itertoolsr   Únumpyr   Únumpy.testingr   r   r   Úscipy.sparser   r   r   Úscipy.sparse.csgraphr	   r
   r   r    r(   r,   r/   r1   r4   r7   r>   r`   r|   ÚmarkÚparametrizer‡   rŒ   r“   r˜   r¤   ÚfloatÚ linear_sum_assignment_test_casesr¯   © r!   r   ú<module>rº      s¿  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø €€€à :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ð :ðð ð ð ð ð ð ð ð
*ð *ð *ð-ð -ð -ð.ð .ð .ð(ð (ð (ð.ð .ð .ð-ð -ð -ð,ð ,ð ,ð0ð 0ð 0ð	-ð 	-ð 	-ðð ð ð,$1ð $1ð $1ðN „×ÒÐ,Ð.FÐ.FÐ.FÑGÔGð
ð 
ñ HÔGð
ð „×Ò˜à&˜Y˜Y¨	¨	¨	°9°9°9Ð=Ø&˜Y˜Y¨	¨	¨	°9°9°9Ð=Ø)˜\˜\¨<¨<¨<¸¸¸ÐFØ&˜Y˜Y¨	¨	¨	Ð2Ø&˜Y˜Y¨	¨	¨	Ð2Ø ˜V a¨ V¨a°¨VÐ4ðñô ðCð Cñô ðCð59ð 59ð 59ðp@ð @ð @ðFð Fð Fð* $+ 7Øˆ€Gð ˆ/ˆ/Ø
ˆ/ˆ/Ø
ˆ/ˆ/ð
ð 
ˆˆð	ð Ð
Ð
Ø
Ð
Ð
Ø
Ð
Ð
ð
ð 
ˆˆð	ð
 ˆ+ˆ+Ø
ˆ)ˆ)Ø
ˆ)ˆ)ð
ð 
ˆˆð	ð ˆ/ˆ/Ø
ˆ,ˆ,Ø
ˆ-ˆ-ð
ð 
ˆˆð	ð ˆuˆu�U‰|Œ|˜U˜U 5™\œ\Ð
*Øˆ5�‰<Œ<˜˜˜u™œ qÐ
)Øˆ5�‰<Œ<˜˜E˜E %™LœLÐ
)ð
+ð 
ˆˆð	ð3ñ$ô $Ð  ðD „×ÒÐ)Ð+KÑLÔLðHð Hñ MÔLðHð Hð Hr!   