ó
T™xTc           @   sŽ   d  d l  m Z d  d l m Z d  d l m Z m Z m Z d  d l m	 Z	 d  d l
 m Z m Z d „  Z d „  Z e d k rŠ e ƒ  n  d	 S(
   iÿÿÿÿ(   t   division(   t   flex(   t   maptbxt   maskst   uctbx(   t   approx_equal(   t   matht   matrixc          C   s1  t  j d ƒ }  xt  j d ƒ t  j d ƒ f D]û}  t j d |  d d, ƒ } d- } d. } t j t j | j ƒ  ƒ ƒ } x | | D] } d | | <q� Wt j	 | |  ƒ } | j
 d ƒ d k sÂ t ‚ x$ | D] } | | d k sÉ t ‚ qÉ Wx$ | D] } | | d k sð t ‚ qð Wt | j ƒ  d/ d d0 d! f f ƒ s:t ‚ t | j ƒ  d1 d d2 d$ f f ƒ sdt ‚ t | j ƒ  |  j | j ƒ  ƒ ƒ sŽt ‚ | j ƒ  d k s¦t ‚ t | j ƒ  d3 ƒ sÁt ‚ t j d |  d d4 ƒ } t j t j | j ƒ  ƒ ƒ } d5 d6 d7 d8 d9 d: d; d< d= d> d? d@ dA dB dC g } t j ƒ  } xP | D]H }	 d | |	 <| j g  t d ƒ D] } |	 | | j ƒ  | ^ q`ƒ q=W|  j | ƒ }
 t j	 | |  ƒ } | j
 d ƒ d# k sÅt ‚ t | j ƒ  dE ƒ sàt ‚ t j d( |
 d) t j |
 j ƒ  d* ƒ ƒ } t j |  j ƒ  ƒ } t j |  j ƒ  ƒ } t | j ƒ  | j ƒ  d ƒ sYt ‚ t | j ƒ  d | j  ƒ  t j! d+ | j" ƒ  d ƒ | j# ƒ  ƒ s¢t ‚ t | j$ ƒ  | j% ƒ  d ƒ sÇt ‚ t | j& ƒ  j' ƒ  | j( ƒ  d j' ƒ  ƒ søt ‚ t | j& ƒ  j) ƒ  | j( ƒ  d j) ƒ  ƒ s. t ‚ q. Wd  S(F   Ns   10 10 10 90 90 90s   9 10 11 87 91 95t	   unit_cellt   pre_determined_n_reali   i    i   i   i   id   ih   ix   i|   i   i%   i&   i'   i*   i+   i>   i?   iC   iD   iW   ip   i   ii   i   i   g      à¿g      Ài   g      @gš™™™™™¹¿i   g      à?i   i
   i   t   pointst   weightsg      ð?t   sym_mat3(   i   i   i   (   i    i   i   i   id   ih   ix   i|   (   i   i%   i&   i'   i*   i+   i>   i?   iC   iD   iW   ip   (   g      à¿g      à¿g      à¿g«ªªªªª@(   gš™™™™™¹¿gš™™™™™¹¿gš™™™™™¹¿gÞÝÝÝÝÝÝ?(   i   i   (   i
   i
   i
   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   g      à?g      à?g      à?(   (   g      à?g      à?g      à?(*   R   R   R   t   crystal_griddingR   t   intt   gridt   n_realR   t
   flood_fillt   countt   AssertionErrorR   t   centres_of_masst   centres_of_mass_fract   centres_of_mass_cartt   orthogonalizet   n_voidst   grid_points_per_voidt   vec3_doublet   appendt   rangeR   t   principal_axes_of_inertiat   doublet   sizeR   t   sqrt   fractionalization_matrixt   orthogonalization_matrixt   center_of_masst   covariance_matrices_cartt	   transposet   symt   covariance_matrices_fract   as_sym_mat3t   inertia_tensort   inertia_tensors_cartt   eigensystemt   vectorst   eigensystems_cartt   values(   t   uct   griddingt   corner_cubet   channelt   datat   iR   R
   t   points_fract   pt   points_cartt   pai_cartt   Ft   O(    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/masks/tests/tst_flood_fill.pyt   exercise_flood_fill   sp    		   		
<	!"9"#c           C   s   t  ƒ  d GHd  S(   Nt   OK(   R;   (    (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/masks/tests/tst_flood_fill.pyt   runE   s    t   __main__N(   t
   __future__R    t   cctbx.array_familyR   t   cctbxR   R   R   t   libtbx.test_utilsR   t   scitbxR   R   R;   R=   t   __name__(    (    (    sN   /public2/ftp/pub/ccp4/6.5/ccp4-6.5/lib/py2/cctbx/masks/tests/tst_flood_fill.pyt   <module>   s   	=	