
    h                     4    d Z ddlZddlmZmZ  G d d      Zy)z
Pajek tests
    N)edges_equalnodes_equalc                   L    e Zd Zed        Zd Zd Zd Zd Zd Z	d Z
d Zd	 Zy
)	TestPajekc                     d| _         t        j                         | _        | j                  j	                  g d       | j                  j                  g d       d| j                  j                  d<   y )Na`  *network Tralala
*vertices 4
   1 "A1"         0.0938 0.0896   ellipse x_fact 1 y_fact 1
   2 "Bb"         0.8188 0.2458   ellipse x_fact 1 y_fact 1
   3 "C"          0.3688 0.7792   ellipse x_fact 1
   4 "D2"         0.9583 0.8563   ellipse x_fact 1
*arcs
1 1 1  h2 0 w 3 c Blue s 3 a1 -130 k1 0.6 a2 -130 k2 0.6 ap 0.5 l "Bezier loop" lc BlueViolet fos 20 lr 58 lp 0.3 la 360
2 1 1  h2 0 a1 120 k1 1.3 a2 -120 k2 0.3 ap 25 l "Bezier arc" lphi 270 la 180 lr 19 lp 0.5
1 2 1  h2 0 a1 40 k1 2.8 a2 30 k2 0.8 ap 25 l "Bezier arc" lphi 90 la 0 lp 0.65
4 2 -1  h2 0 w 1 k1 -2 k2 250 ap 25 l "Circular arc" c Red lc OrangeRed
3 4 1  p Dashed h2 0 w 2 c OliveGreen ap 25 l "Straight arc" lc PineGreen
1 3 1  p Dashed h2 0 w 5 k1 -1 k2 -20 ap 25 l "Oval arc" c Brown lc Black
3 3 -1  h1 6 w 1 h2 12 k1 -2 k2 -15 ap 0.5 l "Circular loop" c Red lc OrangeRed lphi 270 la 180A1BbCD2)r	   r	   )r	   r
   )r	   r   )r
   r	   )r   r   )r   r   )r   r
   Tralalaname)datanxMultiDiGraphGadd_nodes_fromadd_edges_fromgraph)clss    `/var/www/django_project/virt/lib/python3.12/site-packages/networkx/readwrite/tests/test_pajek.pysetup_classzTestPajek.setup_class
   sX     G!45
	
 (F    c                     d}t        j                  |      }t        |j                               ddgk(  sJ t	        |j                         ddg      sJ y )Nz&*Vertices 2
1 "1"
2 "2"
*Edges
1 2
2 112)r   r   )r   parse_pajeksortednodesr   edgesselfr   r   s      r   test_parse_pajek_simplez!TestPajek.test_parse_pajek_simple   sM    @NN4 aggi S#J...1779z:&>???r   c                     t        j                  | j                        }t        |j	                               g dk(  sJ t        |j                         g d      sJ y )Nr   r   )r   r   r   r   r    r   r!   )r#   r   s     r   test_parse_pajekzTestPajek.test_parse_pajek$   sN    NN499%aggi $;;;;GGI
 	
 
r   c                     d}t        j                  |      }t        |j                               h dk(  sJ |j                  d   ddik(  sJ t	        t        |j                               h d      sJ y )Nz@*Vertices 3
1 "one"
2 "two"
3 "three"
*Matrix
1 1 0
0 1 0
0 1 0
>   onetwothreer)   idr   >   r(   r(   r)   r)   r)   r(   r)   r*   )r   r   setr    r   r!   r"   s      r   test_parse_pajet_matzTestPajek.test_parse_pajet_mat4   sj    ]NN4 1779~!8888wwu~$,,,	NN
 	
 
r   c                 d   t        j                  | j                        }|dz  }t        |d      5 }|j	                  | j                  j                  d             d d d        t        j                  |      }t        |j                               t        |j                               k(  sJ t        |j                         |j                               sJ | j                  j                  |j                  k(  sJ |D ]#  }|j                  |   |j                  |   k(  r#J  y # 1 sw Y   xY w)Nztest.pjkwbzUTF-8)r   r   r   openwriteencode
read_pajekr   r    r   r!   r   r   )r#   tmp_pathr   fnamefhGinns          r   test_read_pajekzTestPajek.test_read_pajek>   s    NN499%:%% 	0"HHTYY%%g./	0 mmE"aggi F399;$77771779ciik222vv||syy((( 	.A771:1---	.	0 	0s   +D&&D/c                    dd l }t        j                  | j                        }|j	                         }t        j
                  ||       |j                  d       t        j                  |      }t        t        |      t        |            sJ t        t        |j                               t        |j                                     sJ y )Nr   )ior   r   r   BytesIOwrite_pajekseekr7   r   listr   r!   )r#   r?   r   r:   Hs        r   test_write_pajekzTestPajek.test_write_pajekL   s    NN499%ZZ\
q"

MM"47DG,,,4	?DO<<<r   c                    dd l }t        j                         }|j                         }|j	                  dd       |j	                  dd       |j                  ddd       |j                  ddd       dd l}|j                  d	      5 }t        j                  ||       t        |      d
k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr      )int_attr   z  )
empty_attr   T)record   )
r?   r   Graphr@   add_nodeadd_edgewarningscatch_warningsrA   len)r#   r?   r   r:   rQ   ws         r   test_ignored_attributez TestPajek.test_ignored_attributeY   s    HHJZZ\	

1q
!	

1
&	

1a!
$	

1aD
)$$D$1 	QNN1b!q6Q;;	 	 	s   'B>>Cc                     d}| j                   j                  d      dd  }|dj                  |      z   }t        j                  |      }y )Nz	*network

rG   )r   splitjoinr   r   )r#   lineother_linesr   r   s        r   test_nonamezTestPajek.test_nonamei   sC     iiood+AB/dii,,NN4 r   c                 n   dd l }t        j                         }t        d      t        d      z   t        d      z   }t        d      t        d      z   t        d      z   }|j	                  |d|	       |j                         }t        j                  ||       |j                  d       t        j                  |      }t        t        |      t        |            sJ t        t        |j                               t        |j                                     sJ |j                  |j                  k(  sJ y )
Nr   i(	  {   i  i  i  iD  	Radiohead)foo)r?   r   rN   chrrP   r@   rA   rB   r7   r   rC   r   r!   r   )r#   r?   r   name1name2r:   rD   s          r   test_unicodezTestPajek.test_unicodeq   s    HHJD	CH$s4y0D	CI%C0	

5+5
1ZZ\
q"

MM"47DG,,,4	?DO<<<ww!''!!!r   N)__name__
__module____qualname__classmethodr   r$   r&   r1   r=   rE   rU   r\   rd    r   r   r   r   	   s=    ( ($@
 
.	= !"r   r   )__doc__networkxr   networkx.utilsr   r   r   ri   r   r   <module>rm      s     3u" u"r   