
    Vh                     4    d dl Z d dlZd dlmZ  G d d      Zy)    N)	bipartitec                   f    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y)TestBipartiteBasicc                    t        j                  t        j                  d            sJ t        j                  t        j                  dg            sJ t        j                  t        j
                  d            rJ y )N   )   r      )r   is_bipartitenx
path_graphDiGraphcomplete_graph)selfs    ^/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_basic.pytest_is_bipartitez$TestBipartiteBasic.test_is_bipartite   s`    %%bmmA&6777%%bjj&&:;;;))"*;*;A*>????    c                 p    t        j                  d      }t        j                  |      }|dddddk(  sJ y )Nr   r   r   )r   r      r	   )r   r   r   color)r   Gcs      r   test_bipartite_colorz'TestBipartiteBasic.test_bipartite_color   s5    MM!OOAaA!,,,,r   c                     t        j                  t        j                        5  t	        j
                  t        j                  d            }d d d        y # 1 sw Y   y xY w)Nr   )pytestraisesr   NetworkXErrorr   r   r   )r   r   s     r   test_not_bipartite_colorz+TestBipartiteBasic.test_not_bipartite_color   sB    ]]2++, 	6 1 1! 45A	6 	6 	6s   )AAc                 d    t        j                  dddd      }t        j                  |      sJ y )N
   皙?T)directed)r   random_graphr
   r   r   s     r   test_bipartite_directedz*TestBipartiteBasic.test_bipartite_directed   s,    ""2r3>%%a(((r   c                     t        j                  d      }t        j                  |      \  }}|ddhk(  sJ |ddhk(  sJ y Nr   r   r   r   r	   r   r   r   setsr   r   XYs       r   test_bipartite_setsz&TestBipartiteBasic.test_bipartite_sets   sB    MM!~~a 1QF{{QF{{r   c                     t        j                  d      }|j                         }t        j                  |      \  }}|ddhk(  sJ |ddhk(  sJ y r&   )r   r   to_directedr   r(   )r   r   Dr*   r+   s        r   test_bipartite_sets_directedz/TestBipartiteBasic.test_bipartite_sets_directed    sM    MM!MMO~~a 1QF{{QF{{r   c                     t        j                  d      }ddg}t        j                  ||      \  }}|ddhk(  sJ |ddhk(  sJ y r&   r'   )r   r   	top_nodesr*   r+   s        r   #test_bipartite_sets_given_top_nodesz6TestBipartiteBasic.test_bipartite_sets_given_top_nodes'   sM    MM!F	~~a+1QF{{QF{{r   c                     t        j                  t        j                        5  t        j                  d      }|j                  ddg       t        j                  |      \  }}d d d        y # 1 sw Y   y xY w)Nr   )      )r6      )r   r   r   AmbiguousSolutionr   add_edges_fromr   r(   r)   s       r    test_bipartite_sets_disconnectedz3TestBipartiteBasic.test_bipartite_sets_disconnected.   s\    ]]2//0 	%a Aff-.>>!$DAq	% 	% 	%s   AA..A7c                 ^   t        j                  d      }t        j                  t         j                        5  t        j                  |g d       d d d        t        j                  |ddg      sJ t        j                  |ddg      sJ t        j                  |ddg      rJ |j                  dd       t        j                  |g d	      sJ t        j                  |g d
      sJ t        j                  |g d      sJ t        j                  |g d      sJ y # 1 sw Y   xY w)Nr   )r   r   r   r	   r   r   r   r	   r      )r   r   r   )r   r   r<   )r   r	   r   )r   r	   r<   )r   r   r   r   r8   r   is_bipartite_node_setadd_edger#   s     r   test_is_bipartite_node_setz-TestBipartiteBasic.test_is_bipartite_node_set4   s    MM!]]2//0 	=++A|<	= ..q1a&999..q1a&999221q!f===	

2r..q*===..q*===..q*===..q*===	= 	=s   D##D,c                    t        j                  d      }t        j                  |      \  }}t	        t        |j                                     t	        |      t	        |      z  z  }t        j                  ||      |k(  sJ t        j                  |j                               }t        j                  ||      |dz  k(  sJ t        j                  t        j                         i       dk(  sJ y )Nr5   g       @g        )
r   r   r   r(   lenlistedgesdensityr   Graph)r   r   r*   r+   rD   r/   s         r   test_bipartite_densityz)TestBipartiteBasic.test_bipartite_densityC   s    MM!~~a 1d1779o&#a&3q6/:  A&'111JJqwwy!  A&'C-777  R0C777r   c                     t        j                  d      }ddh}h d}t        j                  ||      \  }}t	        |      dddk(  sJ t	        |      ddddk(  sJ y )Nr5   r   r	      r   r   r   r   r   r	   r   r   r   )r   r   r   degreesdictr   r   r*   r+   uds         r   test_bipartite_degreesz)TestBipartiteBasic.test_bipartite_degreesL   sc    MM!F  A&1AwaA,&&&AwaA!,,,,r   c                 p   t        j                  d      }|j                  dddd       ddh}h d}t        j                  ||d	
      \  }}t        |      dddk(  sJ t        |      ddddk(  sJ t        j                  ||d
      \  }}t        |      dddk(  sJ t        |      ddddk(  sJ y )Nr5   r   r   r    皙?weightotherr	   rH   rT   rT   g?r   rI   rJ   rU   g333333?)r   r   r>   r   rK   rL   rM   s         r   test_bipartite_weighted_degreesz2TestBipartiteBasic.test_bipartite_weighted_degreesT   s    MM!	

1a3
/F  Ah71Awca.(((AwcaA....  Ag61Awca.(((AwcaA....r   c                    t        j                  d       t        j                  d      }|j	                  dddd       ddg}g d	}t        j                  ||d
      }|d   dk(  sJ t        j                  ||d      }|d   dk(  sJ y )Nscipyr5   r   r   r   r   rS   r	   rJ   rT   rV   )r   r   rU   r   importorskipr   r   r>   r   biadjacency_matrixr   r   r*   r+   Ms        r   test_biadjacency_matrix_weightz1TestBipartiteBasic.test_biadjacency_matrix_weight`   s    G$MM!	

1a
+F((Ah?w!||((Ag>w!||r   c                    t        j                  d       g d}g d}t        t        |            D ]  }t	        j
                  ||   ||   d      }|j                  d      D cg c]  \  }}|d   dk(  s| }}}t	        j                  ||      }|j                  d   ||   k(  sJ |j                  d	   ||   k(  rJ  y c c}}w )
NrY   )r   r5   r   )r5   r      rR   T)datar   r   r   )	r   r[   rangerA   r   r"   nodesr\   shape)	r   topsbotsir   nrO   topr^   s	            r   test_biadjacency_matrixz*TestBipartiteBasic.test_biadjacency_matrixk   s    G$s4y! 	)A&&tAwQ=A!"d!3KAq~7J1KCK,,Q4A771:a(((771:a(((	)Ks   'C8Cc                     t        j                  d       t        j                  d      }|j	                  ddd       ddg}g d}t        j                  |||d	      }|d
   dk(  sJ y )NrY   r5   r   r   r   rV   r	   )r   r   r   rT   )r   r   rZ   r]   s        r   test_biadjacency_matrix_orderz0TestBipartiteBasic.test_biadjacency_matrix_orderv   sd    G$MM!	

1a
"F((AqBw!||r   N)__name__
__module____qualname__r   r   r   r$   r,   r0   r3   r:   r?   rF   rP   rW   r_   rk   rm    r   r   r   r      sN    @
-
6)%>8-
/		)r   r   )r   networkxr   networkx.algorithmsr   r   rq   r   r   <module>rt      s      )v vr   