
    Vh4                     N    d Z ddlmZmZ ddlZddlZ ed      Z G d d      Zy)z+Unit testing for time dependent algorithms.    )datetime	timedeltaNi!  )daysc                   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)TestCdIndexz'Unit testing for the cd index function.c                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d
d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       dt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      id}t        j
                  ||       t        j                  |dt              dk(  sJ y )Nr                           	   
   r   r   r   r
   r   r   r   r   r   r   r   time            
time_delta(\?nxDiGraphadd_nodes_fromadd_edger   set_node_attributescd_index_deltaselfG
node_attrss      ]/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/tests/test_time_dependent.pytest_common_graphzTestCdIndex.test_common_graph   s   JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-$1-.

 	q*-{{1aF3t;;;    c                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d
d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       dt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      id}t        j
                  ||       t        j                  |dt        d      dk(  sJ y )Nr	   r   r   r   r
   r   r   r   r   r   r   r   dater   r   r   r   r   r   )r   r   r   r   r&   s      r*   'test_common_graph_with_given_attributesz3TestCdIndex.test_common_graph_with_given_attributes2   s   JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-$1-.

 	q*-{{1aF@DHHHr,   c                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d
d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       ddiddiddiddiddiddiddiddiddiddiddid}t        j                  ||       t        j
                  |dd      dk(  sJ y )Nr	   r   r   r   r
   r   r   r   r   r   r   r   r         2   F   P   Z   J   r   r   r   r    r!   r"   r#   r$   r&   s      r*   %test_common_graph_with_int_attributesz1TestCdIndex.test_common_graph_with_int_attributesU   sU   JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q ||||||||||

 	q*-{{1aB/4777r,   c                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d
d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       ddiddiddiddiddiddiddiddiddiddiddid}t        j                  ||       t        j
                  |dd      dk(  sJ y )Nr	   r   r   r   r
   r   r   r   r   r   r   r   r   3333334@33333>@33333sI@fffffQ@fffff&T@̬V@̌R@r3   r   r   r8   r&   s      r*   'test_common_graph_with_float_attributesz3TestCdIndex.test_common_graph_with_float_attributesx   sU   JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q ~~~~~~~~~~

 	q*-{{1aB/4777r,   c                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d
d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       dt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      it	        ddd      ddt	        ddd      ddt	        ddd      ddt	        ddd      ddt	        ddd      ddd}t        j
                  ||       t        j                  |dt        d      dk(  sJ y )Nr	   r   r   r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   weightr   rD   )r   rD   g{Gz?r   r&   s      r*   test_common_graph_with_weightsz*TestCdIndex.test_common_graph_with_weights   s   JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q q!,-q!,-q!,-q!,-q!,-q!,- q!,: q!,: q!,: q!,:!$1-<

 	q*-{{1aF8DLLLr,   c                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d
d       |j                  d
d       |j                  d
d       |j                  dd       dt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      id}t        j
                  ||       t        j                  |dt              dk(  sJ y )Nr	   r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r               r   g        r   r&   s      r*   test_node_with_no_predecessorsz*TestCdIndex.test_node_with_no_predecessors      JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-$1-.

 	q*-{{1aF3s:::r,   c                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  dd       |j                  d
d       |j                  d
d       |j                  d
d       |j                  dd       dt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      id}t        j
                  ||       t        j                  |dt              dk(  sJ y )Nr	   r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r   r   r   r   g      ?r   r&   s      r*   test_node_with_no_successorsz(TestCdIndex.test_node_with_no_successors   rN   r,   c                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d	d
       |j                  dd       dt	        dd
d
      idt	        dd
d
      idt	        dd
d
      idt	        dd
d
      idt	        dd
d
      idt	        dd
d
      idt	        dd
d
      idt	        dd
d
      idt	        dd
d
      idt	        dd
d
      idt	        ddd
      id}t        j
                  ||       t        j                  t         j                  d      5 }t        j                  |dt               d d d        y # 1 sw Y   y xY w)Nr	   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   rG   rH   rI   rJ   rK   rL   zThe cd index cannot be defined.matchr   r   r    r!   r"   r   r#   pytestraisesNetworkXErrorr$   r%   r'   r(   r)   ves       r*   test_n_equals_zerozTestCdIndex.test_n_equals_zero   s   JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-$1-.

 	q*-]]$E
 	1KK10	1 	1 	1s   "GGc                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d	d
       |j                  dd       ddiddiddiddiddiddiddiddiddiddiddid}t        j                  ||       t        j                  t         j                  d      5 }t        j                  |dt               d d d        y # 1 sw Y   y xY w)Nr	   r   r   r   r   r   r   r   r   r
   r   r   r;   r<   r=   r>   r?   r@   rA   z1Addition and comparison are not supported betweenrR   r   )
r   r    r!   r"   r#   rU   rV   rW   r$   r%   rX   s       r*   !test_time_timedelta_compatibilityz-TestCdIndex.test_time_timedelta_compatibility!  sD   JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q ~~~~~~~~~~

 	q*-]]E
 	1 KK10		1 	1 	1s   )EEc                    t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  dd       |j                  d
d       |j                  d
d       |j                  d
d       |j                  dd       dt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      id
}t        j
                  ||       t        j                  t         j                  d      5 }t        j                  |dt               d d d        y # 1 sw Y   y xY w)Nr	   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   z&Not all nodes have a 'time' attribute.rR   r   rT   rX   s       r*   test_node_with_no_timez"TestCdIndex.test_node_with_no_timeD  s   JJL	;<	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-$1-.

 	q*-]]$L
 	1KK10	1 	1 	1s   
G00G9c                 z   t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d	d       |j                  d
d       |j                  d
d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       dt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      id}t        j
                  ||       t        j                  |dt              dk(  sJ y )Nr   r
   r   r   r   r   r   r   r   r   r      r   r
   r   r   r   r   r   r   r   r   ra   r   r   r   r   r   r   r   r   r   r&   s      r*   test_maximally_consolidatingz(TestCdIndex.test_maximally_consolidatingh  s   JJL	?@	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q	

2q	

2q	

2q	

2q q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-$1-.$1-.

 	q*-{{1aF3r999r,   c                 ~   t        j                         }|j                  g d       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  dd       |j                  d	d       |j                  d
d       |j                  dd       |j                  dd       dt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      idt	        ddd      id}t        j
                  ||       t        j                  |dt              dk(  sJ y )Nr`   r   r
   r   r   r   r   r   r   r   r   ra   r   r   r   r   r   r   r   r   r   r&   s      r*   test_maximally_destabilizingz(TestCdIndex.test_maximally_destabilizing  s   JJL	?@	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

1a	

2q	

2q q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-q!,-$1-.$1-.

 	q*-{{1aF3q888r,   N)__name__
__module____qualname____doc__r+   r/   r9   rB   rE   rM   rP   rZ   r\   r^   rc   re    r,   r*   r   r      sN    1!<F!IF!8F!8F MD;B;B 1D!1F"1H&:P9r,   r   )ri   r   r   rU   networkxr   r%   r   rj   r,   r*   <module>rl      s'    1 (  		 c9 c9r,   