3
Od                 @   s   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 dd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N)assert_array_equalassert_equal)
csr_matrix
coo_matrixdiags)maximum_bipartite_matchingc              C   s8   t jt$ tjddgddgg} t|  W d Q R X d S )Nr      )pytestZraises	TypeErrornparrayr   )graph r   \/var/www/html/virt/lib64/python3.6/site-packages/scipy/sparse/csgraph/tests/test_matching.pytest_raises_on_dense_input	   s    r   c              C   sB   t d} t| dd}t| dd}tjg }t|| t|| d S )Nr   row)	perm_typecolumn)r   r   )r   r   r   r   r   )r   xyexpected_matchingr   r   r   test_empty_graph   s    

r   c              C   sH   t d} t| dd}t| d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   r   )r   r   r   r   r   r   test_empty_left_partition   s
    r   c              C   sJ   t d} t| dd}t| dd}ttjdd	d
g| ttjg | d S )Nr      r   )r   r   r   )r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   test_empty_right_partition    s
    r   c              C   sL   t d} t| dd}t| dd}ttjddg| ttjd	d
g| d S )Nr   r   )r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   test_graph_with_no_edges(   s
    r   c              C   sR   t ddgddgg} t| dd}t| dd}tjddg}t|| t|| d S )Nr   r   r   )r   r   )r   r   r   r   r   )r   r   r   r   r   r   r   #test_graph_that_causes_augmentation0   s    
r   c              C   s`   t ddgddgddgg} t| dd}t| dd}ttjdddg| ttjddg| d S )Nr   r   r   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   &test_graph_with_more_rows_than_columns;   s
    r   c              C   s^   t dddgdddgg} t| dd}t| dd}ttjddg| ttjdddg| d S )Nr   r   r   )r   r   r   r   )r   r   r   r   r   )r   r   r   r   r   r   &test_graph_with_more_columns_than_rowsC   s
    r    c              C   sj   ddg} ddg}dddg}t | ||fdd}t|dd}t|dd}tjddg}t|| t|| d S )	Nr   r   r   )shaper   )r   r   )r   r   )r   r   r   r   r   )dataindicesindptrr   r   r   r   r   r   r   "test_explicit_zeros_count_as_edgesK   s    

r%   c           2   C   sz  t jdtd} dddddddd	d
dddddddddddd	dd	dddddddddd	d
dddddddddddd	dd	ddg2}dddddddddddddddddddddg}t| ||fd d}t|dd}t|dd}|d!kj dkst|d"kj dkstx>tt|j	d |D ]&\}}|d#kr|||f stqW x>t|t|j	d D ]&\}}|d$krL|||f sLtqLW d S )%N2   )dtype                  r      
                  r                #   (   -   /   0   )r!   r   )r   r   r   )r3   r6   r   r   r   r   )
r   onesintr   r   sumAssertionErrorzipranger!   )r"   r#   r$   r   r   r   uvr   r   r   test_feasibility_of_resultW   s"    ""$"

rF   c              C   s\  t jjd tt jdddd} t jjd}t jjd}t jd}|}t jdtd}t|||ffj	 }|}t jd}t jdtd}	t|	||ffj	 }
||  |
 }t
|dd}t jd}|}t jdtd}t|||ffj	 }|| }t
|d	d}|}t jd}t jdtd}	t|	||ffj	 }
||
 }tt|j dkd
 tt|j dkd
 d S )N*   r6   r   Zcsr)offsetsformat)r'   r   )r   r   F)r   randomseedr   r>   ZpermutationZaranger?   r   Ztocsrr   r   anyZdiagonal)AZ	rand_permZ
rand_perm2ZRrowZRcolZRdataZRmatZCrowZCcolZCdataZCmatBZpermZC1Zperm2ZC2r   r   r   =test_large_random_graph_with_one_edge_incident_to_each_vertexm   s6    



rO   )Znumpyr   Znumpy.testingr   r   r	   Zscipy.sparser   r   r   Zscipy.sparse.csgraphr   r   r   r   r   r   r   r   r    r%   rF   rO   r   r   r   r   <module>   s   	