+
    )i/                         ^ RI t ^ RIt^ RIHt ^RIHtHt ^RIHt	 ^RIH
t  ! R R]4      t ! R R	]]4      t ! R
 R]]4      t ! R R]	4      tR# )    N)nodes_equal)BaseAttrGraphTesterBaseGraphTester)TestEdgeSubgraph)	TestGraphc                      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V tR# )BaseDiGraphTesterc                    V P                   pVP                  ^ ^4      '       g   Q hVP                  ^ R4      '       d   Q hR# r   N)K3has_successorselfGs   & a/var/www/html/photoedit/myenv/lib/python3.14/site-packages/networkx/classes/tests/test_digraph.pytest_has_successor$BaseDiGraphTester.test_has_successor   s<    GGq!$$$$??1b)))))    c                   V P                   p\        VP                  ^ 4      4      ^^.8X  g   Q h\        P                  ! \
        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; ir   )r   sorted
successorspytestraisesnxNetworkXErrorr   s   & r   test_successors!BaseDiGraphTester.test_successors   sZ    GGall1o&1a&000]]2++,,LL -,,,   A88B		c                    V P                   pVP                  ^ ^4      '       g   Q hVP                  ^ R4      '       d   Q hR# r   )r   has_predecessorr   s   & r   test_has_predecessor&BaseDiGraphTester.test_has_predecessor   s@    GG  A&&&&$$Q+++++r   c                   V P                   p\        VP                  ^ 4      4      ^^.8X  g   Q h\        P                  ! \
        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; ir   )r   r   predecessorsr   r   r   r   r   s   & r   test_predecessors#BaseDiGraphTester.test_predecessors   s[    GGannQ'(QF222]]2++,,NN2 -,,,r   c                   V P                   p\        VP                  4       4      . RO8X  g   Q h\        VP                  ^ 4      4      RR.8X  g   Q h\        VP                  ^ ^.4      4      . RO8X  g   Q h\        P                  ! \
        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)r   Nr      r      r)   r+   r*   r   r*   r,   )r,   r   r,   r*   )r)   r+   r.   r/   r   r   r   edgesr   r   r   r   r   s   & r   
test_edgesBaseDiGraphTester.test_edges"   s    GGaggi $TTTTaggaj!ff%5555aggq!fo&*JJJJ]]2++,,GGBK -,,,s   #B??C	c                \   V P                   p\        VP                  4       4      . RO8X  g   Q h\        VP                  ^ 4      4      RR.8X  g   Q h\        P                  ! \
        P                  4      ;_uu_ 4        VP                  R4       RRR4       R#   + '       g   i     R# ; i)r   Nr)   r+   r-   r   )r   r   	out_edgesr   r   r   r   r   s   & r   test_out_edges BaseDiGraphTester.test_out_edges*   st    GGakkm$(XXXXakk!n%&&)9999]]2++,,KKO -,,,s   >BB+	c                    V P                   p\        VP                  4       4      RR.8X  g   Q h\        VP                  ^ 4      4      R.8X  g   Q h\        VP                  ^4      4      . 8X  g   Q hR# r   Nr)   r/   )P3r   r6   r   s   & r   test_out_edges_dir$BaseDiGraphTester.test_out_edges_dir1   sa    GGakkm$(8888akk!n%&111akk!n%+++r   c                   \         P                  ! ^ ^R^ /3^^ / 3.4      p\        VP                  RR7      4      ^ ^R^ /3^^ / 3.8X  g   Q h\        VP                  ^ RR7      4      ^ ^R^ /3.8X  g   Q h\        VP                  RR7      4      RR.8X  g   Q h\        VP                  ^ RR7      4      R.8X  g   Q hR# r   dataTr@   N)r   r*   r   )r*   r   N)r   DiGraphr   r6   r   s   & r   test_out_edges_data%BaseDiGraphTester.test_out_edges_data7   s    JJA{+aBZ89akktk,-1a&!2E1bz1RRRRakk!$k/0aVQK5H4IIIIakkvk./I|3LLLLakk!&k12ykAAAr   c                    V P                   p\        VP                  4       4      RR.8X  g   Q h\        VP                  ^ 4      4      . 8X  g   Q h\        VP                  ^4      4      R.8X  g   Q hR# r:   )r;   r   in_edgesr   s   & r   test_in_edges_dir#BaseDiGraphTester.test_in_edges_dir>   sa    GGajjl#'7777ajjm$***ajjm$000r   c                   \         P                  ! ^ ^R^ /3^^ / 3.4      p\        VP                  RR7      4      ^ ^R^ /3^^ / 3.8X  g   Q h\        VP                  ^RR7      4      ^ ^R^ /3.8X  g   Q h\        VP                  RR7      4      RR.8X  g   Q h\        VP                  ^RR7      4      R.8X  g   Q hR# r?   )r   rB   r   rF   r   s   & r   test_in_edges_data$BaseDiGraphTester.test_in_edges_dataD   s    JJA{+aBZ89ajjdj+,!Q1Dq!Rj0QQQQajjj./QFA;4G3HHHHajjfj-.9l2KKKKajjj01i[@@@r   c                6   V P                   p\        VP                  4       4      . RO8X  g   Q h\        VP                  4       4      ^ ^^^^^/8X  g   Q hVP                  ^ 4      ^8X  g   Q h\	        VP                  \        ^ .4      4      4      R.8X  g   Q hR# )r   Nr      )rM   )r*   rN   )r,   rN   )r   r   degreedictlistiterr   s   & r   test_degreeBaseDiGraphTester.test_degreeK   s    GGahhj!%====AHHJAq!Q1#5555xx{aAHHT1#Y'(VH444r   c                6   V P                   p\        VP                  4       4      . RO8X  g   Q h\        VP                  4       4      ^ ^^^^^/8X  g   Q hVP                  ^ 4      ^8X  g   Q h\	        VP                  \        ^ .4      4      4      R.8X  g   Q hR# r   Nr+   )r+   r/   r,   r,   )r   r   	in_degreerP   rQ   rR   r   s   & r   test_in_degree BaseDiGraphTester.test_in_degreeR   s    GGakkm$(@@@@AKKM"q!Q1a&8888{{1~"""AKKaS	*+x777r   c                6   V P                   p\        VP                  4       4      . RO8X  g   Q h\        VP                  4       4      ^ ^^^^^/8X  g   Q hVP                  ^ 4      ^8X  g   Q h\	        VP                  \        ^ .4      4      4      R.8X  g   Q hR# rV   )r   r   
out_degreerP   rQ   rR   r   s   & r   test_out_degree!BaseDiGraphTester.test_out_degreeY   s    GGalln%)AAAAALLN#1aAq'9999||A!###ALLqc+,888r   c                z    V P                   pVP                  4       ^8X  g   Q hVP                  4       ^8X  g   Q hR# )   N)r   sizenumber_of_edgesr   s   & r   	test_sizeBaseDiGraphTester.test_size`   s4    GGvvx1}}  "a'''r   c                f   V P                  4       pVP                  ^^4       VP                  4       P                  ^^4      '       g   Q hVP                  RR7      P                  ^^4      '       d   Q hVP                  ^^4       VP                  RR7      P                  ^^4      '       g   Q hR# )r*   T)
reciprocalN)Graphadd_edgeto_undirectedhas_edger   s   & r   test_to_undirected_reciprocal/BaseDiGraphTester.test_to_undirected_reciprocale   s    JJL	

1a ))!Q////??d?3<<QBBBB	

1a$/88A>>>>r   c                D   \         P                  ! RR.4      pVP                  4       p\        VP	                  4       4      RR.8X  g   Q hVP                  ^^ 4       \        VP	                  4       4      R.8X  g   Q h\        VP	                  4       4      RR.8X  g   Q hR# )r   Nr)   r/   r.   r0   )r   rB   reverser   r2   remove_edger   r   Rs   &  r   test_reverse_copy#BaseDiGraphTester.test_reverse_copym   s    JJ'(IIKaggi VV$4444	aaggi VH,,,aggi VV$4444r   c                T   \         P                  ! RR.4      pVP                  RR7      p\        VP	                  4       4      RR.8X  g   Q h\
        P                  ! \         P                  4      ;_uu_ 4        VP                  ^^ 4       RRR4       R#   + '       g   i     R# ; i)r   F)copyNr)   r/   r.   r0   )	r   rB   rn   r   r2   r   r   r   ro   rp   s   &  r   test_reverse_nocopy%BaseDiGraphTester.test_reverse_nocopyu   su    JJ'(II5I!aggi VV$4444]]2++,,MM!Q -,,,s   9BB'	c                ^    ! R  R4      pV! 4       pV! 4       p\         P                  ! 4       pVP                  W#4       \        VP	                  4       VP                  4       P	                  4       4      '       g   Q hW23.\        VP                  4       P                  4       4      8X  g   Q hR# )c                       ] tR t^}tRtR# )4BaseDiGraphTester.test_reverse_hashable.<locals>.Foo N)__name__
__module____qualname____firstlineno____static_attributes__r{   r   r   Foorz   }   s    r   r   N)r   rB   rh   r   nodesrn   rQ   r2   )r   r   xyr   s   &    r   test_reverse_hashable'BaseDiGraphTester.test_reverse_hashable|   s    	 	 EEJJL	

11779aiik&7&7&9::::x4		 1 1 34444r   c                Z   V P                   P                  4       pVP                  p\        VP                  4      \        V4      8X  g   Q hVP                  p\        VP                  4      \        V4      8X  g   Q h/ Vn        \        VP                  4      \        V4      8w  g   Q h\        VP                  4      \        V4      8w  g   Q hVP                  p\        VP                  4      \        V4      8X  g   Q h/ Vn        \        VP                  4      \        V4      8w  g   Q hR # N)r   ru   succidadj_succpred_pred)r   r   old_succold_adjold_preds   &    r   test_di_cache_reset%BaseDiGraphTester.test_di_cache_reset   s    GGLLN66!&&zR\)))%%!%%yBwK'''!&&zR\)))!%%yBwK'''66!&&zR\)))!&&zR\)))r   c                n   V P                   P                  4       p\        VP                  4      \        VP                  4      8X  g   Q h\        VP                  4      \        VP                  4      8X  g   Q h\        VP
                  4      \        VP
                  4      8X  g   Q h\        VP                  4      \        VP                  4      8X  g   Q h\        VP                  4      \        VP                  4      8X  g   Q h\        VP                  4      \        VP                  4      8X  g   Q hR # r   )	r   ru   r   rF   r6   rX   r\   r   r   r   s   & r   test_di_attributes_cached+BaseDiGraphTester.test_di_attributes_cached   s    GGLLN!**~AJJ///!++"Q[[/111!++"Q[[/111!,,2all#3333!&&zRZ'''!&&zRZ'''r   r{   N)r|   r}   r~   r   r   r   r"   r&   r3   r7   r<   rC   rG   rJ   rS   rY   r]   rc   rk   rr   rv   r   r   r   r   __classdictcell____classdict__s   @r   r	   r	      sp     *
,
,B1A589(
?5 	5* ( (r   r	   c                   2   a  ] tR t^t o R tR tR tRtV tR# )BaseAttrDiGraphTesterc                   V P                   p^ ^/ 3^ ^/ 3^^ / 3^^/ 3^^ / 3^^/ 3.p\        VP                  RR7      4      V8X  g   Q h\        VP                  ^ RR7      4      VR,          8X  g   Q h\        VP                  ^ ^.RR7      4      VR,          8X  g   Q h\        P                  ! \
        P                  4      ;_uu_ 4        VP                  RR4       RRR4       R#   + '       g   i     R# ; i)r   TrA   :Nr,   N:NrN   NNr   r1   )r   r   	all_edgess   &  r   test_edges_data%BaseAttrDiGraphTester.test_edges_data   s    GG2J2J2J2J2J2J
	 agg4g()Y666aggadg+,	"===aggq!f4g01Yr]BBB]]2++,,GGB -,,,s   C((C9	c                X   V P                   P                  4       pVP                  ^ ^RRR7       \        VP	                  RR7      4      . R
O8X  g   Q h\        VP	                  RR7      4      ^ ^^R^^/8X  g   Q hVP	                  ^RR7      R8X  g   Q h\        VP	                  RR7      4      . RO8X  g   Q h\        VP	                  RR7      4      ^ ^^R^^/8X  g   Q hVP	                  ^RR7      R8X  g   Q h\        VP	                  \        ^.4      RR7      4      R.8X  g   Q hR	# )r   333333?333333?weightotherr   r   ?r   皙@N)r+   )r*   r   rW   r*   r   )r+   r   rW   )r   ru   rh   r   rX   rP   rQ   rR   r   s   & r   test_in_degree_weighted-BaseAttrDiGraphTester.test_in_degree_weighted   s   GGLLN	

1a3
/akkk237QQQQAKKxK01aAsAq5IIII{{1X{.#555akkk126PPPPAKKwK/0Q1c1a4HHHH{{1W{-444AKKaS	'K:;zIIIr   c                X   V P                   P                  4       pVP                  ^ ^RRR7       \        VP	                  RR7      4      . R
O8X  g   Q h\        VP	                  RR7      4      ^ R^^^^/8X  g   Q hVP	                  ^ RR7      R8X  g   Q h\        VP	                  RR7      4      . RO8X  g   Q h\        VP	                  RR7      4      ^ R^^^^/8X  g   Q hVP	                  ^ RR7      R8X  g   Q h\        VP	                  \        ^ .4      RR7      4      R.8X  g   Q hR	# )r   r   r   r   r   r   r   r   r   N))r   r   r/   rW   r   r   )r   r/   rW   )r   ru   rh   r   r\   rP   rQ   rR   r   s   & r   test_out_degree_weighted.BaseAttrDiGraphTester.test_out_degree_weighted   s   GGLLN	

1a3
/all(l348RRRRALLL12q#q!Q6JJJJ||Ah|/3666all'l237QQQQALLL01aaAq5IIII||Ag|.#555ALLqc7L;<
JJJr   r{   N)	r|   r}   r~   r   r   r   r   r   r   r   s   @r   r   r      s      	J	K 	Kr   r   c                   T   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V tR# )TestDiGraphz=Tests specific to dict-of-dict-of-dict digraph data structurec           	     P   \         P                  V n        / / / / / / 3w  rr4rV^ ^V^V/^^ V^V/^^ V^V//V n        . ROV n        . ROV n        V P                  4       V n        V P                  V P                  n        ^ ^V^V/^^ V^V/^^ V^V//V P                  n        / V P                  n	        / V P                  P                  ^ &   / V P                  P                  ^&   / V P                  P                  ^&   / / r!V P                  4       V n
        ^ ^V/^^V/^/ /V P                  n        ^ / ^^ V/^^V//V P                  n        / V P                  n	        / V P                  P                  ^ &   / V P                  P                  ^&   / V P                  P                  ^&   R# )r   N)r)   r+   r/   )r   r*   r,   )r   rB   rg   k3adjk3edgesk3nodesr   r   r   _noder;   )r   ed1ed2ed3ed4ed5ed6s   &      r   setup_methodTestDiGraph.setup_method   s   ZZ
(*BBB'?$#C!S!S)1q#q#.>AsAsCST
/ **,

QQ,a!S!S1A1q#qRUFVWaaaS**,QHa!S1b9BAs8QC9aaar   c                   V P                  ^^.^^./RR7      pVP                  R8X  g   Q h\        VP                  P	                  4       4      ^^/ /3^^/ /3.8X  g   Q h\        VP
                  P	                  4       4      ^^/ /3^^/ /3.8X  g   Q h\        VP                  P	                  4       4      ^^/ /3^^/ /3.8X  g   Q hR# )r*   test)nameN)rg   r   r   r   itemsr   r   r   s   & r   test_data_inputTestDiGraph.test_data_input   s    JJA3A3'fJ5vvaeekkm$!aWAr7|(DDDDafflln%1q"g,QG)EEEEafflln%1q"g,QG)EEEEr   c                \   V P                  4       pVP                  ^ ^4       VP                  ^ ^/ /^/ /8X  g   Q hVP                  ^ ^/ /^/ /8X  g   Q hVP                  ^ / ^^ / //8X  g   Q hV P                  4       pVP                  ! R!   VP                  ^ ^/ /^/ /8X  g   Q hVP                  ^ ^/ /^/ /8X  g   Q hVP                  ^ / ^^ / //8X  g   Q h\
        P                  ! \        RR7      ;_uu_ 4        VP                  R^4       RRR4       R#   + '       g   i     R# ; i)r   None cannot be a nodematchNr)   )rg   rh   r   r   r   r   r   
ValueErrorr   s   & r   test_add_edgeTestDiGraph.test_add_edge   s   JJL	

1auuQGQ++++vv!aWa,,,,vv!RQG,,,,JJL	

FuuQGQ++++vv!aWa,,,,vv!RQG,,,,]]:-DEEJJtQ FEEEs   =DD+	c           	        V P                  4       pVP                  R^ ^R^/3.^R7       VP                  ^ ^R^/^R^//^/ ^/ /8X  g   Q hVP                  ^ ^R^/^R^//^/ ^/ /8X  g   Q hVP                  ^ / ^^ R^//^^ R^///8X  g   Q h\
        P                  ! \        P                  4      ;_uu_ 4        VP                  R.4       RRR4       \
        P                  ! \        P                  4      ;_uu_ 4        VP                  R.4       RRR4       \
        P                  ! \        4      ;_uu_ 4        VP                  ^ .4       RRR4       \
        P                  ! \        RR7      ;_uu_ 4        VP                  R	R
.4       RRR4       R#   + '       g   i     L; i  + '       g   i     L; i  + '       g   i     Lx; i  + '       g   i     R# ; i)r   r@   rA   Nr   r   r)   )r   )r   r*   r,      )Nr   )r   r,   )rg   add_edges_fromr   r   r   r   r   r   r   	TypeErrorr   r   s   & r   test_add_edges_fromTestDiGraph.test_add_edges_from   s   JJL	&1a&!"56Q?uuQQ<aQKKKKvv!a&!a&!=q"aLLLLvv!RQ$4a!fa[9IJJJJ]]2++,,dV$ -]]2++,,l^, -]]9%%aS! &]]:-DEEi01 FE -,,,%%EEEs0   :FF.>G=GF+	.F>	G	G%	c           
        V P                   P                  4       pVP                  ^ ^4       VP                  ^ ^/ /^^ / ^/ /^^ / ^/ //8X  g   Q hVP                  ^ ^/ ^/ /^^/ /^^ / ^/ //8X  g   Q h\
        P                  ! \        P                  4      ;_uu_ 4        VP                  R^ 4       RRR4       R#   + '       g   i     R# ; ir   )	r   ru   ro   r   r   r   r   r   r   r   s   & r   test_remove_edgeTestDiGraph.test_remove_edge
  s    GGLLN	avv!aWa!RBQArNKKKKvv!aQ^QBQArNKKKK]]2++,,MM"a  -,,,s   B<<C	c           
        V P                   P                  4       pVP                  R.4       VP                  ^ ^/ /^^ / ^/ /^^ / ^/ //8X  g   Q hVP                  ^ ^/ ^/ /^^/ /^^ / ^/ //8X  g   Q hVP                  R.4       R# )r   Nr)   )r   r   )r   ru   remove_edges_fromr   r   r   s   & r   test_remove_edges_from"TestDiGraph.test_remove_edges_from  s    GGLLN	VH%vv!aWa!RBQArNKKKKvv!aQ^QBQArNKKKK	VH%r   c                   V P                   pR VP                  R&   VP                  4        \        VP                  4      . 8X  g   Q hVP
                  / 8X  g   Q hVP                  / 8X  g   Q hVP                  / 8X  g   Q hR# r   r   N)r   graphclearrQ   r   r   r   r   s   & r   
test_clearTestDiGraph.test_clear  sg    GG		AGG}"""vv||vv||ww"}}r   c                   V P                   pR VP                  R&   \        VP                  4      pVP	                  4        \        VP                  4      V8X  g   Q h^ / ^/ ^/ /pVP
                  V8X  g   Q hVP                  V8X  g   Q h\        VP                  4      . 8X  g   Q hVP                  R,          R 8X  g   Q hR# r   )r   r   rQ   r   clear_edgesr   r   r2   )r   r   r   expecteds   &   r   test_clear_edgesTestDiGraph.test_clear_edges"  s    GGQWW	AGG}%%%r1b!R(vv!!!vv!!!AGG}"""wwv$&&&r   )rg   r   r;   r   r   r   N)r|   r}   r~   r   __doc__r   r   r   r   r   r   r   r   r   r   r   s   @r   r   r      s6     G2F 2 !&
' 
'r   r   c                   0   a  ] tR tRt o RtR tR tRtV tR# )r   i/  z8Unit tests for the :meth:`DiGraph.edge_subgraph` method.c                b   \         P                  ! \         P                  ! ^4      4      p\        ^4       F  pRV 2VP                  V,          R&   K  	  RVP
                  R,          R&   RVP
                  R,          R&   RVP                  R&   Wn        VP                  RR.4      V n	        R# )	   noder   edge01edge34r   Nr)   )r   rN   )
r   rB   
path_graphranger   r2   r   r   edge_subgraphH)r   r   is   &  r   r   TestEdgeSubgraph.setup_method2  s    JJr}}Q'(qA#'sAGGAJv  (f (f!&&!12r   c                   \         P                  ! 4       pVP                  ^ ^4       VP                  R.4      p\	        VP                  ^ 4      4      . 8X  g   Q h\	        VP                  ^ 4      4      ^.8X  g   Q h\	        VP                  ^4      4      ^ .8X  g   Q h\	        VP                  ^4      4      . 8X  g   Q hR# )zjTest that nodes are added to predecessors and successors.

For more information, see GitHub issue #2370.

Nr)   )r   rB   rh   r   rQ   r%   r   )r   r   r   s   &  r   test_pred_succTestEdgeSubgraph.test_pred_succ?  s     JJL	

1aOOVH%ANN1%&",,,ALLO$+++ANN1%&1#---ALLO$***r   )r   r   N)	r|   r}   r~   r   r   r   r   r   r   r   s   @r   r   r   /  s     B3+ +r   r   )r   networkxr   networkx.utilsr   
test_graphr   r   r   _TestGraphEdgeSubgraphr   
_TestGraphr	   r   r   r{   r   r   <module>r      sX      & < B /S( S(l%K-/B %KPc'' c'L+- +r   