
    Vh
                     T   d dl Z d dlZd dlZd dlmZ ej                  j                  dej                  j                  ej                  j                  f      ej                  j                  dej                  ej                  f      d               Zd Zd Zd Zd	 Zd
 Zd Zd Zy)    N)maxcutfgraph_constructorc                      |ddg      }t        j                  t        j                        5   | |       d d d        y # 1 sw Y   y xY w)N)r      )r      )pytestraisesnxNetworkXNotImplemented)r   r   Gs      c/home/dcms/DCMS/lib/python3.12/site-packages/networkx/algorithms/approximation/tests/test_maxcut.py'test_raises_on_directed_and_multigraphsr   	   sA    
 	66*+A	r00	1 	!  s   	A  A	c                     |j                  |      }|t        | j                        k(  sJ t        |      t        |      z   | j	                         k(  sJ y )N)unionsetnodeslennumber_of_nodes)r   set1set2r   s       r   _is_valid_cutr      sJ    JJtECL   t9s4y A$5$5$7777    c                     t        |      D ]2  \  }}t        j                  j                  | ||hz
  d      }||k  r2J  y )Nweightr   )	enumerater   
algorithmscut_size)r   r   r   inodecut_size_without_nodes         r   _cut_is_locally_optimalr#      sP    T? 14 " 6 6ttf}X !7 !
 %000	1r   c                      t        j                  d      } t        j                  | d      \  }\  }}t	        | ||       y )N   )seed)r   complete_graphr   randomized_partitioningr   r   _r   r   s       r   test_random_partitioningr+   "   s8    
!A44QQ?OA|d!T4 r   c                      t        j                  d      } t        j                  | d      \  }\  }}t	        | ||       t        |      | j                         k(  sJ t        |      dk(  sJ y )Nr%   r   )pr   )r   r'   r   r(   r   r   r   r)   s       r   #test_random_partitioning_all_to_oner.   (   sc    
!A44Q!<OA|d!T4 t9))++++t9>>r   c                     t        j                  d      } t        j                  d       | j	                  d      D ]#  \  }}}t        j
                  ddd      dz  |d<   % t        t        j                  t        | j                               d	            }t        j                  | |dd
      \  }\  }}t        | ||       t        | ||       y )Nr%   Tdataid   r   
   r   kr   r&   )r   r'   randomr&   edges	randranger   samplesortedr   r   one_exchanger   r#   r   uvwinitial_cutr   r   r   s           r   test_one_exchange_basicrB   0   s    
!A
KKN777% :1a&&tS!4r9(: fmmF1779$5;<K#00	;xaHltT !T4 Ax.r   c                  r   t        j                         } | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       t        j                  | dd      \  }\  }}t        | ||       t        | ||       |d	k(  sJ y )
Nr   r      r      r%   r   r6      )r   Graphadd_edger   r<   r   r#   )r   r   r   r   s       r   test_one_exchange_optimalrI   ?   s    

AJJq!AJJJq!AJJJq!AJJJq!AJJJq!AJ#008!LHltT!T4 Ax.r>>r   c                  *   t        j                  d      } t        j                  d       | j	                  d      D ]   \  }}}dt        j                         z  |d<   " t        t        j                  t        | j                               d            }t        j                  | |d      \  }\  }}t        | ||       t        | ||       t        |      t        | j                        k(  s$t        |      t        | j                        k(  sJ y y )Nr%   Tr0   r   r4   r   )r   r'   r7   r&   r8   r   r:   r;   r   r   r<   r   r#   r   r=   s           r   test_negative_weightsrL   P   s    
!A
KKN777% +1a6==?*(+ fmmF1779$5;<K#00KQHltT !T4 Ax.t9AGG$D	S\(AAA(A$r   )r7   r	   networkxr   !networkx.algorithms.approximationr   markparametrizeapproximationr(   r<   DiGraph
MultiGraphr   r   r#   r+   r.   rB   rI   rL    r   r   <module>rU      s       4 "


2
2B4D4D4Q4Q	R ,rzz2==.IJ K81!/"Br   