
    Vh                     ,    d dl Zd dlmZ  G d d      Zy)    N)pairwisec                   L    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y)TestVoronoiCellsz*Unit tests for the Voronoi cells function.c                     t        j                  d      }t        j                  |h d      }dhdhdhddhd}||k(  sJ y	)
zhTests that a graph with isolated nodes has all isolates in
        one block of the partition.

           >   r         r   r   r	         )r   r   r	   unreachableN)nxempty_graphvoronoi_cellsselfGcellsexpecteds       V/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/tests/test_voronoi.pytest_isolateszTestVoronoiCells.test_isolates   sJ    
 NN1  I.sssAq6B5       c                 ~    t        j                  d      }t        j                  |ddh      }h dh dd}||k(  sJ y )N   r   r   >   r   r
   r   >   r   r   r	   r   r   )r   cycle_graphr   r   s       r   test_undirected_unweightedz+TestVoronoiCells.test_undirected_unweighted   s>    NN1  QF+ Y/5   r   c                     t        j                  t        t        d      d            }t        j                  |ddh      }h dh dd}||k(  sJ y )	Nr   Tcyclicr   r   >   r   r
   r   >   r   r	   r   r   )r   DiGraphr   ranger   r   s       r   test_directed_unweightedz)TestVoronoiCells.test_directed_unweighted   sI    JJxa67  QF+ Y/5   r   c                     t        j                  t        t        d      d            }|j	                  d      }t        j
                  |ddh      }h dh d	d
}||k(  sJ y)zVTests that reversing the graph gives the "inward" Voronoi
        partition.

        r   Tr   F)copyr   r   >   r   r	   r      r
   r   r   r   N)r   r    r   r!   reverser   r   s       r   test_directed_inwardz%TestVoronoiCells.test_directed_inward   s[     JJxa67II5I!  QF+ Y/5   r   c                     g d}t        j                         }|j                  |       t        j                  |ddh      }dhh dd}||k(  sJ y )N)r   r
   
   r
   r   r
   r   r   r
   r   r   r%   r   )r   Graphadd_weighted_edges_fromr   r   edgesr   r   r   s        r   test_undirected_weightedz)TestVoronoiCells.test_undirected_weighted+   sP    2HHJ	!!%(  QF+sy)5   r   c                     g d}t        j                         }|j                  |       t        j                  |ddh      }dhh dd}||k(  sJ y )N)r)   r+   r,   r   r   r
   r   r
   r
   r   r   r%   r   )r   r    r.   r   r/   s        r   test_directed_weightedz'TestVoronoiCells.test_directed_weighted3   sP    HJJL	!!%(  QF+sy)5   r   c                     g d}t        j                  d|z        }t        j                  |      }t        j                  |ddh      }t        j                  |ddh      }||k(  sJ y)zcTests that the Voronoi cells for a multigraph are the same as
        for a simple graph.

        ))r   r
   )r
   r   )r   r   r   r   r   N)r   
MultiGraphr-   r   r   r0   r   HG_cellsH_cellss         r   test_multigraph_unweightedz+TestVoronoiCells.test_multigraph_unweighted;   sb    
 )MM!e)$HHQK""1q!f-""1q!f-'!!!r   c                 
   t        t        t        d      d            }t        j                  d|z        }t        j
                  |      }t        j                  |ddh      }t        j                  |ddh      }||k(  sJ y )Nr   Tr   r   r   r   )listr   r!   r   MultiDiGraphr    r   r8   s         r   test_multidigraph_unweightedz-TestVoronoiCells.test_multidigraph_unweightedG   sp    XeAht45OOAI&JJqM""1q!f-""1q!f-'!!!r   c                     g d}t        j                         }|j                  |       t        j                  |ddh      }dhh dd}||k(  sJ y )N)r)   r)   r+   )r
   r   d   r,   )r   r   rB   r   r   r%   r   )r   r7   r.   r   r/   s        r   test_multigraph_weightedz)TestVoronoiCells.test_multigraph_weightedP   sP    XMMO	!!%(  QF+sy)5   r   c                     g d}t        j                         }|j                  |       t        j                  |ddh      }dhh dd}||k(  sJ y )N)r)   r)   r+   r,   )r   r   r*   r3   )r   r
   r*   r4   r   r   r%   r   )r   r?   r.   r   r/   s        r   test_multidigraph_weightedz+TestVoronoiCells.test_multidigraph_weightedX   sU    	
 OO	!!%(  QF+sy)5   r   N)__name__
__module____qualname____doc__r   r   r"   r'   r1   r5   r<   r@   rC   rE    r   r   r   r      s7    4!!!
!!!
""!!r   r   )networkxr   networkx.utilsr   r   rJ   r   r   <module>rM      s     #b! b!r   