ó
o™xTc           @   s^   d  d l  m Z d „  Z d „  Z d „  Z e d k rZ d  d l Z e d e j d ƒ n  d S(	   iÿÿÿÿ(   t   divisionc          C   s¯   d d  l  j }  |  j ƒ  d k s' t ‚ |  j ƒ  } |  j d d ƒ |  j ƒ  d k s[ t ‚ |  j d d ƒ |  j ƒ  d k sƒ t ‚ |  j d | ƒ |  j ƒ  | k s« t ‚ d  S(   Niÿÿÿÿi    t   number_of_bytesi
   (   t   scitbx.cubicle_neighborst   cubicle_neighborst"   cubicles_max_memory_allocation_gett   AssertionErrort"   cubicles_max_memory_allocation_set(   t   cnt   mm(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/tst_cubicle_neighbors.pyt   exercise_cubicles_max_memory   s    c         C   sž   d d l  m } i  } x� t | ƒ D]s \ } } | | ƒ } xX t |  ƒ D]J \ } }	 | |	 ƒ }
 | |
 j ƒ  | k rH | j | g  ƒ j | ƒ qH qH Wq# W| S(   Niÿÿÿÿ(   t   col(   t   scitbx.matrixR
   t	   enumeratet	   length_sqt
   setdefaultt   append(   t   main_sites_cartt   other_sites_cartt   distance_cutoff_sqR
   t   resultt   jt   sjt   vjt   it   sit   vi(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/tst_cubicle_neighbors.pyt   neighbors_simple   s    $c      
   C   s…  t  |  ƒ d k s t ‚ t ƒ  d d l m } d d l m } | j ƒ  } | d | d d ƒ } | j d | d	 d
 ƒ } | j	 ƒ  d k s� t ‚ xd d g D]} | j | g ƒ } | d | d d ƒ } | j d | d	 d
 ƒ } | j	 ƒ  d
 k sú t ‚ | j
 ƒ  d g k st ‚ t | d ƒ d g k s4t ‚ | j d | j d g ƒ d	 d
 ƒ } | j	 ƒ  d k spt ‚ | j d | j d g ƒ d	 d ƒ } | j	 ƒ  d
 k s� t ‚ q� W| j d d ƒ } x·d d d g D]¦} x�d
 d d g D]Œ}	 | j t | j d | ƒ d d
 | j d | ƒ d d
 | j d | ƒ d d
 ƒ ƒ } | j t | j d |	 ƒ d d
 | j d |	 ƒ d d
 | j d |	 ƒ d d
 ƒ ƒ }
 xÕ d d
 g D]Ç } | d } | d | d d
 ƒ } | j d |
 d	 | ƒ } t d | d |
 d	 | ƒ } t | j
 ƒ  ƒ t | j
 ƒ  ƒ k s+t ‚ xB | j ƒ  D]4 \ } } | | } t | ƒ t | ƒ k s8t ‚ q8Wq©WqèWqÒWd GHd  S(   Ni    iÿÿÿÿ(   R   (   t   flexR   t   cubicle_edgei   R   R   i   gš™™™™™¹?gš™™™™™É?g333333Ó¿i   i   t   seedi   i   i   i	   t   sizeg      à?t   OK(   i    i    i    (   gš™™™™™¹?gš™™™™™É?g333333Ó¿(   i   i   i   (   i   i   i   (   t   lenR   R	   R   R   t   scitbx.array_familyR   t   vec3_doublet   neighbors_ofR   t   keyst   listt   mersenne_twistert   zipt   random_doubleR   t   sortedt   items(   t   argsR   R   R   R   t   nbt   xyzt   mtt   nmt   noR   t   distance_cutoffR   t	   nb_simplet   j_seqt   i_seqs_simplet   i_seqs(    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/tst_cubicle_neighbors.pyt   run   s^    			 	 
			*
.t   __main__NR+   i   (   t
   __future__R    R	   R   R6   t   __name__t   syst   argv(    (    (    sJ   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/scitbx/tst_cubicle_neighbors.pyt   <module>   s   			1