K i1 ddlZddlZddlmZmZmZmZmZddl m Z m Z ddl m Z mZmZGddZej"j%ddd gdd d d ifd d d difgfdZdZdZdZy)N)from_dict_of_dictsfrom_dict_of_liststo_dict_of_dictsto_dict_of_liststo_networkx_graph) barbell_graph cycle_graph) edges_equal graphs_equal nodes_equalcNeZdZdZdZdZdZdZdZdZ dZ d Z d Z d Z y ) TestConvertcLtd|Dtd|Dk(S)Nc32K|]}t|ywNsorted.0es a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/networkx/tests/test_convert.py z.TestConvert.edgelists_equal..s,AfQi,c32K|]}t|ywrrrs rrz.TestConvert.edgelists_equal..s6MQvay6Mrr)selfe1e2s redgelists_equalzTestConvert.edgelists_equals#,,,6M"6M0MMMcttfttffD]\}}t dd}i|_||}||}t ||sJt|}t ||sJtj|}t ||sJtjd}tjd} i|_i| _||gd}tj|} t | | rJy)N rnodelist) rrrrrgraphr rnxGraph path_graph) rdestsourceGdodGGGWGIP4P3Gdods rtest_simple_graphszTestConvert.test_simple_graphss 1 2 1 2  *LD&b!$AAGq'CB2& &&"3'B2& &&#B2& &&q!Bq!BBHBHrI.C88C=Db) ))/ *rcGdd}tjtjt|Gdd}tjtjt|ddi}tjt t|Gdd}tjtjt|tjtjtdy)NceZdZdZy&TestConvert.test_exceptions..GN)__name__ __module__ __qualname__adjrrr/r;/sCrr/ceZdZdZyr:)r<r=r> is_strictr@rrr/z&TestConvert.test_exceptions..G5sIrarceZdZdZyr:)r<r=r>nextr@rrr/z&TestConvert.test_exceptions..G?sDr)pytestraisesr* NetworkXErrorr TypeError)rr/s rtest_exceptionszTestConvert.test_exceptions-s    b&&(91=    b&&(91=!H i!2A6    b&&(91=  b&&(93?rcttfttffD]R\}}t d}||}||}t t |jt |jsJtt |jt |jsJt|}t t |jt |jsJtt |jt |jsJtj|}t t |jt |jsJtt |jt |jsJt dtj}||}||tj}t |jt |jk(sJt |jt |jk(sJt|tj}t |jt |jk(sJt |jt |jk(sJtj|}t |jt |jk(sJt |jt |jk(rSJy)Nr! create_using)rrrrr r rnodesr edgesrr*r+DiGraph)rr-r.r/r0r1r2r3s r test_digraphszTestConvert.test_digraphsGsa 1 2 1 2  ;LD&BAq'CBvaggi0&2DE EEvaggi0&2DE EE"3'Bvaggi0&2DE EEvaggi0&2DE EE#Bvaggi0&2DE EEvaggi0&2DE EEBRZZ8Aq'C"**5B!'')$rxxz(:: ::!'')$rxxz(:: ::"3RZZ@B!'')$rxxz(:: ::!'')$rxxz(:: ::CB!'')$rxxz(:: ::!'')$rxxz(:: ::9 ;rctjd}tj}|j||j d|j Dt |}t|tj}tt|jt|jsJtt|j t|j sJt|tj}tt|jt|jsJtt|j t|j sJtj|}t|jt|jk(sJt|j t|j k(sJt|}t|tj}|j dD cgc] \}} } || if } } }} tt|jt|jsJt| t|j dsJt|tj}tt|jt|jsJt| t|j dsJtj|}tt|jt|jsJt| t|j dsJycc} } }w)Nr!c3,K|] \}}|||fywrr@ruvs rrz)TestConvert.test_graph..js!B11a)!BrLTdata)r*r r+add_nodes_fromadd_weighted_edges_fromrOrrr rrNr rrr) rgr/r0r1r2r3dolrUrVdenones r test_graphzTestConvert.test_graphfs NN2  HHJ  !!!B !BBq! "(( ;6!''),fRXXZ.@AAA6!''),fRXXZ.@AAA s :6!''),fRXXZ.@AAA6!''),fRXXZ.@AAA XXc]aggi F288:$6666aggi F288:$6666q! "(( ;-.WW$W-?@@ Aq!Q@@6!''),fRXXZ.@AAA5&t)<"=>>> s :6!''),fRXXZ.@AAA5&t)<"=>>> XXc]6!''),fRXXZ.@AAA5&t)<"=>>>As N;cltd}tj}|j||j d|j Dtj }|j||j d|j D|jdddtj}|j||j d|j D|jddd t|}t|tj }t|j|jsJt|j |j sJt|tj }t|j|jsJt|j |j sJtj|}t|j|jsJt|j |j sJt|} t| tj }|j d D cgc] \} } } | | if } } } } tt!|jt!|jsJt| t!|j d sJt| tj }tt!|jt!|jsJt| t!|j d sJtj| }tt!|jt!|jsJt| t!|j d sJt|}t|tj d }tt!|jt!|jsJtt!|j t!|j sJt|tj d }tt!|jt!|jsJtt!|j t!|j sJtj |}tt!|jt!|jsJt!|j t!|j k(sJt|tj d }tt!|jt!|jsJt!|j t!|j k7sJtj |}tt!|jt!|jsJtt!|j t!|j sJtj |}tt!|jt!|jsJtt!|j t!|j sJt|} t| tj }tt!|jt!|jsJtt!|j t!|j sJt| tj }tt!|jt!|jsJtt!|j t!|j sJtj | }tt!|jt!|jsJtt!|j t!|j sJycc} } } w)Nr!c3,K|] \}}|||fywrr@rTs rrz>TestConvert.test_with_multiedges_self_loops..s"CAAq!9"CrWc3,K|] \}}|||fywrr@rTs rrz>TestConvert.test_with_multiedges_self_loops..#D$!QQ1I#DrWrr%r&weightc3,K|] \}}|||fywrr@rTs rrz>TestConvert.test_with_multiedges_self_loops..rdrWdrLTrX)rMmultigraph_inputF)r r*r+rZr[rO MultiGraphadd_edgerrr rNr rrrr)rr/XGXGMXGSr0r1r2r3r]rUrVr^r_GEGMs rtest_with_multiedges_self_loopsz+TestConvert.test_with_multiedges_self_loopss9 O XXZ ! """C"CCmmo 1 ###D!'')#DD Q! $hhj 1 ###D!'')#DD Q# &s# "(( ;399; 333399; 333 s :399; 333399; 333 XXc]399; 333399; 333s# "(( ;-0YYDY-ABB Aq!QBB6#))+.rxxz0BCCC5&t)<"=>>> s :6#))+.rxxz0BCCC5&t)<"=>>> XXc]6#))+.rxxz0BCCC5&t)<"=>>>s# "--RV W6#))+.rxxz0BCCC6#))+.rxxz0BCCC sQU V6#))+.rxxz0BCCC6#))+.rxxz0BCCC ]]3 6#))+.rxxz0BCCCciik"fRXXZ&8888 "--RW X6#))+.rxxz0BCCCciik"fRXXZ&8888 ]]3 6#))+.rxxz0BCCC6#))+.rxxz0BCCC ]]1 6"((*-vaggi/@AAA6"((*-vaggi/@AAA q! "-- @6!''),fRXXZ.@AAA6!''),fRXXZ.@AAA s ?6!''),fRXXZ.@AAA6!''),fRXXZ.@AAA ]]3 6!''),fRXXZ.@AAA6!''),fRXXZ.@AAAYCs#d/cDtjd}gd}tj|}tt |j t |j sJt t |jt |jsJt t |jdt |jdsJddifddifddifg}tj|}tt |j t |j sJt t |jt |jsJt t |jdt |jdsJd tdD}tj|}tt |j t |j sJt t |jt |jsJt t |jdt |jdsJy) Nr#)rr%r%r&)r&r"TrXrr%r&r"c3*K|] }||dzf yw)r%Nr@)rns rrz-TestConvert.test_edgelists..s *AaQZ *s) r*r,r+r rrNr rOrange)rPrr/s rtest_edgelistszTestConvert.test_edgelistss MM!  $ HHQK6!''),fQWWY.?@@@6!''),fQWWY.?@@@6!''t'"45vagg4g>P7QRRRBZ!QaBZ 0 HHQK6!''),fQWWY.?@@@6!''),fQWWY.?@@@6!''t'"45vagg4g>P7QRRR *q * HHQK6!''),fQWWY.?@@@6!''),fQWWY.?@@@6!''t'"45vagg4g>P7QRRRrcgd}gd}|jtjtj|j |sJ|jtjtj|j |sJ|jtj tj|j |sJ|jtj tj|j |sJ|jtj tj |j |sJ|jtj tj |j |sJ|jtjtj |j |sJ|jtjtj |j |sJy)N)rsrt)r&r)rsrtrr&)rr*r+rPrOrj MultiDiGraph)redges1edges2s rtest_directed_to_undirectedz'TestConvert.test_directed_to_undirecteds))##BHHRZZ-?$@$F$F$H&QQQ##BHHRZZ-?$@$F$F$H&QQQ##BMM"**V2D$E$K$K$MvVVV##BMM"**V2D$E$K$K$MvVVV## MM"//&1 2 8 8 :F   ## MM"//&1 2 8 8 :F   ##BHHR__V-D$E$K$K$MvVVV##BHHR__V-D$E$K$K$MvVVVrcbtj}|jdt|tj}t |j t |j k(sJtj |}t |j t |j k(sJy)NabcrL)r*r+rZrlistrNrP)rr/Hs rtest_attribute_dict_integrityz)TestConvert.test_attribute_dict_integrityst HHJ  abhh 7AGG}QWW --- JJqMAGG}QWW ---rctjdg}tj|t|}t |j d|sJy)N)r%r%r'TrX)r*r+ to_edgelistrr rO)rr/elists rtest_to_edgelistzTestConvert.test_to_edgelistsA HHfX q4731777-u555rc,GddtGfddtj}tj}|jdd||}t |j dtsJt |j dsJy)Nc eZdZy)GTestConvert.test_custom_node_attr_dict_safekeeping..custom_dictN)r<r=r>r@rr custom_dictr s rrceZdZWZy)BTestConvert.test_custom_node_attr_dict_safekeeping..CustomN)r<r=r>node_attr_dict_factory)rsrCustomr s %0 "rrr%re)dictr*r+add_node isinstance_node)rrr\hrs @r&test_custom_node_attr_dict_safekeepingz2TestConvert.test_custom_node_attr_dict_safekeepingsu $  1RXX 1 HHJ 1Q  1I!''!*d+++!''!*k222rN)r<r=r>rr7rJrQr`rqryrrrrr@rrrrsAN*4@4;>?@LB\S(W$.6 3rredgelistrsrtr%rfg?r&g@ctj}|j|ddidddddid}tj|d|k(sJy)Nr%r!r{r$ edge_data)r*r+add_edges_fromr)rr/expecteds r)test_to_dict_of_dicts_with_edgedata_paramrsR  AXr72"~1b':H  qB /8 ;; ;rctjd}gd}ddidddddid}tj||d|k(sJy)N)r&r"r#r"r!)r&r#)r(r)r*r,r)r/r(rs r0test_to_dict_of_dicts_with_edgedata_and_nodelistr-sJ aAHr72"~1b':H  q8r Bh NN Nrctj}|jddd|jdddddiddid}tj|d|k(sJy ) z2Multi edge data overwritten when edge_data != Nonerr%rC)keybr!rsrN)r*rjrkr)r/rs r.test_to_dict_of_dicts_with_edgedata_multigraphr4s^ AJJq!JJJq!Jr72w'H  qB /8 ;; ;rcgd}tjtjd5tj|dddy#1swYyxYw)N)r%r&r"zInput is not a valid edge list)match)rFrGr*rHr)invalid_edgelists r#test_to_networkx_graph_non_edgelistr>sA  r''/O P/ -.///s A  A)rFnetworkxr*networkx.convertrrrrrnetworkx.generators.classicrr networkx.utilsr r r rmark parametrizerrrrr@rrrs CAAE3E3X  Q3 1a(C"9: <<O</r