
    <i;.                     p   S SK r S SKrSSKJr   " S S\R                  5      r " S S\R                  5      r " S S	\R                  5      r " S
 S\R                  5      r " S S\R                  5      r	 " S S\R                  5      r
 " S S\R                  5      r " S S\R                  5      rg)    N   )Networkc                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)NodeTestCase   c                 "    [        5       U l        g Nr   gselfs    P/home/james-whalen/.local/lib/python3.13/site-packages/pyvis/tests/test_graph.pysetUpNodeTestCase.setUp	   s        c                 D   U R                   R                  SS5        U R                  SU R                   R                  S   S   5        U R                  SU R                   R                  S   S   5        U R	                  SU R                   R                  5       ;   5        g )Nr   idlabel)r   add_nodeassertEqualnodes
assertTrue	get_nodesr   s    r   test_one_node_gNodeTestCase.test_one_node_g   st    1DFFLLOD12DFFLLOG45TVV--//0r   c                    U R                   R                  SS/5        U R                  SU R                   R                  5       ;   5        U R                  SU R                   R                  5       ;   5        U R                   R	                  SS5        U R                  U R                   R                  5       S   S   S:H  =(       a#    U R                   R                  5       S   S   S:H  5        g )Nr      fromto)r   	add_nodesr   r   add_edge	get_edgesr   s    r   test_one_connNodeTestCase.test_one_conn   s    !Q TVV--//0TVV--//01((*1-f5:_tvv?O?O?QRS?TUY?Z^_?_`r   c                    U R                   R                  SS/5        U R                   R                  SS5        U R                  [	        U R                   R                  5       5      S:H  5        U R                   R                  SS5        U R                  [	        U R                   R                  5       5      S:H  5        g Nr   r   )r   r    r!   r   lenr"   r   s    r   test_no_dup_edgesNodeTestCase.test_no_dup_edges   s    !Q 1DFF,,./1451DFF,,./145r   c                 p   U R                   R                  SS5        U R                   R                  SS5        U R                  [        U R                   R                  5      S:H  5        U R                   R                  SS5        U R                  [        U R                   R                  5      S:H  5        g )Nd   r   n101)r   r   r   r'   r   r   s    r   test_no_dup_nodesNodeTestCase.test_no_dup_nodes    st    S!S!DFFLL)Q./V$DFFLL)Q./r   c                 6   U R                   R                  SS5        U R                   R                  SS5        U R                   R                  SS5        U R                  [        [	        S U R                   R
                  5      5      [        / SQ5      5        g )	Nr   n2r   n3   n4c                     U S   $ )Nr    ss    r   <lambda>/NodeTestCase.test_node_labels.<locals>.<lambda>+       1W:r   )r0   r1   r3   )r   r   r   setmapr   r   s    r   test_node_labelsNodeTestCase.test_node_labels'   sf    4 4 4 S!5tvv||DE/0	2r   c                    U R                   R                  [        S5      5        U R                   R                   H  nS[	        US   5      -   US'   M     [        S5       Vs/ s H  nS[	        U5      -   PM     nnU R                  [        [        S U R                   R                  5      5      [        U5      5        g s  snf )N
   znode #r   titlec                     U S   $ )NrA   r5   r6   s    r   r8   /NodeTestCase.test_node_titles.<locals>.<lambda>5   r:   r   )r   r    ranger   strr   r;   r<   r   nirefs       r   test_node_titlesNodeTestCase.test_node_titles.   s    r#A!C$L0AgJ  +0)4)Qx#a& )4S!5tvv||DEs3xP 5s   #Cc                 f   U R                   R                  [        S5      5        U R                   R                   H  nUS   S-  US'   M     [        S5       Vs/ s H  o"S-  PM	     nnU R	                  [        [        S U R                   R                  5      5      [        U5      5        g s  snf )Nr@   r   r   sizec                     U S   $ )NrM   r5   r6   s    r   r8   .NodeTestCase.test_node_sizes.<locals>.<lambda>>   s    1V9r   )r   r    rD   r   r   r;   r<   rF   s       r   test_node_sizesNodeTestCase.test_node_sizes7   s    r#A$!AfI  $Bi(i1ui(S!4dffllCDc#hO )s   B.c                     U R                   nUR                  [        S5      5        U R                  UR	                  5       [        S5      5        g )N   )r   r    rD   r   r   r   r   s     r   test_adding_nodesNodeTestCase.test_adding_nodes@   s3    FF	E!HuQx0r   c                    U R                   nUR                  [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      [        S5      S9  [        UR                  5       H  u  p#U R                  US   U5        U R                  US   U5        U R                  US   U5        U R                  US   U5        U R                  US   U5        U R                  US   U5        M     g )	N   )rM   colorrA   r   xyrM   rY   rA   r   rZ   r[   )r   r    rD   	enumerater   r   )r   r   rH   rG   s       r   test_adding_nodes_with_props)NodeTestCase.test_adding_nodes_with_propsE   s    FF	E!H5854AheAh%(eAh 	 	Hagg&DAQvY*QwZ+QwZ+QwZ+QsVQ'QsVQ' 'r   c                     U R                   nUR                  S5        U R                  UR                  S   S   S:H  5        UR                  SSS9  U R                  UR                  S   S   S:H  5        g )Nr   r   2   zNODE 50)r   r   )r   r   r   r   rT   s     r   test_labelsNodeTestCase.test_labelsQ   sb    FF	

1
7+q01	

2Y
'
7+y89r   c                     U R                   nUR                  / SQ5        U R                  UR                  / SQ:H  5        g )N)n1r0   r1   )r   r    r   node_idsrT   s     r   test_nodes_with_stringids&NodeTestCase.test_nodes_with_stringidsX   s.    FF	&'

&889r   c                 h   U R                   nUR                  [        S5      5        UR                  / SQ5        UR	                  5       nU R                  [        U5      UR                  5       5        U R                  US   [        / SQ5      5        U R                  US   [        SS/5      5        g )NrX   )r   r   r   )r   r   r   )r   r2   r   )r   r2   r   r   r   r   r2   r   r2   )	r   r    rD   	add_edgesget_adj_listr   r'   	num_nodesr;   )r   r   alists      r   test_adj_listNodeTestCase.test_adj_list]   s    FF	E!H	@A UQ[[]3q3y>2q31v;/r   c                 8   U R                   nUR                  [        S5      5        UR                  SS5        UR                  SS5        UR                  SS5        UR                  SS5        U R	                  UR                  S5      [        SS/5      5        g )NrS   r   r   r   r2   rX   )r   r    rD   r!   r   	neighborsr;   rT   s     r   test_neighborsNodeTestCase.test_neighborsf   ss    FF	E!H	

1a	

1a	

1a	

1aQaV5r   c                 ~    U R                   nUR                  S5        U R                  UR                  5       S5        g r&   )r   r   r   rm   rT   s     r   test_lengthNodeTestCase.test_lengtho   s,    FF	

1*r   c                 j    U R                  [        U R                  R                  5       5      S5        g )N   )r   r'   r   get_network_datar   s    r   test_get_network_data"NodeTestCase.test_get_network_datat   s$    TVV4467;r   r   N)__name__
__module____qualname____firstlineno__r   r   r#   r(   r-   r=   rJ   rP   rU   r]   ra   rf   ro   rs   rv   r{   __static_attributes__r5   r   r   r   r      sU    1a602QP1

(::
06+
<r   r   c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)EdgeTestCasex   c                 \    [        5       U l        U R                  R                  / SQ5        g N)r   r   r   r2   r   r   r    r   s    r   r   EdgeTestCase.setUpz       &r   c                     U R                  [        U R                  R                  SS5        U R                  [        U R                  R                  SS5        g )NrS   r   node1node2)assertRaisesAssertionErrorr   r!   r   s    r   test_non_existent_edge#EdgeTestCase.test_non_existent_edge~   s:    .$&&//1a@.$&&//7GLr   c                     U R                  U R                  R                  5       S:H  5        U R                  U R                  R                  5       S:H  5        g )NrX   r   )r   r   rm   	num_edgesr   s    r   test_no_edge_length EdgeTestCase.test_no_edge_length   s>    ((*a/0((*a/0r   c                     U R                   R                  SS5        U R                  U R                   R                  5       S:H  5        U R                  SSS.U R                   R                  ;   5        g )Nr   r   r   r   )r   r!   r   r   edgesr   s    r   test_add_one_edgeEdgeTestCase.test_add_one_edge   sP    1((*a/0!,<=r   c                    U R                   R                  SS5        U R                   R                  SS5        U R                  U R                   R                  5       S:H  5        U R                   R                  SS5        U R                  U R                   R                  5       S:H  5        U R	                  SSS.SSS./U R                   R
                  5        g )Nr   r   r   r   )r   r!   r   r   r   r   r   s    r   test_add_two_edges_no_dups'EdgeTestCase.test_add_two_edges_no_dups   s    11((*a/01((*a/01A.#$A.0	'r   c                    U R                   R                  / SQ5        U R                  U R                   R                  5       S5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S	5      [        / S
Q5      5        U R                  SU R                   R                   Vs/ s H  oPM     sn;  5        g s  snf )N))r   r   r   r   )r   r2   r   r   )r   r2   r   r2   ry   r   rj   r   r   r   r2   r   r   r   r2   r2   r   r   r   weight)r   rk   r   r   rr   r;   r   r   )r   ess     r   test_add_edges_no_weights&EdgeTestCase.test_add_edges_no_weights   s    	

 	))+Q/))!,c)n=))!,c)n=))!,c)n=))!,c)n=dffll(Cll(CCD(Cs   E
c           	      .   U R                   R                  / SQ5        U R                  U R                   R                  5       S5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S	5      [        / S
Q5      5        U R                   R                   H  nU R                  SU;   5        M     U R                  [        / SQ5      [        [        S U R                   R                  5      5      5        g )N)ri   )r   r   r   r   r2   r2   )r   r   rX   r   r2   rS   )r   r2   ry   ry   r   rj   r   r   r   r   r2   r   width)r   r   r2   rX   rS   ry   c                     U S   $ Nr   r5   rZ   s    r   r8   5EdgeTestCase.test_add_edges_weights.<locals>.<lambda>   s    qzr   )
r   rk   r   r   rr   r;   r   r   listr<   )r   r   s     r   test_add_edges_weights#EdgeTestCase.test_add_edges_weights   s   	
 	))+Q/))!,c)n=))!,c)n=))!,c)n=))!,c)n=VV\\EOOGu,- "#$)466<<89	;r   c           	         U R                   R                  / SQ5        U R                  U R                   R                  5       S5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S5      [        / SQ5      5        U R                  U R                   R	                  S	5      [        / S
Q5      5        U R                  [        / SQ5      [        [        S U R                   R                  5      5      5        g )N)ri   r   r   r   r   r   ry   r   rj   r   r   r   r   r2   r   )r   Nr2   NrS   Nc                 &    U R                  SS 5      $ r   )getr   s    r   r8   ;EdgeTestCase.test_add_edges_mixed_weights.<locals>.<lambda>   s    quuWd3r   )	r   rk   r   r   rr   r;   r   r<   r   r   s    r   test_add_edges_mixed_weights)EdgeTestCase.test_add_edges_mixed_weights   s    	
 	))+Q/))!,c)n=))!,c)n=))!,c)n=))!,c)n=,-3TVV\\BC	Er   c                    SU R                   l        U R                   R                  SS5        U R                  U R                   R                  5        U R                   R                   H  nU R                  US   S:H  5        M     g )NTr   r   arrowsr   )r   directedr!   r   r   )r   es     r   test_add_edge_directed#EdgeTestCase.test_add_edge_directed   sZ    1%AOOAhK4/0 r   r}   N)r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r5   r   r   r   r   x   s2    'M1>
'E;$E 1r   r   c                        \ rS rSrS rS rSrg)UtilsTestCase   c                 \    [        5       U l        U R                  R                  / SQ5        g r   r   r   s    r   r   UtilsTestCase.setUp   r   r   c                    U R                  [        U R                  R                  S5        U R                  [        U R                  R                  S5        U R                  [        U R                  R                  S5        U R                  R                  S5        U R	                  S[
        R                  " S5      ;   5        [
        R                  " S5        g )Nz
4nodes.htlz4nodes.hltmz4nodes. htlz4nodes.html.)r   r   r   
write_htmlr   oslistdirremover   s    r   test_html_namingUtilsTestCase.test_html_naming   s    .$&&*;*;\J.$&&*;*;]K.$&&*;*;]K-(C89
		- r   r}   N)r~   r   r   r   r   r   r   r5   r   r   r   r      s    '!r   r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)PhysicsTestCase   c                 \    [        5       U l        U R                  R                  / SQ5        g r   r   r   s    r   r   PhysicsTestCase.setUp   r   r   c                     U R                   R                  5         U R                  S[        U R                   R                  R
                  5      ;   5        g )N	barnesHut)r   
barnes_hutr   varsoptionsphysicsr   s    r   test_barnes_hutPhysicsTestCase.test_barnes_hut   s6    tDFFNN,B,B'CCDr   c                     U R                   R                  5         U R                  S[        U R                   R                  R
                  5      ;   5        g )N	repulsion)r   r   r   r   r   r   r   s    r   test_repulsionPhysicsTestCase.test_repulsion   s6    tDFFNN,B,B'CCDr   c                     U R                   R                  5         U R                  S[        U R                   R                  R
                  5      ;   5        g )NhierarchicalRepulsion)r   
hrepulsionr   r   r   r   r   s    r   test_hrepulsionPhysicsTestCase.test_hrepulsion   s7    /48N8N3OOPr   c                     U R                   R                  5         U R                  S[        U R                   R                  R
                  5      ;   5        g )NforceAtlas2Based)r   force_atlas_2basedr   r   r   r   r   s    r   test_force_atlas_2based'PhysicsTestCase.test_force_atlas_2based   s7    !!#*d466>>3I3I.JJKr   c                    U R                  U R                  R                  R                  S   5        U R                  R	                  S5        U R                  U R                  R                  R                  S   5        g )NenabledF)r   r   r   r   toggle_physicsassertFalser   s    r   test_toggle_physics#PhysicsTestCase.test_toggle_physics   sT    ..y9:e$//	:;r   c                 `   U R                   R                  S5        U R                  U R                   R                  R                  R
                  S   5        U R                   R                  S5        U R                  U R                   R                  R                  R
                  S   5        g )NTr   F)r   toggle_stabilizationr   r   r   stabilizationr   r   s    r   test_stabilization"PhysicsTestCase.test_stabilization   sr    ##D)..<<YGH##E*//==iHIr   r}   N)r~   r   r   r   r   r   r   r   r   r   r   r   r5   r   r   r   r      s*    'EEQL<
Jr   r   c                   ,    \ rS rSrS rS rS rS rSrg)InteractionTestCase   c                 \    [        5       U l        U R                  R                  / SQ5        g r   r   r   s    r   r   InteractionTestCase.setUp   r   r   c                    U R                  U R                  R                  R                  S   5        U R                  R	                  S5        U R                  U R                  R                  R                  S   5        g )N	dragNodesF)r   r   r   interactiontoggle_drag_nodesr   r   s    r   test_toggle_drag_nodes*InteractionTestCase.test_toggle_drag_nodes  sT    22;?@  '33K@Ar   c                    U R                  U R                  R                  R                  S   5        U R                  R	                  S5        U R                  U R                  R                  R                  S   5        g )NhideEdgesOnDragT)r   r   r   r   toggle_hide_edges_on_dragr   r   s    r   test_toggle_hide_edges_on_drag2InteractionTestCase.test_toggle_hide_edges_on_drag  V    334EFG((.223DEFr   c                    U R                  U R                  R                  R                  S   5        U R                  R	                  S5        U R                  U R                  R                  R                  S   5        g )NhideNodesOnDragT)r   r   r   r   toggle_hide_nodes_on_dragr   r   s    r   test_toggle_hide_nodes_on_drag2InteractionTestCase.test_toggle_hide_nodes_on_drag  r  r   r}   N)	r~   r   r   r   r   r   r  r  r   r5   r   r   r   r      s    'B
G
Gr   r   c                        \ rS rSrS rS rSrg)ConfigureTestCasei  c                 \    [        5       U l        U R                  R                  / SQ5        g r   r   r   s    r   r   ConfigureTestCase.setUp  r   r   c                    U R                  U R                  R                  R                  S   5        U R                  R	                  S5        U R                  U R                  R                  R                  S   5        g )Nr   T)r   r   r   	configureshow_buttonsr   r   s    r   test_show_buttons#ConfigureTestCase.test_show_buttons  sT    11)<=D!00;<r   r}   N)r~   r   r   r   r   r  r   r5   r   r   r
  r
    s    '=r   r
  c                   &    \ rS rSrS rS rS rSrg)EdgeOptionsTestCasei  c                 \    [        5       U l        U R                  R                  / SQ5        g r   r   r   s    r   r   EdgeOptionsTestCase.setUp!  r   r   c                 J   U R                  U R                  R                  R                  R                  R
                  S5        U R                  R                  S5        U R                  U R                  R                  R                  R                  R
                  S5        g )Ndynamic
continuous)r   r   r   r   smoothtypeset_edge_smoothr   s    r   test_set_edge_smooth(EdgeOptionsTestCase.test_set_edge_smooth%  sh    --44999E|,--4499<Hr   c                 F   U R                  U R                  R                  R                  R                  R
                  5        U R                  R                  S5        U R                  U R                  R                  R                  R                  R
                  5        g )NF)r   r   r   r   rY   inheritinherit_edge_colorsr   r   s    r   test_inherit_colors'EdgeOptionsTestCase.test_inherit_colors*  sb    ,,22::;""5)--33;;<r   r}   N)r~   r   r   r   r   r  r!  r   r5   r   r   r  r    s    'I
=r   r  c                   \    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rSrg)LayoutTestCasei0  c                      [        SS9U l        g )NT)layoutr
   r   s    r   r   LayoutTestCase.setUp2  s    %r   c                 T    U R                  U R                  R                  S   5        g Nr&  )r   r   r   r   s    r   test_can_enable_init#LayoutTestCase.test_can_enable_init5  s    x01r   c                 X   ^  [        5       T l        T R                  [        U 4S j5        g )Nc                  6   > T R                   R                  S   $ r)  )r   r   r   s   r   r8   5LayoutTestCase.test_layout_disabled.<locals>.<lambda>:  s    DFFNN8,Dr   )r   r   r   KeyErrorr   s   `r   test_layout_disabled#LayoutTestCase.test_layout_disabled8  s    ($DEr   c                     U R                  U R                  R                  R                  R                  R
                  5        g r	   )r   r   r   r&  hierarchicallevelSeparationr   s    r   test_levelSeparation#LayoutTestCase.test_levelSeparation<  s(    --::JJKr   c                     U R                  U R                  R                  R                  R                  R
                  5        g r	   )r   r   r   r&  r3  treeSpacingr   s    r   test_treeSpacingLayoutTestCase.test_treeSpacing?  s(    --::FFGr   c                     U R                  U R                  R                  R                  R                  R
                  5        g r	   )r   r   r   r&  r3  blockShiftingr   s    r   test_blockShifting!LayoutTestCase.test_blockShiftingB  s(    --::HHIr   c                     U R                  U R                  R                  R                  R                  R
                  5        g r	   )r   r   r   r&  r3  edgeMinimizationr   s    r   test_edgeMinimization$LayoutTestCase.test_edgeMinimizationE  s(    --::KKLr   c                     U R                  U R                  R                  R                  R                  R
                  5        g r	   )r   r   r   r&  r3  parentCentralizationr   s    r   test_parentCentralization(LayoutTestCase.test_parentCentralizationH  s(    --::OOPr   c                     U R                  U R                  R                  R                  R                  R
                  5        g r	   )r   r   r   r&  r3  
sortMethodr   s    r   test_sortMethodLayoutTestCase.test_sortMethodK  s(    --::EEFr   c                     U R                   R                  R                  R                  S5        U R	                  U R                   R                  R                  R
                  R                  S:H  5        g Nr@   )r   r   r&  set_separationr   r3  r4  r   s    r   test_set_edge_minimization)LayoutTestCase.test_set_edge_minimizationN  sI    ,,R0--::JJbPQr   c                     U R                   R                  R                  R                  S5        U R	                  U R                   R                  R                  R
                  R                  S:H  5        g rL  )r   r   r&  set_tree_spacingr   r3  r8  r   s    r   test_set_tree_spacing$LayoutTestCase.test_set_tree_spacingR  sI    ..r2--::FF"LMr   c                    U R                   R                  R                  R                  S5        U R	                  U R                   R                  R                  R
                  R                  S:H  5        U R                   R                  R                  R                  S5        U R	                  U R                   R                  R                  R
                  R                  S:H  5        g )NTF)r   r   r&  set_edge_minimizationr   r3  r@  r   s    r   rN  rO  V  s    33D9--::KKtST33E:--::KKuTUr   r}   N)r~   r   r   r   r   r*  r0  r5  r9  r=  rA  rE  rI  rN  rR  r   r5   r   r   r$  r$  0  sH    &2FLHJMQGRNVr   r$  )r   unittestnetworkr   TestCaser   r   r   r   r   r
  r  r$  r5   r   r   <module>rY     s    	  n<8$$ n<bQ18$$ Q1h!H%% !Jh'' JDG(++ G,	=)) 	==(++ ="*VX&& *Vr   