Ë
    ©Ó^jP_  ã                   óL   — d Z ddlZddlZddlZddlZddlmZmZ  G d„ d«      Z	y)zŠ
====================
Generators - Classic
====================

Unit tests for various classic graph generators in generators/classic.py
é    N)Ú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"ej.                  j1                  d)e#jH                  e#jJ                  f«      d*„ «       Z&d+„ Z'ej.                  j1                  dg d,¢«      d-„ «       Z(ej.                  j1                  dg d.¢«      d/„ «       Z)d0„ Z*ej.                  j1                  dg d¢«      d1„ «       Z+ej.                  j1                  d2d3d4g«      d5„ «       Z,d6„ Z-ej.                  j1                  dddg d ¢d!fd"g d#¢fg«      d7„ «       Z.d8„ Z/d9„ Z0d:„ Z1d;„ Z2d<„ Z3d=„ Z4d>„ Z5d?„ Z6d@„ Z7dA„ Z8yB)CÚ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         úq/var/www/ramen.bs-engineer-server.com/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        j                  dd¬«      }t        j                  |t        j                  d«      «      sJ ‚t        j                  dd¬«      }t        j                  |t        j                  d«      «      sJ ‚t        j                  dd¬«      }t        j                  |t        j                  d«      «      sJ ‚y )Nr   r   )r   r   é   é
   )r   r   Úcould_be_isomorphicÚ
star_graph©r   r   s     r   Útest_balanced_tree_starz,TestGeneratorClassic.test_balanced_tree_star"   s•   € ä×Ñ˜q AÔ&ˆÜ×%Ñ% a¬¯©°qÓ)9Ô:Ð:Ð:Ü×Ñ˜q AÔ&ˆÜ×%Ñ% a¬¯©°qÓ)9Ô:Ð:Ð:Ü×Ñ˜r QÔ'ˆÜ×%Ñ% a¬¯©°rÓ):Ô;Ð;Ñ;r   c                 óŠ   — t        j                  dd«      }t        j                  d«      }t        j                  ||«      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+   s:   € ô ×Ñ˜Q Ó"ˆÜ�M‰M˜!ÓˆÜ×%Ñ% a¨Ô+Ð+Ñ+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_tree5   s®   € ØˆØˆÜ×Ñ˜a Ó#ˆØ�w‰w‹y˜AŠ~Ðˆ~Ü�‰˜qÔ!Ð!Ð!Ü× Ñ  Ó#ˆØ�!‰u˜ŠzÐˆzØ�!‰u˜ŠzÐˆzØ�!‰u˜ŠzÐˆzØ�!�a‘%‰y˜IÒ%Ð%Ð%Ü�2‹w˜!˜a™%ÒÐÑr   c                 óŒ   — t        j                  dd«      }t        j                  dd«      }t        j                  ||«      sJ ‚y )Nr   é   r	   )r   r*   r   r   )r   r   Úths      r   Útest_full_rary_tree_balancedz1TestGeneratorClassic.test_full_rary_tree_balancedB   s<   € Ü×Ñ˜a Ó$ˆÜ×Ñ˜a Ó#ˆÜ×%Ñ% a¨Ô,Ð,Ñ,r   c                 ó†   — t        j                  dd«      }t        j                  |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_pathG   s3   € Ü×Ñ˜a Ó$ˆÜ×%Ñ% a¬¯©°rÓ):Ô;Ð;Ñ;r   c                 ó  — t        j                  dd«      }t        j                  |t        j                  d«      «      sJ ‚t        j                  dd«      }t        j                  |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_emptyK   sd   € Ü×Ñ˜a Ó$ˆÜ×%Ñ% a¬¯©¸Ó);Ô<Ð<Ð<Ü×Ñ˜a Ó#ˆÜ×%Ñ% a¬¯©¸Ó):Ô;Ð;Ñ;r   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_20Q   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        j                  |t        j                  |dz   «      «      sJ ‚d}d}t        j                  ||«      }t        j                  |t        j                  |dz   «      «      sJ ‚d}d}t        j                  ||«      }t        j                  |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   r7   éþÿÿÿ©Ú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_graphU   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 Ó$ˆÜ×%Ñ% a¬¯©°r¸A±vÓ)>Ô?Ð?Ð?àˆØˆÜ×Ñ˜R Ó$ˆÜ×%Ñ% a¬¯©°r¸A±vÓ)>Ô?Ð?Ð?àˆØˆÜ×Ñ˜R Ó$ˆÜ×%Ñ% a¬¯©°r¸A±vÓ)>Ô?Ð?Ð?ä�‰Ü×Ñœ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   ÚGraphrC   rD   ÚMultiDiGraphÚrangeÚbinomial_treer>   r?   )r   Úgraphsr<   r+   rH   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)ÚarH   Úcr	   Úabcbr#   r
   )
r   Úcomplete_graphr>   r?   rD   r   rE   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 )NrS   r;   r   rT   r	   r
   )r   rX   rC   r>   r?   r   r   Úis_directed)r   rZ   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_graphr@   rA   rB   rC   rD   r   rE   )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        j                  ||«      sJ ‚y )Nr
   r   é   ©r   r   r	   r	   )r   Úcirculant_graphÚcycle_graphr   rE   rX   Ú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ˆÜ×%Ñ% g¨tÔ4Ð4Ñ4r   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   rT   r	   rW   )
r   rj   r   rE   rD   rC   Úhas_edger_   r   r   )r   rc   rd   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   rt   r   )rt   ©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 supportedrg   r;   zmultigraph not supported)r   Ú dorogovtsev_goltsev_mendes_graphr   rE   r   ÚlistÚaverage_clusteringÚaverage_shortest_path_lengthÚsortedÚ	trianglesÚvaluesÚ	is_planarr>   r?   Údegreer@   rA   rB   rC   rD   rM   )r   rc   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;   rL   )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   r4   Ú
isinstancerL   r@   rA   Ú	TypeErrorrD   rC   r$   Úis_multigraphr_   r   ÚtypingÚProtocol)r   rc   Ú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   é*   rT   r	   Úduh)Únamer;   )r   r4   r>   r?   r   r   rC   r–   rD   Úpetersen_graphrL   )r   rc   Úpetes      r   Útest_empty_graphz%TestGeneratorClassic.test_empty_graph/  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                 óp  — dt        j                  d«      fdt        j                  d«      fdt        j                  d«      fdt        j                  ddg«      ffD ]0  \  }}t        j
                  t        j                  |«      |«      rŒ0J ‚ 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   r4   r$   Úhypercube_graphÚ
grid_graphr   Úladder_graphr@   rA   rB   rC   rD   r   rE   )r   Úirc   r[   r\   s        r   Útest_ladder_graphz&TestGeneratorClassic.test_ladder_graphM  sä   € à”—‘˜qÓ!Ð"Ø”—‘˜aÓ Ð!Ø”×"Ñ" 1Ó%Ð&Ø”—‘  2˜wÓ'Ð(ð	
ò 	A‰DˆAˆqô ×)Ñ)¬"¯/©/¸!Ó*<¸aÕ@Ð@Ð@ð	Aô 	�‰”b×&Ñ&¬¯©¸ÌÏÉÕTä�O‰O˜AÓˆÜ�_‰_˜Q¬R¯]©]Ô;ˆÜ˜2Ÿ8™8›: q§w¡w£yÔ1Ð1Ñ1r   )rZ   r+   )©r	   r   ©r#   r   ©r	   r7   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   rZ   r+   rc   s       r   Útest_lollipop_graph_right_sizesz4TestGeneratorClassic.test_lollipop_graph_right_sizes\  s[   € ä×Ñ˜a Ó#ˆÜ×!Ñ! !Ó$¨¨A©Ò-Ð-Ð-Ü×!Ñ! !Ó$¨¨Q°©U©°a©¸!Ñ(;Ò;Ð;Ñ;r   ©ÚabÚ ©rT   Ú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_sequenceb  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   r7   r´   rU   r   r:   r;   )r@   rA   r   rB   r¯   rC   rM   ©r   s    r   Útest_lollipop_graph_exceptionsz3TestGeneratorClassic.test_lollipop_graph_exceptionsh  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³   r7   c                 óŒ   — t        j                  ||«      }t        j                  |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_2x  s7   € ä×Ñ˜a Ó#ˆÜ×%Ñ% a¬¯©°q¸1±uÓ)=Ô>Ð>Ñ>r   c                 óÐ   — t        j                  dd«      }t        j                  ddt         j                  ¬«      }t        |j	                  «       |j	                  «       «      sJ ‚y ©Nr   r7   r;   )r   r¯   rD   r   rE   ©r   rc   Ú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#   rT   )Úabcdr	   )r   r   r	   r#   rT   rÄ   rh   c           	      ó  — t        j                  t        j                  d«      t        j                  t	        dd«      «      «      }|j                  dd«       t        j                  t        j                  ||«      |«      sJ ‚y ©Nr#   éd   ég   r   )r   ÚcomposerX   r$   rN   Úadd_edger   r¯   ©r   rZ   r+   Úexpecteds       r   Ú&test_lollipop_graph_mixing_input_typesz;TestGeneratorClassic.test_lollipop_graph_mixing_input_types‚  sa   € ô
 —:‘:œb×/Ñ/°Ó2´B·M±MÄ%ÈÈSÃ/Ó4RÓSˆØ×Ñ˜!˜SÔ!Ü×%Ñ%¤b×&7Ñ&7¸¸1Ó&=¸xÔHÐHÑHr   c           	      óv  — t        j                  d«      }t        j                  |j	                  d«      |j                  d«      «      }t        j                  t        j                  d«      t        j                  t        dd«      «      «      }|j                  dd«       t        j                  ||«      sJ ‚y ©NÚnumpyr#   r	   rÇ   rÈ   r   )r@   Úimportorskipr   r¯   Úint32Úint64rÉ   rX   r$   rN   rÊ   r   ©r   Únprc   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Ô!Ü×%Ñ% a¨Ô2Ð2Ñ2r   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        j                  |t        j                  «       «      sJ ‚t        j                  d«      }t        j                  |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;   rT   r   rW   )r   r   r	   r   r#   r#   )r   r$   r   rÙ   r4   r   r‚   r†   r   r   rC   rw   rD   r   rE   r   r_   )r   ÚpÚdpÚmprc   r[   s         r   Útest_path_graphz$TestGeneratorClassic.test_path_graph•  s  € Ü�M‰M˜!ÓˆÜ×%Ñ% a¬¯©«Ô9Ð9Ð9ä�M‰M˜!ÓˆÜ×%Ñ% a¬¯©¸Ó):Ô;Ð;Ð;ä�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        j                  t        j                  d«      t        j                  d«      «      sJ ‚t        j                  t        j                  g «      t        j                  d«      «      sJ ‚t        j                  t        j                  d«      t        j                  d«      «      sJ ‚t        j                  t        j                  d«      t        j                  d«      «      sJ ‚t        j                  t        j                  d«      t        j                  d«      «      sJ ‚t        j                  t        j                  d«      t        j
                  dd«      «      sJ ‚t        j                  d«      }t        d„ |j                  «       D «       «      g d	¢k(  s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;   rT   rW   Úabcdefgrg   r
   )r   r   r   r4   r$   rk   r‚   r†   rD   r   rE   r   r   )r   ÚsÚmsrc   s       r   Útest_star_graphz$TestGeneratorClassic.test_star_graph¹  s#  € Ü×%Ñ%¤b§m¡m°BÓ&7¼¿¹ÈÓ9JÔKÐKÐKÜ×%Ñ%¤b§m¡m°BÓ&7¼¿¹ÈÓ9JÔKÐKÐKÜ×%Ñ%¤b§m¡m°AÓ&6¼¿¹ÀqÓ8IÔJÐJÐJÜ×%Ñ%¤b§m¡m°AÓ&6¼¿¹ÀaÓ8HÔIÐIÐIÜ×%Ñ%¤b§m¡m°AÓ&6¼¿¹ÀaÓ8HÔIÐIÐIÜ×%Ñ%Ü�M‰M˜!Óœb×9Ñ9¸!¸QÓ?ô
ð 	
ð 
ô �M‰M˜"ÓˆÜÑ/ A§H¡H£JÔ/Ó/Ò3UÒUÐUÐUä�]‰]˜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   Ú
graph_typec           
      ó¦   — t        j                  d|¬«      }t        |j                  D ���cg c]	  ^}}}||f‘Œ c}}}«      g d¢k(  sJ ‚y c c}}}w )Nr	   r;   )rt   rz   ru   )r   r   r‚   rE   )r   rî   ÚdgÚuÚvrà   s         r   Útest_star_graph_directedz-TestGeneratorClassic.test_star_graph_directedØ  sE   € ä�]‰]˜1¨:Ô6ˆÜ¨b¯h©h×7Ð7 ( ! Q¨˜˜1’vÔ7Ó8Ò<TÒTÐTÑTùÔ7s   ­Ac                 óÀ   — t        j                  d«      }t        j                  |j	                  d«      «      }t        |«      dk(  sJ ‚|j                  «       dk(  sJ ‚y )NrÐ   r	   r#   )r@   rÑ   r   r   rÒ   r   r   ©r   rÕ   rc   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³   rV   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   r7   r;   )r@   rA   r   rB   rø   rC   rM   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                 óŒ   — t        j                  ||«      }t        j                  |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þ  s7   € ä×Ñ˜Q Ó"ˆÜ×%Ñ% a¬¯©°q¸1±uÓ)=Ô>Ð>Ñ>r   rZ   r#   rg   c                 ó†   — t        j                  |d«      }t        j                  |t        j                  |«      «      sJ ‚y rØ   )r   rø   r   rj   )r   rZ   rc   s      r   Ú-test_tadpole_graph_same_as_cycle_when_m2_is_0zBTestGeneratorClassic.test_tadpole_graph_same_as_cycle_when_m2_is_0  s3   € ä×Ñ˜Q Ó"ˆÜ×%Ñ% a¬¯©¸Ó):Ô;Ð;Ñ;r   c                 óÐ   — t        j                  dd«      }t        j                  ddt         j                  ¬«      }t        |j	                  «       |j	                  «       «      sJ ‚y rÀ   )r   rø   rD   r   rE   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        j                  t        j                  ||«      |«      sJ ‚y rÆ   )r   rÉ   rj   r$   rN   rÊ   r   rø   rË   s       r   Ú%test_tadpole_graph_mixing_input_typesz:TestGeneratorClassic.test_tadpole_graph_mixing_input_types  s_   € ô
 —:‘:œbŸn™n¨QÓ/´·±¼uÀSÈ#»Ó1OÓPˆØ×Ñ˜!˜SÔ!Ü×%Ñ%¤b×&6Ñ&6°q¸!Ó&<¸hÔGÐGÑGr   c           	      óv  — t        j                  d«      }t        j                  |j	                  d«      |j                  d«      «      }t        j                  t        j                  d«      t        j                  t        dd«      «      «      }|j                  dd«       t        j                  ||«      sJ ‚y rÏ   )r@   rÑ   r   rø   rÒ   rÓ   rÉ   rj   r$   rN   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Ô!Ü×%Ñ% a¨Ô2Ð2Ñ2r   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        j                  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   s_   € Ü×!Ñ!¤"§.¡.°°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 ]2  \  }}t        j
                  |«      }t        j                  ||«      rŒ2J ‚ 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>3  râ   rã   )
r	   r	   r	   r	   r	   r	   r	   r	   r	   r)   r;   rT   rW   r
   )r   rÙ   r4   r$   rX   Úwheel_graphr   r‚   r†   r@   rA   rB   rC   rD   r   rE   r   r   )r   r+   rc   r[   r\   s        r   Útest_wheel_graphz%TestGeneratorClassic.test_wheel_graph&  s¹  € à”—‘“Ð!Ø”—‘“Ð Ø”—‘˜qÓ!Ð"Ø”—‘˜aÓ Ð!Ø”×!Ñ! !Ó$Ð%Ø”×!Ñ! !Ó$Ð%ð
ò 		0‰DˆAˆqô —‘˜qÓ!ˆAÜ×)Ñ)¨!¨QÕ/Ð/Ð/ð		0ô �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	   )r@   rÑ   r   r  rÒ   r   r   rõ   s      r   Ú%test_non_int_integers_for_wheel_graphz:TestGeneratorClassic.test_non_int_integers_for_wheel_graphE  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   rE   ©r   rc   r›   s      r   Útest_complete_0_partite_graphz2TestGeneratorClassic.test_complete_0_partite_graphK  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  r4   r   r   rE   r  s      r   Útest_complete_1_partite_graphz2TestGeneratorClassic.test_complete_1_partite_graphR  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  rk   r   r   rE   r  s      r   Útest_complete_2_partite_graphz2TestGeneratorClassic.test_complete_2_partite_graphY  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#   )rt   )r   r	   r#   )r   r
   rg   é   zNegative number of nodesr{   éýÿÿÿN)
r   r  Ú	itertoolsÚcombinations_with_replacementrY   ÚcombinationsÚproductr@   rA   rB   )r   rc   ÚblocksÚblockrñ   rò   Úblock1Úblock2s           r   Ú test_complete_multipartite_graphz5TestGeneratorClassic.test_complete_multipartite_graphc  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        j                  t        j                  dd«      t        j                  «       «      sJ ‚t	        dd«      D ]A  }t        j                  t        j                  |d«      t        j
                  |«      «      rŒAJ ‚ t	        dd«      D ]D  }t        j                  t        j                  ||dz
  «      t        j                  |«      «      rŒDJ ‚ t        j                  t        j                  dd«      «      dk(  sJ ‚y )Nr   r   r   rg   r	   r  i  )r   r   Úkneser_graphr¡   rN   rX   r4   r?   )r   r¨   Újs      r   Útest_kneser_graphz&TestGeneratorClassic.test_kneser_grapht  sà   € ä×%Ñ%¤b§o¡o°a¸Ó&;¼R×=NÑ=NÓ=PÔQÐQÐQô �q˜!“ò 	WˆAÜ×)Ñ)¬"¯/©/¸!¸QÓ*?Ä×ARÑARÐSTÓAUÕVÐVÐVð	Wô �q˜!“ò 	XˆAÜ×)Ñ)¬"¯/©/¸!¸QÀ¹UÓ*CÄRÇ^Á^ÐTUÓEVÕWÐWÐWð	Xô
 ×!Ñ!¤"§/¡/°!°QÓ"7Ó8¸CÒ?Ð?Ñ?r   N)9r�   rŽ   r�   r   r!   r'   r,   r0   r2   r5   r8   rJ   rQ   r]   r`   re   rr   rx   r‡   rœ   r£   r©   r@   ÚmarkÚparametrizer±   r¸   r»   r¾   rÃ   rÍ   rÖ   rÚ   rç   rí   r   rC   rM   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”  „ ò$ò<ò,ò ò-ò
<ò<òò42òl;òò0ò2ò5ò ò0Qò@%1òN'ò<2ð ‡[�[×Ñ˜ZÒ)CÓDñ<ó Eð<ð
 ‡[�[×Ñ˜Z¨*°oÐ)FÓGñKó HðKò
Cð  ‡[�[×Ñ˜ZÒ)NÓOñ?ó Pð?ò2ð
 ‡[�[×ÑØØ	�[¢<°Ð"7¸&Â)Ð9LÐMóñIó	ðIò
3ò8ò" òHð> ‡[�[×Ñ˜\¨B¯J©J¸¿¹Ð+HÓIñUó JðUòð ‡[�[×Ñ˜ZÒ)KÓLñ9ó Mð9ð
 ‡[�[×Ñ˜ZÒ)SÓTñHó UðHò
Bð ‡[�[×Ñ˜ZÒ)NÓOñ?ó Pð?ð ‡[�[×Ñ˜S 1 a &Ó)ñ<ó *ð<ò2ð
 ‡[�[×ÑØØ	�[¢<°Ð"7¸&Â)Ð9LÐMóñHó	ðHò
3ò;ò
òò>ò1ò1ò1ò5ó"@r   r   )
Ú__doc__r!  r™   r@   Únetworkxr   Únetworkx.utilsr   r   r   r�   r   r   ú<module>r3     s)   ðñó Û ã ã ß 3÷p	@ò p	@r   