
    ިsg                     X    d dl mZ d dlZd dlZd dlmZmZ  G d d      Z G d d      Z	y)    )BytesION)edges_equalnodes_equalc                   $    e Zd Zd Zd Zd Zd Zy)TestSparseGraph6c                     d}t        j                  |      }t        t        |j	                               g d      sJ t        |j                         g d      sJ y )N   :Q___eDcdFcDeFcE`GaJ`IaHbKNbLM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   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )nxfrom_sparse6_bytesr   sortednodesr   edges)selfdataGs      X/var/www/html/venv/lib/python3.12/site-packages/networkx/readwrite/tests/test_sparse6.pytest_from_sparse6_bytesz(TestSparseGraph6.test_from_sparse6_bytes
   s\    0!!$'1779J
 	
 
 GGI
 	
 
    c                     d}t        j                  |      }t        |      t         j                  k(  sJ d}t        j                  |      }t        |      t         j                  k(  sJ y )Ns   :Ans   :Ab)r   r   typeGraph
MultiGraph)r!   
graph_datar#   multigraph_dataMs        r$    test_from_bytes_multigraph_graphz1TestSparseGraph6.test_from_bytes_multigraph_graph2   sX    
!!*-Aw"((""" !!/2Aw"--'''r&   c                    d}t        j                  |      }t        |      }t        j                  |      }t	        |j                         |j                               sJ t        |j                         |j                               sJ y )Nr	   )r   r   r   read_sparse6r   r   r   r    )r!   r"   r#   fhGins        r$   test_read_sparse6z"TestSparseGraph6.test_read_sparse6:   sf    0!!$'T]oob!1779ciik2221779ciik222r&   c                     d}t        |      }t        j                  |      }t        |      dk(  sJ |D ]   }t	        |j                         g d      r J  y )Ns>   :Q___eDcdFcDeFcE`GaJ`IaHbKNbLM
:Q___dCfDEdcEgcbEGbFIaJ`JaHN`IMr   r
   )r   r   r0   lenr   r   )r!   r"   r1   glistr#   s        r$   test_read_many_graph6z&TestSparseGraph6.test_read_many_graph6B   s[    UT]#5zQ 	A	N  	r&   N)__name__
__module____qualname__r%   r.   r3   r7    r&   r$   r   r   	   s    &
P(3
r&   r   c                   X    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d Zy)TestWriteSparse6zUnit tests for writing graphs in the sparse6 format.

    Most of the test cases were checked against the sparse6 encoder in Sage.

    c                     t        j                         }t               }t        j                  ||       |j	                         dk(  sJ y )N   >>sparse6<<:?
)r   
null_graphr   write_sparse6getvaluer!   r#   results      r$   test_null_graphz TestWriteSparse6.test_null_graphV   s:    MMO
F# $6666r&   c                     t        j                         }t               }t        j                  ||       |j	                         dk(  sJ y )Ns   >>sparse6<<:@
)r   trivial_graphr   rA   rB   rC   s      r$   test_trivial_graphz#TestWriteSparse6.test_trivial_graph\   s=    
F# $6666r&   c                     t        j                  d      }t               }t        j                  ||       |j	                         dk(  sJ y )Nr   s   >>sparse6<<:D
r   empty_graphr   rA   rB   rC   s      r$   test_empty_graphz!TestWriteSparse6.test_empty_graphb   s=    NN1
F# $6666r&   c                     t        j                  d      }t               }t        j                  ||       |j	                         dk(  sJ y )ND   s   >>sparse6<<:~?@C
rJ   rC   s      r$   test_large_empty_graphz'TestWriteSparse6.test_large_empty_graphh   s=    NN2
F# $9999r&   c                     t        j                  d      }t               }t        j                  ||       |j	                         dk(  sJ y )Ni s   >>sparse6<<:~~???~?@
rJ   rC   s      r$   test_very_large_empty_graphz,TestWriteSparse6.test_very_large_empty_graphn   s=    NN6"
F# $====r&   c                     t        j                  d      }t               }t        j                  ||       |j	                         dk(  sJ y )Nr   s   >>sparse6<<:CcKI
r   complete_graphr   rA   rB   rC   s      r$   test_complete_graphz$TestWriteSparse6.test_complete_grapht   s?    a 
F# $9999r&   c                     t        j                  d      }t               }t        j                  ||d       |j	                         dk(  sJ y )Nr   Fheaders   :CcKI
rS   rC   s      r$   test_no_headerzTestWriteSparse6.test_no_headerz   s@    a 
F51 J...r&   c                     d}t        |d      D ]T  \  }}t        j                  |      }t               }t        j                  ||d       |j                         |dz   k(  rTJ  y )N)s   :Cdvs   :DaYns   :EaYnNs   :FaYnLs   :GaYnLzr   )startFrW      
)	enumerater   
path_graphr   rA   rB   )r!   codesncoder#   rD   s         r$   test_paddingzTestWriteSparse6.test_padding   sa    E a0 	5GAta AYFQu5??$u444		5r&   c                     t        j                  dd      }t               }t        j                  ||       d}|j	                         |k(  sJ y )Nr   r   s<   >>sparse6<<:Nk?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ?G`cJ
)r   complete_bipartite_graphr   rA   rB   )r!   r#   rD   expecteds       r$   test_complete_bipartitez(TestWriteSparse6.test_complete_bipartite   sE    ''1-
F#; H,,,r&   c                    t        t        d            g dz   D ]  }t        d|z  ||z  dz        }t        j                  j                  |||      }t               }t        j                  ||d       |j                         j                         }t        j                  |      }|j                         |j                         k(  sJ t        |j                         |j                               rJ  y )Nr   )   /   >   ?   @   H   r   )seedFrW   )listrangeminr   random_graphsgnm_random_graphr   rA   rB   rstripr   orderr   r    )r!   imggstrg2s         r$   test_read_write_inversez(TestWriteSparse6.test_read_write_inverse   s    eBi#;; 		6AAE1q5A:&A  11!QQ1?A9DQU3==?))+D&&t,B88:***rxxz1779555		6r&   c                     t        j                  t        j                        5  t        j                  t        j
                         t                      d d d        y # 1 sw Y   y xY w)N)pytestraisesr   NetworkXNotImplementedrA   DiGraphr   )r!   s    r$   test_no_directed_graphsz(TestWriteSparse6.test_no_directed_graphs   sA    ]]2445 	6RZZ\795	6 	6 	6s   1AA'c                     t        |dz        }t        j                  t        j                         |       t	        |d      5 }|j                         dk(  sJ 	 d d d        y # 1 sw Y   y xY w)Nztest.s6rb)moder?   )strr   rA   r@   openread)r!   tmp_pathfullfilenamer1   s       r$   test_write_pathz TestWriteSparse6.test_write_path   s]    8i/0
,7,T* 	3b779 2222	3 	3 	3s   A$$A-N)r8   r9   r:   __doc__rE   rH   rL   rO   rQ   rU   rY   rb   rf   r{   r   r   r;   r&   r$   r=   r=   O   sC    777:>:/5-
663r&   r=   )
ior   r}   networkxr   networkx.utilsr   r   r   r=   r;   r&   r$   <module>r      s*       3C CLW3 W3r&   