+
    )i              	          ^ RI t ^ RIt^ RIt^ RIHtHt R t ! R R4      t ! R R4      t	]P                  P                  R]P                  ]P                  ]P                  ]P                  34      R	 4       t]P                  P                  R%^ R
^R/R3^ RR
/^RR//R334      R 4       t]P                  P                  R]P                  ]P                  34      R 4       t]P                  P                  R%R&RR'R/R3R&RR/R'RR//R334      R 4       t]P                  P                  R]P                  ]P                  34      R 4       t]P                  P                  R%R(RR)R/R3R(RR/R)RR//R334      R 4       tR tR t]P                  P                  R]P                  ]P                  ]P                  ]P                  34      R 4       t]P                  P                  R]P                  ]P                  34      R 4       t]P                  P                  R]P                  ]P                  34      R 4       tR t]P                  P                  R]P                  ]P                  ]P                  ]P                  .4      R 4       t]P                  P                  R]P                  ]P                  ]P                  ]P                  .4      R 4       tR t]P                  P                  R]P                  ]P                  .4      R 4       t]P                  P                  R]P                  ]P                  .4      R 4       t R  t!]P                  P                  R!]P                  ! 4       ]P                  ! 4       ]P                  ! 4       ]P                  ! 4       34      R" 4       t"]P                  P                  R!]P                  ! 4       ]P                  ! 4       34      R# 4       t#]P                  P                  R!]P                  ! 4       ]P                  ! 4       34      R$ 4       t$R# )*    N)edges_equalnodes_equalc                  j    \         P                  ! 4       p \         P                  ! V 4      . 8X  g   Q hR # N)nxGraphdegree_histogramGs    b/var/www/html/photoedit/myenv/lib/python3.14/site-packages/networkx/classes/tests/test_function.pytest_degree_histogram_emptyr   	   s&    

Aq!R'''    c                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV t R# )TestFunctionc           
        \         P                  ! ^ . RO^. RO^. /RR7      V n        ^ ^^^^^^^^^ /V n        \	        \        ^4      4      V n        . ROV n        \         P                  ! ^ . RO^. RO^. /4      V n	        ^ ^^^^^^^^^ /V n
        ^ ^^^^^ ^^ ^^ /V n        \	        \        ^4      4      V n        . ROV n        R# )r   Test)nameN         r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   GdegreelistrangeGnodesGedgesDiGraphDGDGin_degreeDGout_degreeDGnodesDGedgesselfs   &r   setup_methodTestFunction.setup_method   s    1iIq"=FK1aAq!Q1558nF**aAy!R@Aq!Q1aAq91aAq!Q:E!H~Gr   c                P   \         P                  P                  P                  V P                  4      pVR ,          R8X  g   Q hVR,          '       d   Q hVR,          '       d   Q hVR,          ^8X  g   Q hVR,          ^8X  g   Q hVR,          R8X  g   Q hVR,          ^8X  g   Q hR	# )
zName of Graphr   Directed
MultigraphzNumber of nodeszNumber of edgeszAverage degree (min, max)z2.00 (0, 4)zNumber of connected componentsN)r   classesfunction_create_describe_info_dictr   )r,   	info_dicts   & r   test_describe_info_dict$TestFunction.test_describe_info_dict   s    JJ''BB466J	)V333Z((((\*****+q000*+q00045FFF9:a???r   c                R   \        V P                  P                  4       \        \        P                  ! V P                  4      4      4      '       g   Q h\        V P
                  P                  4       \        \        P                  ! V P
                  4      4      4      '       g   Q hR # r   )r   r   nodesr!   r   r&   r+   s   &r   
test_nodesTestFunction.test_nodes$   s`    466<<>40@+ABBBB477==?D$''1B,CDDDDr   c           
        \        V P                  P                  4       \        \        P                  ! V P                  4      4      4      '       g   Q h\        V P                  P                  4       4      \        \        P                  ! V P                  4      4      8X  g   Q h\        V P                  P                  . ROR7      \        \        P                  ! V P                  . ROR7      4      4      '       g   Q h\        V P                  P                  . ROR7      4      \        \        P                  ! V P                  . ROR7      4      8X  g   Q hR# )r   nbunchN)r   r   r   )r   r   edgesr!   r   sortedr&   r+   s   &r   
test_edgesTestFunction.test_edges(   s    466<<>40@+ABBBBdggmmo&&$''1B*CCCCFFLL	L*D$&&1S,T
 
 	
 
 dggmm9m56&HHTWWY/;
 
 	
 
r   c           
        \        V P                  P                  4       \        \        P                  ! V P                  4      4      4      '       g   Q h\        V P                  P                  4       4      \        \        P                  ! V P                  4      4      8X  g   Q h\        V P                  P                  ^ ^.R7      \        \        P                  ! V P                  ^ ^.R7      4      4      '       g   Q h\        V P                  P                  ^ ^.R7      4      \        \        P                  ! V P                  ^ ^.R7      4      8X  g   Q h\        V P                  P                  RR7      \        \        P                  ! V P                  RR7      4      4      '       g   Q h\        V P                  P                  RR7      4      \        \        P                  ! V P                  RR7      4      8X  g   Q hR# )r   r=   weightrD   N)r   r   degreer!   r   r@   r&   r+   s   &r   test_degreeTestFunction.test_degree2   ss   466==?D4661B,CDDDDdggnn&'6"))DGG2D+EEEEFFMM!QM($ryyA/O*P
 
 	
 
 dggnnQFn34IIdggq!f-9
 
 	
 
 FFMMM*D466(1S,T
 
 	
 
 dggnnHn56&IIdggh/;
 
 	
 
r   c                R   \        V P                  P                  ^4      4      \        \        P                  ! V P                  ^4      4      8X  g   Q h\        V P                  P                  ^4      4      \        \        P                  ! V P                  ^4      4      8X  g   Q hR# )r   N)r!   r   	neighborsr   r&   r+   s   &r   test_neighborsTestFunction.test_neighborsB   sn    DFF$$Q'(Ddffa1H,IIIIDGG%%a()T",,tww2J-KKKKr   c                   V P                   P                  4       \        P                  ! V P                   4      8X  g   Q hV P                  P                  4       \        P                  ! V P                  4      8X  g   Q hR # r   )r   number_of_nodesr   r&   r+   s   &r   test_number_of_nodes!TestFunction.test_number_of_nodesF   V    vv%%'2+=+=dff+EEEEww&&(B,>,>tww,GGGGr   c                   V P                   P                  4       \        P                  ! V P                   4      8X  g   Q hV P                  P                  4       \        P                  ! V P                  4      8X  g   Q hR # r   )r   number_of_edgesr   r&   r+   s   &r   test_number_of_edges!TestFunction.test_number_of_edgesJ   rQ   r   c                   V P                   P                  4       \        P                  ! V P                   4      8X  g   Q hV P                  P                  4       \        P                  ! V P                  4      8X  g   Q hR # r   )r   is_directedr   r&   r+   s   &r   test_is_directedTestFunction.test_is_directedN   sR    vv!!#r~~dff'====ww""$tww(????r   c           	     d   V P                   P                  4       p. ROp\        P                  ! W4       \	        VP                  V4      . RO4      '       g   Q hV P                   P                  4       p\        P                  ! WRR7       \	        VP                  VRR7      ^^RR/3^^RR/3^^RR/3.4      '       g   Q hV P                   P                  4       p^.p\        P                  ! W4       \        V\        V P                   4      V,           4      '       g   Q hV P                   P                  4       p. p\        P                  ! W4       \        VP                  V P                  4      '       g   Q h\	        VP
                  V P                   P
                  4      '       g   Q hR# )	          @rE   TdatarD   Nr[            )r[   r`   )r[   ra   r[   rb   )
r   copyr   add_starr   r?   r   r!   r9   r#   r,   r   nlists   &  r   test_add_starTestFunction.test_add_starR   sO   FFKKM 
A1775>+IJJJJFFKKM
AS)GGEG%R(C)R(C)R(C)
 
 	
 
 FFKKM
A1d466lU23333FFKKM
A177DKK0000177DFFLL1111r   c           	        V P                   P                  4       p. ROp\        P                  ! W4       \	        VP                  V4      . R	O4      '       g   Q hV P                   P                  4       p\        P                  ! WRR7       \	        VP                  VRR7      ^^RR/3^^RR/3^^RR/3.4      '       g   Q hV P                   P                  4       pR.p\        P                  ! W4       \	        VP                  V4      . 4      '       g   Q h\        V\        V P                   4      R.,           4      '       g   Q hV P                   P                  4       p\        R.4      p\        P                  ! W4       \	        VP                  R.4      . 4      '       g   Q h\        V\        V P                   4      R.,           4      '       g   Q hV P                   P                  4       p^.p\        P                  ! W4       \	        VP                  V4      . 4      '       g   Q h\        V\        V P                   4      ^.,           4      '       g   Q hV P                   P                  4       p\        ^.4      p\        P                  ! W4       \	        VP                  ^.4      . 4      '       g   Q h\        V\        V P                   4      ^.,           4      '       g   Q hV P                   P                  4       p. p\        P                  ! W4       \	        VP
                  V P                   P
                  4      '       g   Q h\        V\        V P                   4      4      '       g   Q hV P                   P                  4       p\        . 4      p\        P                  ! W4       \	        VP
                  V P                   P
                  4      '       g   Q h\        V\        V P                   4      4      '       g   Q hR# )
r[   r\   rE   Tr]   rD   nodeNr_   )rc   r`   ra   ra   rb   )	r   re   r   add_pathr   r?   r   r!   iterrg   s   &  r   test_add_pathTestFunction.test_add_pathn   s   FFKKM 
A1775>+IJJJJFFKKM
AS)GGEG%R(C)R(C)R(C)
 
 	
 
 FFKKM
A1775>2....1d466lfX56666FFKKMfX
A177F8,b11111d466lfX56666FFKKM
A1775>2....1d466lbT12222FFKKMbT

A177B4="----1d466lbT12222FFKKM
A177DFFLL11111d466l++++FFKKMR
A177DFFLL11111d466l++++r   c                   V P                   P                  4       p. ROp. RO. R	O.p\        P                  ! W4       \	        VP                  V4      4      V9   g   Q hV P                   P                  4       p^^RR/3^^RR/3^^RR/3^^RR/3.^^RR/3^^RR/3^^RR/3^^RR/3..p\        P                  ! WRR7       \	        VP                  VRR7      4      V9   g   Q hV P                   P                  4       p^.p\        P                  ! W4       \        V\        V P                   4      V,           4      '       g   Q hV P                   P                  4       p. p\        P                  ! W4       \        VP                  V P                  4      '       g   Q h\        VP
                  V P                   P
                  4      '       g   Q hR# )
r[   rD         ?rE   Tr]   Nr_   )rc   rd   rm   rn   )rc   rm   rn   )rb   r[   )r   re   r   	add_cycler@   r?   r   r!   r9   r#   r   )r,   r   rh   oklistss   &   r   test_add_cycleTestFunction.test_add_cycle   s   FFKKM 44
 	Qaggen%000FFKKM R(C)R(C)R(C)R(C)	 R(C)R(C)R(C)R(C)	
 	Qc*agge$g/0G;;;FFKKM
Q1d466lU23333FFKKM
Q177DKK0000177DFFLL1111r   c                   V P                   P                  . RO4      P                  \        P                  ! V P                   . RO4      P                  8X  g   Q hV P                  P                  . RO4      P                  \        P                  ! V P                  . RO4      P                  8X  g   Q hV P                   P                  . RO4      P                  \        P
                  ! V P                   . RO4      P                  8X  g   Q hV P                  P                  . RO4      P                  \        P
                  ! V P                  . RO4      P                  8X  g   Q h\        P
                  ! V P                   P                  . RO4      . RO4      pVP                  V P                   Jg   Q hVP                  V P                   P                  . RO4      P                  8X  g   Q hR# )r   N)r   r   r      )r   r   rz   )r   subgraphadjr   r&   induced_subgraph_graph)r,   Hs   & r   test_subgraphTestFunction.test_subgraph   sV   FFOOL)--TVV\1R1V1VV	
V GG\*.."++dgg|2T2X2XX	
X FFOOL)--""466<8<<=	
= GG\*..""477L9==>	
>  =yIxxtvv%%%uu	266666r   c                j   V P                   P                  RR.4      P                  \        P                  ! V P                   RR.4      P                  8X  g   Q hV P                  P                  RR.4      P                  \        P                  ! V P                  RR.4      P                  8X  g   Q hR# )r   Nr   r   )r   edge_subgraphr|   r   r&   r+   s   &r   test_edge_subgraphTestFunction.test_edge_subgraph   s    FF  &&!1266(89==>	
> GG!!66"2377&&)9:>>?	
?r   c                J   \         P                  ! V P                  R R7      p\        V\	        V P                  4      4      '       g   Q hVP
                  / 8X  g   Q hVP                  / P                  V P                  P                  4       / 4      8X  g   Q hVP                  / P                  V P                  P                  4       / 4      8X  g   Q h\         P                  ! V P                  4      p\        V\	        V P                  4      4      '       g   Q hVP
                  V P                  P
                  8X  g   Q hVP                  V P                  P                  8X  g   Q hVP                  / P                  V P                  P                  4       / 4      8X  g   Q hR# )F)	with_dataN)
r   create_empty_copyr   r   r!   graph_nodefromkeysr9   _adjr,   r   s   & r   test_create_empty_copy#TestFunction.test_create_empty_copy   s     591d466l++++ww"}}ww"++dffllnb9999vvTVV\\^R8888  (1d466l++++ww$&&,,&&&ww$&&,,&&&vvTVV\\^R8888r   c                X    \         P                  ! V P                  4      . RO8X  g   Q hR# )r   N)r   r   r   r   r   )r   r	   r   r+   s   &r   test_degree_histogram"TestFunction.test_degree_histogram   s    ""466*o===r   c                (   \         P                  ! V P                  4      R 8X  g   Q h\         P                  ! V P                  4      R8X  g   Q h\         P                  ! 4       pVP                  ^4       \         P                  ! V4      R8X  g   Q hR# )g      ?g333333?        N)r   densityr   r&   r   add_noder   s   & r   test_densityTestFunction.test_density   sd    zz$&&!S(((zz$''"c)))HHJ	

1zz!}###r   c                    \         P                  ! 4       pVP                  ^^4       \         P                  ! V4      R8X  g   Q hVP                  ^^4       \         P                  ! V4      R8X  g   Q hR# )r   r   r\   N)r   r   add_edger   r   s   & r   test_density_selfloop"TestFunction.test_density_selfloop   sU    HHJ	

1azz!}###	

1azz!}###r   c                6   \         P                  ! V P                  4      pVP                  '       g   Q h\        P
                  ! \         P                  VP                  ^4       \        P
                  ! \         P                  VP                  ^.4       \        P
                  ! \         P                  VP                  ^4       \        P
                  ! \         P                  VP                  ^.4       \        P
                  ! \         P                  VP                  ^^4       \        P
                  ! \         P                  VP                  R.4       \        P
                  ! \         P                  VP                  ^^4       \        P
                  ! \         P                  VP                  R.4       \        P
                  ! \         P                  VP                  4       \        P
                  ! \         P                  VP                   4       R# )r   Nr   )r   freezer   frozenpytestraisesNetworkXErrorr   add_nodes_fromremove_noderemove_nodes_fromr   add_edges_fromremove_edgeremove_edges_fromclear_edgesclearr   s   & r   test_freezeTestFunction.test_freeze  s5   IIdffxxxxb&&

A6b&&(8(81#>b&&q9b&&(;(;aSAb&&

Aq9b&&(8(86(Cb&&q!<b&&(;(;fXFb&&6b&&0r   c                    \         P                  ! V P                  4      '       d   Q h\         P                  ! V P                  4      pVP                  \         P                  ! V P                  4      8X  g   Q hVP                  '       g   Q hR # r   )r   	is_frozenr   r   r   r   s   & r   test_is_frozenTestFunction.test_is_frozen  sY    <<''''IIdffxx2<<////xxxxr   c                    \         P                  ! \         P                  ! ^4      4      pVP                  ^ ,          pRVR&   VR,          RJ g   Q hR# )r   Tnode_attributeN)r   r   
path_graphr9   )r,   r   rl   s   &  r   6test_node_attributes_are_still_mutable_on_frozen_graphCTestFunction.test_node_attributes_are_still_mutable_on_frozen_graph  sE    IIbmmA&'wwqz!%$%---r   c                    \         P                  ! \         P                  ! ^4      4      pVP                  R,          pRVR&   VR,          RJ g   Q hR# )r   Tedge_attributeNr   )r   r   r   r?   )r,   r   edges   &  r   6test_edge_attributes_are_still_mutable_on_frozen_graphCTestFunction.test_edge_attributes_are_still_mutable_on_frozen_graph  sE    IIbmmA&'wwv!%$%---r   c                   \         P                  ! ^d4      p\        P                  ! \	        V4      ^4      p\	        \         P
                  ! W^ ,          4      4      p\        V4      \        V4      ^,
          8X  g   Q h\         P                  ! ^d4      p\        P                  ! \	        V4      ^4      ^ ,          p\	        \         P
                  ! W4      4      pV^ 8w  d   V^c8w  d   \        V4      ^8X  g   Q hM\        V4      ^8X  g   Q h\         P                  ! ^c4      p\	        \         P
                  ! V^ 4      4      p\        V4      ^c8X  g   Q hR# d   N)	r   complete_graphrandomsampler!   rJ   lenr   
star_graphr,   r   popnborsrl   s   &    r   test_neighbors_complete_graph*TestFunction.test_neighbors_complete_graph#  s    !!#&mmDK+R\\%Q015zSZ!^+++c"}}T%[!,Q/R\\%./19u:?"?u:?"? b!R\\%+,5zRr   c                
   \         P                  ! ^d4      p\        P                  ! \	        V4      ^4      p\         P
                  ! W^ ,          4      p\        V4      ^ 8X  g   Q h\         P                  ! ^d4      p\        P                  ! \	        V4      ^4      ^ ,          p\         P
                  ! W4      pV^ 8w  d   V^c8w  d   \        V4      ^a8X  g   Q hM\        V4      ^b8X  g   Q h\         P                  ! ^c4      p\         P
                  ! V^ 4      p\        V4      ^ 8X  g   Q h\         P                  ! 4       pVP                  \        ^
4      4       \         P
                  ! V^ 4      p\        V4      ^	8X  g   Q hR# r   )r   r   r   r   r!   non_neighborsr   r   r   r   r   r"   r   s   &    r   test_non_neighborsTestFunction.test_non_neighbors8  s%   !!#&mmDK+  A/5zQc"}}T%[!,Q/  -19u:###u:### b!  *5zQ 
U2Y'  *5zQr   c                   \         P                  ! ^4      p\        \         P                  ! V4      4      p\	        V4      ^ 8X  g   Q h\         P
                  ! ^4      p. ROp\        \         P                  ! V4      4      pV F  w  rEWE3V9   d   K  WT3V9   d   K  Q h	  \         P                  ! ^4      p. ROp\        \         P                  ! V4      4      pV F  w  rEWE3V9   d   K  WT3V9   d   K  Q h	  \         P                  ! 4       pVP                  . RO4       . ROp\        \         P                  ! V4      4      pV F  pWb9   d   K  Q h	  R# )   N)r   r   r   r   )r   r   r   rz   r   r   r   rz   r   rz   )r   )r   r   )r   r   )r   r   r   )	r   r   r!   	non_edgesr   r   r   r%   r   )r,   r   nedgesexpecteduves   &      r   test_non_edgesTestFunction.test_non_edgesS  s   !!!$bll5)*6{aa +bll5)*DA6V#v'777  a Cbll5)*DA6V#v'777  

56+bll5)*A;; r   c                   \         P                  ! 4       p\         P                  ! V4      '       d   Q h\         P                  ! ^4      p\         P                  ! V4      '       d   Q h\         P                  ! VR4      '       d   Q hVP	                  ^4       VP                  ^^^R7       \         P                  ! V4      '       d   Q h\         P                  ! VR4      '       g   Q h\         P                  ! 4       pVP                  . RO4       \         P                  ! V4      '       g   Q h\         P                  ! VR4      '       g   Q hVP                  4       p\         P                  ! V4      '       g   Q h\         P                  ! VR4      '       g   Q h\        P                  ! \         P                  \         P                  VR4       R# )rz   rE   Nr   r   )03r   r   1)r   r   r   r   2r   )r   r   rz   r   r   r   r   r   r   )r   r   is_weightedr   r   r   r%   add_weighted_edges_fromto_undirectedr   r   r   r   s   & r   test_is_weightedTestFunction.test_is_weightedm  sE   HHJ>>!$$$$MM!>>!$$$$>>!V,,,,	

1	

1a
">>!$$$$~~a((((JJL	!!		
 ~~a    ~~a,,,,OO~~a    ~~a,,,,b&&6Br   c                .   \         P                  ! 4       p\         P                  ! V4      '       d   Q hVP                  ^4       VP	                  . RO4       \         P                  ! V4      '       d   Q hVP                  ^^^R7       \         P                  ! VR4      '       d   Q hVP                  . R
O4       RV^,          ^,          R&   \         P                  ! V4      '       d   Q h\         P                  ! VR4      '       d   Q hRV^,          ^,          R&   \         P                  ! VR	4      '       g   Q h\         P                  ! V4      '       g   Q h\         P                  ! 4       pVP                  . RO4       \         P                  ! V4      '       g   Q h\         P                  ! VR4      '       d   Q h\         P                  ! VR4      '       g   Q h\        P                  ! \         P                  \         P                  VR4       R# )r   rE   bluecolorrD   N)r   r   rz   r   r   r   r   )r   r   )r      )r   r   )r   r   r   r   )r   r   r   )r   r   r   r   )r   r   is_negatively_weightedr   r   r   r   r%   r   r   r   r   r   s   & r   test_is_negatively_weighted(TestFunction.test_is_negatively_weighted  s   HHJ,,Q////	

1	&,,Q////	

1a
",,Q7777	12!!Q,,Q////,,Q7777!Q((F3333((++++JJL	!!		
 ((++++,,Q
;;;;((J7777b&&(A(A1fMr   )	r&   r*   r'   r)   r(   r   r    r$   r#   N)!__name__
__module____qualname____firstlineno__r-   r6   r:   rA   rG   rK   rO   rT   rX   ri   rq   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      s     	H@E

 LHH@282,h$2L7(

9>$$1.. *64CB#N #Nr   r   c                   Z   a  ] tR tRt o ]R 4       tR tR tR tR t	R t
R tR	 tR
tV tR# )TestCommonNeighborsi  c                p   a  \        \        P                  4      S n        V 3R  lp\        V4      S n        R# )c                 N   < \        SP                  WV4      4      pWC8X  g   Q hR # r   )r@   func)r   r   r   r   resultclss   &&&& r   	test_func2TestCommonNeighbors.setup_class.<locals>.test_func  s$    CHHQ1-.F%%%r   N)staticmethodr   common_neighborsr   test)r  r  s   f r   setup_classTestCommonNeighbors.setup_class  s(     3 34	&  	*r   c                ^    \         P                  ! ^4      pV P                  V^ ^. RO4       R# )r   N)r   r   rz   r   r   r  r   s   & r   test_K5TestCommonNeighbors.test_K5  s$    a 		!Q9%r   c                \    \         P                  ! ^4      pV P                  V^ ^^.4       R# )r   N)r   r   r  r   s   & r   test_P3TestCommonNeighbors.test_P3  $    MM!		!QA3r   c                \    \         P                  ! ^4      pV P                  V^^^ .4       R# )rz   N)r   r   r  r   s   & r   test_S4TestCommonNeighbors.test_S4  r  r   c                   \         P                  ! \        P                  4      ;_uu_ 4        \        P                  ! 4       pVP                  RR.4       V P                  V^ ^4       RRR4       R#   + '       g   i     R# ; i)r   Nr   r   )r   r   r   NetworkXNotImplementedr%   r   r   r   s   & r   test_digraph TestCommonNeighbors.test_digraph  sT    ]]24455

Aff-.IIaA 6555s   <A33B	c                v   \         P                  ! ^4      p\        P                  ! \         P                  \         P
                  V^^4       \        P                  ! \         P                  \         P
                  V^^4       \        P                  ! \         P                  \         P
                  V^^4       R# )r   N)r   r   r   r   r   r  r   s   & r   test_nonexistent_nodes*TestCommonNeighbors.test_nonexistent_nodes  sr    a b&&(;(;Q1Eb&&(;(;Q1Eb&&(;(;Q1Er   c                ~    \         P                  ! 4       pVP                  ^ ^.4       V P                  V^ ^. 4       R# )zCase of no common neighbors.N)r   r   r   r  r   s   & r   test_custom1 TestCommonNeighbors.test_custom1  s1    HHJ	!Q 		!Q2r   c                ^    \         P                  ! ^4      pV P                  V^ ^ . RO4       R# )zCase of equal nodes.Nr   r  r   s   & r   test_custom2 TestCommonNeighbors.test_custom2  s$    a 		!Q9%r    N)r   r   r   r   classmethodr  r  r  r  r  r  r  r   r   r   r   s   @r   r   r     s@     + +&  F& &r   r   
graph_typec           
      `   \         P                  ! ^V R7      p^dpRp\         P                  ! WV4       VP                  ^ ,          V,          V8X  g   Q hVP                  ^,          V,          V8X  g   Q hVP                  ^,          V,          V8X  g   Q h\         P                  ! ^V R7      p\	        \        \        VP                  4       4      \        \        V4      4      4      4      pRp\         P                  ! WV4       VP                  ^ ,          V,          ^ 8X  g   Q hVP                  ^,          V,          ^8X  g   Q hVP                  ^,          V,          ^8X  g   Q h\         P                  ! ^V R7      pR^ R^/p\        P                  VP                  4       V4      pVP                  ^ 4       \         P                  ! W4       VP                  ^ ,          / 8X  g   Q hVP                  ^,          R,          ^ 8X  g   Q hVP                  ^,          R,          ^8X  g   Q hR# )r   create_usinghellohiN)r   r   set_node_attributesr9   dictzipr@   r"   r   r   r   )r$  r   valsattrds   &    r   test_set_node_attributesr0    s   
 	aj1ADD1D)771:dt###771:dt###771:dt### 	aj1AF1779%uSV}56DD1D)771:dq   771:dq   771:dq    	aj1A	q'3A==A&DHHQK1#771:771:dq   771:g#%%%r   redr   r   c                    \         P                  ! 4       pVP                  ^ 4       \         P                  ! W V4       VP                  ^ ,          R,          R8X  g   Q h^VP                  9  g   Q hR# )zy
When `values` is a dict or dict-of-dict keyed by nodes, ensure that keys
that correspond to nodes not in G are ignored.
r   r1  N)r   r   r   r*  r9   valuesr   r   s   && r   ,test_set_node_attributes_ignores_extra_nodesr5    sW     	
AJJqM1d+771:g%'''AGGr   c           
      R   \         P                  ! ^V R7      pRp^p\         P                  ! WV4       V^ ,          ^,          V,          V8X  g   Q hV^,          ^,          V,          V8X  g   Q h\         P                  ! ^V R7      pRpRR.p\        \	        V\        \        V4      4      4      4      p\         P                  ! WV4       V^ ,          ^,          V,          ^ 8X  g   Q hV^,          ^,          V,          ^8X  g   Q h\         P                  ! ^V R7      pR^ R^/pR.p\        P                  WE4      p\         P                  ! W4       V^ ,          ^,          R,          ^ 8X  g   Q hV^ ,          ^,          R,          ^8X  g   Q hV^,          ^,          / 8X  g   Q hR# )r   r&  r(  r)  Nr   r   r   r   set_edge_attributesr+  r,  r"   r   r   r$  r   r.  r-  r?   r/  s   &     r   test_set_edge_attributesr:    sm    	aj1ADD1D)Q474=D   Q474=D    	aj1ADVEE5U,-.D1D)Q474=AQ474=A 	aj1A	q'3AHE=="D1#Q474=AQ477s"""Q47b==r   rt   r\   rD   c                    \         P                  ! R.4      p\         P                  ! W V4       V^ ,          ^,          R,          R8X  g   Q hRVP                  9  g   Q hR# )~If `values` is a dict or dict-of-dicts containing edges that are not in
G, data associate with these edges should be ignored.
rD   rt   Nr   r   )r   r   r8  r?   r3  s   && r   ,test_set_edge_attributes_ignores_extra_edgesr=  5  sQ     	&A1d+Q478###   r   c           
         \         P                  ! ^V R7      pRp^p\         P                  ! WV4       V^ ,          ^,          ^ ,          V,          V8X  g   Q hV^,          ^,          ^ ,          V,          V8X  g   Q h\         P                  ! ^V R7      pRpRR.p\        \	        V\        \        V4      4      4      4      p\         P                  ! WV4       V^ ,          ^,          ^ ,          V,          ^ 8X  g   Q hV^,          ^,          ^ ,          V,          ^8X  g   Q h\         P                  ! ^V R7      pR^ R^/pR.p\        P                  WE4      p\         P                  ! W4       V^ ,          ^,          ^ ,          R,          ^ 8X  g   Q hV^ ,          ^,          ^ ,          R,          ^8X  g   Q hV^,          ^,          ^ ,          / 8X  g   Q hR# )r   r&  r(  r)  Nr   r   r   r   r7  r9  s   &     r   test_set_edge_attributes_multir@  F  s    	aj1ADD1D)Q471:dt###Q471:dt### 	aj1AD	"EE5U,-.D1D)Q471:dq   Q471:dq    	aj1A	q'3AKE=="D1#Q471:dq   Q471:g#%%%Q471:r   c                   \         P                  ! RR.4      p\         P                  ! W V4       V^ ,          ^,          ^ ,          R,          R8X  g   Q hV^ ,          ^,          ^,          / 8X  g   Q hRVP                  4       9  g   Q hR# )r<  rD   rt   Nr?  r   r   r   r   )r   
MultiGraphr8  r?   r3  s   && r   2test_set_edge_attributes_multi_ignores_extra_edgesrD  d  st     	y),-A1d+Q471:h3&&&Q471:"""r   c                  $   \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       .p V  F  p\         P
                  ! ^VR7      pRp^dp\         P                  ! WV4       \         P                  ! W4      pV^ ,          V8X  g   Q hV^,          V8X  g   Q hV^,          V8X  g   Q h^pVP                  ^4       \         P                  ! WVR7      pV^,          V8X  d   K  Q h	  R# r   r&  r(  )defaultN)	r   r   r%   rC  MultiDiGraphr   r*  get_node_attributesr   )graphsr   r.  r-  attrsdefault_vals         r   test_get_node_attributesrM  v  s    hhj"**,9JKFMM!!,
q-&&q/Qx4Qx4Qx4	

1&&qDQx;&&& r   c                  v   \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       .p V  F  p\         P
                  ! ^VR7      pRp^dp\         P                  ! WV4       \         P                  ! W4      p\        V4      ^8X  g   Q hVP                   F  pWE,          V8X  d   K  Q h	  TpVP                  ^^4       \         P                  ! WVR7      p\        V4      ^8X  g   Q hVP                   F  pWu,          V8X  d   K  Q h	  K  	  R# rF  )r   r   r%   rC  rH  r   r8  get_edge_attributesr   r?   r   )rJ  r   r.  r-  rK  r   rL  deafult_attrss           r   test_get_edge_attributesrQ    s    hhj"**,9JKFMM!!,
q-&&q/5zQGGD;$&&&  	

1a..qL=!Q&&&GGD &$... ! r   c                    \         P                  ! ^V R7      p^dpRp\         P                  ! WV4       \         P                  ! W4       W1P                  ^ ,          9  g   Q hW1P                  ^,          9  g   Q hW1P                  ^,          9  g   Q h\         P                  ! ^V R7      p^pRp\         P                  ! WV4       \         P                  ! WV4       \         P                  ! W4       W1P                  ^ ,          9  g   Q hVP                  ^ ,          V,          V8X  g   Q hW1P                  ^,          9  g   Q hVP                  ^,          V,          V8X  g   Q hW1P                  ^,          9  g   Q hVP                  ^,          V,          V8X  g   Q h\         P                  ! ^V R7      p\         P                  ! WV4       \         P                  ! WV4       \         P                  ! WV4       W1P                  ^ ,          9  d   WQP                  ^ ,          9  g   Q hW1P                  ^,          9  d   WQP                  ^,          9  g   Q hW1P                  ^,          9  d   WQP                  ^,          9  g   Q h\         P                  ! ^V R7      pRpRp\         P                  ! TVP	                  4        Uu/ uF	  pWW%WGV/bK  	  up4       \         P                  ! WV4       WQP                  ^ ,          9  d   WqP                  ^ ,          9  g   Q hWQP                  ^,          9  d   WqP                  ^,          9  g   Q hWQP                  ^,          9  d   WqP                  ^,          9  g   Q hVP                  ^ ,          V,          V8X  g   Q hVP                  ^,          V,          V8X  g   Q hVP                  ^,          V,          V8X  g   Q h\         P                  ! ^V R7      p\         P                  ! V^W2WT/^W2WT//4       \         P                  ! W4       W1P                  ^ ,          9  g   Q hW1P                  ^,          9  g   Q hW1P                  ^,          9  g   Q hVP                  ^,          V,          V8X  g   Q hVP                  ^,          V,          V8X  g   Q h\         P                  ! ^V R7      p\         P                  ! TVP	                  4        Uu/ uF	  pWW%WGV/bK  	  up4       \         P                  ! WV^ ^.R7       W1P                  ^ ,          9  d   WQP                  ^ ,          9  g   Q hW1P                  ^,          9  d   WQP                  ^,          9  g   Q hW1P                  ^,          9   d   WQP                  ^,          9   g   Q hWqP                  ^ ,          9   d    VP                  ^ ,          V,          V8X  g   Q hWqP                  ^,          9   d    VP                  ^,          V,          V8X  g   Q hR# u upi u upi )r   r&  r(  other,  threer=   N)r   r   r*  remove_node_attributesr9   )	r$  r   r-  r.  
other_vals
other_attr
third_vals
third_attrns	   &        r   test_remove_node_attributesr\    s    
 	aj1ADD1D)a&wwqz!!!wwqz!!!wwqz!!! 	aj1AJJ1D)1*5a&wwqz!!!771:j!Z///wwqz!!!771:j!Z///wwqz!!!771:j!Z/// 	aj1A1D)1*5az2wwqz!j
&BBBwwqz!j
&BBBwwqz!j
&BBB 	aj1AJJ	 WWY	
 d

KK	
 aZ8WWQZ'Jggaj,HHHWWQZ'Jggaj,HHHWWQZ'Jggaj,HHH771:dt###771:dt###771:dt### 	aj1A	J3J3	
 a&wwqz!!!wwqz!!!wwqz!!!771:j!Z///771:j!Z/// 	aj1A	 WWY	
 d

KK	
 az1a&Awwqz!j
&BBBwwqz!j
&BBB771:*
":::#
:(>*(LLL#
:(>*(LLL(LW	
B	
s   X7
X<
c                    \         P                  ! ^V R7      pRp^dp\         P                  ! WV4       \         P                  ! W4       \	        \         P
                  ! W4      4      ^ 8X  g   Q h\         P                  ! ^V R7      pRp^p\         P                  ! WV4       \         P                  ! WV4       \         P                  ! W4       W!^ ,          ^,          9  g   Q hW!^,          ^,          9  g   Q hV^ ,          ^,          V,          ^8X  g   Q hV^,          ^,          V,          ^8X  g   Q h\         P                  ! ^V R7      p\         P                  ! WV4       \         P                  ! WV4       \         P                  ! WV4       W!^ ,          ^,          9  d   WA^ ,          ^,          9  g   Q hW!^,          ^,          9  d   WA^,          ^,          9  g   Q h\         P                  ! ^V R7      pRpRp\         P                  ! TVP                  4        UU	u/ uF  w  rW3W#WEWg/bK  	  up	p4       \         P                  ! WV4       WA^ ,          ^,          9  d   Wa^ ,          ^,          9  g   Q hWA^,          ^,          9  d   Wa^,          ^,          9  g   Q hV^ ,          ^,          V,          V8X  g   Q hV^,          ^,          V,          V8X  g   Q h\         P                  ! ^V R7      p\         P                  ! VRW#WE//4       \         P                  ! W4       WA^ ,          ^,          9  d   V^ ,          ^,          V,          V8X  g   Q hWA^,          ^,          9  g   Q h\         P                  ! ^V R7      p\         P                  ! TVP                  4        UU	u/ uF  w  rW3W#WEWg/bK  	  up	p4       \         P                  ! WVR.R7       WA^ ,          ^,          9  d   Wa^ ,          ^,          9  g   Q hWA^,          ^,          9   d   Wa^,          ^,          9   g   Q hR# u up	pi u up	pi )	r   r&  r(  rS  thirdrT  ebunchNr   )r   r   r8  remove_edge_attributesr   rO  r?   )
r$  r   r.  r-  rX  rW  rZ  rY  r   r   s
   &         r   test_remove_edge_attributesrb    s    	aj1ADD1D)a&r%%a./1444 	aj1AJJ1D)1*5a&tAwtAwQ47:#%%%Q47:#%%% 	aj1A1D)1*5az2tAw:qT!W#<<<tAw:qT!W#<<< 	aj1AJJ	 		
! FTPP!	
 aZ8qT!W$Q47)BBBqT!W$Q47)BBBQ474=D   Q474=D    	aj1A1vJ'KLMa,qT!W$1a$)>>>qT!W$$$ 	aj1A	 		
! FTPP!	
 aZIqT!W$Q47)BBB1a ZQ47%:::%:;	
,	
s   )Q7Qc                 &   \         P                  ! ^V R7      pVP                  ^^4       Rp^dp\         P                  ! WV4       \         P                  ! W4       W!^ ,          ^,          ^ ,          9  g   Q hW!^,          ^,          ^ ,          9  g   Q hW!^,          ^,          ^,          9  g   Q h\         P                  ! ^V R7      pVP                  ^^4       Rp^p\         P                  ! WV4       \         P                  ! WV4       \         P                  ! W4       W!^ ,          ^,          ^ ,          9  g   Q hW!^,          ^,          ^ ,          9  g   Q hW!^,          ^,          ^,          9  g   Q hV^ ,          ^,          ^ ,          V,          V8X  g   Q hV^,          ^,          ^ ,          V,          V8X  g   Q hV^,          ^,          ^,          V,          V8X  g   Q h\         P                  ! ^V R7      pVP                  ^^4       \         P                  ! WV4       \         P                  ! WV4       \         P                  ! WV4       W!^ ,          ^,          ^ ,          9  d   WA^ ,          ^,          ^ ,          9  g   Q hW!^,          ^,          ^ ,          9  d   WA^,          ^,          ^ ,          9  g   Q hW!^,          ^,          ^,          9  d   WA^,          ^,          ^,          9  g   Q h\         P                  ! ^V R7      pVP                  ^^4       RpRp\         P                  ! TVP                  RR7       UU	U
u/ uF  w  rp
WV
3W#WEWg/bK  	  up
p	p4       \         P                  ! WV4       WA^ ,          ^,          ^ ,          9  d   Wa^ ,          ^,          ^ ,          9  g   Q hWA^,          ^,          ^ ,          9  d   WA^,          ^,          ^ ,          9  g   Q hWA^,          ^,          ^,          9  d   WA^,          ^,          ^,          9  g   Q hV^ ,          ^,          ^ ,          V,          V8X  g   Q hV^,          ^,          ^ ,          V,          V8X  g   Q hV^,          ^,          ^,          V,          V8X  g   Q h\         P                  ! ^V R7      pVP                  ^^4       \         P                  ! VR
W#WE/RW#WE//4       \         P                  ! W4       WA^ ,          ^,          ^ ,          9  d$   V^ ,          ^,          ^ ,          V,          V8X  g   Q hWA^,          ^,          ^ ,          9  g   Q hWA^,          ^,          ^,          9  g   Q h\         P                  ! ^V R7      pVP                  ^^4       \         P                  ! VR
W#WE/RW#WE/RW#WE//4       \         P                  ! WR
R.R7       W!^ ,          ^,          ^ ,          9  d   WA^ ,          ^,          ^ ,          9   g   Q hW!^,          ^,          ^ ,          9  d   WA^,          ^,          ^ ,          9   g   Q hW!^,          ^,          ^,          9   d   WA^,          ^,          ^,          9   g   Q hR	# u up
p	pi )r   r&  r(  rS  r^  rT  Tkeysr_  Nr?  )r   r   r   r   )r   r   r   r8  ra  r?   )r$  r   r.  r-  rX  rW  rZ  rY  r   r   ks   &          r   !test_remove_multi_edge_attributesrg  ;  sd    	aj1AJJq!DD1D)a&tAwqz!!!tAwqz!!!tAwqz!!! 	aj1AJJq!JJ1D)1*5a&tAwqz!!!tAwqz!!!tAwqz!!!Q471:j!Z///Q471:j!Z///Q471:j!Z/// 	aj1AJJq!1D)1*5az2tAwqz!j!Q
&BBBtAwqz!j!Q
&BBBtAwqz!j!Q
&BBB 	aj1AJJq!JJ	 777-	
-a 1IJJSS-	
 aZ8qT!WQZ'Jd1gaj,HHHqT!WQZ'Jd1gaj,HHHqT!WQZ'Jd1gaj,HHHQ471:dt###Q471:dt###Q471:dt### 	aj1AJJq!	J;J;	
 a,qT!WQZ'AaDGAJt,<,DDDqT!WQZ'''qT!WQZ''' 	aj1AJJq!	J;J;J;	
 ay).DEtAwqz!jaDGAJ&>>>tAwqz!jaDGAJ&>>>Q471:*!Q
":::":U	
s   Zc                     \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       .p V  F  p\         P
                  ! V4      '       g   Q hVP                  \        ^4      4       \         P
                  ! V4      '       g   Q hVP                  RR.4       \         P
                  ! V4      '       g   K  Q h	  R# )r   Nr   r   )	r   r   r%   rC  rH  is_emptyr   r"   r   )rJ  r   s     r   test_is_emptyrj    s    hhj"**,9JKF{{1~~~	q"{{1~~~	&&)*;;q>>!! r   c                    \         P                  ! ^V R7      pVP                  ^ ^ 4       \        \         P                  ! V4      ^ .4      '       g   Q h\        \         P                  ! V4      R.4      '       g   Q h\        \         P                  ! VRR7      ^ ^ / 3.4      '       g   Q h\         P                  ! V4      ^8X  g   Q hR# )r   r&  Tr]   Nr   r   )r   r   r   r   nodes_with_selfloopsr   selfloop_edgesnumber_of_selfloopsr$  r   s   & r   test_selfloopsrq    s     	!*5AJJq!r..q1A37777r((+fX6666r((6!QEEEE!!!$)))r   c                 B   \         P                  ! ^V R7      pVP                  ^ ^ 4       VP                  ^^^R7       \        \         P                  ! VRR7      ^ ^ / 3^^R^/3.4      '       g   Q h\        \         P                  ! VRR7      RR.4      '       g   Q hR# )	r   r&  rE   Tr]   rD   N)r   r   N)r   r   r   )r   r   r   r   rn  rp  s   & r   test_selfloop_edges_attrrs    s     	!*5AJJq!JJq!AJ
!$'1a*q!h]6K)L    r((:\9<UVVVVr   c                      \         P                  ! ^\         P                  R7      p V P                  ^ ^ ^
R7       V P                  ^ ^ ^dR7       \	        \         P
                  ! V RRR7      RR.4      '       g   Q hR# )	r   r&  rE   rD   Tr^   re  N)r   r   r   
   )r   r   r   r   )r   r   rC  r   r   rn  r
   s    r   ,test_selfloop_edges_multi_with_data_and_keysrw    sl    
!"--8AJJq!BJJJq!CJ 
!(68W   r   c                    \         P                  ! ^V R7      pVP                  ^ ^ 4       VP                  \         P                  ! VRR7      4       VP                  ^ ^ 4       VP                  \         P                  ! VRR7      4       VP                  ^ ^ 4       VP                  \         P                  ! VRRR7      4       R# )r   r&  Trd  r]   )re  r^   N)r   r   r   r   rn  rp  s   & r   test_selfloops_removalry    s    
!*5AJJq!))!$78JJq!))!$78JJq!))!$TBCr   c           
     0   \         P                  ! ^V R7      pVP                  ^ ^ 4       VP                  ^ ^ 4       VP                  \         P                  ! V4      4       RVP                  4       9  g   Q hVP                  ^ ^ 4       VP                  ^ ^ 4       \        P                  ! \        4      ;_uu_ 4        VP                  \         P                  ! VRR7      4       RRR4       VP                  ^ ^ 4       VP                  ^ ^ 4       \        P                  ! \        4      ;_uu_ 4        VP                  \         P                  ! VRR7      4       RRR4       VP                  ^ ^ 4       VP                  ^ ^ 4       \        P                  ! \        4      ;_uu_ 4        VP                  \         P                  ! VRRR7      4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     R# ; i)zWtest removing selfloops behavior vis-a-vis altering a dict while iterating.
cf. gh-4068r&  Trd  Nr]   ru  rl  )
r   r   r   r   rn  r?   r   r   RuntimeError	TypeErrorrp  s   & r   test_selfloops_removal_multir}    sg    	!*5AJJq!JJq!))!,-"""JJq!JJq!	|	$	$	B--ad;< 
% JJq!JJq!	y	!	!	B--ad;< 
" JJq!JJq!	|	$	$	B--adFG 
%	$ 
%	$
 
"	!
 
%	$	$s$   ?(G5(G1+)HG.	1H	H	c                     . ROp . ROp\         P                  ! 4       \         P                  ! 4       \         P                  ! 4       \         P                  ! 4       .p^^R^R^/3^^R^R^/3^^R^R^/3.pV F  pVP                  V4       \         P                  ! W@R4      ^8X  g   Q h\         P                  ! W@R4      ^8X  g   Q h\        P                  ! \         P                  \         P                  WAR4       K  	  R# )r   costdistNr   )r   r   r   )
r   r   r%   rC  rH  r   path_weightr   r   NetworkXNoPath)
valid_pathinvalid_pathrJ  r?   r   s        r   test_pathweightr    s    JLhhj"**,9JKF	
A61%&	
A61%&	
A61%&E
 U#~~e8A===~~e8A===b''fU	 r   r   c                     V P                  . RO4       . ROp. ROp. ROp\        P                  ! W4      '       g   Q h\        P                  ! W4      '       d   Q h\        P                  ! W4      '       d   Q hR# )r   N)r   r   r   r   )r   r   r   rz   )r   r   rz   r   )r   r   r   rz   r   )r   r   is_path)r   r  r  another_invalid_paths   &   r   test_ispathr    se     56JL*::a$$$$zz!****zz!22222r   c                    V P                  . RO4       V P                  ^4       \        P                  ! V . RORR.4      p\	        VP                  4       4      0 Rm8X  g   Q h\	        VP                  4       4      R08X  g   Q hR# )r   Nr   r   r   r   r   r   r      r   r   rz   r   r   r   restricted_viewsetr9   r?   r   r   s   & r   test_restricted_viewr    sg    EFJJqM
1i&&)9:Aqwwy>Y&&&qwwy>fX%%%r   c                    V P                  . RO4       V P                  ^4       \        P                  ! V . RORR.4      p\	        VP                  4       4      0 Rm8X  g   Q h\	        VP                  4       4      R08X  g   Q hR# )r   Nr   )r?  r   r   r   )r   r   r   rB  )r   r   r   )r   r   r   r   r  )r   rz   r   r  r   r  r  s   & r   test_restricted_view_multir    sk    U JJqM
1i)Y)?@Aqwwy>Y&&&qwwy>fX%%%r   )r4  r   r   r   r?  r  )%r   r   networkxr   networkx.utilsr   r   r   r   r   markparametrizer   r%   rC  rH  r0  r5  r:  r=  r@  rD  rM  rQ  r\  rb  rg  rj  rq  rs  rw  ry  r}  r  r  r  r  r"  r   r   <module>r     sG      3(
cN cNL,& ,&^ 288RZZH&&< 
UAv	(
guq7F"3	4d;		 "**'=> ?: 
#vs	#X.
8S/6Hc?	;TB!! r'GH I: 
S)S	)84
h_i(C	A4H##'"/, 288RZZHSMSMl "**'=>A; ?A;H r'GHV; IV;r" 288RZZH** 288RZZHWW "**'=>D ?D r'GHH IH4V  "((*bjjlBMMOR__5F	G33 rxxz2::<89& :& r}}0ABC& D&r   