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   Z/var/www/html/venv/lib/python3.8/site-packages/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foo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    r9   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  r4   r5   r   r   r   r      r3   r6   r%   r7   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    rA   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 )Nr3   r4   r5   r   r:   g   f   r6   皙?rer)r   r=   r   )r@   r?   r   r   r
   test_small_directed_sequences[   s"    rG   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 )Nr:   r4   r5   r   r;   r3   r6   rE   rF   )r   Zis_multigraphicalr   seqr   r   r
   test_multi_sequencet   s    rK   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 )Nr:   r4   r5   r   rD   rE   rF   )r   Zis_pseudographicalr   rI   r   r   r
   test_pseudo_sequence   s    rL   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 )Nnumpyr   r5   )Zdtyper   r   rE   )
r   ZimportorskiparrayZint64r   r   r   Zfloat64r    r!   )npZdsr   r   r
   test_numpy_degree_sequence   s    
rP   )r   Znetworkxr   r   r   r"   r#   r&   r'   r9   r<   rA   rG   rK   rL   rP   r   r   r   r
   <module>   s   
	