Ë
    ©Ó^jv'  ã                   ó
  — d Z ddlmZ ddlZddlZddlmZ d„ Zej                  j                  dej                  ej                  f«      d„ «       Z G d„ d	«      Z G d
„ d«      Z G d„ d«      Z G d„ d«      Z G d„ d«      Zy)z=Unit tests for the :mod:`networkx.generators.lattice` module.é    )ÚproductN)Úedges_equalc                  ó|   — t        j                  ddd¬«      } t        d„ | j                  d¬«      D «       «      sJ ‚y )Né   F)Úwith_positionsc              3   ó*   K  — | ]  \  }}|d u –— Œ y ­w©N© )Ú.0Ú_Úposs      úq/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/networkx/generators/tests/test_lattice.pyú	<genexpr>z0test_hexagonal_lattice_no_pos.<locals>.<genexpr>   s   è ø€ Ò=™v˜q #ˆs�dŒ{Ñ=ùs   ‚r   ©Údata)ÚnxÚhexagonal_lattice_graphÚallÚnodes)ÚGs    r   Útest_hexagonal_lattice_no_posr      s5   € ä
×"Ñ" 1 a¸Ô>€AÜÑ=¨¯©°e¨Ó)<Ô=Ô=Ð=Ñ=ó    Úlattice_graphc                 ó¬   —  | dddd¬«      }t        d„ |j                  d¬«      D «       «      sJ ‚t        d„ |j                  d¬«      D «       «      sJ ‚y)	zÍhexagonal_lattice_graph and triangular_lattice_graph use nx.contracted_nodes
    under-the-hood when periodic=True. Check that there are no leftover
    "contraction" node attributes on the returned graph.r   FT)r   Úperiodicc              3   ó,   K  — | ]  \  }}|i k(  –— Œ y ­wr	   r
   ©r   r   r   s      r   r   z;test_2D_lattice_no_contraction_leftovers.<locals>.<genexpr>   s   è ø€ Ò<™g˜a ˆt�r�zÑ<ùs   ‚r   c              3   ó.   K  — | ]  \  }}}|i k(  –— Œ y ­wr	   r
   r   s      r   r   z;test_2D_lattice_no_contraction_leftovers.<locals>.<genexpr>   s   è ø€ Ò?™j˜a  Dˆt�r�zÑ?ùs   ‚N)r   r   Úedges)r   r   s     r   Ú(test_2D_lattice_no_contraction_leftoversr       sR   € ñ 	�a˜¨5¸4Ô@€AÜÑ<¨¯©°d¨Ó);Ô<Ô<Ð<Ð<ÜÑ?¨A¯G©G¸¨GÓ,>Ô?Ô?Ð?Ñ?r   c                   óL   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zy)ÚTestGrid2DGraphz@Unit tests for :func:`networkx.generators.lattice.grid_2d_graph`c                 ó`   — d\  }}t        j                  ||«      }t        |«      ||z  k(  sJ ‚y )N©é   r   )r   Úgrid_2d_graphÚlen)ÚselfÚmÚnr   s       r   Útest_number_of_verticesz'TestGrid2DGraph.test_number_of_vertices    s1   € Ø‰ˆˆ1Ü×Ñ˜Q Ó"ˆÜ�1‹v˜˜Q™ŠÐ‰r   c                 ó    — d\  }}t        j                  ||«      }dddd||z   z  dz
  |dz
  |dz
  z  g}t        j                  |«      |k(  sJ ‚y )Nr$   r   é   é   é   )r   r&   Údegree_histogram)r(   r)   r*   r   Úexpected_histograms        r   Útest_degree_distributionz(TestGrid2DGraph.test_degree_distribution%   sa   € Ø‰ˆˆ1Ü×Ñ˜Q Ó"ˆØ  A q¨A°©E¡{°Q¡¸¸Q¹À1ÀqÁ5Ñ8IÐJÐÜ×"Ñ" 1Ó%Ð);Ò;Ð;Ñ;r   c                 óú   — d\  }}t        j                  ||«      }t        j                  ||t        j                  «       ¬«      }|j                  |j                  k(  sJ ‚|j
                  |j                  k(  sJ ‚y ©Nr$   ©Úcreate_using©r   r&   ÚDiGraphÚsuccÚadjÚpred©r(   r)   r*   r   ÚHs        r   Útest_directedzTestGrid2DGraph.test_directed+   s_   € Ø‰ˆˆ1Ü×Ñ˜Q Ó"ˆÜ×Ñ˜Q ´·
±
³Ô=ˆØ�v‰v˜Ÿ™ŠÐˆØ�v‰v˜Ÿ™ŠÐ‰r   c                 óø   — d\  }}t        j                  ||«      }t        j                  ||t        j                  «       ¬«      }t        |j	                  «       «      t        |j	                  «       «      k(  sJ ‚y r4   ©r   r&   Ú
MultiGraphÚlistr   r<   s        r   Útest_multigraphzTestGrid2DGraph.test_multigraph2   sY   € Ø‰ˆˆ1Ü×Ñ˜Q Ó"ˆÜ×Ñ˜Q ´·±³Ô@ˆÜ�A—G‘G“I‹¤$ q§w¡w£y£/Ò1Ð1Ñ1r   c           
      ó$  — t        j                  ddd¬«      }t        |j                  «       «      i k(  sJ ‚ddt        j                  d«      fddt        j                  d«      fddt        j                  d«      fddt        j
                  d«      fddt        j
                  d«      fddt        j                  «       fddt        j                  «       ffD ]6  \  }}}t        j                  ||d¬«      }t        j                  ||«      rŒ6J ‚ y )	Nr   T©r   r.   r-   é   é   r%   )r   r&   ÚdictÚdegreeÚcycle_graphÚcircular_ladder_graphÚcubical_graphÚcould_be_isomorphic)r(   r   r)   r*   r=   s        r   Útest_periodiczTestGrid2DGraph.test_periodic8   sý   € Ü×Ñ˜Q ¨DÔ1ˆÜ�A—H‘H“JÓ 2Ò%Ð%Ð%ð �”2—>‘> !Ó$Ð%Ø�”2—>‘> !Ó$Ð%Ø�”2—>‘> !Ó$Ð%Ø�”2×+Ñ+¨AÓ.Ð/Ø�”2×+Ñ+¨AÓ.Ð/Ø�”2×#Ñ#Ó%Ð&Ø�”2×#Ñ#Ó%Ð&ð
ò 
	0‰GˆAˆq�!ô × Ñ   A°Ô5ˆAÜ×)Ñ)¨!¨QÕ/Ð/Ð/ñ
	0r   c                 óö   — d\  }}t        ddgddg«      D ]a  \  }}t        j                  ||||f¬«      }|j                  «       ||z  k(  sJ ‚|j	                  «       ||z   dz
  |z  ||z   dz
  |z  z   k(  rŒaJ ‚ y )N)é   rG   r   rF   rE   )r   r   r&   Únumber_of_nodesÚnumber_of_edges)r(   r)   r*   ÚaÚbr   s         r   Útest_periodic_iterablez&TestGrid2DGraph.test_periodic_iterableH   s–   € Ø‰ˆˆ1Ü˜Q ˜F Q¨ FÓ+ò 	L‰DˆAˆqÜ× Ñ   A°°A°Ô7ˆAØ×$Ñ$Ó&¨!¨a©%Ò/Ð/Ð/Ø×$Ñ$Ó&¨1¨q©5°1©9¸©/¸QÀ¹UÀQ¹YÈ!¹OÑ*KÓKÐKÐKñ	Lr   c                 óö   — t        j                  ddd¬«      }t        j                  dddt        j                  «       ¬«      }|j                  |j                  k(  sJ ‚|j
                  |j                  k(  sJ ‚y ©Nr-   r.   TrE   )r   r6   r7   ©r(   r   r=   s      r   Útest_periodic_directedz&TestGrid2DGraph.test_periodic_directedO   sZ   € Ü×Ñ˜Q ¨DÔ1ˆÜ×Ñ˜Q ¨D¼r¿z¹z»|ÔLˆØ�v‰v˜Ÿ™ŠÐˆØ�v‰v˜Ÿ™ŠÐ‰r   c                 óô   — t        j                  ddd¬«      }t        j                  dddt        j                  «       ¬«      }t        |j	                  «       «      t        |j	                  «       «      k(  sJ ‚y rW   r@   rX   s      r   Útest_periodic_multigraphz(TestGrid2DGraph.test_periodic_multigraphU   sT   € Ü×Ñ˜Q ¨DÔ1ˆÜ×Ñ˜Q ¨D¼r¿}¹}»ÔOˆÜ�A—G‘G“I‹¤$ q§w¡w£y£/Ò1Ð1Ñ1r   c                 ó|  — t        j                  t        j                  t        j                  dd«       t        j                  t        j                  t        j                  dd«       t        j                  t
        t        j                  dd«       t        j                  t
        t        j                  dd«       y )Néýÿÿÿr.   rP   éþÿÿÿgffffff
@gš™™™™™@)ÚpytestÚraisesr   ÚNetworkXErrorr&   Ú	TypeError)r(   s    r   Útest_exceptionszTestGrid2DGraph.test_exceptionsZ   sn   € Ü�‰”b×&Ñ&¬×(8Ñ(8¸"¸aÔ@Ü�‰”b×&Ñ&¬×(8Ñ(8¸!¸RÔ@Ü�‰”i¤×!1Ñ!1°3¸Ô:Ü�‰”i¤×!1Ñ!1°1°cÕ:r   c                 ó°  — t        j                  ddd¬«      }t        j                  t        d«      t        d«      d¬«      }t        j                  ||«      sJ ‚t        j                  ddd¬«      }t        j                  ||«      sJ ‚t        j                  dd«      }t        j                  t        d«      t        d«      «      }t	        ||«      sJ ‚y )	Nr-   r.   TrE   ÚabcdÚefr%   r   )r   r&   ÚrangeÚis_isomorphicr   rX   s      r   Útest_node_inputzTestGrid2DGraph.test_node_input`   s®   € Ü×Ñ˜Q ¨DÔ1ˆÜ×ÑœU 1›X¤u¨Q£x¸$Ô?ˆÜ×Ñ  1Ô%Ð%Ð%Ü×Ñ˜V T°DÔ9ˆÜ×Ñ  1Ô%Ð%Ð%Ü×Ñ˜Q Ó"ˆÜ×ÑœU 1›X¤u¨Q£xÓ0ˆÜ˜1˜aÔ Ð Ñ r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r+   r2   r>   rC   rN   rU   rY   r[   rc   ri   r
   r   r   r"   r"      s8   „ ÙJòò
<òò2ò0ò Lòò2ò
;ó!r   r"   c                   ó"   — e Zd ZdZd„ Zd„ Zd„ Zy)ÚTestGridGraphz=Unit tests for :func:`networkx.generators.lattice.grid_graph`c           	      ó”  — dD ]b  \  }}||g}t        j                  |«      }t        |«      ||z  k(  sJ ‚t        j                  |«      dddd||z   z  dz
  |dz
  |dz
  z  gk(  rŒbJ ‚ dD ]\  \  }}||g}t        j                  |«      }t        |«      ||z  k(  sJ ‚t        j                  |t        j
                  d«      «      rŒ\J ‚ y)	z´grid_graph([n,m]) is a connected simple graph with the
        following properties:
        number_of_nodes = n*m
        degree_histogram = [0,0,4,2*(n+m)-8,(n-2)*(m-2)]
        )©rP   r%   )r%   rP   ©r-   r%   )r%   r-   r   r-   r.   r/   ))rF   r%   )r%   rF   r%   N)r   Ú
grid_graphr'   r0   rh   Ú
path_graph)r(   r*   r)   ÚdimÚgs        r   Útest_grid_graphzTestGridGraph.test_grid_graphn   së   € ð 5ò 
	‰DˆAˆqØ�a�&ˆCÜ—‘˜cÓ"ˆAÜ�q“6˜Q ™U’?Ð"�?Ü×&Ñ& qÓ)ØØØØ�Q˜‘U‘˜a‘Ø�Q‘˜1˜q™5Ñ!ð.ó ð ð ð	
	ð %ò 	9‰DˆAˆqØ�a�&ˆCÜ—‘˜cÓ"ˆAÜ�q“6˜Q ™U’?Ð"�?Ü×#Ñ# A¤r§}¡}°QÓ'7Õ8Ð8Ð8ñ		9r   c                 óÔ   — t        j                  t        dd«      t        dd«      g«      }t        |«      dk(  sJ ‚t        j                  |t        j                  ddg«      «      sJ ‚y )NrG   é	   rP   r   r.   )r   rs   rg   r'   rh   )r(   r   s     r   ri   zTestGridGraph.test_node_input‰   sT   € Ü�M‰Mœ5  A›;¬¨a°«Ð4Ó5ˆÜ�1‹v˜ŠÐˆÜ×Ñ ¤2§=¡=°!°Q°Ó#8Ô9Ð9Ñ9r   c                 ó:  — d\  }}}t        ddgddgddg«      D ]  \  }}}t        j                  |||g|||f¬«      }||z   dz
  |z  |z  ||z   dz
  |z  |z  z   ||z   dz
  |z  |z  z   }|j                  «       ||z  |z  k(  sJ ‚|j	                  «       |k(  rŒJ ‚ y )N)rP   rG   r%   r   rF   rE   )r   r   rs   rQ   rR   )	r(   r)   r*   ÚkrS   rT   Úcr   Únum_es	            r   rU   z$TestGridGraph.test_periodic_iterableŽ   sÌ   € Ø‰ˆˆ1ˆaÜ  1˜v¨¨1 v°°1¨vÓ6ò 	0‰GˆAˆq�!Ü—‘˜q ! Q˜i°1°a¸°)Ô<ˆAØ˜‘U˜Q‘Y !‘O aÑ'¨1¨q©5°1©9¸©/¸AÑ*=Ñ=ÀÀQÁÈÁÈaÁÐRSÑ@SÑSˆEØ×$Ñ$Ó&¨!¨a©%°!©)Ò3Ð3Ð3Ø×$Ñ$Ó&¨%Ó/Ð/Ð/ñ		0r   N)rj   rk   rl   rm   rw   ri   rU   r
   r   r   ro   ro   k   s   „ ÙGò9ò6:ó
0r   ro   c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚTestHypercubeGraphzBUnit tests for :func:`networkx.generators.lattice.hypercube_graph`c                 ó  — dt        j                  «       fdt        j                  d«      fdt        j                  d«      fdt        j                  «       ffD ]2  \  }}t        j
                  |«      }t        j                  ||«      rŒ2J ‚ y )Nr   rF   r.   r-   rP   )r   Ú
null_graphrt   rJ   rL   Úhypercube_graphrM   )r(   r*   r=   r   s       r   Útest_special_casesz%TestHypercubeGraph.test_special_casesš   s€   € à”—‘“Ð Ø”—‘˜aÓ Ð!Ø”—‘˜qÓ!Ð"Ø”× Ñ Ó"Ð#ð	
ò 	0‰DˆAˆqô ×"Ñ" 1Ó%ˆAÜ×)Ñ)¨!¨QÕ/Ð/Ð/ñ	0r   c                 óž   — t        dd«      D ]>  }t        j                  |«      }dg|z  d|z  gz   }t        j                  |«      |k(  rŒ>J ‚ y )NrF   é
   r   r.   )rg   r   r‚   r0   )r(   r*   r   r1   s       r   r2   z+TestHypercubeGraph.test_degree_distribution¤   sZ   € Ü�q˜"“ò 	@ˆAÜ×"Ñ" 1Ó%ˆAØ"#  q¡¨A¨q©D¨6Ñ!1ÐÜ×&Ñ& qÓ)Ð-?Ó?Ð?Ð?ñ	@r   N)rj   rk   rl   rm   rƒ   r2   r
   r   r   r   r   —   s   „ ÙLò0ó@r   r   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚTestTriangularLatticeGraphzFTests for :func:`networkx.generators.lattice.triangular_lattice_graph`c                 ó–  — dD ]K  \  }}t        j                  ||«      }|dz   dz  }t        |«      |dz   d|z   z  |dz  |dz   dz  z  z
  k(  rŒKJ ‚ j                  «       D ]f  \  }}|||f   }|k  r|dz   |f|v sJ ‚|k  r||dz   f|v sJ ‚||k  sŒ3|dkD  s|dz  sŒ>||k  s	|dz   dz  sŒL|dz   |dz   f|v rŒY|dz
  |dz   f|v rŒfJ ‚ y)z4Tests that the graph is really a triangular lattice.)©r.   rP   ©r.   r.   ©r.   rF   ©rP   rP   ©rP   r.   ©rP   r-   rF   r.   r   N)r   Útriangular_lattice_graphr'   r   )r(   r)   r*   r   ÚNÚiÚjÚnbrss           r   Útest_lattice_pointsz.TestTriangularLatticeGraph.test_lattice_points®   s  € àDò 	J‰DˆAˆqÜ×+Ñ+¨A¨qÓ1ˆAØ�Q‘˜1‘ˆAÜ�q“6˜a !™e¨¨A©Ñ.°!°a±%¸QÀ¹UÀq¹LÑ1IÑIÓIÐIÐIð	Jð —G‘G“Iò 	H‰DˆAˆqØ�a˜�V‘9ˆDØ�1ŠuØ˜A™˜q�z TÑ)Ð)Ð)Ø�1ŠuØ˜1˜q™5�z TÑ)Ð)Ð)Ø�1‹u˜!˜aš% 1 q£5¨q°1ªu¸¸Q¹À!»Ø˜A™˜q 1™u�~¨Ò-°!°a±%¸¸Q¹°À4Ò1GÐGÐGñ	Hr   c                 óL  — t        j                  ddt        j                  «       ¬«      }t        j                  ddt        j                  «       ¬«      }|j	                  «       sJ ‚|j                  «       D ]+  \  }}|d   |d   k\  sJ ‚|d   |d   k(  sŒ|d   |d   kD  rŒ+J ‚ y)z1Tests for creating a directed triangular lattice.rP   r-   r5   rF   r   N)r   r�   ÚGraphr8   Úis_directedr   )r(   r   r=   ÚuÚvs        r   r>   z(TestTriangularLatticeGraph.test_directed½   s”   € ä×'Ñ'¨¨1¼2¿8¹8»:ÔFˆÜ×'Ñ'¨¨1¼2¿:¹:»<ÔHˆØ�}‰}ŒÐˆØ—G‘G“Iò 	#‰DˆAˆqØ�Q‘4˜1˜Q™4’<Ð�<Ø�‰t�q˜‘t‹|Ø˜‘t˜a ™d“{Ð"�{ñ	#r   c                 ó  — t        j                  ddt        j                  «       ¬«      }t        j                  ddt        j                  «       ¬«      }t	        |j                  «       «      t	        |j                  «       «      k(  sJ ‚y)z3Tests for creating a triangular lattice multigraph.rP   r-   r5   N)r   r�   r–   rA   rB   r   rX   s      r   rC   z*TestTriangularLatticeGraph.test_multigraphÇ   sX   € ä×'Ñ'¨¨1¼2¿8¹8»:ÔFˆÜ×'Ñ'¨¨1¼2¿=¹=»?ÔKˆÜ�A—G‘G“I‹¤$ q§w¡w£y£/Ò1Ð1Ñ1r   c                 ó8  — t        j                  ddd¬«      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚t        |j	                  «       D ��cg c]  \  }}|dk7  sŒ|‘Œ c}}«      dk(  sJ ‚t        j                  dd	d¬«      }t         j                  }t        j                  t         j                  |d
dd¬«       t        j                  t         j                  |ddd¬«       t        j                  t         j                  |d
dd¬«       y c c}}w )Nr-   r   TrE   é   é$   r   r%   rG   r.   )r   r�   r'   ÚsizerI   r_   r`   ra   )r(   r   r*   ÚdÚTLGs        r   rN   z(TestTriangularLatticeGraph.test_periodicÍ   sØ   € Ü×'Ñ'¨¨1°tÔ<ˆÜ�1‹v˜Š|Ðˆ|Ø�v‰v‹x˜2Š~Ðˆ~ä !§(¡(£*×7™$˜!˜Q°°Q³’AÓ7Ó8¸AÒ=Ð=Ð=Ü×'Ñ'¨¨1°tÔ<ˆÜ×)Ñ)ˆÜ�‰”b×&Ñ&¨¨Q°¸DÕAÜ�‰”b×&Ñ&¨¨Q°¸DÕAÜ�‰”b×&Ñ&¨¨Q°¸DÖAùó 8ó   ÁD
Á$D
N©rj   rk   rl   rm   r”   r>   rC   rN   r
   r   r   r‡   r‡   «   s   „ ÙLòHò#ò2ó
Br   r‡   c                   ó(   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zy)ÚTestHexagonalLatticeGraphzETests for :func:`networkx.generators.lattice.hexagonal_lattice_graph`c                 ó*  — dD ]:  \  }}t        j                  ||«      }t        |«      d|dz   z  |dz   z  dz
  k(  rŒ:J ‚ t        j                  d«      }g d¢g d¢g d¢g d¢g d	¢g}|D ])  }t        j                  j                  |«      |«      rŒ)J ‚ y
)z3Tests that the graph is really a hexagonal lattice.)rr   )r-   r-   )r-   rP   r�   rŒ   rq   r.   rF   r   ))r   r   )r   rF   ©r   r.   )rF   r   ©rF   rF   ©rF   r.   )r¦   )r   rP   )r   r-   r¨   ©rF   rP   )rF   r-   )r§   r¨   r©   r‹   rŠ   r‰   ))r.   r   r‹   rŠ   )rP   r   )rP   rF   r�   )rŠ   r‰   )r.   r-   r�   rŒ   rŽ   N)r   r   r'   rJ   rh   Úsubgraph)r(   r)   r*   r   ÚC_6ÚhexagonsÚhexagons          r   r”   z-TestHexagonalLatticeGraph.test_lattice_pointsÝ   s¥   € àDò 	7‰DˆAˆqÜ×*Ñ*¨1¨aÓ0ˆAÜ�q“6˜Q ! a¡%™[¨A°©EÑ2°QÑ6Ó6Ð6Ð6ð	7ô �n‰n˜QÓˆâ<Ú<Ú<Ú<Ú<ð
ˆð  ò 	>ˆGÜ×#Ñ# A§J¡J¨wÓ$7¸Õ=Ð=Ð=ñ	>r   c                 óœ  — t        j                  ddt        j                  «       ¬«      }t        j                  ddt        j                  «       ¬«      }|j	                  «       sJ ‚t        j
                  |d«      }|j                  «       D ]=  \  }}||   d   ||   d   k\  sJ ‚||   d   ||   d   k(  sŒ+||   d   ||   d   kD  rŒ=J ‚ y)z0Tests for creating a directed hexagonal lattice.rP   r%   r5   r   rF   r   N)r   r   r–   r8   r—   Úget_node_attributesr   )r(   r   r=   r   r˜   r™   s         r   r>   z'TestHexagonalLatticeGraph.test_directedí   sÃ   € ä×&Ñ& q¨!¼"¿(¹(»*ÔEˆÜ×&Ñ& q¨!¼"¿*¹*»,ÔGˆØ�}‰}ŒÐˆÜ×$Ñ$ Q¨Ó.ˆØ—G‘G“Iò 	-‰DˆAˆqØ�q‘6˜!‘9  A¡ q¡	Ò)Ð)Ð)Ø�1‰v�a‰y˜C ™F 1™IÓ%Ø˜1‘v˜a‘y 3 q¡6¨!¡9Ó,Ð,Ð,ñ	-r   c                 ó  — t        j                  ddt        j                  «       ¬«      }t        j                  ddt        j                  «       ¬«      }t	        |j                  «       «      t	        |j                  «       «      k(  sJ ‚y)z2Tests for creating a hexagonal lattice multigraph.rP   r%   r5   N)r   r   r–   rA   rB   r   rX   s      r   rC   z)TestHexagonalLatticeGraph.test_multigraphø   sX   € ä×&Ñ& q¨!¼"¿(¹(»*ÔEˆÜ×&Ñ& q¨!¼"¿-¹-»/ÔJˆÜ�A—G‘G“I‹¤$ q§w¡w£y£/Ò1Ð1Ñ1r   c                 ó8  — t        j                  ddd¬«      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚t        |j	                  «       D ��cg c]  \  }}|dk7  sŒ|‘Œ c}}«      dk(  sJ ‚t        j                  d	d
d¬«      }t         j                  }t        j                  t         j                  |ddd¬«       t        j                  t         j                  |ddd¬«       t        j                  t         j                  |ddd¬«       y c c}}w )Nr-   r   TrE   é0   éH   rP   r   r%   r/   r.   rG   rF   )r   r   r'   rž   rI   r_   r`   ra   )r(   r   r*   rŸ   ÚHLGs        r   rN   z'TestHexagonalLatticeGraph.test_periodicþ   sØ   € Ü×&Ñ& q¨!°dÔ;ˆÜ�1‹v˜Š|Ðˆ|Ø�v‰v‹x˜2Š~Ðˆ~ä !§(¡(£*×7™$˜!˜Q°°Q³’AÓ7Ó8¸AÒ=Ð=Ð=Ü×&Ñ& q¨!°dÔ;ˆÜ×(Ñ(ˆÜ�‰”b×&Ñ&¨¨Q°¸DÕAÜ�‰”b×&Ñ&¨¨Q°¸DÕAÜ�‰”b×&Ñ&¨¨Q°¸DÖAùó 8r¡   Nr¢   r
   r   r   r¤   r¤   Ú   s   „ ÙKò>ò 	-ò2ó
Br   r¤   )rm   Ú	itertoolsr   r_   Únetworkxr   Únetworkx.utilsr   r   ÚmarkÚparametrizer�   r   r    r"   ro   r   r‡   r¤   r
   r   r   ú<module>rº      s‘   ðÙ Cå ã ã Ý &ò>ð ‡�×ÑØ�b×1Ñ1°2×3MÑ3MÐNóñ@óð@÷K!ñ K!÷\)0ñ )0÷X@ñ @÷(,Bñ ,B÷^.Bò .Br   