o
    ]Zh>                     @   s   d dl Z d dlZG dd dZG dd dZG dd dZG dd	 d	ZG d
d dZG dd dZG dd dZ	G dd dZ
G dd dZG dd dZdS )    Nc                   @   ,   e Zd Zdd Zdd Zdd Zdd Zd	S )
TestTrianglesc                 C   s&   t  }tt | g ksJ d S N)nxGraphlist	trianglesvaluesselfG r   U/var/www/auris/lib/python3.10/site-packages/networkx/algorithms/tests/test_cluster.py
test_empty   s   zTestTriangles.test_emptyc                 C   T   t d}tt | g dksJ t |ddddddddddd
ks(J d S N
   
r   r   r   r   r   r   r   r   r   r   r   
r                           	   )r   
path_graphr   r   r	   r
   r   r   r   	test_path   s   
zTestTriangles.test_pathc                 C      t  }tt | g dksJ t |ddksJ tt |ddg ddgks/J t |ddks9J t |ddgdddksHJ d S Nr   r   r   r   r   r   r   r   r   r   r   r   r   )r   cubical_graphr   r   r	   r
   r   r   r   test_cubical      $"zTestTriangles.test_cubicalc                 C   s   t d}tt | g dksJ tt | d dks#J t |ddks-J |dd tt | g dksBJ t |ddksLJ |dd tt | g dksaJ t |ddkskJ d S )	Nr   )r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   )r   complete_graphr   r   r	   sumremove_edgeadd_edger
   r   r   r   test_k5#   s   
zTestTriangles.test_k5N)__name__
__module____qualname__r   r   r%   r+   r   r   r   r   r      s
    r   c                   @   r   )
TestDirectedClusteringc                 C   8   t  }tt | g ksJ t |i ksJ d S r   r   DiGraphr   
clusteringr	   r
   r   r   r   test_clustering1      z&TestDirectedClustering.test_clusteringc                 C   sp   t jdt  d}tt | g dksJ t |ddddddddddd
ks,J t |ddks6J d S )Nr   Zcreate_usingr   r   r   r   r   r2   r   r3   r	   r
   r   r   r   r   6   s   z TestDirectedClustering.test_pathc                 C   s   t jdt  d}tt | g dksJ t |dks!J |dd tt | g dks6J t |ddgddd	ksEJ |dd tt | g d
ksZJ t |ddgddd	ksiJ t |ddkssJ d S )Nr   r6   r   r   r   r   r   r   r   UUUUUU?r   r   r:   r:   r   r:   r   r   竪?r   r   r=   r=   r=   r   r'   r2   r   r3   r	   average_clusteringr)   r
   r   r   r   r+   R   s   zTestDirectedClustering.test_k5c                 C   s8   t jdt  d}|dd t |d dksJ d S )Nr   r6   r   r   UUUUUU?)r   cycle_graphr2   r*   r3   r
   r   r   r   test_triangle_and_edgej   s   z-TestDirectedClustering.test_triangle_and_edgeN)r,   r-   r.   r4   r   r+   rB   r   r   r   r   r/   0   s
    r/   c                   @   s8   e Zd Zedd Zdd Zdd Zdd Zd	d
 ZdS )TestDirectedWeightedClusteringc                 C      t dad S Nnumpypytestimportorskipnpclsr   r   r   setup_classq      z*TestDirectedWeightedClustering.setup_classc                 C   <   t  }tt j|dd g ksJ t |i ksJ d S NweightrQ   r1   r
   r   r   r   r4   v      z.TestDirectedWeightedClustering.test_clusteringc                 C   sd   t jdt  d}tt j|dd g dksJ t j|ddddddddddddd
ks0J d S )Nr   r6   rQ   rR   r   r   r   r7   r
   r   r   r   r   {   s   "z(TestDirectedWeightedClustering.test_pathc                 C   s   t jdt  d}tt j|dd g dksJ t j|dddks%J |dd tt j|dd g dks<J t j|dd	gdddd
dksMJ |dd tt j|dd g dksdJ t j|dd	gdddddksuJ d S )Nr   r6   rQ   rR   r8   r   r   r9   r   r:   r;   r<   r=   r>   r
   r   r   r   r+      s   """"z&TestDirectedWeightedClustering.test_k5c                 C   sr   t jdt  d}|jdddd t |d dksJ tjt j|ddd d	 tjt j|dddd	 d S )
Nr   r6   r   r   r   rR   r@   rQ   gUUUUUU?)r   rA   r2   r*   r3   rJ   testingassert_allcloser
   r   r   r   rB      s
   z5TestDirectedWeightedClustering.test_triangle_and_edgeN)	r,   r-   r.   classmethodrM   r4   r   r+   rB   r   r   r   r   rC   p   s    
rC   c                   @   sH   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dd Z
dS )TestWeightedClusteringc                 C   rD   rE   rG   rK   r   r   r   rM      rN   z"TestWeightedClustering.setup_classc                 C   rO   rP   r   r   r   r3   r	   r
   r   r   r   r4      rS   z&TestWeightedClustering.test_clusteringc                 C   s\   t d}tt j|dd g dksJ t j|ddddddddddddd
ks,J d S )Nr   rQ   rR   r   r   r   r   r   r   r3   r	   r
   r   r   r   r      s   
"z TestWeightedClustering.test_pathc                 C   s   t  }tt j|dd g dksJ t |ddksJ tt j|ddgdd ddgks3J t j|ddddks?J t j|ddgdddddksPJ d S )NrQ   rR   r"   r   r   r   r#   r   r$   r   r3   r	   r
   r   r   r   r%      s   "
(&z#TestWeightedClustering.test_cubicalc                 C   s   t d}tt j|dd g dksJ t j|dddks!J |dd tt j|dd g dks8J t j|ddgdddd	d
ksIJ d S )Nr   rQ   rR   r8   r   r   r<   r   r=   r;   r   r'   r   r3   r	   r?   r)   r
   r   r   r   r+      s   
""zTestWeightedClustering.test_k5c                 C   sj   t d}|jdddd t |d dksJ tjt j|ddd d tjt j|dddd d S )	Nr   r   r   r   rR   UUUUUU?rQ   r@   )r   rA   r*   r3   rJ   rT   rU   r
   r   r   r   rB     s
   
z-TestWeightedClustering.test_triangle_and_edgec                 C   s^   t d}|jdddd |jdddd t |d dks J t j|ddd dks-J d S )	Nr   r   r   rR   r\   rQ   UUUUUUտ)r   rA   r*   r3   r
   r   r   r   test_triangle_and_signed_edge  s
   
z4TestWeightedClustering.test_triangle_and_signed_edgeN)r,   r-   r.   rV   rM   r4   r   r%   r+   rB   r_   r   r   r   r   rW      s    
rW   c                   @   s@   e Zd Zedd Zdd Zdd Zdd Zd	d
 Zdd Z	dS )TestClusteringc                 C      t d d S rE   rH   rI   rK   r   r   r   rM        zTestClustering.setup_classc                 C   r0   r   rX   r
   r   r   r   r4     r5   zTestClustering.test_clusteringc                 C   r   r   rY   r
   r   r   r   r        
zTestClustering.test_pathc                 C   r    r!   rZ   r
   r   r   r   r%   5  r&   zTestClustering.test_cubicalc                 C   s   t d}tt | g dksJ t |dksJ |dd tt | g dks2J t |ddgdddksAJ d S )	Nr   r8   r   r   r<   r   r=   r;   r[   r
   r   r   r   r+   =  s   
"zTestClustering.test_k5c                 C   s|   t d}tt | g dksJ t |dksJ |dd |jdddd tt j|dd g d	ks<J d S )
Nr   r8   r   r   r   r]   rR   rQ   )r@   r^   r         ?re   )r   r'   r   r3   r	   r?   r)   r*   r
   r   r   r   test_k5_signedK  s   
&zTestClustering.test_k5_signedN)
r,   r-   r.   rV   rM   r4   r   r%   r+   rf   r   r   r   r   r`     s    
r`   c                   @   r   )
TestTransitivityc                 C      t  }t |dksJ d S Nr   )r   r   transitivityr
   r   r   r   test_transitivity[     z"TestTransitivity.test_transitivityc                 C   s    t d}t |dksJ d S )Nr   r   )r   r   rj   r
   r   r   r   r   _  s   
zTestTransitivity.test_pathc                 C   rh   ri   )r   r$   rj   r
   r   r   r   r%   c  rl   zTestTransitivity.test_cubicalc                 C   s>   t d}t |dksJ |dd t |dksJ d S )Nr   r   r   g      ?)r   r'   rj   r)   r
   r   r   r   r+   g  s   
zTestTransitivity.test_k5N)r,   r-   r.   rk   r   r%   r+   r   r   r   r   rg   Z  s
    rg   c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )TestSquareClusteringc                 C   r0   r   )r   r   r   square_clusteringr	   r
   r   r   r   r4   o  r5   z$TestSquareClustering.test_clusteringc                 C   r   r   )r   r   r   rn   r	   r
   r   r   r   r   t  rd   zTestSquareClustering.test_pathc                 C   s   t  }tt | g dksJ tt |ddg ddgks%J t |dgd dks2J t |ddks<J t |ddgdddksKJ d S )N)r\   r\   r\   r\   r\   r\   r\   r\   r   r   r\   r#   )r   r$   r   rn   r	   r
   r   r   r   r%     s   $
"z!TestSquareClustering.test_cubicalc                 C   s,   t d}tt | g dksJ d S )Nr   r8   )r   r'   r   rn   r	   r
   r   r   r   r+     s   
"zTestSquareClustering.test_k5c                 C   s.   t dd}tt | g dksJ d S )Nr   )
r   r   r   r   r   r   r   r   r   r   )r   Zcomplete_bipartite_graphr   rn   r	   r
   r   r   r   test_bipartite_k5  s   "z&TestSquareClustering.test_bipartite_k5c                 C   s|   t g d}|g d}|g d}t |dgd dks"J t |dgd dks/J t |dgd dks<J dS )	z&Test C4 for figure 1 Lind et al (2005))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      )r      )r      )r      )r      )	r   r   r   r   r   rv   rw   rx   ry   )r   r   r   r   r   r   rt   ru   r   gwqGܱ?r\   皙?N)r   r   Zsubgraphrn   )r   r   ZG1ZG2r   r   r   test_lind_square_clustering  s   z0TestSquareClustering.test_lind_square_clusteringc                 C   s,   t g d}t |dgd dksJ dS )z'Test eq2 for figure 1 Peng et al (2008))r#   rp   rq   rr   rs   )r   r   r   r\   N)r   r   rn   r
   r   r   r   test_peng_square_clustering  s   z0TestSquareClustering.test_peng_square_clusteringc                 C   sX   t d}t |ddddddksJ |g d t |ddddddks*J d S )	Nr   r   g        r   r   r   r   r   ))r   r   )r   r   )r   r   r   re   rz   )r   r   rn   Zadd_edges_fromr
   r   r   r   !test_self_loops_square_clustering  s   
"z6TestSquareClustering.test_self_loops_square_clusteringN)r,   r-   r.   r4   r   r%   r+   ro   r{   r|   r~   r   r   r   r   rm   n  s    rm   c                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestAverageClusteringc                 C   ra   rE   rb   rK   r   r   r   rM     rc   z!TestAverageClustering.setup_classc                 C   B   t  }tt t | W d    d S 1 sw   Y  d S r   )r   r   rH   raisesZeroDivisionErrorr?   r
   r   r   r   r        "z TestAverageClustering.test_emptyc                 C   s   t d}|dd t |dksJ t j|dddksJ t j|dddks*J t |g dd	ks6J t j|g dddd	ksDJ t j|g dddd
ksRJ d S )Nr   r   g?Tcount_zerosFg98?r   r   r   gqq?gUUUUUU?r   rA   r*   r?   r
   r   r   r   test_average_clustering  s   
 z-TestAverageClustering.test_average_clusteringc                 C   sp   t d}|dd |jdddd t j|dddksJ t j|dd	d
dks*J t j|ddd
dks6J d S )Nr   r   r   r   r]   rR   rQ   gT)rQ   r   Fg98r   r
   r   r   r   test_average_clustering_signed  s   
z4TestAverageClustering.test_average_clustering_signedN)r,   r-   r.   rV   rM   r   r   r   r   r   r   r   r     s    

r   c                   @   s(   e Zd Zedd Zdd Zdd ZdS )TestDirectedAverageClusteringc                 C   ra   rE   rb   rK   r   r   r   rM     rc   z)TestDirectedAverageClustering.setup_classc                 C   r   r   )r   r2   rH   r   r   r?   r
   r   r   r   r     r   z(TestDirectedAverageClustering.test_emptyc                 C   s   t jdt  d}|dd t |dksJ t j|dddks#J t j|dddks.J t |g d	d
ks:J t j|g d	ddd
ksHJ t j|g d	dddksVJ d S )Nr   r6   r   g?Tr   Fg98?r   gqq?r\   )r   rA   r2   r*   r?   r
   r   r   r   r      s    z5TestDirectedAverageClustering.test_average_clusteringN)r,   r-   r.   rV   rM   r   r   r   r   r   r   r     s
    
r   c                   @   r   )
TestGeneralizedDegreec                 C   s   t  }t |i ksJ d S r   )r   r   generalized_degreer
   r   r   r   test_generalized_degree  rl   z-TestGeneralizedDegree.test_generalized_degreec                 C   s>   t d}t |dddiksJ t |dddiksJ d S )Nr   r   r   r   )r   r   r   r
   r   r   r   r     s   
zTestGeneralizedDegree.test_pathc                 C   s$   t  }t |dddiksJ d S )Nr   r   )r   r$   r   r
   r   r   r   r%     s   z"TestGeneralizedDegree.test_cubicalc                 C   s   t d}t |dddiksJ |dd t |dddiks#J t |ddgddiddddks7J t |ddiddidddddddddd	ksSJ d S )
Nr   r   r   r   r   r   )r   r   r#   r}   )r   r'   r   r)   r
   r   r   r   r+     s   
(zTestGeneralizedDegree.test_k5N)r,   r-   r.   r   r   r%   r+   r   r   r   r   r     s
    r   )rH   Znetworkxr   r   r/   rC   rW   r`   rg   rm   r   r   r   r   r   r   r   <module>   s    *@IWJe#