Ë
    D^(hÕ]  ã                   ó\   — d Z ddlZddlZddlZddlZddlmZ ddlm	Z	m
Z
 eZ G d„ d«      Zy)zŠ
====================
Generators - Classic
====================

Unit tests for various classic graph generators in generators/classic.py
é    N)Úgraph_could_be_isomorphic)Úedges_equalÚnodes_equalc            	       ó   — 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d„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zej.                  j1                  dg d¢«      d„ «       Zej.                  j1                  dddg«      d„ «       Zd„ Zej.                  j1                  dg d¢«      d„ «       Zd„ Zej.                  j1                  dddg d ¢d!fd"g d#¢fg«      d$„ «       Zd%„ Zd&„ Z d'„ Z!d(„ Z"d)„ Z#ej.                  j1                  dg d*¢«      d+„ «       Z$ej.                  j1                  dg d,¢«      d-„ «       Z%d.„ Z&ej.                  j1                  dg d¢«      d/„ «       Z'ej.                  j1                  d0d1d2g«      d3„ «       Z(d4„ Z)ej.                  j1                  dddg d ¢d!fd"g d#¢fg«      d5„ «       Z*d6„ Z+d7„ Z,d8„ Z-d9„ Z.d:„ Z/d;„ Z0d<„ Z1d=„ Z2d>„ Z3d?„ Z4y@)AÚTestGeneratorClassicc                 ó¬  — dD ]Ï  \  }}t        j                  ||«      }|j                  «       }|||dz   z  dz
  |dz
  z  k(  sJ ‚t        j                  |«      sJ ‚|j	                  «       |dz
  k(  sJ ‚t        j
                  |«      }|d   dk(  sJ ‚|d   ||z  k(  sJ ‚||   dk(  sJ ‚||dz      |||z  z
  dz
  k(  sJ ‚t        |«      |dz   k(  rŒÏJ ‚ y )N))é   r	   )é   r
   )é   r	   é   r   r	   )ÚnxÚbalanced_treeÚorderÚis_connectedÚsizeÚdegree_histogramÚlen)ÚselfÚrÚhÚtr   Údhs         úd/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/generators/tests/test_classic.pyÚtest_balanced_treez'TestGeneratorClassic.test_balanced_tree   sý   € à,ò 	$‰DˆAˆqÜ× Ñ   AÓ&ˆAØ—G‘G“IˆEØ˜Q 1 q¡5™\¨AÑ-°!°a±%Ñ8Ò8Ð8Ð8Ü—?‘? 1Ô%Ð%Ð%Ø—6‘6“8˜u q™yÒ(Ð(Ð(Ü×$Ñ$ QÓ'ˆBØ�a‘5˜A’:Ð�:Ø�a‘5˜A˜q™D’=Ð �=Ø�a‘5˜A’:Ð�:Ø�a˜!‘e‘9 ¨¨1©¡¨qÑ 0Ò0Ð0Ð0Ü�r“7˜a !™eÓ#Ð#Ð#ñ	$ó    c                 óT  — t        j                  dd¬«      }t        |t        j                  d«      «      sJ ‚t        j                  dd¬«      }t        |t        j                  d«      «      sJ ‚t        j                  dd¬«      }t        |t        j                  d«      «      sJ ‚y )Nr	   r   )r   r   é   é
   )r   r   Úis_isomorphicÚ
star_graph©r   r   s     r   Útest_balanced_tree_starz,TestGeneratorClassic.test_balanced_tree_star%   sƒ   € ä×Ñ˜q AÔ&ˆÜ˜Q¤§¡¨aÓ 0Ô1Ð1Ð1Ü×Ñ˜q AÔ&ˆÜ˜Q¤§¡¨aÓ 0Ô1Ð1Ð1Ü×Ñ˜r QÔ'ˆÜ˜Q¤§¡¨bÓ 1Ô2Ð2Ñ2r   c                 óv   — t        j                  dd«      }t        j                  d«      }t        ||«      sJ ‚y)z[Tests that the balanced tree with branching factor one is the
        path graph.

        r   é   r   N)r   r   Ú
path_graphr   )r   ÚTÚPs      r   Útest_balanced_tree_pathz,TestGeneratorClassic.test_balanced_tree_path.   s4   € ô ×Ñ˜Q Ó"ˆÜ�M‰M˜!ÓˆÜ˜Q Ô"Ð"Ñ"r   c                 ó6  — d}d}t        j                  ||«      }|j                  «       |k(  sJ ‚t        j                  |«      sJ ‚t        j                  |«      }|d   dk(  sJ ‚|d   dk(  sJ ‚||   dk(  sJ ‚||dz      dk(  sJ ‚t        |«      |dz   k(  sJ ‚y )Nr	   é	   r   r   r   r
   )r   Úfull_rary_treer   r   r   r   )r   r   Únr   r   s        r   Útest_full_rary_treez(TestGeneratorClassic.test_full_rary_tree8   s®   € ØˆØˆÜ×Ñ˜a Ó#ˆØ�w‰w‹y˜AŠ~Ðˆ~Ü�‰˜qÔ!Ð!Ð!Ü× Ñ  Ó#ˆØ�!‰u˜ŠzÐˆzØ�!‰u˜ŠzÐˆzØ�!‰u˜ŠzÐˆzØ�!�a‘%‰y˜IÒ%Ð%Ð%Ü�2‹w˜!˜a™%ÒÐÑr   c                 óx   — t        j                  dd«      }t        j                  dd«      }t        ||«      sJ ‚y )Nr	   é   r
   )r   r+   r   r   )r   r   Úths      r   Útest_full_rary_tree_balancedz1TestGeneratorClassic.test_full_rary_tree_balancedE   s6   € Ü×Ñ˜a Ó$ˆÜ×Ñ˜a Ó#ˆÜ˜Q Ô#Ð#Ñ#r   c                 ór   — t        j                  dd«      }t        |t        j                  d«      «      sJ ‚y )Nr   r   )r   r+   r   r%   r!   s     r   Útest_full_rary_tree_pathz-TestGeneratorClassic.test_full_rary_tree_pathJ   s-   € Ü×Ñ˜a Ó$ˆÜ˜Q¤§¡¨bÓ 1Ô2Ð2Ñ2r   c                 óà   — t        j                  dd«      }t        |t        j                  d«      «      sJ ‚t        j                  dd«      }t        |t        j                  d«      «      sJ ‚y )Nr   r   r
   )r   r+   r   Úempty_graphr!   s     r   Útest_full_rary_tree_emptyz.TestGeneratorClassic.test_full_rary_tree_emptyN   sX   € Ü×Ñ˜a Ó$ˆÜ˜Q¤§¡¨rÓ 2Ô3Ð3Ð3Ü×Ñ˜a Ó#ˆÜ˜Q¤§¡¨qÓ 1Ô2Ð2Ñ2r   c                 óZ   — t        j                  dd«      }|j                  «       dk(  sJ ‚y )Nr
   é   )r   r+   r   r!   s     r   Útest_full_rary_tree_3_20z-TestGeneratorClassic.test_full_rary_tree_3_20T   s&   € Ü×Ñ˜a Ó$ˆØ�w‰w‹y˜BŠÐ‰r   c                 óÐ  — d}d}t        j                  ||«      }t        j                  |«      d|z  |z   k(  sJ ‚t        j                  |«      ||dz
  z  |z   dz   k(  sJ ‚d}d}t        j                  ||«      }t        j                  |«      d|z  |z   k(  sJ ‚t        j                  |«      ||dz
  z  |z   dz   k(  sJ ‚d}d}t        j                  ||«      }t        j                  |«      d|z  |z   k(  sJ ‚t        j                  |«      ||dz
  z  |z   dz   k(  sJ ‚d}d}t	        j
                  t         j                  t         j                  ||«       d}d}t	        j
                  t         j                  t         j                  ||«       d}d}t        j                  ||«      }t        |t        j                  |dz   «      «      sJ ‚d}d}t        j                  ||«      }t        |t        j                  |dz   «      «      sJ ‚d}d}t        j                  ||«      }t        |t        j                  |dz   «      «      sJ ‚t	        j
                  t         j                  t         j                  ||t        j                  «       ¬	«       t        j                  ||t        j                  «       ¬	«      }t        |j                  «       |j                  «       «      sJ ‚y )
Nr
   r   r	   r   r$   r   r8   éþÿÿÿ©Úcreate_using)r   Úbarbell_graphÚnumber_of_nodesÚnumber_of_edgesÚpytestÚraisesÚNetworkXErrorr   r%   ÚDiGraphÚ
MultiGraphr   Úedges)r   Úm1Úm2ÚbÚmbs        r   Útest_barbell_graphz'TestGeneratorClassic.test_barbell_graphX   sž  € ð ˆØˆÜ×Ñ˜R Ó$ˆÜ×!Ñ! !Ó$¨¨B©°©Ò3Ð3Ð3Ü×!Ñ! !Ó$¨¨b°1©f©¸Ñ(:¸QÑ(>Ò>Ð>Ð>àˆØˆÜ×Ñ˜R Ó$ˆÜ×!Ñ! !Ó$¨¨B©°©Ò3Ð3Ð3Ü×!Ñ! !Ó$¨¨b°1©f©¸Ñ(:¸QÑ(>Ò>Ð>Ð>àˆØˆÜ×Ñ˜R Ó$ˆÜ×!Ñ! !Ó$¨¨B©°©Ò3Ð3Ð3Ü×!Ñ! !Ó$¨¨b°1©f©¸Ñ(:¸QÑ(>Ò>Ð>Ð>ð ˆØˆÜ�‰”b×&Ñ&¬×(8Ñ(8¸"¸bÔAð ˆØˆÜ�‰”b×&Ñ&¬×(8Ñ(8¸"¸bÔAð ˆØˆÜ×Ñ˜R Ó$ˆÜ˜Q¤§¡¨b°1©fÓ 5Ô6Ð6Ð6àˆØˆÜ×Ñ˜R Ó$ˆÜ˜Q¤§¡¨b°1©fÓ 5Ô6Ð6Ð6àˆØˆÜ×Ñ˜R Ó$ˆÜ˜Q¤§¡¨b°1©fÓ 5Ô6Ð6Ð6ä�‰Ü×Ñœb×.Ñ.°°BÄRÇZÁZÃ\õ	
ô ×Ñ˜b "´2·=±=³?ÔCˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ñ1r   c                 óV  — d t         j                  t         j                  t         j                  t         j                  f}|D ]e  }t        d«      D ]U  }t        j                  ||«      }t        j                  |«      d|z  k(  sJ ‚t        j                  |«      d|z  dz
  k(  rŒUJ ‚ Œg y )Nr$   r	   r   )	r   ÚGraphrD   rE   ÚMultiDiGraphÚrangeÚbinomial_treer?   r@   )r   Úgraphsr=   r,   rI   s        r   Útest_binomial_treez'TestGeneratorClassic.test_binomial_treeŽ   s”   € ØœŸ™¤"§*¡*¬b¯m©m¼R¿_¹_ÐMˆØ"ò 	;ˆLÜ˜1“Xò ;�Ü×$Ñ$ Q¨Ó5�Ü×)Ñ)¨!Ó,°°1±Ò4Ð4Ð4Ü×)Ñ)¨!Ó,°°A±¸±Ó:Ð:Ð:ñ;ñ	;r   c                 ó$  — dD ]T  }t        j                  |«      }t        j                  |«      |k(  sJ ‚t        j                  |«      ||dz
  z  dz  k(  rŒTJ ‚ t        j                  t         j                  ¬«      }t        |j                  «       j                  «       «      sJ ‚t        j                  d«      }t        |j                  «       g d¢«      sJ ‚|j                  «       dk(  sJ ‚t        j                  d«      }t        |j                  «       g d¢«      sJ ‚|j                  «       d	k(  sJ ‚t        j                  dt         j                  ¬«      }t        |j                  «       g d¢«      sJ ‚|j                  «       d
k(  sJ ‚y )N©r   r   r
   r   r   r	   r<   Úabc)ÚarI   Úcr
   Úabcbr$   r   )
r   Úcomplete_graphr?   r@   rE   r   rF   r   Únodesr   )r   ÚmÚgÚmgs       r   Útest_complete_graphz(TestGeneratorClassic.test_complete_graph–   sF  € ð ò 	=ˆAÜ×!Ñ! !Ó$ˆAÜ×%Ñ% aÓ(¨AÒ-Ð-Ð-Ü×%Ñ% aÓ(¨A°°Q±©K¸1Ñ,<Ó<Ð<Ð<ð	=ô
 ×Ñ˜q¬r¯}©}Ô=ˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ð1ä×Ñ˜eÓ$ˆÜ˜1Ÿ7™7›9¢oÔ6Ð6Ð6Ø�v‰v‹x˜1Š}Ðˆ}ô ×Ñ˜fÓ%ˆÜ˜1Ÿ7™7›9¢oÔ6Ð6Ð6Ø�v‰v‹x˜1Š}Ðˆ}ä×Ñ˜f´2·=±=ÔAˆÜ˜1Ÿ7™7›9¢oÔ6Ð6Ð6Ø�v‰v‹x˜1Š}Ð‰}r   c                 óˆ  — dD ]a  }t        j                  |t         j                  ¬«      }t        j                  |«      |k(  sJ ‚t        j                  |«      ||dz
  z  k(  rŒaJ ‚ t        j                  dt         j                  ¬«      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  «       sJ ‚y )NrT   r<   r   rU   r
   r   )r   rY   rD   r?   r@   r   r   Úis_directed)r   r[   r\   s      r   Útest_complete_digraphz*TestGeneratorClassic.test_complete_digraph®   s«   € ð ò 	8ˆAÜ×!Ñ! !´"·*±*Ô=ˆAÜ×%Ñ% aÓ(¨AÒ-Ð-Ð-Ü×%Ñ% aÓ(¨A°°Q±©KÓ7Ð7Ð7ð	8ô
 ×Ñ˜e´"·*±*Ô=ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ø�}‰}ŒÐ‰r   c                 óR  — t        j                  d«      }t        j                  t         j                  t         j                  dt         j
                  ¬«       t        j                  dt         j                  ¬«      }t        |j                  «       |j                  «       «      sJ ‚y )Nr   r<   )	r   Úcircular_ladder_graphrA   rB   rC   rD   rE   r   rF   )r   ÚGÚmGs      r   Útest_circular_ladder_graphz/TestGeneratorClassic.test_circular_ladder_graph»   sk   € Ü×$Ñ$ QÓ'ˆÜ�‰Ü×Ñœb×6Ñ6¸ÌÏ
É
õ	
ô ×%Ñ% a´b·m±mÔDˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ñ1r   c                 óÖ  — t        j                  ddg«      }t        j                  d«      }t        |j	                  «       |j	                  «       «      sJ ‚t        j                  dg d¢«      }t        j
                  d«      }t        |j	                  «       |j	                  «       «      sJ ‚t        j                  dddg«      }t        j                  dd«      }t        ||«      sJ ‚y )Nr   r   é   ©r   r	   r
   r
   )r   Úcirculant_graphÚcycle_graphr   rF   rY   Úcomplete_bipartite_graphr   )r   ÚCi6_1ÚC6ÚCi7ÚK7ÚCi6_1_3ÚK3_3s          r   Útest_circulant_graphz)TestGeneratorClassic.test_circulant_graphÃ   sº   € ä×"Ñ" 1 q cÓ*ˆÜ�^‰^˜AÓˆÜ˜5Ÿ;™;›=¨"¯(©(«*Ô5Ð5Ð5ô × Ñ  ¢IÓ.ˆÜ×Ñ˜qÓ!ˆÜ˜3Ÿ9™9›;¨¯©«
Ô3Ð3Ð3ô ×$Ñ$ Q¨¨A¨Ó/ˆÜ×*Ñ*¨1¨aÓ0ˆÜ˜W dÔ+Ð+Ñ+r   c                 óÞ  — t        j                  d«      }t        |j                  «       g d¢«      sJ ‚t        j                  dt         j                  ¬«      }t        |j                  «       g d¢«      sJ ‚t        j                  dt         j
                  ¬«      }|j                  dd«      rJ ‚|j                  dd«      sJ ‚|j                  «       sJ ‚t        j                  d«      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚t        j                  d«      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚t        j                  dt         j
                  «      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚|j                  «       sJ ‚t        j                  dt         j
                  «      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚y )	Nr$   )©r   r   )r   r
   ©r   r	   )r	   r
   r<   r	   r   rU   r
   rX   )
r   rk   r   rF   rE   rD   Úhas_edger`   r   r   )r   rd   re   r\   s       r   Útest_cycle_graphz%TestGeneratorClassic.test_cycle_graphÓ   sv  € Ü�N‰N˜1ÓˆÜ˜1Ÿ7™7›9Ò&FÔGÐGÐGÜ�^‰^˜A¬B¯M©MÔ:ˆÜ˜2Ÿ8™8›:Ò'GÔHÐHÐHÜ�N‰N˜1¬2¯:©:Ô6ˆØ—:‘:˜a Ô#Ð#Ð#Ø�z‰z˜!˜QÔÐÐØ�}‰}ŒÐˆä�N‰N˜5Ó!ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ü�N‰N˜6Ó"ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ü�N‰N˜5¤"§*¡*Ó-ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ø�}‰}ŒÐˆÜ�N‰N˜6¤2§:¡:Ó.ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ð‰}r   c                 ó  — t        j                  d«      }t        |j                  «       dg«      sJ ‚t	        t        |«      ddg«      sJ ‚t        j                  d«      }t        |j                  «       g d¢«      sJ ‚t        j                  |«      dk(  sJ ‚t        j                  |«      dk(  sJ ‚t        t        j                  |«      j                  «       «      g d¢k(  sJ ‚t        j                  |«      sJ ‚t        j                  d«      }t        j                  |«      dk(  sJ ‚t        j                  |«      d	k(  sJ ‚t        j                  |«      d
k(  sJ ‚t        j                  |«      dk(  sJ ‚t        j                  |«      sJ ‚t        j                  d«      }t        j                  |«      dk(  sJ ‚t        j                  |«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚t        j                   t         j"                  d¬«      5  t        j                  d«       d d d «       t        j                   t         j"                  d¬«      5  t        j                  dt         j$                  ¬«       d d d «       t        j                   t         j"                  d¬«      5  t        j                  dt         j&                  ¬«       d d d «       t        j                   t         j"                  «      5  t        j                  dt         j(                  ¬«       d d d «       y # 1 sw Y   �ŒxY w# 1 sw Y   Œ»xY w# 1 sw Y   ŒtxY w# 1 sw Y   y xY w)Nr   ru   r   )ru   )r   r	   rv   g      ð?)r   r   r   r	   r   r*   g      è?gffffffö?r   iVs  i©æ  i   zn must be greater than©Úmatchéÿÿÿÿzdirected graph not supportedrh   r<   zmultigraph not supported)r   Ú dorogovtsev_goltsev_mendes_graphr   rF   r   ÚlistÚaverage_clusteringÚaverage_shortest_path_lengthÚsortedÚ	trianglesÚvaluesÚ	is_planarr?   r@   ÚdegreerA   rB   rC   rD   rE   rN   )r   rd   s     r   Ú%test_dorogovtsev_goltsev_mendes_graphz:TestGeneratorClassic.test_dorogovtsev_goltsev_mendes_graphë   sØ  € Ü×/Ñ/°Ó2ˆÜ˜1Ÿ7™7›9 v hÔ/Ð/Ð/Üœ4 ›7 Q¨ FÔ+Ð+Ð+Ü×/Ñ/°Ó2ˆÜ˜1Ÿ7™7›9Ò&>Ô?Ð?Ð?Ü×$Ñ$ QÓ'¨3Ò.Ð.Ð.Ü×.Ñ.¨qÓ1°SÒ8Ð8Ð8Ü”b—l‘l 1“o×,Ñ,Ó.Ó/²9Ò<Ð<Ð<Ü�|‰|˜AŒÐˆÜ×/Ñ/°Ó2ˆÜ×!Ñ! !Ó$¨Ò)Ð)Ð)Ü×!Ñ! !Ó$¨Ò)Ð)Ð)Ü×$Ñ$ QÓ'¨4Ò/Ð/Ð/Ü×.Ñ.¨qÓ1°SÒ8Ð8Ð8Ü�|‰|˜AŒÐˆÜ×/Ñ/°Ó3ˆÜ×!Ñ! !Ó$¨Ò-Ð-Ð-Ü×!Ñ! !Ó$¨Ò-Ð-Ð-Ø�x‰x˜‹{˜dÒ"Ð"Ð"Ø�x‰x˜‹{˜dÒ"Ð"Ð"Ø�x‰x˜‹{˜dÒ"Ð"Ð"ä�]‰]œ2×+Ñ+Ð3LÔMñ 	4Ü×/Ñ/°Ô3÷	4ä�]‰]œ2×+Ñ+Ð3RÔSñ 	LÜ×/Ñ/°ÄÇ
Á
ÕK÷	Lä�]‰]œ2×+Ñ+Ð3NÔOñ 	OÜ×/Ñ/°ÄÇÁÕN÷	Oä�]‰]œ2×+Ñ+Ó,ñ 	QÜ×/Ñ/°ÄÇÁÕP÷	Qð 	Q÷	4ñ 	4ú÷	Lð 	Lú÷	Oð 	Oú÷	Qð 	Qús0   ÉMÊ&M$Ë&M0Ì(&M<ÍM!Í$M-Í0M9Í<Nc                 ó¬  — t        j                  «       }t        |t         j                  «      sJ ‚t	        j
                  t        t         j                  d¬«       t	        j
                  t        t         j                  d¬«       t        j                  t         j                  ¬«      }t        |t         j                  «      sJ ‚t        j                  t         j                  ¬«      }t        |t         j                  «      sJ ‚t        j                  t         j                  t         j                  ¬«      }t        |t         j                  «      sJ ‚t        j                  d t         j                  ¬«      }t        |t         j                  «      sJ ‚t        j                  t         j                  ¬«      }t        |t         j                  «      sJ ‚t        j                  d«      }t        j                  |¬«      }|j                  «       rJ ‚|j                  «       rJ ‚t        |«      dk(  sJ ‚||u sJ ‚t        j                  t        j                  «       ¬«      }|j                  «       sJ ‚|j                  «       rJ ‚||usJ ‚ G d„ d	t        j                  «      } G d
„ d|t         j                  «      }t        j                  |¬«      }y )Ng        r<   rM   )r=   Údefault)rˆ   r   r   c                   ó   — e Zd Zy)ú5TestGeneratorClassic.test_create_using.<locals>.MixinN©Ú__name__Ú
__module__Ú__qualname__© r   r   ÚMixinrŠ   *  ó   „ Ør   r�   c                   ó   — e Zd Zy)ú7TestGeneratorClassic.test_create_using.<locals>.MyGraphNr‹   r�   r   r   ÚMyGraphr“   -  r‘   r   r”   )r   r5   Ú
isinstancerM   rA   rB   Ú	TypeErrorrE   rD   r%   Úis_multigraphr`   r   ÚtypingÚProtocol)r   rd   ÚHr�   r”   s        r   Útest_create_usingz&TestGeneratorClassic.test_create_using  s×  € Ü�N‰NÓˆÜ˜!œRŸX™XÔ&Ð&Ð&Ü�‰”i¤§¡¸cÕBÜ�‰”i¤§¡¸gÕFä�N‰N¬¯©Ô6ˆÜ˜!œRŸ]™]Ô+Ð+Ð+Ü�N‰N¬¯
©
Ô3ˆÜ˜!œRŸZ™ZÔ(Ð(Ð(ä�N‰N¬¯
©
¼B¿M¹MÔJˆÜ˜!œRŸZ™ZÔ(Ð(Ð(Ü�N‰N¨´b·m±mÔDˆÜ˜!œRŸ]™]Ô+Ð+Ð+Ü�N‰N¤2§=¡=Ô1ˆÜ˜!œRŸ]™]Ô+Ð+Ð+ä�M‰M˜!ÓˆÜ�N‰N¨Ô*ˆØ—?‘?Ô$Ð$Ð$Ø—=‘=”?Ð"Ð"Ü�1‹v˜Š{Ðˆ{Ø�A‰vˆˆvä�N‰N¬¯©«Ô8ˆØ�‰Ô Ð Ð Ø—=‘=”?Ð"Ð"Ø˜‰zÐˆzô	”F—O‘Oô 	ô	�eœRŸZ™Zô 	ô �N‰N¨Ô0‰r   c                 óH  — t        j                  «       }t        j                  |«      dk(  sJ ‚t        j                  d«      }t        j                  |«      dk(  sJ ‚t        j                  |«      dk(  sJ ‚t        j                  d«      }t	        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚t        j                  dt        j                  d¬«      ¬«      }t        j                  |«      dk(  sJ ‚t        j                  |«      dk(  sJ ‚t        |t         j                  «      sJ ‚t        j                  dt        j                  d¬«      ¬«      }t        j                  |«      dk(  sJ ‚t        j                  |«      dk(  sJ ‚t        |t         j                  «      sJ ‚t        j                  «       }t        j                  d|¬«      }t        j                  |«      dk(  sJ ‚t        j                  |«      dk(  sJ ‚t        |t         j                  «      sJ ‚y )Nr   é*   rU   r
   Úduh)Únamer<   )r   r5   r?   r@   r   r   rD   r•   rE   Úpetersen_graphrM   )r   rd   Úpetes      r   Útest_empty_graphz%TestGeneratorClassic.test_empty_graph2  s¿  € Ü�N‰NÓˆÜ×!Ñ! !Ó$¨Ò)Ð)Ð)Ü�N‰N˜2ÓˆÜ×!Ñ! !Ó$¨Ò*Ð*Ð*Ü×!Ñ! !Ó$¨Ò)Ð)Ð)ä�N‰N˜5Ó!ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}ô �N‰N˜2¬B¯J©J¸EÔ,BÔCˆÜ×!Ñ! !Ó$¨Ò*Ð*Ð*Ü×!Ñ! !Ó$¨Ò)Ð)Ð)Ü˜!œRŸZ™ZÔ(Ð(Ð(ô �N‰N˜2¬B¯M©M¸uÔ,EÔFˆÜ×!Ñ! !Ó$¨Ò*Ð*Ð*Ü×!Ñ! !Ó$¨Ò)Ð)Ð)Ü˜!œRŸ]™]Ô+Ð+Ð+ô × Ñ Ó"ˆÜ�N‰N˜2¨DÔ1ˆÜ×!Ñ! !Ó$¨Ò*Ð*Ð*Ü×!Ñ! !Ó$¨Ò)Ð)Ð)Ü˜!œRŸX™XÔ&Ð&Ñ&r   c                 ó\  — dt        j                  d«      fdt        j                  d«      fdt        j                  d«      fdt        j                  ddg«      ffD ]&  \  }}t        t        j                  |«      |«      rŒ&J ‚ t        j                  t         j                  t         j                  dt         j                  ¬«       t        j                  d«      }t        j                  dt         j                  ¬«      }t        |j                  «       |j                  «       «      sJ ‚y )Nr   r   r	   r   r<   )r   r5   r%   Úhypercube_graphÚ
grid_graphr   Úladder_graphrA   rB   rC   rD   rE   r   rF   )r   Úird   r\   r]   s        r   Útest_ladder_graphz&TestGeneratorClassic.test_ladder_graphP  sÜ   € à”—‘˜qÓ!Ð"Ø”—‘˜aÓ Ð!Ø”×"Ñ" 1Ó%Ð&Ø”—‘  2˜wÓ'Ð(ð	
ò 	8‰DˆAˆqô !¤§¡°Ó!3°QÕ7Ð7Ð7ð	8ô 	�‰”b×&Ñ&¬¯©¸ÌÏÉÕTä�O‰O˜AÓˆÜ�_‰_˜Q¬R¯]©]Ô;ˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ñ1r   )r[   r,   )©r
   r   ©r$   r   ©r
   r8   c                 ó¶   — t        j                  ||«      }t        j                  |«      ||z   k(  sJ ‚t        j                  |«      ||dz
  z  dz  |z   k(  sJ ‚y ©Nr   r	   )r   Úlollipop_graphr?   r@   ©r   r[   r,   rd   s       r   Útest_lollipop_graph_right_sizesz4TestGeneratorClassic.test_lollipop_graph_right_sizes_  s[   € ä×Ñ˜a Ó#ˆÜ×!Ñ! !Ó$¨¨A©Ò-Ð-Ð-Ü×!Ñ! !Ó$¨¨Q°©U©°a©¸!Ñ(;Ò;Ð;Ñ;r   ©ÚabÚ ©rU   Údefgc                 ó  — t        j                  ||«      }t        j                  |«      t        |«      t        |«      z   k(  sJ ‚t        j                  |«      t        |«      t        |«      dz
  z  dz  t        |«      z   k(  sJ ‚y r­   )r   r®   r?   r   r@   r¯   s       r   Ú&test_lollipop_graph_size_node_sequencez;TestGeneratorClassic.test_lollipop_graph_size_node_sequencee  sq   € ä×Ñ˜a Ó#ˆÜ×!Ñ! !Ó$¬¨A«´°Q³©Ò7Ð7Ð7Ü×!Ñ! !Ó$¬¨A«´#°a³&¸1±*Ñ(=ÀÑ(AÄCÈÃFÑ(JÒJÐJÑJr   c                 ó„  — t        j                  t        j                  t        j                  dd«       t        j                  t        j                  t        j                  dd«       t        j                  t        j                  t        j                  dd«       t        j                  t        j                  t        j                  dd«       t        j                  t        j                  t        j                  dd«       t        j                  t        j                  «      5  t        j                  ddt        j
                  ¬	«       d d d «       t        j                  t        j                  «      5  t        j                  ddt        j                  ¬	«       d d d «       y # 1 sw Y   Œ\xY w# 1 sw Y   y xY w)
Nr|   r	   r   r8   r³   rV   r   r;   r<   )rA   rB   r   rC   r®   rD   rN   ©r   s    r   Útest_lollipop_graph_exceptionsz3TestGeneratorClassic.test_lollipop_graph_exceptionsk  s   € ä�‰”b×&Ñ&¬×(9Ñ(9¸2¸qÔAÜ�‰”b×&Ñ&¬×(9Ñ(9¸1¸bÔAÜ�‰”b×&Ñ&¬×(9Ñ(9¸2¸rÔBÜ�‰”b×&Ñ&¬×(9Ñ(9¸3ÀÔCô 	�‰”b×&Ñ&¬×(9Ñ(9¸1¸bÔAô �]‰]œ2×+Ñ+Ó,ñ 	>Ü×Ñ˜a ´"·*±*Õ=÷	>ä�]‰]œ2×+Ñ+Ó,ñ 	CÜ×Ñ˜a ´"·/±/ÕB÷	Cð 	C÷	>ð 	>ú÷	Cð 	Cús   Ä('F*Å:'F6Æ*F3Æ6F?))r	   r   )r	   r   )r	   r   )r²   r8   c                 óx   — t        j                  ||«      }t        |t        j                  |dz   «      «      sJ ‚y ©Nr	   )r   r®   r   r%   r¯   s       r   Ú-test_lollipop_graph_same_as_path_when_m1_is_2zBTestGeneratorClassic.test_lollipop_graph_same_as_path_when_m1_is_2{  s1   € ä×Ñ˜a Ó#ˆÜ˜Q¤§¡¨a°!©eÓ 4Ô5Ð5Ñ5r   c                 óÐ   — t        j                  dd«      }t        j                  ddt         j                  ¬«      }t        |j	                  «       |j	                  «       «      sJ ‚y ©Nr   r8   r<   )r   r®   rE   r   rF   ©r   rd   ÚMGs      r   Ú"test_lollipop_graph_for_multigraphz7TestGeneratorClassic.test_lollipop_graph_for_multigraph€  sH   € Ü×Ñ˜a Ó$ˆÜ×Ñ˜q "´2·=±=ÔAˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ñ1r   )r$   rU   )Úabcdr
   )r   r	   r
   r$   rU   rÃ   ri   c           	      óø   — t        j                  t        j                  d«      t        j                  t	        dd«      «      «      }|j                  dd«       t        t        j                  ||«      |«      sJ ‚y ©Nr$   éd   ég   r   )r   ÚcomposerY   r%   rO   Úadd_edger   r®   ©r   r[   r,   Úexpecteds       r   Ú&test_lollipop_graph_mixing_input_typesz;TestGeneratorClassic.test_lollipop_graph_mixing_input_types…  s[   € ô
 —:‘:œb×/Ñ/°Ó2´B·M±MÄ%ÈÈSÃ/Ó4RÓSˆØ×Ñ˜!˜SÔ!ÜœR×.Ñ.¨q°!Ó4°hÔ?Ð?Ñ?r   c           	      ób  — t        j                  d«      }t        j                  |j	                  d«      |j                  d«      «      }t        j                  t        j                  d«      t        j                  t        dd«      «      «      }|j                  dd«       t        ||«      sJ ‚y ©NÚnumpyr$   r
   rÆ   rÇ   r   )rA   Úimportorskipr   r®   Úint32Úint64rÈ   rY   r%   rO   rÉ   r   ©r   Únprd   rË   s       r   Ú$test_lollipop_graph_non_builtin_intsz9TestGeneratorClassic.test_lollipop_graph_non_builtin_intsŽ  s~   € Ü× Ñ  Ó)ˆÜ×Ñ˜bŸh™h q›k¨2¯8©8°A«;Ó7ˆÜ—:‘:œb×/Ñ/°Ó2´B·M±MÄ%ÈÈSÃ/Ó4RÓSˆØ×Ñ˜!˜SÔ!Ü˜Q Ô)Ð)Ñ)r   c                 ó\   — t        j                  t        j                  «       «      dk(  sJ ‚y ©Nr   )r   r?   Ú
null_graphr¹   s    r   Útest_null_graphz$TestGeneratorClassic.test_null_graph•  s!   € Ü×!Ñ!¤"§-¡-£/Ó2°aÒ7Ð7Ñ7r   c                 ó†  — t        j                  d«      }t        |t        j                  «       «      sJ ‚t        j                  d«      }t        |t        j                  d«      «      sJ ‚t        j                  d«      }t        j
                  |«      sJ ‚t        d„ |j                  «       D «       «      g d¢k(  sJ ‚|j                  «       dz
  |j                  «       k(  sJ ‚t        j                  dt         j                  ¬«      }|j                  dd«      sJ ‚|j                  dd«      rJ ‚t        j                  dt         j                  ¬«      }t        |j                  «       |j                  «       «      sJ ‚t        j                  d«      }t        |«      dk(  sJ ‚|j                  «       d	k(  sJ ‚t        j                  d
«      }t        |«      dk(  sJ ‚|j                  «       d	k(  sJ ‚t        j                  dt         j                  «      }t        |«      dk(  sJ ‚|j                  «       d	k(  sJ ‚|j!                  «       sJ ‚t        j                  d
t         j                  «      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚t        j                  d«      }|j                  d	d«      sJ ‚y )Nr   r   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­w©Nr�   ©Ú.0r,   Úds      r   ú	<genexpr>z7TestGeneratorClassic.test_path_graph.<locals>.<genexpr>¡  ó   è ø€ Ò/™D˜A˜q”aÑ/ùó   ‚)
r   r   r	   r	   r	   r	   r	   r	   r	   r	   r
   r<   rU   r	   rX   )r   r	   r
   r	   r$   r$   )r   r%   r   rØ   r5   r   r�   r…   r   r   rD   rw   rE   r   rF   r   r`   )r   ÚpÚdpÚmprd   r\   s         r   Útest_path_graphz$TestGeneratorClassic.test_path_graph˜  s  € Ü�M‰M˜!ÓˆÜ˜Q¤§¡£Ô0Ð0Ð0ä�M‰M˜!ÓˆÜ˜Q¤§¡¨qÓ 1Ô2Ð2Ð2ä�M‰M˜"ÓˆÜ�‰˜qÔ!Ð!Ð!ÜÑ/ A§H¡H£JÔ/Ó/Ò3QÒQÐQÐQØ�w‰w‹y˜1‰} §¡£Ò(Ð(Ð(ä�]‰]˜1¬2¯:©:Ô6ˆØ�{‰{˜1˜aÔ Ð Ð Ø—;‘;˜q !Ô$Ð$Ð$ä�]‰]˜2¬B¯M©MÔ:ˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ð1ä�M‰M˜%Ó ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ü�M‰M˜&Ó!ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ü�M‰M˜%¤§¡Ó,ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ø�}‰}ŒÐˆÜ�M‰M˜&¤"§*¡*Ó-ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}ä�M‰M˜/Ó*ˆØ�z‰z˜!˜QÔÐÑr   c                 ó  — t        t        j                  d«      t        j                  d«      «      sJ ‚t        t        j                  g «      t        j                  d«      «      sJ ‚t        t        j                  d«      t        j                  d«      «      sJ ‚t        t        j                  d«      t        j                  d«      «      sJ ‚t        t        j                  d«      t        j                  d«      «      sJ ‚t        t        j                  d«      t        j
                  dd«      «      sJ ‚t        j                  d«      }t        d„ |j                  «       D «       «      g d	¢k(  sJ ‚t        j                  t        j                  t        j                  dt        j                  ¬
«       t        j                  dt        j                  ¬
«      }t        |j                  «       |j                  «       «      sJ ‚t        j                  d«      }t        |«      dk(  sJ ‚|j!                  «       dk(  sJ ‚t        j                  d«      }t        |«      dk(  sJ ‚|j!                  «       dk(  sJ ‚t        j                  dt        j                  ¬
«      }t        |«      dk(  sJ ‚|j!                  «       dk(  sJ ‚t        j                  d«      }t        |«      dk(  sJ ‚|j!                  «       dk(  sJ ‚y )Nr³   r   r   r	   r
   r   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wrÜ   r�   rÝ   s      r   rà   z7TestGeneratorClassic.test_star_graph.<locals>.<genexpr>Å  rá   râ   )r   r   r   r   r   r   r   r   r   r   r   r<   rU   rX   Úabcdefgrh   r   )r   r   r    r5   r%   rl   r�   r…   rA   rB   rC   rD   rE   r   rF   r   r   )r   ÚsÚmsrd   s       r   Útest_star_graphz$TestGeneratorClassic.test_star_graph¼  s  € ÜœRŸ]™]¨2Ó.´·±¸qÓ0AÔBÐBÐBÜœRŸ]™]¨2Ó.´·±¸qÓ0AÔBÐBÐBÜœRŸ]™]¨1Ó-¬r¯~©~¸aÓ/@ÔAÐAÐAÜœRŸ]™]¨1Ó-¬r¯}©}¸QÓ/?Ô@Ð@Ð@ÜœRŸ]™]¨1Ó-¬r¯}©}¸QÓ/?Ô@Ð@Ð@ÜœRŸ]™]¨1Ó-¬r×/JÑ/JÈ1ÈaÓ/PÔQÐQÐQä�M‰M˜"ÓˆÜÑ/ A§H¡H£JÔ/Ó/Ò3UÒUÐUÐUä�‰”b×&Ñ&¬¯©°rÌÏ
É
ÕSä�]‰]˜2¬B¯M©MÔ:ˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ð1ä�M‰M˜%Ó ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}ä�M‰M˜&Ó!ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ü�M‰M˜&¬r¯}©}Ô=ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}ä�M‰M˜)Ó$ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ð‰}r   c                 óÀ   — t        j                  d«      }t        j                  |j	                  d«      «      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚y )NrÏ   r
   r$   )rA   rÐ   r   r    rÑ   r   r   ©r   rÔ   rd   s      r   Ú$test_non_int_integers_for_star_graphz9TestGeneratorClassic.test_non_int_integers_for_star_graphÛ  sJ   € Ü× Ñ  Ó)ˆÜ�M‰M˜"Ÿ(™( 1›+Ó&ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ð‰}r   ))r
   r   r©   rª   r«   c                 ó°   — t        j                  ||«      }t        j                  |«      ||z   k(  sJ ‚t        j                  |«      ||z   |dk(  z
  k(  sJ ‚y r¼   )r   Útadpole_graphr?   r@   r¯   s       r   Útest_tadpole_graph_right_sizesz3TestGeneratorClassic.test_tadpole_graph_right_sizesá  sW   € ä×Ñ˜Q Ó"ˆÜ×!Ñ! !Ó$¨¨A©Ò-Ð-Ð-Ü×!Ñ! !Ó$¨¨A©°°a±Ñ(8Ò8Ð8Ñ8r   )r±   )r²   rW   r´   c                 ó
  — t        j                  ||«      }t        j                  |«      t        |«      t        |«      z   k(  sJ ‚t        j                  |«      t        |«      t        |«      z   t        |«      dk(  z
  k(  sJ ‚y r¼   )r   rñ   r?   r   r@   r¯   s       r   Ú&test_tadpole_graph_size_node_sequencesz;TestGeneratorClassic.test_tadpole_graph_size_node_sequencesç  sk   € ä×Ñ˜Q Ó"ˆÜ×!Ñ! !Ó$¬¨A«´°Q³©Ò7Ð7Ð7Ü×!Ñ! !Ó$¬¨A«´°Q³©¼3¸q»6ÀQ¹;Ñ(GÒGÐGÑGr   c                 ó  — t        j                  t        j                  t        j                  dd«       t        j                  t        j                  t        j                  dd«       t        j                  t        j                  t        j                  dd«       t        j                  t        j                  t        j                  dd«       t        j                  t        j                  «      5  t        j                  ddt        j
                  ¬	«       d d d «       t        j                  t        j                  «      5  t        j                  ddt        j                  ¬	«       d d d «       y # 1 sw Y   Œ\xY w# 1 sw Y   y xY w)
Nr|   r
   r   r   r   r;   r	   r8   r<   )rA   rB   r   rC   rñ   rD   rN   r¹   s    r   Útest_tadpole_graph_exceptionsz2TestGeneratorClassic.test_tadpole_graph_exceptionsí  s  € ä�‰”b×&Ñ&¬×(8Ñ(8¸"¸aÔ@Ü�‰”b×&Ñ&¬×(8Ñ(8¸!¸QÔ?Ü�‰”b×&Ñ&¬×(8Ñ(8¸!¸QÔ?ô 	�‰”b×&Ñ&¬×(8Ñ(8¸!¸RÔ@ô �]‰]œ2×+Ñ+Ó,ñ 	=Ü×Ñ˜Q ´·±Õ<÷	=ä�]‰]œ2×+Ñ+Ó,ñ 	BÜ×Ñ˜Q ´·±ÕA÷	Bð 	B÷	=ð 	=ú÷	Bð 	Bús   Ã4'E6Å'FÅ6E?ÆFc                 óx   — t        j                  ||«      }t        |t        j                  |dz   «      «      sJ ‚y r¼   )r   rñ   r   r%   r¯   s       r   Ú+test_tadpole_graph_same_as_path_when_m_is_2z@TestGeneratorClassic.test_tadpole_graph_same_as_path_when_m_is_2ü  s1   € ä×Ñ˜Q Ó"ˆÜ˜Q¤§¡¨a°!©eÓ 4Ô5Ð5Ñ5r   r[   r$   rh   c                 ór   — t        j                  |d«      }t        |t        j                  |«      «      sJ ‚y r×   )r   rñ   r   rk   )r   r[   rd   s      r   Ú-test_tadpole_graph_same_as_cycle_when_m2_is_0zBTestGeneratorClassic.test_tadpole_graph_same_as_cycle_when_m2_is_0  s-   € ä×Ñ˜Q Ó"ˆÜ˜Q¤§¡¨qÓ 1Ô2Ð2Ñ2r   c                 óÐ   — t        j                  dd«      }t        j                  ddt         j                  ¬«      }t        |j	                  «       |j	                  «       «      sJ ‚y r¿   )r   rñ   rE   r   rF   rÀ   s      r   Ú!test_tadpole_graph_for_multigraphz6TestGeneratorClassic.test_tadpole_graph_for_multigraph  sH   € Ü×Ñ˜Q Ó#ˆÜ×Ñ˜a ´"·-±-Ô@ˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ñ1r   c           	      óø   — t        j                  t        j                  d«      t        j                  t	        dd«      «      «      }|j                  dd«       t        t        j                  ||«      |«      sJ ‚y rÅ   )r   rÈ   rk   r%   rO   rÉ   r   rñ   rÊ   s       r   Ú%test_tadpole_graph_mixing_input_typesz:TestGeneratorClassic.test_tadpole_graph_mixing_input_types  sY   € ô
 —:‘:œbŸn™n¨QÓ/´·±¼uÀSÈ#»Ó1OÓPˆØ×Ñ˜!˜SÔ!ÜœR×-Ñ-¨a°Ó3°XÔ>Ð>Ñ>r   c           	      ób  — t        j                  d«      }t        j                  |j	                  d«      |j                  d«      «      }t        j                  t        j                  d«      t        j                  t        dd«      «      «      }|j                  dd«       t        ||«      sJ ‚y rÎ   )rA   rÐ   r   rñ   rÑ   rÒ   rÈ   rk   r%   rO   rÉ   r   rÓ   s       r   Ú'test_tadpole_graph_non_builtin_integersz<TestGeneratorClassic.test_tadpole_graph_non_builtin_integers  s|   € Ü× Ñ  Ó)ˆÜ×Ñ˜RŸX™X a›[¨"¯(©(°1«+Ó6ˆÜ—:‘:œbŸn™n¨QÓ/´·±¼uÀSÈ#»Ó1OÓPˆØ×Ñ˜!˜SÔ!Ü˜Q Ô)Ð)Ñ)r   c                 ó\   — t        j                  t        j                  «       «      dk(  sJ ‚y )Nr   )r   r?   Útrivial_graphr¹   s    r   Útest_trivial_graphz'TestGeneratorClassic.test_trivial_graph  s$   € Ü×!Ñ!¤"×"2Ñ"2Ó"4Ó5¸Ò:Ð:Ñ:r   c           	      óÐ   — t        j                  t        j                  dd«      «      dk(  sJ ‚t        t        j                  dd«      t        j                  dddd«      «      sJ ‚y )Né   r$   é?   r
   )r   r@   Úturan_graphr   Úcomplete_multipartite_graphr¹   s    r   Útest_turan_graphz%TestGeneratorClassic.test_turan_graph  sY   € Ü×!Ñ!¤"§.¡.°°QÓ"7Ó8¸BÒ>Ð>Ð>ÜÜ�N‰N˜2˜qÓ!¤2×#AÑ#AÀ!ÀQÈÈ1Ó#Mô
ð 	
ñ 
r   c           	      ó€  — dt        j                  «       fdt        j                  «       fdt        j                  d«      fdt        j                  d«      fdt        j                  d«      fdt        j                  d«      ffD ](  \  }}t        j
                  |«      }t        ||«      rŒ(J ‚ t        j
                  d«      }t        d„ |j                  «       D «       «      g d	¢k(  sJ ‚t        j                  t         j                  t         j
                  dt         j                  ¬
«       t        j
                  dt        j                  «       ¬
«      }t        |j                  «       |j                  «       «      sJ ‚t        j
                  d«      }t!        |«      dk(  sJ ‚|j#                  «       dk(  sJ ‚t        j
                  d«      }t!        |«      dk(  sJ ‚|j#                  «       dk(  sJ ‚t        j
                  dt         j                  «      }t!        |«      dk(  sJ ‚|j#                  «       dk(  sJ ‚y )Nr³   r   r   r	   r
   r$   r   c              3   ó&   K  — | ]	  \  }}|–— Œ y ­wrÜ   r�   rÝ   s      r   rà   z8TestGeneratorClassic.test_wheel_graph.<locals>.<genexpr>1  rá   râ   )
r
   r
   r
   r
   r
   r
   r
   r
   r
   r*   r<   rU   rX   r   )r   rØ   r5   r%   rY   Úwheel_graphr   r�   r…   rA   rB   rC   rD   rE   r   rF   r   r   )r   r,   rd   r\   r]   s        r   Útest_wheel_graphz%TestGeneratorClassic.test_wheel_graph$  s³  € à”—‘“Ð!Ø”—‘“Ð Ø”—‘˜qÓ!Ð"Ø”—‘˜aÓ Ð!Ø”×!Ñ! !Ó$Ð%Ø”×!Ñ! !Ó$Ð%ð
ò 		'‰DˆAˆqô —‘˜qÓ!ˆAÜ   AÕ&Ð&Ð&ð		'ô �N‰N˜2ÓˆÜÑ/ A§H¡H£JÔ/Ó/Ò3QÒQÐQÐQä�‰”b×&Ñ&¬¯©¸ÌÏÉÕTä�^‰^˜B¬R¯]©]«_Ô=ˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ð1ä�N‰N˜5Ó!ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}ä�N‰N˜6Ó"ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ðˆ}Ü�N‰N˜6¤2§=¡=Ó1ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ð‰}r   c                 óÀ   — t        j                  d«      }t        j                  |j	                  d«      «      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚y )NrÏ   r
   )rA   rÐ   r   r  rÑ   r   r   rî   s      r   Ú%test_non_int_integers_for_wheel_graphz:TestGeneratorClassic.test_non_int_integers_for_wheel_graphC  sJ   € Ü× Ñ  Ó)ˆÜ�N‰N˜2Ÿ8™8 A›;Ó'ˆÜ�1‹v˜Š{Ðˆ{Ø�v‰v‹x˜1Š}Ð‰}r   c                 óÄ   — t        j                  «       }t        j                  «       }t        ||«      sJ ‚t	        |j                  «       |j                  «       «      sJ ‚y)z:Tests that the complete 0-partite graph is the null graph.N)r   r  rØ   r   r   rF   ©r   rd   rš   s      r   Útest_complete_0_partite_graphz2TestGeneratorClassic.test_complete_0_partite_graphI  sG   € ä×*Ñ*Ó,ˆÜ�M‰M‹OˆÜ˜1˜aÔ Ð Ð Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ñ0r   c                 óÈ   — t        j                  d«      }t        j                  d«      }t        ||«      sJ ‚t	        |j                  «       |j                  «       «      sJ ‚y)z;Tests that the complete 1-partite graph is the empty graph.r
   N)r   r  r5   r   r   rF   r  s      r   Útest_complete_1_partite_graphz2TestGeneratorClassic.test_complete_1_partite_graphP  sL   € ä×*Ñ*¨1Ó-ˆÜ�N‰N˜1ÓˆÜ˜1˜aÔ Ð Ð Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ñ0r   c                 óÌ   — t        j                  dd«      }t        j                  dd«      }t        ||«      sJ ‚t	        |j                  «       |j                  «       «      sJ ‚y)zZTests that the complete 2-partite graph is the complete bipartite
        graph.

        r	   r
   N)r   r  rl   r   r   rF   r  s      r   Útest_complete_2_partite_graphz2TestGeneratorClassic.test_complete_2_partite_graphW  sT   € ô
 ×*Ñ*¨1¨aÓ0ˆÜ×'Ñ'¨¨1Ó-ˆÜ˜1˜aÔ Ð Ð Ü˜1Ÿ7™7›9 a§g¡g£iÔ0Ð0Ñ0r   c                 óF  — t        j                  ddd«      }g d¢}|D ]J  }t        j                  |d«      D ]/  \  }}|||   vsJ ‚|j                  |   |j                  |   k(  rŒ/J ‚ ŒL t        j
                  |d«      D ]M  \  }}t        j                  ||«      D ]/  \  }}|||   v sJ ‚|j                  |   |j                  |   k7  rŒ/J ‚ ŒO t        j                  t         j                  d¬«      5  t        j                  ddd«       ddd«       y# 1 sw Y   yxY w)	z5Tests for generating the complete multipartite graph.r	   r
   r$   )ru   )r	   r
   r$   )r   r   rh   é   zNegative number of nodesrz   éýÿÿÿN)
r   r  Ú	itertoolsÚcombinations_with_replacementrZ   ÚcombinationsÚproductrA   rB   rC   )r   rd   ÚblocksÚblockÚuÚvÚblock1Úblock2s           r   Ú test_complete_multipartite_graphz5TestGeneratorClassic.test_complete_multipartite_grapha  s&  € ä×*Ñ*¨1¨a°Ó3ˆÚ2ˆàò 	0ˆEÜ!×?Ñ?ÀÀqÓIò 0‘��1Ø  !¡‘}Ð$�}Ø—w‘w˜q‘z Q§W¡W¨Q¡ZÓ/Ð/Ð/ñ0ð	0ô
 (×4Ñ4°V¸QÓ?ò 	0‰NˆF�FÜ!×)Ñ)¨&°&Ó9ò 0‘��1Ø˜A˜a™D‘yÐ �yØ—w‘w˜q‘z Q§W¡W¨Q¡ZÓ/Ð/Ð/ñ0ð	0ô �]‰]œ2×+Ñ+Ð3MÔNñ 	5Ü×*Ñ*¨1¨b°!Ô4÷	5÷ 	5ñ 	5ús   Ã6DÄD c                 óæ  — t        t        j                  dd«      t        j                  «       «      sJ ‚t	        dd«      D ]7  }t        t        j                  |d«      t        j
                  |«      «      rŒ7J ‚ t	        dd«      D ]:  }t        t        j                  ||dz
  «      t        j                  |«      «      rŒ:J ‚ t        j                  t        j                  dd«      «      dk(  sJ ‚y )Nr   r	   r   rh   r
   r  i  )r   r   Úkneser_graphr    rO   rY   r5   r@   )r   r§   Újs      r   Útest_kneser_graphz&TestGeneratorClassic.test_kneser_graphr  sÌ   € äœRŸ_™_¨Q°Ó2´B×4EÑ4EÓ4GÔHÐHÐHô �q˜!“ò 	NˆAÜ ¤§¡°°AÓ!6¼×8IÑ8IÈ!Ó8LÕMÐMÐMð	Nô �q˜!“ò 	OˆAÜ ¤§¡°°A¸±EÓ!:¼B¿N¹NÈ1Ó<MÕNÐNÐNð	Oô
 ×!Ñ!¤"§/¡/°!°QÓ"7Ó8¸CÒ?Ð?Ñ?r   N)5rŒ   r�   rŽ   r   r"   r(   r-   r1   r3   r6   r9   rK   rR   r^   ra   rf   rs   rx   r†   r›   r¢   r¨   rA   ÚmarkÚparametrizer°   r·   rº   r½   rÂ   rÌ   rÕ   rÙ   ræ   rì   rï   rò   rô   rö   rø   rú   rü   rþ   r   r  r	  r  r  r  r  r  r$  r(  r�   r   r   r   r      s]  „ ò$ò3ò#ò ò$ò
3ò3òò42òl;òò0ò2ò,ò ò0Qò@%1òN'ò<2ð ‡[�[×Ñ˜ZÒ)CÓDñ<ó Eð<ð
 ‡[�[×Ñ˜Z¨*°oÐ)FÓGñKó HðKò
Cð  ‡[�[×Ñ˜ZÒ)NÓOñ6ó Pð6ò2ð
 ‡[�[×ÑØØ	�[¢<°Ð"7¸&Â)Ð9LÐMóñ@ó	ð@ò
*ò8ò" òHò>ð ‡[�[×Ñ˜ZÒ)KÓLñ9ó Mð9ð
 ‡[�[×Ñ˜ZÒ)SÓTñHó UðHò
Bð ‡[�[×Ñ˜ZÒ)NÓOñ6ó Pð6ð ‡[�[×Ñ˜S 1 a &Ó)ñ3ó *ð3ò2ð
 ‡[�[×ÑØØ	�[¢<°Ð"7¸&Â)Ð9LÐMóñ?ó	ð?ò
*ò;ò
òò>ò1ò1ò1ò5ó"@r   r   )Ú__doc__r  r˜   rA   Únetworkxr   Ú(networkx.algorithms.isomorphism.isomorphr   Únetworkx.utilsr   r   r   r   r�   r   r   ú<module>r/     s1   ðñó Û ã ã Ý Nß 3à)€÷k	@ò k	@r   