
    Vh                         d dl Z d dlZd dlmZ d dlmZ  e j                  d      Z e j                  d      Z	 G d d      Z
y)    N)	bipartite)edges_equalnumpyscipyc                   T    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y)TestBiadjacencyMatrixc                     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   r            )weightother   r   r   r   r   r   )r   r   r   nx
path_graphadd_edger   biadjacency_matrixselfGXYMs        _/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/bipartite/tests/test_matrix.pytest_biadjacency_matrix_weightz4TestBiadjacencyMatrix.test_biadjacency_matrix_weight   sz    MM!	

1a
+F((Ah?w!||((Ag>w!||    c                 n   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 )	N)r   r
   
   )r
   r"      g?Tdatar   r   r   )rangelenr   random_graphnodesr   shape)	r   topsbotsir   ndtopr   s	            r   test_biadjacency_matrixz-TestBiadjacencyMatrix.test_biadjacency_matrix   s    s4y! 	)A&&tAwQ=A!"d!3KAq~7J1KCK,,Q4A771:a(((771:a(((	)Ks   B1#B1c                     t        j                  d      }|j                  ddd       ddg}g d}t        j                  |||d      }|d	   dk(  sJ y )
Nr
   r   r   r   r   r   )r   r   r   r   )r   r   r   r   s        r   test_biadjacency_matrix_orderz3TestBiadjacencyMatrix.test_biadjacency_matrix_order    sV    MM!	

1a
"F((AqBw!||r    c                     t        j                  d      }t         j                  j                  |dg      }t        j                  |j                         t        j                  dgg            sJ y )Nr   r   )r   empty_graphr   r   nparray_equaltoarrayarray)r   r   r   s      r   #test_biadjacency_matrix_empty_graphz9TestBiadjacencyMatrix.test_biadjacency_matrix_empty_graph(   sN    NN1LL++As3~~aiik288aSE?;;;r    c                     t        j                  t        j                        5  t	        j
                  t        j                         g        d d d        y # 1 sw Y   y xY w)Npytestraisesr   NetworkXErrorr   r   Graphr   s    r   test_null_graphz%TestBiadjacencyMatrix.test_null_graph-   s?    ]]2++, 	9((R8	9 	9 	9s   )AAc                     t        j                  t        j                        5  t	        j
                  t        j                  dg      g        d d d        y # 1 sw Y   y xY w)Nr   r   r<   rA   s    r   test_empty_graphz&TestBiadjacencyMatrix.test_empty_graph1   sH    ]]2++, 	A((6();R@	A 	A 	As   +AA!c                     t        j                  t        j                        5  t	        j
                  t        j                  dg      ddg       d d d        y # 1 sw Y   y xY w)NrD   r   r<   rA   s    r   test_duplicate_rowz(TestBiadjacencyMatrix.test_duplicate_row5   sL    ]]2++, 	E((6();aVD	E 	E 	Es   -AA#c                     t        j                  t        j                        5  t	        j
                  t        j                  dg      dgddg       d d d        y # 1 sw Y   y xY w)NrD   r   r   r<   rA   s    r   test_duplicate_colz(TestBiadjacencyMatrix.test_duplicate_col9   sP    ]]2++, 	J((6();aS1a&I	J 	J 	Js   /AA%c                     t        j                  t        j                        5  t	        j
                  t        j                  dg      dgd       d d d        y # 1 sw Y   y xY w)NrD   r   foo)formatr<   rA   s    r   test_format_keywordz)TestBiadjacencyMatrix.test_format_keyword=   sL    ]]2++, 	P((6();aSO	P 	P 	Ps   .AA$c                     t        j                  d      }t        j                  |g d      }t        j                  |      }t        j
                  ||      sJ y )Nr
   r   )r   r   r   r   from_biadjacency_matrixis_isomorphic)r   B1r   B2s       r   test_from_biadjacency_roundtripz5TestBiadjacencyMatrix.test_from_biadjacency_roundtripA   sH    ]]1((Y7..q1B'''r    c                 F   t         j                  j                  ddgddgg      }t        j                  |      }t        |j                         g d      sJ t        j                  |d      }ddddifddddifddddifg}t        |j                  d	      |      sJ y )
Nr   r   r   r   )r   r   r   r   r   r   r   )edge_attributeTr$   )spsparse	csc_arrayr   rO   r   edges)r   r   Bes       r   test_from_biadjacency_weightz2TestBiadjacencyMatrix.test_from_biadjacency_weightG   s    II!Q!Q 01--a01779&>???--aIXqM"QHa=$9Aq8Q-;PQ1777-q111r    c                     t         j                  j                  ddgddgg      }t        j                  |t        j                               }t        |j                         g d      sJ y )Nr   r   r   r   )create_using)rU   rV   rV   rW   rW   rW   )	rY   rZ   r[   r   rO   r   
MultiGraphr   r\   )r   r   r]   s      r    test_from_biadjacency_multigraphz6TestBiadjacencyMatrix.test_from_biadjacency_multigraphO   sR    II!Q!Q 01--abmmoN1779&VWWWr    N)__name__
__module____qualname__r   r1   r3   r:   rB   rE   rG   rI   rM   rS   r_   rc    r    r   r   r      sC    )<
9AEJP(2Xr    r   )r=   networkxr   networkx.algorithmsr   networkx.utilsr   importorskipr6   rY   r   rg   r    r   <module>rl      sC      ) &V!V!GX GXr    