
    fi	                         d dl mZ d dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
mZmZ  G d d          Z G d d	          ZdS )
    )groupbyN)graph_atlasgraph_atlas_g)
NUM_GRAPHS)edges_equalnodes_equalpairwisec                   $    e Zd ZdZd Zd Zd ZdS )TestAtlasGraphz:Unit tests for the :func:`~networkx.graph_atlas` function.c                     t          j        t                    5  t          d           d d d            d S # 1 swxY w Y   d S )N)pytestraises
ValueErrorr   selfs    |/var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/networkx/generators/tests/test_atlas.pytest_index_too_smallz#TestAtlasGraph.test_index_too_small   s    ]:&& 	 	OOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   7;;c                     t          j        t                    5  t          t                     d d d            d S # 1 swxY w Y   d S N)r   r   r   r   r   r   s    r   test_index_too_largez#TestAtlasGraph.test_index_too_large   s    ]:&& 	$ 	$
###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   <A A c                     t          d          }t          |                                t          d                    sJ t	          |                                ddg          sJ d S )N      )r      )r      )r   r   nodesranger   edgesr   Gs     r   
test_graphzTestAtlasGraph.test_graph   sZ    NN17799eAhh/////17799vv&67777777    N)__name__
__module____qualname____doc__r   r   r"    r#   r   r   r      sG        DD  $ $ $8 8 8 8 8r#   r   c                   F    e Zd ZdZed             Zd Zd Zd Zd Z	d Z
dS )	TestAtlasGraphGz<Unit tests for the :func:`~networkx.graph_atlas_g` function.c                 ,    t                      | _        d S r   )r   GAG)clss    r   setup_classzTestAtlasGraphG.setup_class   s    //r#   c                 
   | j         d         }|                                dk    sJ |                                dk    sJ | j         d         }|                                dk    sJ |                                dk    sJ d S )Nr      r   )r,   number_of_nodesnumber_of_edgesr    s     r   
test_sizeszTestAtlasGraphG.test_sizes#   s    HQK  ""a''''  ""a''''HQK  ""a''''  ""a''''''r#   c                 ~    t          | j                  D ]'\  }}t          |j        dd                    |k    sJ (d S Nr   )	enumerater,   intname)r   ir!   s      r   
test_nameszTestAtlasGraphG.test_names,   sM    dh'' 	( 	(DAqqvabbz??a'''''	( 	(r#   c                 v    t          t          t          | j                            D ]\  }}||dz   k    sJ d S r5   )r	   maplenr,   )r   n1n2s      r   test_nondecreasing_nodesz(TestAtlasGraphG.test_nondecreasing_nodes0   sF    s31122 	  	 FBa<<<<<	  	 r#   c                     t          | j        t          j                  D ]=\  }}t	          t          t          j        |                    D ]\  }}||dz   k    sJ >d S )Nkeyr   )r   r,   nxr1   r	   r<   r2   )r   ngroupm1m2s        r   test_nondecreasing_edgesz(TestAtlasGraphG.test_nondecreasing_edges5   ss      b.@AAA 	$ 	$HAu"3r'95#A#ABB $ $BR!V|||||$	$ 	$r#   c                    g d}t          | j        t          j                  D ]\  }}t          |t          j                  D ]\  }}t          |          D ]t\  }}|j        |j        f|v rt          d |                                D                       }t          d |                                D                       }||k    sJ ud S )N))G55G56)G1007G1008)G1012G1013rB   c              3       K   | ]	\  }}|V  
d S r   r(   .0vds      r   	<genexpr>zETestAtlasGraphG.test_nondecreasing_degree_sequence.<locals>.<genexpr>I   &      ::da::::::r#   c              3       K   | ]	\  }}|V  
d S r   r(   rR   s      r   rV   zETestAtlasGraphG.test_nondecreasing_degree_sequence.<locals>.<genexpr>J   rW   r#   )	r   r,   rD   r1   r2   r	   r8   sorteddegree)	r   
exceptionsrE   rF   mG1G2d1d2s	            r   "test_nondecreasing_degree_sequencez2TestAtlasGraphG.test_nondecreasing_degree_sequence<   s     NMM
b.@AAA 	$ 	$HAu#Er/ABBB $ $5&uoo $ $FB)Z77 ::biikk:::::B::biikk:::::B88888$$	$ 	$r#   N)r$   r%   r&   r'   classmethodr.   r3   r:   r@   rI   ra   r(   r#   r   r*   r*      s~        FF" " ["( ( (( ( (     
$ $ $$ $ $ $ $r#   r*   )	itertoolsr   r   networkxrD   r   r   networkx.generators.atlasr   networkx.utilsr   r   r	   r   r*   r(   r#   r   <module>rg      s               / / / / / / / / 0 0 0 0 0 0 = = = = = = = = = =8 8 8 8 8 8 8 8"/$ /$ /$ /$ /$ /$ /$ /$ /$ /$r#   