Ë
    D^(hÄ(  ã                   óÔ   — d dl Z  e j                  d«      Z e j                  d«      Zd dlZd dlmZmZm	Z	 d dl
mZ  G d„ d«      Ze j                  j                  dd	«      d
„ «       Zy)é    NÚnumpyÚscipy)Úbarbell_graphÚcycle_graphÚ
path_graph)Úgraphs_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d„ Zy)ÚTestConvertScipyc                 ó  — t        dd«      | _        t        dt        j                  ¬«      | _        | j                  t        j                  «       «      | _        | j                  t        j                  «       «      | _	        y )Né
   é   ©Úcreate_using)
r   ÚG1r   ÚnxÚDiGraphÚG2Úcreate_weightedÚGraphÚG3ÚG4©Úselfs    ú_/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/networkx/tests/test_convert_scipy.pyÚsetup_methodzTestConvertScipy.setup_method   sR   € Ü  AÓ&ˆŒÜ˜b¬r¯z©zÔ:ˆŒà×&Ñ&¤r§x¡x£zÓ2ˆŒØ×&Ñ&¤r§z¡z£|Ó4ˆ�ó    c                 ó~   —  G d„ d«      }t        j                  t        j                  t        j                  |«       y )Nc                   ó   — e Zd ZdZy)ú+TestConvertScipy.test_exceptions.<locals>.GN)Ú__name__Ú
__module__Ú__qualname__Úformat© r   r   ÚGr      s   „ Ø‰Fr   r%   )ÚpytestÚraisesr   ÚNetworkXErrorÚto_networkx_graph)r   r%   s     r   Útest_exceptionsz TestConvertScipy.test_exceptions   s*   € ÷	ñ 	ô 	�‰”b×&Ñ&¬×(<Ñ(<¸aÕ@r   c                 ó   — t        d«      }t        |j                  «       «      }|D ��cg c]  \  }}|‘Œ	 }}}|D ��cg c]  \  }}|‘Œ	 }}}|D �cg c]  }|dz   ‘Œ	 }	}t        |||	«      }
|j	                  |
«       |S c c}}w c c}}w c c}w )Né   r   )r   ÚlistÚedgesÚzipÚadd_weighted_edges_from)r   r%   ÚgÚeÚuÚvÚsourceÚdestÚsÚweightÚexs              r   r   z TestConvertScipy.create_weighted   s‹   € Ü˜‹NˆÜ�—‘“‹OˆØ !×"™˜˜1’!Ð"ˆÑ"Ø× ‘d�a˜’Ð ˆÑ Ø"(Ö)˜Q�!�b“&Ð)ˆÐ)Ü�˜˜vÓ&ˆØ	×!Ñ! "Ô%Øˆùó #ùÛ ùÚ)s   ªA?¾BÁBc                 ó<  — t        j                  ||¬«      }t        j                  ||«      sJ ‚t        j                  ||¬«      }t        j                  ||«      sJ ‚t        j                  d|«      j                  |«      }t        j                  ||«      sJ ‚|j                  «       }t        j                  d|«      j                  |«      }t        j                  ||«      sJ ‚|j                  «       }t        j                  d|«      j                  |«      }t        j                  ||«      sJ ‚|j                  «       }	t        j                  d|«      j                  |	«      }t        j                  ||«      sJ ‚|j                  «       }
t        j                  d|«      j                  |
«      }t        j                  ||«      sJ ‚|j                  «       }t        j                  d|«      j                  |«      }t        j                  ||«      sJ ‚y )Nr   r   )r   Úfrom_scipy_sparse_arrayÚis_isomorphicr)   Úempty_graphÚ	__class__ÚtocsrÚtocooÚtocscÚtodenseÚtoarray)r   r%   ÚAr   ÚGGÚGWÚGIÚACSRÚACOOÚACSCÚADÚAAs               r   Úidentity_conversionz$TestConvertScipy.identity_conversion#   s¯  € Ü×'Ñ'¨¸ÔEˆÜ×Ñ  2Ô&Ð&Ð&ä×!Ñ! !°,Ô?ˆÜ×Ñ  2Ô&Ð&Ð&ä�^‰^˜A˜|Ó,×6Ñ6°qÓ9ˆÜ×Ñ  2Ô&Ð&Ð&à�w‰w‹yˆÜ�^‰^˜A˜|Ó,×6Ñ6°tÓ<ˆÜ×Ñ  2Ô&Ð&Ð&à�w‰w‹yˆÜ�^‰^˜A˜|Ó,×6Ñ6°tÓ<ˆÜ×Ñ  2Ô&Ð&Ð&à�w‰w‹yˆÜ�^‰^˜A˜|Ó,×6Ñ6°tÓ<ˆÜ×Ñ  2Ô&Ð&Ð&à�Y‰Y‹[ˆÜ�^‰^˜A˜|Ó,×6Ñ6°rÓ:ˆÜ×Ñ  2Ô&Ð&Ð&à�Y‰Y‹[ˆÜ�^‰^˜A˜|Ó,×6Ñ6°rÓ:ˆÜ×Ñ  2Ô&Ð&Ñ&r   c                 ó´   — t         j                  j                  g d¢g d¢g«      }t        j                  t
        j                  t
        j                  |«       y)z(Conversion from non-square sparse array.)é   é   r   )r,   é   é   N)ÚspÚsparseÚ	lil_arrayr&   r'   r   r(   r;   ©r   rD   s     r   Ú
test_shapezTestConvertScipy.test_shapeA   s7   € ä�I‰I×Ñ¢ªIÐ 6Ó7ˆÜ�‰”b×&Ñ&¬×(BÑ(BÀAÕFr   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)z0Conversion from graph to sparse matrix to graph.N)r   Úto_scipy_sparse_arrayr   rM   r   rV   s     r   Útest_identity_graph_matrixz+TestConvertScipy.test_identity_graph_matrixF   ó2   € ä×$Ñ$ T§W¡WÓ-ˆØ× Ñ  §¡¨!¬R¯X©X«ZÕ8r   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)z4Conversion from digraph to sparse matrix to digraph.N)r   rY   r   rM   r   rV   s     r   Útest_identity_digraph_matrixz-TestConvertScipy.test_identity_digraph_matrixK   ó2   € ä×$Ñ$ T§W¡WÓ-ˆØ× Ñ  §¡¨!¬R¯Z©Z«\Õ:r   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)zBConversion from weighted graph to sparse matrix to weighted graph.N)r   rY   r   rM   r   rV   s     r   Ú#test_identity_weighted_graph_matrixz4TestConvertScipy.test_identity_weighted_graph_matrixP   r[   r   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)zFConversion from weighted digraph to sparse matrix to weighted digraph.N)r   rY   r   rM   r   rV   s     r   Ú%test_identity_weighted_digraph_matrixz6TestConvertScipy.test_identity_weighted_digraph_matrixU   r^   r   c                 ó<  — t        d«      }t        d«      }t        |j                  «       «      }t        j                  ||¬«      }t        j
                  |«      }t        j                  ||«      sJ ‚t        j                  t        j                  t        j                  |g ¬«       |dgz   }t        j                  t        j                  t        j                  ||¬«       g d¢}t        j                  t        j                  t        j                  ||¬«       y)z>Conversion from graph to sparse matrix to graph with nodelist.r,   r   ©Únodelistr   )éÿÿÿÿr   rO   rP   N)
r   r-   Únodesr   rY   r   r<   r&   r'   r(   )r   ÚP4ÚP3re   rD   ÚGAÚlong_nlÚnon_nls           r   Útest_nodelistzTestConvertScipy.test_nodelistZ   sÅ   € ä˜‹]ˆÜ˜‹]ˆÜ˜Ÿ™›
Ó#ˆÜ×$Ñ$ R°(Ô;ˆÜ�X‰X�a‹[ˆÜ×Ñ  BÔ'Ð'Ð'ä�‰”b×&Ñ&¬×(@Ñ(@À"ÈrÕRà˜a˜S‘.ˆÜ�‰”b×&Ñ&¬×(@Ñ(@À"ÈwÕWò ˆÜ�‰”b×&Ñ&¬×(@Ñ(@À"ÈvÖVr   c                 óœ  — t        j                  «       }|j                  d„ t        d«      D «       «       t	        d«      }t        j
                  |«      }t        j                  j                  |j                  «       t        j
                  |d ¬«      j                  «       «       t        j                  j                  d|j                  «       z  t        j
                  |«      j                  «       «       t        j                  j                  d|j                  «       z  t        j
                  |d¬«      j                  «       «       y )Nc              3   ó2   K  — | ]  }||d z   dddœf–— Œ y­w©rO   ç      à?ç333333Ó?)r8   ÚotherNr$   ©Ú.0Úns     r   ú	<genexpr>z7TestConvertScipy.test_weight_keyword.<locals>.<genexpr>n   ó    è ø€ ÒWÈ˜A˜q 1™u°¸sÑ&CÔDÑWùó   ‚r   r,   ©r8   rq   rr   rs   ©
r   r   Úadd_edges_fromÚranger   rY   ÚnpÚtestingÚassert_equalrB   ©r   ÚWP4rh   rD   s       r   Útest_weight_keywordz$TestConvertScipy.test_weight_keywordl   sä   € Ü�h‰h‹jˆØ×ÑÑWÌeÐTUËhÔWÔWÜ˜‹]ˆÜ×$Ñ$ RÓ(ˆÜ
�
‰
×ÑØ�I‰I‹Kœ×1Ñ1°#¸dÔC×KÑKÓMô	
ô 	�
‰
×ÑØ�!—)‘)“+Ñœr×7Ñ7¸Ó<×DÑDÓFô	
ô 	�
‰
×ÑØ�!—)‘)“+Ñœr×7Ñ7¸ÀGÔL×TÑTÓVõ	
r   c                 ó4  — t        j                  «       }|j                  d„ t        d«      D «       «       t	        d«      }t        j
                  |d¬«      }t        j                  j                  |j                  «       t        j
                  |d ¬«      j                  «       «       t        j
                  |d¬«      }t        j                  j                  |j                  «       t        j
                  |d ¬«      j                  «       «       t        j
                  |d¬«      }t        j                  j                  |j                  «       t        j
                  |d ¬«      j                  «       «       t        j
                  |d	¬«      }t        j                  j                  |j                  «       t        j
                  |d ¬«      j                  «       «       t        j
                  |d
¬«      }t        j                  j                  |j                  «       t        j
                  |d ¬«      j                  «       «       t        j
                  |d¬«      }t        j                  j                  |j                  «       t        j
                  |d ¬«      j                  «       «       t        j
                  |d¬«      }t        j                  j                  |j                  «       t        j
                  |d ¬«      j                  «       «       y )Nc              3   ó2   K  — | ]  }||d z   dddœf–— Œ y­wrp   r$   rt   s     r   rw   z7TestConvertScipy.test_format_keyword.<locals>.<genexpr>}   rx   ry   r   r,   Úcsr©r#   rz   ÚcscÚcooÚbsrÚlilÚdiaÚdokr{   r�   s       r   Útest_format_keywordz$TestConvertScipy.test_format_keyword{   s  € Ü�h‰h‹jˆØ×ÑÑWÌeÐTUËhÔWÔWÜ˜‹]ˆÜ×$Ñ$ R°Ô6ˆÜ
�
‰
×ÑØ�I‰I‹Kœ×1Ñ1°#¸dÔC×KÑKÓMô	
ô ×$Ñ$ R°Ô6ˆÜ
�
‰
×ÑØ�I‰I‹Kœ×1Ñ1°#¸dÔC×KÑKÓMô	
ô ×$Ñ$ R°Ô6ˆÜ
�
‰
×ÑØ�I‰I‹Kœ×1Ñ1°#¸dÔC×KÑKÓMô	
ô ×$Ñ$ R°Ô6ˆÜ
�
‰
×ÑØ�I‰I‹Kœ×1Ñ1°#¸dÔC×KÑKÓMô	
ô ×$Ñ$ R°Ô6ˆÜ
�
‰
×ÑØ�I‰I‹Kœ×1Ñ1°#¸dÔC×KÑKÓMô	
ô ×$Ñ$ R°Ô6ˆÜ
�
‰
×ÑØ�I‰I‹Kœ×1Ñ1°#¸dÔC×KÑKÓMô	
ô ×$Ñ$ R°Ô6ˆÜ
�
‰
×ÑØ�I‰I‹Kœ×1Ñ1°#¸dÔC×KÑKÓMõ	
r   c                 ó"  — t        j                  t        j                  «      5  t        j                  «       }|j                  d„ t        d«      D «       «       t        d«      }t        j                  |d¬«       d d d «       y # 1 sw Y   y xY w)Nc              3   ó2   K  — | ]  }||d z   dddœf–— Œ y­wrp   r$   rt   s     r   rw   z=TestConvertScipy.test_format_keyword_raise.<locals>.<genexpr>¥   s%   è ø€ ò Ø>?��A˜‘E c°CÑ8Ô9ñùry   r   r,   Ú	any_otherr‡   )	r&   r'   r   r(   r   r|   r}   r   rY   )r   r‚   rh   s      r   Útest_format_keyword_raisez*TestConvertScipy.test_format_keyword_raise¢   sn   € Ü�]‰]œ2×+Ñ+Ó,ñ 	=Ü—(‘(“*ˆCØ×Ññ ÜCHÈÃ8ôô ô ˜A“ˆBÜ×$Ñ$ R°Õ<÷	=÷ 	=ñ 	=ús   ¤ABÂBc                 óÂ   — t        j                  t        j                  «      5  t        j                  t        j
                  «       «       d d d «       y # 1 sw Y   y xY w)N)r&   r'   r   r(   rY   r   r   s    r   Útest_null_raisez TestConvertScipy.test_null_raise«   s=   € Ü�]‰]œ2×+Ñ+Ó,ñ 	1Ü×$Ñ$¤R§X¡X£ZÔ0÷	1÷ 	1ñ 	1ús   ¤(AÁAc                 óþ   — t        j                  «       }|j                  d«       t        j                  |«      }t        j
                  j                  |j                  «       t        j                  dgg«      «       y )NrO   r   )	r   r   Úadd_noderY   r~   r   r€   rC   Úarray©r   r%   ÚMs      r   Ú
test_emptyzTestConvertScipy.test_empty¯   sN   € Ü�H‰H‹JˆØ	�
‰
�1ŒÜ×$Ñ$ QÓ'ˆÜ
�
‰
×Ñ §	¡	£¬R¯X©X¸°s°e«_Õ=r   c           	      ó^  — t        j                  «       }|j                  dd«       |j                  dd«       |j                  dd«       t        j                  |g d¢¬«      }t        j
                  j                  |j                  «       t        j                  g d¢g d¢g d¢g«      «       y )	NrO   rP   r   )r   rP   rO   rd   ©r   r   rO   )rO   r   r   ©r   rO   r   )	r   r   Úadd_edgerY   r~   r   r€   rC   r—   r˜   s      r   Útest_orderingzTestConvertScipy.test_orderingµ   sv   € Ü�J‰J‹LˆØ	�
‰
�1�aÔØ	�
‰
�1�aÔØ	�
‰
�1�aÔÜ×$Ñ$ Q²Ô;ˆÜ
�
‰
×ÑØ�I‰I‹KœŸ™¢9ªiºÐ"CÓDõ	
r   c           	      óÌ  — t        j                  dg«      }t        j                  |«      }t        j                  j                  |j                  «       t        j                  dgg«      «       |j                  ddg«       t        j                  |g d¢¬«      }t        j                  j                  |j                  «       t        j                  g d¢g d¢g d¢g«      «       y )	N©rO   rO   rO   ©rP   r   ©r   r,   ©rP   r   r,   rd   r�   )rO   r   rO   )	r   r   rY   r~   r   r€   rC   r—   r|   r˜   s      r   Útest_selfloop_graphz$TestConvertScipy.test_selfloop_graph¿   sš   € Ü�H‰H�f�XÓˆÜ×$Ñ$ QÓ'ˆÜ
�
‰
×Ñ §	¡	£¬R¯X©X¸°s°e«_Ô=à	×Ñ˜& &Ð)Ô*Ü×$Ñ$ Q²Ô;ˆÜ
�
‰
×ÑØ�I‰I‹KœŸ™¢9ªiºÐ"CÓDõ	
r   c           	      óÌ  — t        j                  dg«      }t        j                  |«      }t        j                  j                  |j                  «       t        j                  dgg«      «       |j                  ddg«       t        j                  |g d¢¬«      }t        j                  j                  |j                  «       t        j                  g d¢g d¢g d	¢g«      «       y )
Nr¡   rO   r¢   r£   r¤   rd   r�   rœ   )r   r   r   )	r   r   rY   r~   r   r€   rC   r—   r|   r˜   s      r   Útest_selfloop_digraphz&TestConvertScipy.test_selfloop_digraphÊ   sš   € Ü�J‰J˜�xÓ ˆÜ×$Ñ$ QÓ'ˆÜ
�
‰
×Ñ §	¡	£¬R¯X©X¸°s°e«_Ô=à	×Ñ˜& &Ð)Ô*Ü×$Ñ$ Q²Ô;ˆÜ
�
‰
×ÑØ�I‰I‹KœŸ™¢9ªiºÐ"CÓDõ	
r   c           	      ó¦  — t         j                  j                  ddgddgg«      }t        j                  «       }g d¢}|j                  |D ��cg c]
  \  }}||df‘Œ c}}«       |j                  ddd¬«       t        j                  |dt        j                  ¬«      }t        ||«      sJ ‚t        j                  |dt        j                  ¬«      }t        ||«      sJ ‚g d¢}t        j                  «       }|j                  |D ��cg c]
  \  }}||df‘Œ c}}«       t        j                  |dt        j                  ¬«      }t        ||«      sJ ‚t        j                  «       }|j                  t        |«      d¬«       d|d   d   d	   d
<   t        j                  |dt        j                  ¬«      }t        ||«      sJ ‚yc c}}w c c}}w )z±Tests that the :func:`networkx.from_scipy_sparse_array` function
        interprets integer weights as the number of parallel edges when
        creating a multigraph.

        rO   rP   )©r   r   ©r   rO   ©rO   r   rz   T)Úparallel_edgesr   F)r©   rª   r«   r¡   r¡   r   r8   N)rS   rT   Ú	csr_arrayr   r   r0   rž   r;   r   ÚMultiDiGraphr|   Úset)r   rD   Úexpectedr.   r3   r4   Úactuals          r   Ú+test_from_scipy_sparse_array_parallel_edgesz<TestConvertScipy.test_from_scipy_sparse_array_parallel_edgesÕ   sŸ  € ô �I‰I×Ñ ! Q ¨!¨Q¨Ð 0Ó1ˆô —:‘:“<ˆÚ(ˆØ×(Ñ(À%×)H¹¸¸A¨1¨a°ª)Ó)HÔIØ×Ñ˜!˜Q qÐÔ)Ü×+Ñ+Ø˜d´·±ô
ˆô ˜F HÔ-Ð-Ð-Ü×+Ñ+Ø˜e´"·*±*ô
ˆô ˜F HÔ-Ð-Ð-ò 9ˆÜ—?‘?Ó$ˆØ×(Ñ(À%×)H¹¸¸A¨1¨a°ª)Ó)HÔIÜ×+Ñ+Ø˜d´·±ô
ˆô ˜F HÔ-Ð-Ð-Ü—?‘?Ó$ˆØ×Ñ¤ E£
°1ÐÔ5à&'ˆ�‰�A‰�qÑ˜(Ñ#Ü×+Ñ+Ø˜e´"·/±/ô
ˆô ˜F HÔ-Ð-Ñ-ùó7 *Iùó *Is   ÁG
Ä	G
c                 ó  — t         j                  j                  ddgddgg«      }t        j                  |t        j
                  ¬«      }t        j
                  «       }|j                  ddd¬«       t        ||«      sJ ‚y)z¢Tests that a symmetric matrix has edges added only once to an
        undirected multigraph when using
        :func:`networkx.from_scipy_sparse_array`.

        r   rO   r   rz   N)rS   rT   r­   r   r;   Ú
MultiGraphrž   r   )r   rD   r%   r°   s       r   Útest_symmetriczTestConvertScipy.test_symmetricý   sk   € ô �I‰I×Ñ ! Q ¨!¨Q¨Ð 0Ó1ˆÜ×&Ñ& q´r·}±}ÔEˆÜ—=‘=“?ˆØ×Ñ˜!˜Q qÐÔ)Ü˜A˜xÔ(Ð(Ñ(r   N)r    r!   r"   r   r*   r   rM   rW   rZ   r]   r`   rb   rm   rƒ   rŽ   r’   r”   rš   rŸ   r¥   r§   r²   rµ   r$   r   r   r
   r
      sk   „ ò5òAòò'ò<Gò
9ò
;ò
9ò
;ò
Wò$
ò%
òN=ò1ò>ò
ò	
ò	
ò&.óP
)r   r
   Úsparse_format)r†   rˆ   r�   c                 óF  — t        j                  «       }|j                  ddddifddddifddddifddddifddddifddddifg«       t        j                  j                  g d¢g d¢g d¢g«      j                  | «      }t        |t        j                  |«      «      sJ ‚y	)
z7Test all formats supported by _generate_weighted_edges.r   rO   r8   r   rP   )r   r   rP   )r   r   rO   )rP   rO   r   N)	r   r   r|   rS   rT   Ú	coo_arrayÚasformatr   r;   )r¶   r°   rD   s      r   Ú$test_from_scipy_sparse_array_formatsrº   
  s¹   € ô �x‰x‹z€HØ×Ñà��H˜a�=Ð!Ø��H˜a�=Ð!Ø��H˜a�=Ð!Ø��H˜a�=Ð!Ø��H˜a�=Ð!Ø��H˜a�=Ð!ð	
ô	ô 	�	‰	×ÑšYª	²9Ð=Ó>×GÑGÈÓV€AÜ˜¤"×"<Ñ"<¸QÓ"?Ô@Ð@Ñ@r   )r&   Úimportorskipr~   rS   Únetworkxr   Únetworkx.generators.classicr   r   r   Únetworkx.utilsr   r
   ÚmarkÚparametrizerº   r$   r   r   ú<module>rÁ      sn   ðÛ à€V×Ñ˜Ó!€Ø€V×Ñ˜Ó!€ã ß NÑ NÝ '÷|)ñ |)ð~ ‡�×Ñ˜Ð*?Ó@ñAó AñAr   