Ë
    Ìi�(  ã                   óÀ   — d dl Z d dlZd dlmZ  e j
                  d«      Z e j
                  d«      Z G d„ d«      Ze j                  j                  dd«      d	„ «       Zy)
é    N)Úgraphs_equalÚnumpyÚscipyc                   ó„   — 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        j                  dd«      | _        t        j                  dt         j                  ¬«      | _        | j                  t        j                  «       «      | _        | j                  t        j                  «       «      | _	        y )Né
   é   ©Úcreate_using)
ÚnxÚbarbell_graphÚG1Úcycle_graphÚDiGraphÚG2Úcreate_weightedÚGraphÚG3ÚG4©Úselfs    úb/var/www/html/strategist-ai/venv/lib/python3.12/site-packages/networkx/tests/test_convert_scipy.pyÚsetup_methodzTestConvertScipy.setup_method   s\   € Ü×"Ñ" 2 qÓ)ˆŒÜ—.‘. ´"·*±*Ô=ˆŒà×&Ñ&¤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                 ó4  — t        j                  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   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‰N˜1ÓˆÜ�—‘“‹OˆØ !×"™˜˜1’!Ð"ˆÑ"Ø× ‘d�a˜’Ð ˆÑ Ø"(Ö)˜Q�!�b“&Ð)ˆÐ)Ü�˜˜vÓ&ˆØ	×!Ñ! "Ô%Øˆùó #ùÛ ùÚ)s   ´B	Á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   rC   s     r   Ú
test_shapezTestConvertScipy.test_shape@   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   rL   r   rU   s     r   Útest_identity_graph_matrixz+TestConvertScipy.test_identity_graph_matrixE   ó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   rX   r   rL   r   rU   s     r   Útest_identity_digraph_matrixz-TestConvertScipy.test_identity_digraph_matrixJ   ó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   rX   r   rL   r   rU   s     r   Ú#test_identity_weighted_graph_matrixz4TestConvertScipy.test_identity_weighted_graph_matrixO   rZ   r   c                 ó    — t        j                  | j                  «      }| j                  | j                  |t        j                  «       «       y)zFConversion from weighted digraph to sparse matrix to weighted digraph.N)r   rX   r   rL   r   rU   s     r   Ú%test_identity_weighted_digraph_matrixz6TestConvertScipy.test_identity_weighted_digraph_matrixT   r]   r   c                 ód  — t        j                  d«      }t        j                  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   rN   rO   N)
r   Ú
path_graphr,   ÚnodesrX   r   r;   r%   r&   r'   )r   ÚP4ÚP3rd   rC   ÚGAÚlong_nlÚnon_nls           r   Útest_nodelistzTestConvertScipy.test_nodelistY   sÏ   € ä�]‰]˜1ÓˆÜ�]‰]˜1ÓˆÜ˜Ÿ™›
Ó#ˆÜ×$Ñ$ 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        j                  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©rN   ç      à?ç333333Ó?)r7   ÚotherNr#   ©Ú.0Úns     r   ú	<genexpr>z7TestConvertScipy.test_weight_keyword.<locals>.<genexpr>m   ó    è ø€ ÒWÈ˜A˜q 1™u°¸sÑ&CÔDÑWùó   ‚r
   r+   ©r7   rq   rr   rs   ©
r   r   Úadd_edges_fromÚrangerf   rX   ÚnpÚtestingÚassert_equalrA   ©r   ÚWP4rh   rC   s       r   Útest_weight_keywordz$TestConvertScipy.test_weight_keywordk   sé   € Ü�h‰h‹jˆØ×ÑÑWÌeÐTUËhÔWÔWÜ�]‰]˜1ÓˆÜ×$Ñ$ 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                 óH  — t        j                  «       }|j                  d„ t        d«      D «       «       t        j                  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_keywordz   s#  € Ü�h‰h‹jˆØ×ÑÑWÌeÐTUËhÔWÔWÜ�]‰]˜1ÓˆÜ×$Ñ$ 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                 ó6  — t        j                  t        j                  «      5  t        j                  «       }|j                  d„ t        d«      D «       «       t        j                  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}   rf   rX   )r   r‚   rh   s      r   Útest_format_keyword_raisez*TestConvertScipy.test_format_keyword_raise¡   ss   € Ü�]‰]œ2×+Ñ+Ó,ñ 	=Ü—(‘(“*ˆCØ×Ññ ÜCHÈÃ8ôô ô —‘˜qÓ!ˆ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'   rX   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 )NrN   r   )	r   r   Úadd_noderX   r~   r   r€   rB   Ú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 )	NrN   rO   r
   )r
   rO   rN   rc   ©r   r   rN   )rN   r   r   ©r   rN   r   )	r   r   Úadd_edgerX   r~   r   r€   rB   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©rN   rN   rN   ©rO   r
   ©r
   r+   ©rO   r
   r+   rc   r�   )rN   r   rN   )	r   r   rX   r~   r   r€   rB   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¡   rN   r¢   r£   r¤   rc   r�   rœ   )r   r   r   )	r   r   rX   r~   r   r€   rB   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.

        rN   rO   )©r   r   ©r   rN   ©rN   r   rz   T)Úparallel_edgesr   F)r©   rª   r«   r¡   r¡   r   r7   N)rR   rS   Ú	csr_arrayr   r   r/   rž   r:   r   ÚMultiDiGraphr|   Úset)r   rC   Úexpectedr-   r2   r3   Ú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   rN   r   rz   N)rR   rS   r­   r   r:   Ú
MultiGraphrž   r   )r   rC   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   rL   rV   rY   r\   r_   ra   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   rN   r7   r
   rO   )r   r
   rO   )r
   r   rN   )rO   rN   r   N)	r   r   r|   rR   rS   Ú	coo_arrayÚasformatr   r:   )r¶   r°   rC   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%   Únetworkxr   Únetworkx.utilsr   Úimportorskipr~   rR   r   ÚmarkÚparametrizerº   r#   r   r   ú<module>rÀ      sh   ðÛ ã Ý 'à€V×Ñ˜Ó!€Ø€V×Ñ˜Ó!€÷|)ñ |)ð~ ‡�×Ñ˜Ð*?Ó@ñAó AñAr   