U
    h                     @   s   d dl Z d dlZdd Zdd Zdd Zdd	 Zd
d ZG d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 )    Nc                  C   s\   d} d}t dD ]F}t| |}dd | D }tj|ddsDttj|ddstqd S )	Nd   g333333?
   c                 s   s   | ]\}}|V  qd S N .0ndr   r   L/tmp/pip-unpacked-wheel-j2te_plx/networkx/algorithms/tests/test_graphical.py	<genexpr>   s     z.test_valid_degree_sequence1.<locals>.<genexpr>egmethodhh)rangenxerdos_renyi_graphdegreeis_graphicalAssertionError)r   piGdegr   r   r
   test_valid_degree_sequence1   s    r   c                  C   sX   d} t dD ]F}t| d}dd | D }tj|dds@ttj|ddstqd S )	Nr   r      c                 s   s   | ]\}}|V  qd S r   r   r   r   r   r
   r      s     z.test_valid_degree_sequence2.<locals>.<genexpr>r   r   r   )r   r   Zbarabasi_albert_graphr   r   r   )r   r   r   r   r   r   r
   test_valid_degree_sequence2   s    r   c                   C   sD   t tjtjg d t tjtjdgd t tjtjdgd d S )NZfooZredr   r   pytestraisesr   NetworkXExceptionr   r   r   r   r
   test_string_input   s    r!   c                   C   s0   t tjtjdgd t tjtjdgd d S )Ng      R@r   r   r   r   r   r   r
   test_non_integer_input   s    r"   c                   C   s(   t dgdrtt dgdr$td S )Nr   r   r   r   r   r   r   r   r
   test_negative_input$   s    r%   c                   @   s    e Zd Zedd Zdd ZdS )	TestAtlasc                 C   s   ddl ma t | _d S )Nr   )atlas)Znetworkx.generatorsr'   Zgraph_atlas_gGAG)clsr   r   r
   setup_class*   s    zTestAtlas.setup_classc                 C   sF   | j D ]:}dd | D }tj|dds.ttj|ddstqd S )Nc                 s   s   | ]\}}|V  qd S r   r   r   r   r   r
   r   3   s     z'TestAtlas.test_atlas.<locals>.<genexpr>r   r   r   )r(   r   r   r   r   )selfgraphr   r   r   r
   
test_atlas1   s    
zTestAtlas.test_atlasN)__name__
__module____qualname__classmethodr*   r-   r   r   r   r
   r&   )   s   
r&   c                  C   s   dddddddddddg} t j| dds,tt j| dds>tdddddddddddg} t j| ddsjtt j| dds|tdddddddddd	g
} t j| ddstt j| ddstd S )
N         r   r   r   r   r      r$   zr   r   r
   test_small_graph_true8   s    r8   c                  C   s   dddddddddddg} t j| ddr,tt j| ddr>tdd	d
d
ddddg} t j| ddrdtt j| ddrvtddddddddddd
g} t j| ddrtt j| ddrtd S )N  r3   r4   r   r   r   r      r2   r5   r$   r6   r   r   r
   test_small_graph_falseD   s    r;   c                  C   sn   d\} }d| }t |D ]P}t| ||d  d d}dd | D }dd | D }t||stqd S )N)r   r   g      ?r   Tc                 s   s   | ]\}}|V  qd S r   r   r   r   r   r
   r   V   s     z0test_directed_degree_sequence.<locals>.<genexpr>c                 s   s   | ]\}}|V  qd S r   r   r   r   r   r
   r   W   s     )r   r   r   Z	in_degreeZ
out_degreeis_digraphicalr   )r   rr   r   r   dindoutr   r   r
   test_directed_degree_sequenceP   s    r@   c                  C   sd  dddddddddddg} dddddddddddg}t || sDtdddddddddddg} ddddddddddg
}t || rtddddddddddg
} ddddddddddg
}t || stdddddddddddg}t || rtdddd	dddddddg}t || rtddd
dg }} t || r>tddddg }} t || r`td S )Nr2   r3   r4   r   r9   g   f   r5   皙?rer)r   r<   r   )r?   r>   r   r   r
   test_small_directed_sequences[   s"    rF   c                  C   s   ddddddddddg
} t | r&tddddddddg} t | sHtddddddddg} t | rjtdddddddddddg} t | rtddd	dg} t | rtddd
dg} t | rtd S )Nr9   r3   r4   r   r:   r2   r5   rD   rE   )r   Zis_multigraphicalr   seqr   r   r
   test_multi_sequencet   s    rJ   c                  C   s   ddddddddddg
} t | s&tdddddddddddg} t | rNtddddddddddg
} t | rttddddg} t | rtddddg} t | rtd S )Nr9   r3   r4   r   rC   rD   rE   )r   Zis_pseudographicalr   rH   r   r   r
   test_pseudo_sequence   s    rK   c                  C   s   t d} | jdddddg| jd}t|ds4tt|dsDt| jdddddg| jd}t|dsntt|ds~t| jdddddg| jd}t tj	tj|d t tj	tj|d d S )NZnumpyr   r4   )Zdtyper   r   rD   )
r   ZimportorskiparrayZint64r   r   r   Zfloat64r   r    )npZdsr   r   r
   test_numpy_degree_sequence   s    
rN   )r   Znetworkxr   r   r   r!   r"   r%   r&   r8   r;   r@   rF   rJ   rK   rN   r   r   r   r
   <module>   s   
	