
    h	                     x    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y)
    )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y)TestAtlasGraphz:Unit tests for the :func:`~networkx.graph_atlas` function.c                 v    t        j                  t              5  t        d       d d d        y # 1 sw Y   y xY w)N)pytestraises
ValueErrorr   selfs    a/var/www/django_project/virt/lib/python3.12/site-packages/networkx/generators/tests/test_atlas.pytest_index_too_smallz#TestAtlasGraph.test_index_too_small   s*    ]]:& 	O	 	 	s   /8c                 ~    t        j                  t              5  t        t               d d d        y # 1 sw Y   y xY wN)r   r   r   r   r   r   s    r   test_index_too_largez#TestAtlasGraph.test_index_too_large   s+    ]]:& 	$
#	$ 	$ 	$s   3<c                     t        d      }t        |j                         t        d            sJ t	        |j                         ddg      sJ y )N      )r      )r      )r   r   nodesranger   edgesr   Gs     r   
test_graphzTestAtlasGraph.test_graph   s@    N1779eAh///1779vv&6777    N)__name__
__module____qualname____doc__r   r   r"    r#   r   r   r      s    D$8r#   r   c                   >    e Zd ZdZed        Zd Zd Zd Zd Z	d Z
y)	TestAtlasGraphGz<Unit tests for the :func:`~networkx.graph_atlas_g` function.c                 "    t               | _        y r   )r   GAG)clss    r   setup_classzTestAtlasGraphG.setup_class   s    /r#   c                     | j                   d   }|j                         dk(  sJ |j                         dk(  sJ | j                   d   }|j                         dk(  sJ |j                         dk(  sJ y )Nr      r   )r,   number_of_nodesnumber_of_edgesr    s     r   
test_sizeszTestAtlasGraphG.test_sizes#   sx    HHQK  "a'''  "a'''HHQK  "a'''  "a'''r#   c                 x    t        | j                        D ]"  \  }}t        |j                  dd        |k(  r"J  y Nr   )	enumerater,   intname)r   ir!   s      r   
test_nameszTestAtlasGraphG.test_names,   s:    dhh' 	(DAqqvvabz?a'''	(r#   c                 n    t        t        t        | j                              D ]  \  }}||dz   k  rJ  y r5   )r	   maplenr,   )r   n1n2s      r   test_nondecreasing_nodesz(TestAtlasGraphG.test_nondecreasing_nodes0   s5    s312 	 FBa<<	 r#   c                     t        | j                  t        j                        D ]:  \  }}t	        t        t        j                  |            D ]  \  }}||dz   k  rJ  < y )Nkeyr   )r   r,   nxr1   r	   r<   r2   )r   ngroupm1m2s        r   test_nondecreasing_edgesz(TestAtlasGraphG.test_nondecreasing_edges5   s]      b.@.@A 	$HAu"3r'9'95#AB $BR!V|#|$	$r#   c                    g d}t        | j                  t        j                        D ]  \  }}t        |t        j                        D ]z  \  }}t        |      D ]g  \  }}|j                  |j                  f|v r!t        d |j                         D              }t        d |j                         D              }||k  rgJ  |  y )N))G55G56)G1007G1008)G1012G1013rB   c              3   &   K   | ]	  \  }}|  y wr   r(   .0vds      r   	<genexpr>zETestAtlasGraphG.test_nondecreasing_degree_sequence.<locals>.<genexpr>I        :da:   c              3   &   K   | ]	  \  }}|  y wr   r(   rR   s      r   rV   zETestAtlasGraphG.test_nondecreasing_degree_sequence.<locals>.<genexpr>J   rW   rX   )	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
b.@.@A 	$HAu#Er/A/AB $5&uo $FB)Z7 :biik::B:biik::B8O8$$	$r#   N)r$   r%   r&   r'   classmethodr.   r3   r:   r@   rI   rb   r(   r#   r   r*   r*      s0    F" "(( 
$$r#   r*   )	itertoolsr   r   networkxrD   r   r   networkx.generators.atlasr   networkx.utilsr   r   r	   r   r*   r(   r#   r   <module>rh      s.       / 0 = =8 8"/$ /$r#   