ó
Y™xTc           @   sb   d  d l  m Z d  d l m Z d  d l Z d „  Z d „  Z e d k r^ e e j d ƒ n  d S(   iÿÿÿÿ(   t   division(   t   utilsNc          C   s  t  j }  g  } xV t d ƒ D]H } t  j d | d | ƒ } |  d | ƒ j } | t | ƒ k s t ‚ q Wd g } xd t d d ƒ D]S } t  j d | d | ƒ } |  d | ƒ j } | d g t | d ƒ k s� t ‚ q� Wd g } t  j d d d | ƒ } |  d | ƒ j } | d d d d	 d
 d d g k s2t ‚ x„ t d ƒ D]v } g  t | d ƒ D] } | | d f ^ qV} t  j d | d | ƒ } |  d | ƒ j } | d g | k s?t ‚ q?Wd d g } t  j d d
 d | ƒ } |  d | ƒ j } | d d d d g k st ‚ d d g } t  j d d
 d | ƒ } |  d | ƒ j } | d d d d g k sat ‚ d d d d d  d! d" d# d$ d% d& g } t  j d d d | ƒ } |  d | ƒ } | j d d d d	 d d d d	 d	 d	 d
 d	 d	 d	 d	 d	 g k sôt ‚ | j d d' ƒ g  k st ‚ x; t d ƒ D]- } | j d | g ƒ | g g k st ‚ qW| j d d d	 g ƒ d d	 g g k s}t ‚ | j d d d g ƒ d g d g g k s­t ‚ | j d t d ƒ ƒ d d g d d
 d g d g d	 d d d d d d d d g	 d g g k st ‚ d  S((   Ni   t
   n_verticest	   edge_listt	   edge_setsi    i   i   i   i   i   i   i	   i   i   i   i   i   i   i   t   vertex_indicesi
   (   i    i   (   i   i   (   i    i   (   i   i   (   i   i   (   i    i   (   i   i	   (   i   i	   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (    (   R   t   tree_markingt   xranget   construct_edge_setst   indicest   ranget   AssertionErrort   partitions_of(   R   t   elR   t   est   tit   it   tm(    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/graph/tst_utils.pyt   exercise_tree_marking   sR    		'	'-	E+-0c   
      C   s 
  t  |  ƒ d k s t ‚ g  } d } t j d | d | ƒ } t  | ƒ d k sT t ‚ t j d | ƒ } t  | ƒ d k s~ t ‚ t j d | ƒ } t  | ƒ d k s¨ t ‚ t j d | d | ƒ } t  | ƒ d k sØ t ‚ t j d | d t ƒ } t  | ƒ d k st ‚ d d d g } d
 } t j d | d | ƒ } t  | ƒ | k sMt ‚ t j d | ƒ } t  | ƒ | k swt ‚ t j d | ƒ } | d d d d d g k sªt ‚ t | ƒ j	 t | ƒ ƒ sËt ‚ t j d | d | ƒ } | d g k søt ‚ t | ƒ j
 t | ƒ ƒ st ‚ t j d | d t ƒ } t  | ƒ | k sIt ‚ t j d | ƒ } | d d g k sst ‚ d d d d d  d! d" g } d } t j d | d | ƒ } t j d | ƒ } t j d | ƒ } | d# d$ d% d& d' d( d) d* d+ d, d- d. d/ g k s	t ‚ t | ƒ j	 t | ƒ ƒ s*t ‚ t j d | d | ƒ } | d0 d1 d2 d3 d4 g k sct ‚ t | ƒ j
 t | ƒ ƒ s„t ‚ t j d | d t ƒ } t j d | ƒ } | d5 d6 d7 d8 d9 d: g k sÒt ‚ d; d< d= d> g } d
 } t j d | d | ƒ } t j d | ƒ } t j d | ƒ } | d? d@ dA dB dC dD g k sJt ‚ t | ƒ j	 t | ƒ ƒ skt ‚ t j d | d | ƒ } | g  k s•t ‚ t j d | d t ƒ } t j d | ƒ } | dE dF g k s×t ‚ dG dH dI dJ dK dL g } d } t j d | d | ƒ } t j d | ƒ } t j d | ƒ } | dM dN dO dP dQ dR dS dT dU dV dW dX g k sgt ‚ t | ƒ j	 t | ƒ ƒ sˆt ‚ t j d | d | ƒ } | dY dZ d[ g k s»t ‚ t | ƒ j
 t | ƒ ƒ sÜt ‚ t j d | d t ƒ } t j d | ƒ } | d\ d] d^ d_ d` da g k s*t ‚ db dc dd de df dg dh di g } d } t j d | d | ƒ } t j d | ƒ } t j d | ƒ } | dj dk dl dm dn do dp dq dr ds dt du dv dw dx dy dz d{ g k sÒt ‚ t | ƒ j	 t | ƒ ƒ sót ‚ t j d | d | ƒ } | d| d} d~ d d€ d� d‚ dƒ g k s5t ‚ t | ƒ j
 t | ƒ ƒ sVt ‚ t j d | d t ƒ } t j d | ƒ } | d„ d… d† d‡ dˆ d‰ dŠ d‹ dŒ d� g
 k s°t ‚ dŽ d� d� d‘ d’ d“ d” d• g } d } t j d | d | ƒ } t j d | d g  ƒ }	 t  |	 j ƒ d k st ‚ t  |	 j ƒ  ƒ d k s=t ‚ t j d | d d g ƒ }	 t  |	 j ƒ d k sst ‚ t  |	 j ƒ  ƒ d k s‘t ‚ t j d | d d d	 g ƒ }	 t  |	 j ƒ d k sÊt ‚ t  |	 j ƒ  ƒ d k sèt ‚ t j d | d d d g ƒ }	 |	 j d– g k s	t ‚ t  |	 j ƒ  ƒ d k s<	t ‚ |	 j i d d 6d d 6k s_	t ‚ t j d | d d d d	 d g ƒ }	 |	 j d— d˜ d™ g k s¡	t ‚ t  |	 j ƒ  ƒ d
 k s¿	t ‚ |	 j i d	 d 6d d	 6d d 6d d 6k sð	t ‚ t ƒ  d GHd  S(š   Ni    R   R   R   t   bond_bending_edge_setst
   omit_bondsi   i   i   i   i   i   i   i   R   t   OK(   i    i   (   i   i   (   i   i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i    i   (   i    i   (   i   i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i   i   (   i   i   (   i    i   (   i    i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i    i   (   i   i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i    i   (   i    i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i   i   (   i   i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i    i   (   i    i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i   i   (   i    i   (   i    i   (   i   i   (   i   i   (   i    i   (   t   lenR   R   R   R   t   extract_edge_listt   potential_implied_edge_listt   Truet   sett   issubsett
   isdisjointt   sub_edge_listR   R   t   reindexing_dictR   (
   t   argsR   R   R   t   bbest   bbelt   pielt   bbesobt   bbelobt   sub(    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/graph/tst_utils.pyt   run1   s   	!!	!!	!!$!		!	!!	*!	#$1t   __main__i   (	   t
   __future__R    t   scitbx.graphR   t   sysR   R&   t   __name__t   argv(    (    (    sD   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/graph/tst_utils.pyt   <module>   s   	,	—