3
OédP  ã               @   s¼   d dl Zd dlmZ d dlZd dlmZmZ d dlm	Z	 dd„ Z
dd„ Zd	d
„ Zdd„ Zejjdd ddgƒdd„ ƒZejjdd!ddgƒdd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )"é    N)Úassert_array_equal)Ú
csr_matrixÚ
csc_matrix)Úmaximum_flowc              C   s<   t jtƒ( tjddgddggƒ} t| ddƒ W d Q R X d S )Nr   é   )ÚpytestÚraisesÚ	TypeErrorÚnpÚarrayr   )Úgraph© r   úX/var/www/html/virt/lib64/python3.6/site-packages/scipy/sparse/csgraph/tests/test_flow.pyÚtest_raises_on_dense_input	   s    r   c              C   s:   t jtƒ& tddgddggƒ} t| ddƒ W d Q R X d S )Nr   r   )r   r   r	   r   r   )r   r   r   r   Útest_raises_on_csc_input   s    r   c              C   s@   t jtƒ, tddgddggtjd} t| ddƒ W d Q R X d S )Nr   g      ø?)Údtyper   )r   r   Ú
ValueErrorr   r
   Zfloat64r   )r   r   r   r   Ú#test_raises_on_floating_point_input   s    r   c              C   s:   t jtƒ& tddgddggƒ} t| ddƒ W d Q R X d S )Nr   r   )r   r   r   r   r   )r   r   r   r   Útest_raises_when_source_is_sink   s    r   Úsourcer   é   é   c             C   s:   t jtƒ& tddgddggƒ}t|| dƒ W d Q R X d S )Nr   r   )r   r   r   r   r   )r   r   r   r   r   Ú(test_raises_when_source_is_out_of_bounds!   s    r   Úsinkc             C   s:   t jtƒ& tddgddggƒ}t|d| ƒ W d Q R X d S )Nr   r   )r   r   r   r   r   )r   r   r   r   r   Ú&test_raises_when_sink_is_out_of_bounds(   s    r   c              C   sX   t ddgddggƒ} t| ddƒ}|jdks.t‚tjddgddggƒ}t|jjƒ |ƒ d S )Nr   é   r   éûÿÿÿ)	r   r   Ú
flow_valueÚAssertionErrorr
   r   r   ÚresidualÚtoarray)r   ÚresÚexpected_residualr   r   r   Útest_simple_graph/   s
    r#   c              C   sp   t dddgdddgdddggƒ} t| ddƒ}|jdks:t‚tjdddgdddgdddggƒ}t|jjƒ |ƒ d S )Nr   r   r   r   éýÿÿÿr$   )	r   r   r   r   r
   r   r   r   r    )r   r!   r"   r   r   r   Útest_bottle_neck_graph9   s
     "r%   c              C   s`  t ddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddgddddddddggƒ} t| ddƒ}|jdks²t‚tjddddddddgddddddddgddddddddgddddddddgddddddddgddddd	dddgdddddd
ddgddddddddggƒ}t|jjƒ |ƒ d S )Nr   é
   é   é   iöÿÿÿiöÿÿÿiöÿÿÿiöÿÿÿiöÿÿÿiöÿÿÿiöÿÿÿiöÿÿÿ)	r   r   r   r   r
   r   r   r   r    )r   r!   r"   r   r   r   Útest_backwards_flowC   s&    r)   c              C   sè   t ddddddgddddddgddddddgdddddd	gdddd
ddgddddddggƒ} t| ddƒ}|jdksvt‚tjddddddgddddddgddddddgddddddgdddd
ddgddddddggƒ}t|jjƒ |ƒ d S )Nr   é   é   r&   é   é   é   é	   r(   r'   r   é   é   é   iôÿÿÿiõÿÿÿiôÿÿÿiùÿÿÿiõÿÿÿiíÿÿÿéüÿÿÿ)	r   r   r   r   r
   r   r   r   r    )r   r!   r"   r   r   r   Ú#test_example_from_clrs_chapter_26_1]   s    r4   c              C   sn   t ddddgddddgddddgddddggƒ} t| ddƒ}|jdksJt‚tjdtjd}t|jj	ƒ |ƒ d S )Nr   r   r/   r   r-   )r   )r-   r-   )
r   r   r   r   r
   ZzerosZint32r   r   r    )r   r!   r"   r   r   r   Útest_disconnected_graphr   s    

r5   éÿÿÿÿr6   )Znumpyr
   Znumpy.testingr   r   Zscipy.sparser   r   Zscipy.sparse.csgraphr   r   r   r   r   ÚmarkZparametrizer   r   r#   r%   r)   r4   r5   r   r   r   r   Ú<module>   s   

