3
Md"                 @   s^   d Z ddlZddlZddlZejdZejd ejdZdejd< ddl	Z
G dd	 d	ZdS )
z,Unit tests for matplotlib drawing functions.    NZ
matplotlibZPSzmatplotlib.pyplotFztext.usetexc               @   s   e Zd Ze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d Zdd Zdd ZdS )	TestPylabc             C   s   t jdd| _d S )N      )nxZbarbell_graphG)cls r   S/var/www/html/virt/lib/python3.6/site-packages/networkx/drawing/tests/test_pylab.pysetup_class   s    zTestPylab.setup_classc             C   s   zdt jt jt jt jt jt jt jg}ddddg}x0tj	||D ] \}}|| j
f| tjd q>W W d ytjd W n tk
r   Y nX X d S )Nblackd      )
node_color	node_sizewidthztest.ps)r   Zdraw_circularZdraw_kamada_kawaiZdraw_planarZdraw_randomZdraw_spectraldraw_spring
draw_shell	itertoolsproductr   pltsavefigosunlinkOSError)selfZ	functionsoptionsfunctionoptionr   r   r	   	test_draw   s     zTestPylab.test_drawc             C   sp   zDt tdt tddt tddg}tj| j|d tjd W d ytjd W n t	k
rh   Y nX X d S )Nr   
      )nlistztest.ps)
listranger   r   r   r   r   r   r   r   )r   r!   r   r   r	   test_draw_shell_nlist)   s    &zTestPylab.test_draw_shell_nlistc             C   s,   t | jj }tj| j|dtjjdd d S )Nr   T)
edge_colorr   Z	edge_cmapZwith_labels)r#   r   Znumber_of_edgesr   r   r   cmZBlues)r   colorsr   r   r	   test_edge_colormap4   s    zTestPylab.test_edge_colormapc             C   s   t j| jj  d S )N)r   r   r   to_directed)r   r   r   r	   test_arrows;   s    zTestPylab.test_arrowsc          
   C   s  t j| j}x| j| jj fD ]}t j||d$gd t j|| t j||d%gd d d t j||d&d'gd	gd
gd t j||d(d)gdd	gd
dgd t j||d*d+d,d-gdd	gdddgd t j||d.gddd	dgd
dddgd t j||d/d0d1gd2d t j||d3d4gd5gd t j||d6d7d8d9gd:d t j||d;d<d=d>gd?gd t j||d@dAgddd t j||dBdCgdgd t j||dDgd d t j||dEdFgddgd!d"d# q W d S )GN      ?皙?      ?)r   r      )edgelistr   r%      r   rbr   gmck   r      皙?333333?)r/   r%      	           r            Zpurple)r/   r%   alphaz	#1f78b4f0g?g333333?)r/   r%   Z	edge_vminZ	edge_vmax)r+   r+   r,   r-   )r   r.   )r   r0   )r   r   )r   r0   )r   r   )r.   r0   )r.   r   )r0   r   )r   r   )r   r   )r   r7   )r7   r   )r   r8   )r+   r9   r:   )r8   r;   )r;   r<   )r9   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@   )r8   r;   )r;   r<   )r   circular_layoutr   r)   draw_networkx_nodesdraw_networkx_labelsdraw_networkx_edges)r   posr   r   r   r	   test_edge_colors_and_widths?   s`    




z%TestPylab.test_edge_colors_and_widthsc          
   C   sD  t j }t j|}t j||ddddgdddd t j||d	d
ddgddddddgd t j||ddd t j||d#d$d%d&gdddd t j||d'd(d)d*gdddd t j||d+d,d-d.gddddd i }d|d< d|d< d|d< d|d< d|d	< d|d
< d|d< d|d< t j|||dd t j||d dd  t j||d/d!id" d S )0Nr   r.   r0   r   r1   i  g      ?)nodelistr   r   rA   r   r7   r   r8   r2   g      ?g      ?g      ?)r   rA   r;   )r/   r   rA   r%   )r/   Zmin_source_marginZmin_target_marginr   r%   z$a$z$b$z$c$z$d$z$\alpha$z$\beta$z$\gamma$z$\delta$   )Z	font_sizeF)edge_labelsrotatez4-5)rJ   )r   r.   )r.   r0   )r0   r   )r   r   )r   r7   )r7   r   )r   r8   )r8   r   )r   r7   )r7   r   )r   r8   )r8   r   )r   r7   )r   Zcubical_graphZspring_layoutrC   rE   rD   Zdraw_networkx_edge_labels)r   r   rF   labelsr   r   r	   test_labels_and_colors   s\    




z TestPylab.test_labels_and_colorsc             C   s    t j \}}tj| j|d d S )N)ax)r   Zsubplotsr   drawr   )r   ZfigrN   r   r   r	   	test_axes   s    zTestPylab.test_axesc             C   s   t j }t j| d S )N)r   GraphrO   )r   r   r   r   r	   test_empty_graph   s    zTestPylab.test_empty_graphc             C   s   ddl m}m} tjd
dg}tjddg}tj|}ttj||g d|sPt	ttj||g d|sjt	ttj
||g dd|st	ttj
||g d	d|st	ttj
||g d	d|st	tj
||g ddg kst	d S )Nr   )PathCollectionLineCollectionr.   r0   r   )rH   T)r/   ZarrowsF)r.   r0   )r0   r   )r.   r0   )r0   r   )Zmatplotlib.collectionsrS   rT   r   rQ   ZDiGraphrB   
isinstancerC   AssertionErrorrE   )r   rS   rT   r   ZDGrF   r   r   r	   #test_draw_empty_nodes_return_values   s    
z-TestPylab.test_draw_empty_nodes_return_valuesc             C   s<   t jdt jd}t j|d	gd t j|d
gdddgd d S )Nr   )Zcreate_usingr   r.   )r/   r      )r/   r   )r   r.   r   )r   r.   r   )r   Z
path_graphZMultiDiGraphdraw_networkx)r   r   r   r   r	   test_multigraph_edgelist_tuples   s    z)TestPylab.test_multigraph_edgelist_tuplesc                s   t j| j}tjd t j| j|ddgd t| jj  fddt D }t }tjd t j| j|||d |j	d	 tjd
 t j| j||d d S )N   g?g?)rA   c                s   g | ]}|  qS r   r   ).0x)	num_nodesr   r	   
<listcomp>   s    z-TestPylab.test_alpha_iter.<locals>.<listcomp>   )r   rA   r.      )
r   Zrandom_layoutr   r   ZsubplotrC   lenZnodesr#   append)r   rF   rA   r'   r   )r^   r	   test_alpha_iter   s    



zTestPylab.test_alpha_iterc             C   s.   t jtdd tj| jdd W d Q R X d S )NzReceived invalid argument)matchbar)Zfoo)pytestZraises
ValueErrorr   rO   r   )r   r   r   r	   test_error_invalid_kwds   s    z!TestPylab.test_error_invalid_kwdsc             C   s(   t jd}tj| j|jddgd d S )NZnumpyr   r0   r   )r/   )r   r0   )r   r   )rg   importorskipr   rY   r   array)r   npr   r   r	   test_np_edgelist   s    
zTestPylab.test_np_edgelistN)__name__
__module____qualname__classmethodr
   r   r$   r(   r*   rG   rM   rP   rR   rW   rZ   rd   ri   rm   r   r   r   r	   r      s   N9r   )__doc__r   r   rg   rj   ZmplZuser   ZrcParamsZnetworkxr   r   r   r   r   r	   <module>   s   



