
    ިsg                     6    d Z ddlZddlZd Zd Zd Zd Zd Zy)z'Unit tests for the broadcasting module.    Nc                  &   g d} t        j                  |       }t        j                  |      \  }}|dk(  sJ |ddhk(  sJ t        j                  |d      dk(  sJ t        j                  |d      dk(  sJ t        j                  |      dk(  sJ y	)
zo
    Test the BROADCAST algorithm on the example in the paper titled: "Information Dissemination in Trees"
    ))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   r   r   N)nxGraphtree_broadcast_centertree_broadcast_time)	edge_listGb_Tb_Cs       ^/var/www/html/venv/lib/python3.12/site-packages/networkx/algorithms/tests/test_broadcasting.pytest_example_tree_broadcastr!      s    I, 	A''*HC!8O82q'>>!!!R(A---!!!Q'1,,,!!!$***    c            	         t        dd      D ]  } t        j                  |       }t        j                  |      \  }}|t	        j
                  | dz        k(  sJ |t	        j
                  | dz        t	        j                  | dz        t	        j
                  | dz  dz
        t	        j                  | dz  dz
        hk(  sJ t        j                  |      | dz
  k(  rJ  y )Nr   r   r   )ranger   
path_graphr   mathceilfloorr   ir   r   r   s       r    test_path_broadcastr+   -   s    1b\ 
2MM!++A.SdiiA&&&&IIa!eJJq1uIIa!eai JJq1uqy!	
 
 	
 
 %%a(AE111
2r"   c                      t        j                  d      } t        j                  |       \  }}|dk(  sJ |dhk(  sJ t        j                  |       dk(  sJ y )Nr   r   )r   empty_graphr   r   )Hr   r   s      r    test_empty_graph_broadcastr/   ;   sV    
qA''*HC!8O81#::!!!$)))r"   c                      t        dd      D ]n  } t        j                  |       }t        j                  |      \  }}|| k(  sJ |t	        |j                               k(  sJ t        j                  |      |k(  rnJ  y )Nr   r   )r$   r   
star_graphr   setnodesr   r)   s       r    test_star_broadcastr4   C   su    1b\ 0MM!++A.Saxxc!'')n$$$%%a(C///0r"   c                      t        dd      D ]e  } t        j                  |       }t        j                  |      \  }}|| k(  sJ |dd| dz
  z  hk(  sJ t        j                  |      d| z  dz
  k(  reJ  y )Nr   r   r   r   )r$   r   binomial_treer   r   r)   s       r    test_binomial_tree_broadcastr7   L   s    1a[ 6Q++A.Saxxq!A,''''%%a(AEAI5556r"   )	__doc__r&   networkxr   r!   r+   r/   r4   r7    r"   r    <module>r;      s(    -  "+J2*06r"   