o
    ˷e<                     @   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   ]/var/www/ideatree/venv/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   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+   rC   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rR   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   rR   rS   r   r   r   r8   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   rR   rS   r9   r   r   r:   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   rS   rA   rR   gUUUUUU?)r   rB   r2   r*   r3   rK   testingassert_allcloser
   r   r   r   rC      s
   z5TestDirectedWeightedClustering.test_triangle_and_edgeN)	r,   r-   r.   classmethodrN   r4   r   r+   rC   r   r   r   r   rD   p   s    
rD   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   rE   rF   rH   rL   r   r   r   rN      rO   z"TestWeightedClustering.setup_classc                 C   rP   rQ   r   r   r   r3   r	   r
   r   r   r   r4      rT   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   rR   rS   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 )NrR   rS   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   rR   rS   r9   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   rS   UUUUUU?rR   rA   )r   rB   r*   r3   rK   rU   rV   r
   r   r   r   rC     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   rS   r]   rR   UUUUUUտ)r   rB   r*   r3   r
   r   r   r   test_triangle_and_signed_edge  s
   
z4TestWeightedClustering.test_triangle_and_signed_edgeN)r,   r-   r.   rW   rN   r4   r   r%   r+   rC   r`   r   r   r   r   rX      s    
rX   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 rF   rI   rJ   rL   r   r   r   rN        zTestClustering.setup_classc                 C   r0   r   rY   r
   r   r   r   r4     r5   zTestClustering.test_clusteringc                 C   r   r   rZ   r
   r   r   r   r        
zTestClustering.test_pathc                 C   r    r!   r[   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   r9   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   r9   r   r   r   r^   rS   rR   )rA   r_   r         ?rf   )r   r'   r   r3   r	   r@   r)   r*   r
   r   r   r   test_k5_signedK  s   
&zTestClustering.test_k5_signedN)
r,   r-   r.   rW   rN   r4   r   r%   r+   rg   r   r   r   r   ra     s    
ra   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   rk   r
   r   r   r   r   _  s   
zTestTransitivity.test_pathc                 C   ri   rj   )r   r$   rk   r
   r   r   r   r%   c  rm   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'   rk   r)   r
   r   r   r   r+   g  s   
zTestTransitivity.test_k5N)r,   r-   r.   rl   r   r%   r+   r   r   r   r   rh   Z  s
    rh   c                   @   sD   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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   ro   r	   r
   r   r   r   r   t  re   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   ro   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   r9   )r   r'   r   ro   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   complete_bipartite_graphr   ro   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   rx   ry   rz   r{   )r   r   r   r   r   r   rv   rw   r   gwqGܱ?r]   g?N)r   r   subgraphro   )r   r   G1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#   rr   rs   rt   ru   )r   r   r   r]   N)r   r   ro   r
   r   r   r   test_peng_square_clustering  s   z0TestSquareClustering.test_peng_square_clusteringN)
r,   r-   r.   r4   r   r%   r+   rq   r   r   r   r   r   r   rn   n  s    rn   c                   @   s0   e Zd Zedd Zdd Zdd Zdd Zd	S )
TestAverageClusteringc                 C   rb   rF   rc   rL   r   r   r   rN     rd   z!TestAverageClustering.setup_classc                 C   B   t  }tt t | W d    d S 1 sw   Y  d S r   )r   r   rI   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   rB   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^   rS   rR   gT)rR   r   Fg98r   r
   r   r   r   test_average_clustering_signed  s   
z4TestAverageClustering.test_average_clustering_signedN)r,   r-   r.   rW   rN   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   rb   rF   rc   rL   r   r   r   rN     rd   z)TestDirectedAverageClustering.setup_classc                 C   r   r   )r   r2   rI   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   rB   r2   r*   r@   r
   r   r   r   r     s    z5TestDirectedAverageClustering.test_average_clusteringN)r,   r-   r.   rW   rN   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  rm   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
   r   r   r   r+     s   
(zTestGeneralizedDegree.test_k5N)r,   r-   r.   r   r   r%   r+   r   r   r   r   r     s
    r   )rI   networkxr   r   r/   rD   rX   ra   rh   rn   r   r   r   r   r   r   r   <module>   s    *@IWJ_#